/* ===========================================================
 * Brinkmann & Partner — Child-Theme Custom CSS
 *
 * Quelle: docs/design-corrections.md (Marlene Jeran, 2026-04-17)
 *       + tools/saicu-impreza-bot/impreza-bot/projects/bp/project.md
 *
 * Regel: Body = Fira Sans, Noto Serif auch für FAQ/Iconbox/Sublines.
 * =========================================================== */

/* ---------- 1. Heading-Line-Heights ---------- */
/* Zentral in Impreza Theme-Options gesetzt (2026-05-13 Pass 0):
   --h1-line-height: 1.15, --h2-line-height: 1.15, --h3-line-height: 1.2
   Vormals hier per CSS hartkodiert ("Roman: Line-Height wieder enger").
   Bei Bedarf in WP-Admin → Impreza → Theme Options → Typography ändern. */

/* ---------- 2. Noto Serif für erzählende Sublines + FAQ-Fragen ---------- */
/* Marlene: FAQ-Fragen, Iconbox-Titel, Sublines in Noto Serif (= Heading-Font) */
.section-subline,
.w-tabs-section-header,
/* Accordion/Tabs-Section-Titles: <div>, erben sonst body-font.
   Brand-Spec: erzählende Titel in Heading-Font (Noto Serif). */
.w-tabs-section-title,
.w-tabs-section-title > *,
.vc_tta-panel-title,
.vc_tta-panel-title .vc_tta-panel-title-text {
	font-family: var(--h1-font-family);
}

/* Iconbox-Text links-ausgerichtet (Marlenes PDF-Vorgabe), nicht zentriert */
.w-iconbox.iconpos_left .w-iconbox-meta {
	text-align: left;
}
.w-iconbox.iconpos_left .w-iconbox-title,
.w-iconbox.iconpos_left .w-iconbox-text {
	text-align: left !important;
}

/* ---------- 3. Hero-Akzent-Treatment (Italic + Gelb) ---------- */
/* Brand-Signature: einzelne Wörter in Headlines kursiv + gelb */
/* Note: verwende <i class="hero-accent"> im us_text — <em> wird von us_text gestrippt */
/* Akzent-Wort in Überschriften: nur Farbe, kein Kursiv (Projekt-Regel:
   "wir nutzen kein kursiv"). Klasse bleibt erhalten, falls selektiv
   Akzent-Wörter farblich hervorgehoben werden sollen. */
.hero-accent,
i.hero-accent,
em.hero-accent {
	font-style: normal;
	color: var(--color-content-secondary);
	font-weight: inherit;
}

/* ==================================================================
   4. OVERLINES — Single Source of Truth
   ==================================================================
   Eine Klasse für ALLE Overlines auf der ganzen Seite (Hero, Sections,
   Cards, Partner-Templates, Mitteilungen, Kontakt — alles).
   Spec: docs/design-corrections.md § 7.1 (Roman, Update v2 2026-04-19).

   Partner-Aliase (.bp-partner-label/-position/-quali-label) sind historisch
   gewachsene Content-Wrapper-Klassen und erben hier die Master-Styles,
   damit Templates nicht angefasst werden müssen.
   ================================================================== */
/* OVERLINE — Schmuck-Label mit gelbem Strich.
   Designer-Vorgabe: NUR für echte Section-Overlines (z.B. „Partner",
   „Presse", „Unsere Veranstaltungsreihen"). NICHT für Mini-Labels
   wie „Standort", „Leistungen", „Mitgliedschaften" — diese bekommen
   den Subline-Style (siehe unten). */
.bp-overline,
.bp-partner-position {
	position: relative;
	display: inline-block;
	/* max-width: fit-content gegen Flex-Blockify: sitzt die Overline in einem
	   Flex-Container (z.B. vc_column-inner mit content_placement="middle"),
	   wird inline-block effektiv zu block und der ::after-Strich erstreckt
	   sich über die volle Container-Breite. fit-content zwingt die Box auf
	   die Text-Breite — harmlos im inline-block-Default, kritisch bei Flex. */
	max-width: fit-content;
	font-family: var(--font-family);
	font-size: 0.8125rem;
	/* Brand-spezifisch: Mini-Label-Size, kein Impreza-Pendant */
	font-weight: var(--bold-font-weight);
	color: var(--color-content-heading);
	letter-spacing: 0.5px;
	text-transform: none;
	line-height: 1.3;
	margin: 0 0 1.25rem 0;
	padding-bottom: 0.25rem;
}

@media (min-width: 1024px) {
	.bp-overline,
	.bp-partner-position {
		font-size: 0.9375rem;
	}
}

/* Gelber Unterstrich — volle Wortbreite, 12px nach rechts versetzt.
   Strich-Höhe + Position sind Brand-Geometrien (kein Impreza-Pendant). */
.bp-overline::after,
.bp-partner-position::after {
	content: "";
	position: absolute;
	left: 12px;
	right: -12px;
	bottom: 0;
	height: 2px;
	background: var(--color-content-secondary);
}

/* Overline zentrieren wenn us_text mit align="center" genutzt wird. */
.bp-overline.align_center,
p.bp-overline.align_center {
	display: block;
	width: fit-content;
	margin-left: auto;
	margin-right: auto;
}

/* Auf dunkler Section (Navy-BG): Overline selbst in Akzent-Gelb.
   Fix 2026-05-28: hatte durch nachgestelltes Komma keinen eigenen
   Regelkörper und erbte versehentlich die Subline-Navy-Farbe (unsichtbar
   auf Navy). Jetzt eigene Regel mit Akzent-Gelb wie ursprünglich gemeint. */
.l-section.color_primary .bp-overline,
.l-section.color_secondary .bp-overline,
.l-section[style*="background-color:#0b0b3d"] .bp-overline,
.l-section[style*="background-color: #0b0b3d"] .bp-overline,
.bp-overline--on-dark {
	color: var(--color-content-secondary);
}

/* SUBLINE — Mini-Labels in Sektionen (Noto Serif, kein gelber Strich).
   Designer-Vorgabe: „Standort", „Leistungen", „Mitgliedschaften",
   „Sprachen", „Studium", „Vita" etc. nutzen die Subline-Schrift —
   Noto Serif wie Headings, ohne dekoratives Strich-Element. */
.bp-partner-label,
.bp-partner-quali-label,
.bp-subline {
	display: block;
	font-family: var(--h1-font-family);
	font-weight: var(--font-weight);
	font-size: 1.0625rem;             /* Brand-spezifisch: zwischen H6 und Body */
	color: var(--color-content-heading);  /* Roman: Brand-Navy, nicht Faded (2026-05-13) */
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.4;
	margin: 0 0 0.5rem 0;
}

@media (min-width: 1024px) {
	.bp-partner-label,
	.bp-partner-quali-label,
	.bp-subline {
		font-size: 1.125rem;
	}
}

/* Auf dunkler Section: Subline auf weißlichem Grau für Lesbarkeit */
.l-section.color_primary .bp-partner-label,
.l-section.color_primary .bp-partner-quali-label,
.l-section.color_primary .bp-subline {
	color: rgba(255, 255, 255, 0.7);
}

/* ===========================================================
 * 6. CPT-Template-Komponenten (Phase 4)
 * =========================================================== */

/* ---------- Definition-List (Kontaktdaten, Adresse) ---------- */

.bp-dd {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.5rem 1.5rem;
	margin: 1.5rem 0 0;
	line-height: 1.6;
}

.bp-dd dt {
	font-weight: 500;
	color: rgba(11, 11, 61, 0.7);
}

.bp-dd dd {
	margin: 0;
	color: var(--color-content-heading);
}

.bp-dd dd a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid rgba(11, 11, 61, 0.2);
	transition: border-color 0.2s;
}

.bp-dd dd a:hover {
	border-bottom-color: var(--color-content-secondary);
}

/* ---------- BP-Button (Dark Outlined) ---------- */
/* Brand-spezifischer Outline-Button (Impreza Style 11 ist ähnlich, aber wir
   nutzen .bp-btn dort wo CSS-Klasse statt us_btn-Shortcode notwendig ist). */

.bp-btn {
	display: inline-block;
	padding: 0.85em 1.8em;
	border: 1px solid var(--color-content-heading);
	border-radius: 1.4em;
	color: var(--color-content-heading);
	text-decoration: none;
	font-family: var(--font-family);
	font-weight: 500;
	font-size: 0.95rem;
	transition: all 0.3s ease-out;
	background: transparent;
}

.bp-btn:hover {
	background: var(--color-content-heading);
	color: var(--color-content-bg);
}

.bp-btn.align-center {
	margin-left: auto;
	margin-right: auto;
	display: block;
	width: fit-content;
}

/* Auf Navy-BG — invertierter Button (greift auf alternate Color-Scheme zu) */
.color_primary .bp-btn,
.type_image_dark .bp-btn {
	border-color: var(--color-content-bg);
	color: var(--color-content-bg);
}

.color_primary .bp-btn:hover,
.type_image_dark .bp-btn:hover {
	background: var(--color-content-secondary);
	border-color: var(--color-content-secondary);
	color: var(--color-content-heading);
}

/* ---------- Person-Card (Ansprechpartner, Team) ---------- */

.bp-person-card {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: opacity 0.3s;
}

.bp-person-card:hover {
	opacity: 0.85;
}

.bp-person-card-img {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: rgba(11, 11, 61, 0.08);
	border-radius: 2px;
}

.bp-person-card-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	display: block;
	transition: transform 0.6s ease-out;
}

.bp-person-card:hover .bp-person-card-img img {
	transform: scale(1.03);
}

.bp-person-card-placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-family);
	font-weight: 600;
	font-size: 2rem;
	color: rgba(11, 11, 61, 0.4);
}

.bp-person-card-name {
	margin: 0.75rem 0 0;
	font-family: var(--h1-font-family);
	font-weight: 300;
	font-size: 1.1rem;
	color: var(--color-content-heading);
	line-height: 1.3;
}

.bp-person-card-titel {
	margin: 0.25rem 0 0;
	font-family: var(--font-family);
	font-size: 0.85rem;
	color: rgba(51, 51, 51, 0.7);
}

/* ---------- Grid-Container für Person-Cards ---------- */

/* ---------- PM-Card (für PM-Listen) ---------- */

.bp-pm-card {
	border-bottom: 1px solid rgba(11, 11, 61, 0.1);
	padding-bottom: 1.25rem;
}

.bp-pm-card a {
	text-decoration: none;
	color: inherit;
	display: block;
}

.bp-pm-card-date {
	font-family: var(--font-family);
	font-size: 0.85rem;
	color: rgba(51, 51, 51, 0.6);
	letter-spacing: 0.02em;
}

.bp-pm-card-standorte {
	font-family: var(--font-family);
	font-size: 0.85rem;
	color: rgba(51, 51, 51, 0.6);
	margin-left: 0.75rem;
	padding-left: 0.75rem;
	border-left: 1px solid rgba(11, 11, 61, 0.15);
}

.bp-pm-card-title {
	margin: 0.5rem 0 0;
	font-family: var(--h1-font-family);
	font-weight: 300;
	font-size: 1.2rem;
	color: var(--color-content-heading);
	line-height: 1.35;
	transition: color 0.2s;
}

.bp-pm-card a:hover .bp-pm-card-title {
	color: rgba(11, 11, 61, 0.7);
}

/* ---------- PM-Grid ---------- */

.bp-pm-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-top: 2rem;
}

@media (max-width: 1024px) { .bp-pm-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px)  { .bp-pm-grid { grid-template-columns: 1fr; } }

/* ---------- Contact-CTA (wiederverwendbare Section) ---------- */

.bp-contact-cta {
	padding: 5vmax 0;
}

.bp-contact-cta-grid {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 3.75rem;
	align-items: center;
}

.bp-contact-cta-img img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 2px;
}

@media (max-width: 1024px) {
	.bp-contact-cta-grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
}


/* ---------- Partner / Team Hero-Grid ---------- */

.bp-partner-hero {
	padding: 5vmax 0;
}

.bp-partner-hero-grid {
	display: grid;
	grid-template-columns: 0.8fr 1fr;
	gap: 3.75rem;
	align-items: center;
}

@media (max-width: 1024px) {
	.bp-partner-hero-grid { grid-template-columns: 1fr; gap: 2rem; }
}

.bp-partner-hero-foto {
	aspect-ratio: 3/4;
	overflow: hidden;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.05);
}

.bp-partner-hero-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	display: block;
}

/* ---------- Tags (Leistungen, Branchen, Standort-Chips) ---------- */

/* ---------- Partner Vita (Werdegang) ---------- */

.bp-partner-vita-list {
	list-style: none;
	counter-reset: vita;
	padding: 0;
	margin: 2rem 0 0;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.bp-partner-vita-item {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 2rem;
	padding: 1.25rem 0;
	border-top: 1px solid rgba(11, 11, 61, 0.12);
}

@media (max-width: 700px) {
	.bp-partner-vita-item {
		grid-template-columns: 1fr;
		gap: 0.5rem;
	}
}

.bp-partner-vita-zeit {
	font-family: var(--font-family);
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--color-content-heading);
	margin: 0;
}

.bp-partner-vita-content {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.bp-partner-vita-titel {
	font-family: var(--h1-font-family);
	font-weight: 400;
	font-size: 1.1rem;
	color: var(--color-content-heading);
	margin: 0;
}

.bp-partner-vita-institution {
	font-family: var(--font-family);
	font-size: 0.95rem;
	color: var(--color-content-faded);
	margin: 0;
}

/* ---------- Referenz-Hero Kennzahlen ---------- */



/* ---------- PM Hero-Meta ---------- */

.bp-pm-content {
	font-size: 1.05rem;
	line-height: 1.75;
	color: var(--color-content-text);
}

.bp-pm-content p {
	margin-bottom: 1.25rem;
}

/* ---------- Single-Section Spacing ---------- */

.l-section + .l-section {
	/* Impreza sorgt selbst für Section-Padding, nichts zusätzlich */
}

/* ---------- PM-Featured-Grid (Homepage Teaser) ---------- */

.bp-pm-featured-grid {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 3.125rem;
	margin-top: 2rem;
}

@media (max-width: 1024px) {
	.bp-pm-featured-grid { grid-template-columns: 1fr; gap: 2rem; }
}

.bp-pm-featured-card {
	background: var(--color-content-bg);
	border: 1px solid rgba(11, 11, 61, 0.08);
	border-radius: 2px;
	overflow: hidden;
	transition: border-color 0.25s, box-shadow 0.25s;
}

.bp-pm-featured-card:hover {
	border-color: rgba(11, 11, 61, 0.2);
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.06);
}

.bp-pm-featured-card a {
	display: block;
	padding: 2.5rem 2rem;
	text-decoration: none;
	color: inherit;
	position: relative;
	min-height: 100%;
}

.bp-pm-featured-meta {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1rem;
}

.bp-pm-featured-meta time {
	font-family: var(--font-family);
	font-size: 0.85rem;
	color: rgba(11, 11, 61, 0.5);
}

.bp-pm-featured-chip {
	display: inline-block;
	padding: 0.2em 0.8em;
	background: rgba(11, 11, 61, 0.05);
	color: rgba(11, 11, 61, 0.75);
	border: 1px solid rgba(11, 11, 61, 0.1);
	border-radius: 1em;
	font-family: var(--font-family);
	font-size: 0.7rem;
	letter-spacing: 0.02em;
}

.bp-pm-featured-title {
	margin: 0 0 0.75rem;
	font-family: var(--h1-font-family);
	font-weight: 300;
	font-size: 1.8rem;
	color: var(--color-content-heading);
	line-height: 1.25;
}

.bp-pm-featured-excerpt {
	margin: 0 0 1rem;
	font-family: var(--font-family);
	font-size: 0.95rem;
	color: rgba(51, 51, 51, 0.75);
	line-height: 1.6;
}

.bp-pm-featured-arrow {
	position: absolute;
	right: 2rem;
	bottom: 2rem;
	width: 44px;
	height: 44px;
	border: 1px solid var(--color-content-heading);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.2rem;
	color: var(--color-content-heading);
	transition: all 0.3s;
}

.bp-pm-featured-card a:hover .bp-pm-featured-arrow {
	background: var(--color-content-secondary);
	border-color: var(--color-content-secondary);
	transform: translateX(4px);
}

/* Rest (kleinere Cards) */

.bp-pm-featured-rest {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.bp-pm-featured-mini {
	padding: 1.25rem 0;
	border-bottom: 1px solid rgba(11, 11, 61, 0.08);
}

.bp-pm-featured-mini:last-child {
	border-bottom: none;
}

.bp-pm-featured-mini a {
	display: block;
	text-decoration: none;
	color: inherit;
}

.bp-pm-featured-mini time {
	font-family: var(--font-family);
	font-size: 0.8rem;
	color: rgba(11, 11, 61, 0.45);
	display: block;
	margin-bottom: 0.5rem;
}

.bp-pm-featured-mini-title {
	margin: 0;
	font-family: var(--h1-font-family);
	font-weight: 300;
	font-size: 1.05rem;
	color: var(--color-content-heading);
	line-height: 1.35;
	transition: color 0.2s;
}

.bp-pm-featured-mini a:hover .bp-pm-featured-mini-title {
	color: rgba(11, 11, 61, 0.7);
}

/* ---------- Partner-Featured-Grid ---------- */

.bp-partner-featured-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
	margin-top: 2rem;
}

@media (max-width: 1024px) { .bp-partner-featured-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px)  { .bp-partner-featured-grid { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; } }

/* ---------- Bp-Fact (static Counter replacement) ---------- */

.bp-fact {
	text-align: center;
}

.bp-fact-number {
	font-family: var(--h1-font-family);
	font-size: 4rem;
	font-weight: 300;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--color-content-heading);
	margin-bottom: 0.5rem;
}

.bp-fact-label {
	font-family: var(--font-family);
	font-size: 0.95rem;
	font-weight: 500;
	color: rgba(11, 11, 61, 0.7);
	letter-spacing: 0.02em;
}

@media (max-width: 700px) {
	.bp-fact-number { font-size: 2.8rem; }
	.bp-fact-label { font-size: 0.85rem; }
}

/* ---------- Standort-List-Grid (Übersichtsseite) ---------- */

.bp-standort-grid-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-top: 2rem;
}

@media (max-width: 1024px) { .bp-standort-grid-list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px)  { .bp-standort-grid-list { grid-template-columns: 1fr; } }

.bp-standort-list-card {
	display: block;
	padding: 2rem 1.5rem;
	background: var(--color-content-bg);
	border: 1px solid rgba(11, 11, 61, 0.1);
	border-radius: 2px;
	text-decoration: none;
	color: inherit;
	transition: all 0.25s;
}

.bp-standort-list-card:hover {
	border-color: rgba(11, 11, 61, 0.3);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
	transform: translateY(-2px);
}

.bp-standort-list-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 0.75rem;
}

.bp-standort-list-stadt {
	margin: 0;
	font-family: var(--h1-font-family);
	font-weight: 300;
	font-size: 1.35rem;
	color: var(--color-content-heading);
}

.bp-standort-list-badge {
	display: inline-block;
	padding: 0.2em 0.6em;
	background: var(--color-content-secondary);
	color: var(--color-content-heading);
	font-family: var(--font-family);
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	border-radius: 2px;
}

.bp-standort-list-address {
	margin: 0;
	font-family: var(--font-family);
	font-size: 0.9rem;
	font-style: normal;
	color: rgba(51, 51, 51, 0.75);
	line-height: 1.6;
}

.bp-standort-list-tel {
	margin-top: 0.75rem;
	font-family: var(--font-family);
	font-size: 0.9rem;
	color: var(--color-content-heading);
	font-variant-numeric: tabular-nums;
}

/* ---------- Empty-State für Featured-Grids ---------- */

.bp-featured-empty {
	padding: 3rem 2rem;
	background: rgba(11, 11, 61, 0.03);
	border-radius: 2px;
	text-align: center;
	color: rgba(11, 11, 61, 0.55);
	font-family: var(--font-family);
}

/* ---------- Platzhalter für Phase 2+ ---------- */
/* Weitere CSS in späteren Phasen:
 * - .glass-header (Header-Glasmorphism)
 * - .btn-ripple (Button-Ripple-Effect)
 * - Slider-Pfeile, Footer-Reveal
 * Siehe tools/saicu-impreza-bot/impreza-bot/projects/bp/project.md
 * Abschnitt "Besonderheiten".
 */

/* ═══════════════════════════════════════════════════════
   PARTNER-EINZELSEITE (1:1 Port React /team/[slug]/)
   ═══════════════════════════════════════════════════════ */

.bp-partner-single .bp-partner-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

@media (min-width: 1024px) {
  .bp-partner-single .bp-partner-container {
    padding: 0 2.5rem;
  }
}

/* ───── Sektion-Rhythmus ───── */
.bp-partner-section {
  background: var(--color-content-bg);
  /* padding-top +25px für mehr Luft am Sektion-Übergang (Brand-Pattern 2026-05-20) */
  padding: calc(4rem + 25px) 0 4rem;
}

/* Standorte-Sektion folgt direkt auf eine andere weiße Sektion
   (Referenzen/Verfahren mit "Weitere anzeigen"-Button) — padding-top
   würde sich mit dem vorherigen padding-bottom doppeln.
   padding-bottom +40px für 120px Brand-Spacing zur Folge-Sektion (2026-05-21). */
.bp-partner-section--standorte {
  padding-top: 0;
  padding-bottom: calc(4rem + 40px);
}

.bp-partner-section-gray {
  background: var(--color-alt-content-bg);
}

.bp-partner-section-header {
  max-width: 40rem;
  margin-bottom: 2.5rem;
}

.bp-partner-section-header h2,
.bp-partner-engagement-text h2,
.bp-partner-kontakt-heading h2 {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  line-height: 1.2;
}

.bp-partner-section-header h2 {
  font-size: 2.6rem;
  margin: 0;
}

/* Partner-Overlines: siehe Master-Definition "4. OVERLINES" oben. */

/* ═══════════════════ 1. HERO ═══════════════════ */
.bp-partner-hero {
  background: var(--color-content-bg);
  padding: 4rem 0 2rem;
}

@media (min-width: 1024px) {
  .bp-partner-hero {
    padding: 10rem 0 3rem;
  }
}

.bp-partner-hero-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: start;
}

@media (min-width: 1024px) {
  .bp-partner-hero-grid {
    grid-template-columns: 400px 1fr;
    gap: 3rem;
  }
}

.bp-partner-hero-foto img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0.125rem;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  background: var(--color-alt-content-bg);
}

.bp-partner-foto-placeholder {
  width: 100%;
  aspect-ratio: 3 / 4;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-content-bg-alt);
  border-radius: 0.125rem;
}

.bp-partner-foto-placeholder span {
  font-family: var(--h1-font-family);
  font-weight: 300;
  font-size: 3.5rem;
  color: var(--color-content-faded);
}

.bp-partner-hero-info {
  padding-top: 0;
}

/* .bp-partner-position — siehe zentrale Overline-Regel oben */

.bp-partner-name {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  font-size: 2.9rem;
  line-height: 1.1;
  margin: 0 0 0.5rem 0;
}

.bp-partner-titel {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  font-size: 1.2rem;
  margin: 0 0 0.25rem 0;
}

.bp-partner-untertitel {
  font-family: var(--font-family);
  color: var(--color-content-faded);
  font-size: 0.95rem;
  margin: 0;
}

.bp-partner-hero-details {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--color-content-bg-alt);
}

@media (min-width: 600px) {
  .bp-partner-hero-details {
    grid-template-columns: 1fr 1fr;
  }
}

/* .bp-partner-hero-detail .bp-partner-label — nutzt zentrale Overline-Regel */

.bp-partner-detail-content {
  color: var(--color-content-text);
}

.bp-partner-detail-content p {
  margin: 0 0 0.25rem 0;
}

.bp-partner-detail-content .bp-partner-detail-spacer {
  padding-top: 0.5rem;
}

.bp-partner-detail-content a,
.bp-partner-leistung-list a {
  color: var(--color-content-heading);
  text-decoration: none;
  transition: color 0.2s;
}

.bp-partner-detail-content a:hover,
.bp-partner-leistung-list a:hover {
  color: var(--color-content-faded);
}

.bp-partner-leistung-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.bp-partner-leistung-list li {
  margin: 0.25rem 0 0 0;
}

.bp-partner-leistung-list li:first-child {
  margin-top: 0;
}

.bp-partner-leistung-list span {
  color: var(--color-content-faded);
}

.bp-partner-social {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin-top: 1.5rem;
}

/* Auszeichnungen/Zertifizierungen — vereinheitlichte Logo-Reihe (Hero-Ende) */
.bp-partner-hero-badges {
  margin-top: 3rem;
  background: var(--color-alt-content-bg);
  border-radius: 0.3rem;
  padding: 2.25rem 2rem;
}
.bp-partner-badges-label {
  /* Typografie 1:1 wie Stellen-Karten-Overline (Fachbereich, us_grid_layout #1394) */
  text-align: center;
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-content-faded);
  margin: 0 0 1.75rem;
}
.bp-partner-badges-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.75rem 3.25rem;
}
.bp-partner-badges-row img {
  height: 54px;
  width: auto;
  max-width: 200px;
  object-fit: contain;
  display: block;
  filter: grayscale(1);
  opacity: 0.62;
  transition: filter 0.25s ease, opacity 0.25s ease;
}
.bp-partner-badges-row img:hover {
  filter: grayscale(0);
  opacity: 1;
}

.bp-partner-social-link {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  gap: 0.5rem;
  font-family: var(--font-family);
  font-size: 0.75rem;
  color: var(--color-content-faded);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-decoration: none;
  transition: color 0.2s;
}

.bp-partner-social-link:hover {
  color: var(--color-content-heading);
}

.bp-partner-social-icon {
  flex-shrink: 0;
  display: inline-block;
}

/* ═══════════════════ 1.5 ZITAT ═══════════════════ */
.bp-partner-zitat {
  background: var(--color-alt-content-bg);
  color: var(--color-content-heading);
  padding: 1rem 0 0;
  background-color: transparent;
  font-size: 2.6rem;
}

@media (max-width: 600px) {
  .bp-partner-zitat {
    padding: 3rem 0 1.5rem;
  }
}

/* Übergang Zitat → folgende Section: 50px Total-Abstand
   (Zitat hat selbst kein bottom-padding, Section bekommt 50px top). */
.bp-partner-zitat + .bp-partner-section {
  padding-top: 50px;
}

/* Podcast-Sektion auf gleiche Container-Breite wie .bp-partner-container */
.l-section.bp-podcast-row > .l-section-h {
  max-width: 1200px;
  margin: 0 auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
@media (min-width: 1024px) {
  .l-section.bp-podcast-row > .l-section-h {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
}

/* Specials-Padding: 50px Top+Bot pro Block → 100px Übergang zwischen Specials.
   Erstes Special: 100px Top (Abstand zur KPI-Sektion).
   Letztes Special: 100px Bottom (Abstand zur folgenden Sektion). */
.l-section.bp-podcast-row {
  /* +25px für mehr Luft zwischen Specials (Brand-Pattern 2026-05-20) */
  padding-top: 75px !important;
  padding-bottom: 50px !important;
}

/* Specials-Sections (Podcast, Events, Academy): mehr Luft zwischen
   Section-Title und Body-Text — Default ist 30px, hier 45px für ruhigeres Layout. */
.l-section.bp-podcast-row h2 {
  margin-bottom: 45px;
}
.l-section.bp-podcast-row--first {
  /* +25px für mehr Luft am Übergang Kennzahlen→Specials (Brand-Pattern 2026-05-20) */
  padding-top: 125px !important;
}
.l-section.bp-podcast-row--last {
  /* Letzter Special (z.B. B&P Academy) → 120px Abstand zur nächsten Sektion (2026-05-21) */
  padding-bottom: 120px !important;
}

/* Equal-Height: linke Spalte (Bild) und rechte Spalte (Content)
   bekommen die gleiche Höhe — das Bild wird via object-fit:cover
   auf die Content-Höhe gestreckt. */
@media (min-width: 768px) {
  .l-section.bp-podcast-row .g-cols {
    align-items: stretch;
  }
  .l-section.bp-podcast-row .wpb_column,
  .l-section.bp-podcast-row .vc_column-inner,
  .l-section.bp-podcast-row .wpb_wrapper {
    display: flex;
    flex-direction: column;
    flex: 1;
  }
  .l-section.bp-podcast-row .w-image,
  .l-section.bp-podcast-row .w-image-h,
  .l-section.bp-podcast-row .w-image img {
    height: 100%;
  }
  .l-section.bp-podcast-row .w-image img {
    width: 100%;
    object-fit: cover;
    border-radius: 0.3rem;
  }
}

.bp-partner-zitat-block {
  margin: 0;
  padding: 0;
  position: relative;
  max-width: 56rem;
  border: 0;
  background: none;
}

.bp-partner-zitat-block::before,
.bp-partner-zitat-block::after {
  content: none !important;
  display: none !important;
}

.bp-partner-zitat-text {
  font-family: var(--h1-font-family);
  font-weight: 300;
  font-size: 2.6rem;
  line-height: 1.4;
  color: var(--color-content-heading);
  margin: 0;
}

@media (min-width: 768px) {
  .bp-partner-zitat-text {
    font-size: 2.25rem;
  }
}

.bp-partner-zitat-text::before {
  content: "\201E";
}

.bp-partner-zitat-text::after {
  content: "\201C";
}

/* ═══════════════════ 2. BIO ═══════════════════ */
.bp-partner-bio {
  max-width: 48rem;
}

.bp-partner-bio p {
  margin: 0 0 1.5rem 0;
}

.bp-partner-bio p:last-child {
  margin-bottom: 0;
}

/* ═══════════════════ 3. ENGAGEMENT ═══════════════════ */
.bp-partner-engagement-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: stretch;
}

@media (min-width: 1024px) {
  .bp-partner-engagement-grid {
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
  }
}

.bp-partner-engagement-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.bp-partner-engagement-text h2 {
  font-size: 2rem;
  margin: 0 0 1.5rem 0;
}

.bp-partner-engagement-text p {color: var(--color-content-faded);
margin: 0;
}

.bp-partner-engagement-video {
  border-radius: 0.3rem;
  overflow: hidden;
  background: var(--color-content-text);
}

.bp-partner-engagement-video video {
  width: 100%;
  height: 100%;
  display: block;
}

/* ═══════════════════ 4. KENNZAHLEN ═══════════════════ */
/* Full-bleed: Section-BG geht über die ganze Browser-Breite,
   Inhalt bleibt im 1200px-Container (.bp-partner-container). */
.bp-partner-kennzahlen {
  background: var(--color-content-heading);
  padding: 4rem 0;
}

/* Bio-Sektion vor Kennzahlen: +25px Abstand außerhalb der navy-Box
   (statt navy-Box innen höher zu machen). */
.bp-partner-section:has(+ .bp-partner-kennzahlen) {
  padding-bottom: calc(4rem + 25px);
}

/* Referenzen-Sektion: +40px padding-bottom (Tool-Messung 80→120px), Brand-Spacing 2026-05-21 */
.bp-partner-section:has(.bp-partner-verfahren-grid) {
  padding-bottom: calc(4rem + 40px);
}

.bp-partner-kennzahlen-grid {
  background: transparent;
  border-radius: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem 1.5rem;
}

@media (min-width: 1024px) {
  .bp-partner-kennzahlen-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.bp-partner-kennzahl {
  text-align: center;
}

.bp-partner-kennzahl-n {
  font-family: var(--h1-font-family);
  font-weight: 300;
  font-size: 3rem;
  color: var(--color-content-bg);
  line-height: 1;
  margin: 0;
}

.bp-partner-kennzahl-l {
  font-family: var(--font-family);
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0.5rem 0 0 0;
}

/* ═══════════════════ 5. AUSZEICHNUNGEN ═══════════════════ */
.bp-partner-auszeichnungen-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

@media (min-width: 768px) {
  .bp-partner-auszeichnungen-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.bp-partner-auszeichnung-card {
  background: var(--color-content-bg);
  padding: 2rem;
  border: 1px solid var(--color-content-border);
  border-radius: 0.3rem;
}

.bp-partner-auszeichnung-name {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  font-size: 1.15rem;
  margin: 0;
}

.bp-partner-auszeichnung-kat {
  font-family: var(--font-family);
  font-size: 0.875rem;
  color: var(--color-content-faded);
  line-height: 1.55;
  margin: 0.5rem 0 0 0;
}

.bp-partner-auszeichnung-jahre {
  font-family: var(--font-family);
  font-size: 0.75rem;
  color: var(--color-content-faded);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin: 1rem 0 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--color-content-bg-alt);
}

/* ═══════════════════ 6. REFERENZEN ═══════════════════ */
.bp-partner-verfahren-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

@media (min-width: 768px) {
  .bp-partner-verfahren-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.bp-partner-verfahren-card {
  background: var(--color-content-bg);
  padding: 1.5rem;
  border-radius: 0.3rem;
}

.bp-partner-verfahren-meta {
  font-family: var(--font-family);
  font-size: 0.625rem;
  font-weight: 700;
  color: var(--color-content-faded);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0 0 0.5rem 0;
}

.bp-partner-verfahren-firma {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  font-size: 1rem;
  margin: 0 0 1rem 0;
}

.bp-partner-verfahren-dl {
  margin: 0 0 1rem 0;
}

.bp-partner-verfahren-dl > div {
  display: flex;
  justify-content: space-between;
  font-family: var(--font-family);
  font-size: 0.875rem;
  color: var(--color-content-faded);
  padding: 0.25rem 0;
}

.bp-partner-verfahren-dl dt {
  margin: 0;
}

.bp-partner-verfahren-dl dd {
  color: var(--color-content-heading);
  margin: 0;
  text-align: right;
}

.bp-partner-verfahren-ergebnis {
  font-family: var(--font-family);
  font-size: 0.875rem;
  color: var(--color-content-faded);
  line-height: 1.6;
  border-top: 1px solid var(--color-content-bg-alt);
  padding-top: 0.75rem;
  margin: 0;
}

.bp-partner-verfahren-card--more {
  display: none;
}

.bp-partner-verfahren-grid.is-expanded .bp-partner-verfahren-card--more {
  display: block;
}

.bp-partner-verfahren-more {
  display: flex;
  justify-content: center;
  margin-top: 3rem;
}

/* ═══════════════════ 7. PRESSEMITTEILUNGEN ═══════════════════ */
.bp-partner-pm-list {
  max-width: 56rem;
}

.bp-partner-pm-item {
  border-bottom: 1px solid var(--color-content-border);
}

.bp-partner-pm-item:last-child {
  border-bottom: 0;
}

.bp-partner-pm-link {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.25rem 0;
  text-decoration: none;
  transition: opacity 0.2s;
}

.bp-partner-pm-link:hover {
  opacity: 0.6;
}

.bp-partner-pm-link::after {
  content: "→";
  color: var(--color-content-border);
  flex-shrink: 0;
}

.bp-partner-pm-date {
  font-family: var(--font-family);
  font-size: 0.75rem;
  color: var(--color-content-faded);
  flex-shrink: 0;
  min-width: 5rem;
}

.bp-partner-pm-titel {
  flex: 1;
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  font-size: 1rem;
  line-height: 1.4;
  margin: 0;
  text-align: left;
}

.bp-partner-pm-item--more[data-batch] {
  display: none;
}

.bp-partner-pm-item--more[data-batch].is-visible {
  display: block;
}

.bp-partner-pm-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  margin-top: 2rem;
}

.bp-partner-pm-toggle[hidden] {
  display: none;
}

/* ═══════════════════ 8. STANDORTE-CHIPS ═══════════════════ */
.bp-partner-standorte-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.bp-partner-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.25rem;
  border: 1px solid var(--color-content-border);
  border-radius: 0.3rem;
  font-family: var(--font-family);
  font-size: 0.875rem;
  color: var(--color-content-heading);
  text-decoration: none;
  transition: border-color 0.2s;
}

.bp-partner-chip:hover {
  border-color: var(--color-content-heading);
}

.bp-partner-chip-haupt {
  background: var(--color-content-heading);
  color: var(--color-content-bg);
  border-color: var(--color-content-heading);
}

.bp-partner-chip-haupt:hover {
  background: #07072a;
  color: var(--color-content-bg);
}

/* ═══════════════════ 9. QUALIFIKATIONEN ═══════════════════ */
.bp-partner-quali-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}

@media (min-width: 768px) {
  .bp-partner-quali-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .bp-partner-quali-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* .bp-partner-quali-label — nutzt zentrale Overline-Regel oben */

.bp-partner-quali-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.bp-partner-quali-list li {
  font-family: var(--font-family);
  font-size: 20px;
  color: var(--color-alt-content-text);
  line-height: 1.5;
  padding: 0.5rem 0;
  position: relative;
  padding-left: 0 !important;
}

.bp-partner-quali-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.75rem;
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background: rgba(11, 11, 61, 0.2);
  display: none;
}

/* ══════════════════════════════════════════════════════════════════
   STANDORT-SINGLE — /standort/{slug}


/* ─── HERO ─── */
/* Normale Sektion — L-Abstand (≙ Impreza vc_row height="large"), keine Viewport-
   Abhängigkeit, Höhe richtet sich ausschließlich nach Content (Text-Spalte) +
   fester Bild-Proportion. */
.bp-standort-hero {
  background: var(--color-content-bg);
  padding: 4rem 0 2rem;
  box-sizing: border-box;
}


/* Desktop: Foto links, Info rechts — Reihenfolge im DOM bleibt aber
   H1-first (Info zuerst) für SEO + Screen-Reader. Visueller Swap per
   CSS order. Auf Mobile natürliche Reihenfolge (Info → Foto) lassen,
   damit Titel sofort sichtbar ist. */
@media (min-width: 1024px) {
  .bp-standort-hero-foto { order: 1; }
  .bp-standort-hero-info { order: 2; }
}


/* Desktop: Bild füllt die volle Höhe der Textspalte (align-items:stretch auf
   dem Grid). Kein aspect-ratio-Cap — Höhe = Textblock-Höhe. */
@media (min-width: 1024px) {
  .bp-standort-hero-foto {
    aspect-ratio: auto;
    height: 100%;
  }
}

/* ─── Sektionen-Abstand ─── */
/* 4rem/5rem matched die "guten" Sektionen unten (Zerts, Karte, Mitteilungen).
   Zuvor 6rem/8rem — erzeugte zu große Lücken zwischen weiß-zu-weiß Sektionen
   (Leistungen, Intro, Team, Kontakt). Der Navy-Block "5 Gründe" behält
   eigene 6/8rem als bewusste visuelle Betonung (siehe .bp-standort-gruende). */
.bp-standort-section {
  padding: 4rem 0;
}

@media (min-width: 1024px) {
  .bp-standort-section { padding: 6rem 0; }
}

/* Hero (weiß) → Leistungen (weiß): kein Farbwechsel zur Trennung,
   daher Leistungen-Top reduziert (kein volles Section-Padding, sonst
   wirkt der Übergang wie doppeltes Padding). Designer-Vorgabe:
   beide Sektionen weiß. */
.bp-standort-hero + .bp-standort-leistungen {
  padding-top: 2rem;
}

.bp-standort-section-header {
  margin-bottom: 3rem;
  max-width: 42rem;
}

.bp-standort-section-header h2 {
  font-size: 2.5rem;
  line-height: 1.15;
}


/* Team-Toggle: zusätzliche Cards initial verborgen, Toggle-Button drunter */
.bp-standort-team-card--more {
  display: none;
}


/* ─── ZERTIFIZIERUNGEN ─── */
/* Custom .bp-standort-zerts*  → entfernt. Standort-Template nutzt jetzt
   den nativen Impreza Page Block "Zertifizierungen-Band" (us_page_block
   ID 781) via [us_page_block id="781"]. Pflege im Admin → Page Blocks.
   Visuelles Polish (kompakt, kleine Logos, grayscale-hover) → siehe
   .bp-zert-band Block am Ende dieser Datei. */

/* ─── PRESSEMITTEILUNGEN ─── */
/* Custom .bp-standort-pms*  → entfernt. Standort-Template nutzt jetzt
   den nativen Impreza Page Block "Mitteilungen-Hero" (us_page_block ID 824)
   via [us_page_block id="824"]. Zeigt 5 neueste PMs site-weit
   (nicht mehr standort-gefiltert). */

/* ─── KONTAKT / NAP ─── */
.bp-standort-kontakt { background: var(--color-content-bg); }


/* ══════════════════════════════════════════════════════════════════
   REFERENZ-SINGLE — /erfolge/{slug}/
   6 Sektionen 1:1 wie React /erfolge/[slug]
   ══════════════════════════════════════════════════════════════════ */


































































/* ══════════════════════════════════════════════════════════════════
   LEISTUNG-SINGLE — /leistungen/{slug}

@media (min-width: 1024px) {
  .bp-leistung-container { padding: 0 2.5rem; }
}

@media (min-width: 1024px) {
  .bp-leistung-hero { padding: 6rem 0 5rem; }
}

@media (min-width: 1024px) {
  .bp-leistung-einfuehrung { padding: 6rem 0; }
}

@media (min-width: 1024px) {
  .bp-leistung-einfuehrung-body p { font-size: 1.0625rem; }
}

@media (min-width: 1024px) {
  .bp-leistung-felder { padding: 6rem 0; }
}

@media (min-width: 1024px) {
  .bp-leistung-felder h2 { font-size: 1.875rem; }
}

@media (min-width: 700px) {
  .bp-leistung-felder-grid { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1024px) {
  .bp-leistung-felder-grid { grid-template-columns: 1fr 1fr 1fr; }
}

@media (min-width: 1024px) {
  .bp-leistung-usps { padding: 6rem 0; }
}

@media (min-width: 1024px) {
  .bp-leistung-usps h2 { font-size: 1.875rem; }
}

@media (min-width: 700px) {
  .bp-leistung-usps-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
}

@media (min-width: 1024px) {
  .bp-leistung-usps-grid { grid-template-columns: 1fr 1fr 1fr; gap: 2.5rem; }
}

@media (min-width: 1024px) {
  .bp-leistung-referenzen { padding: 6rem 0; }
}

@media (min-width: 1024px) {
  .bp-leistung-referenzen h2 { font-size: 1.875rem; }
}

@media (min-width: 700px) {
  .bp-leistung-referenzen-grid { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1024px) {
  .bp-leistung-faq { padding: 6rem 0; }
}

@media (min-width: 1024px) {
  .bp-leistung-faq h2 { font-size: 1.875rem; }
}

@media (min-width: 1024px) {
  .bp-leistung-cta { padding: 6rem 0; }
}

@media (min-width: 1024px) {
  .bp-leistung-cta-inner h2 { font-size: 1.875rem; }
}

/* ══════════════════════════════════════════════════════════════════
   PM-SINGLE — /aktuelles/{slug}/
   6 Sektionen 1:1 wie React /aktuelles/[pmSlug]
   ══════════════════════════════════════════════════════════════════ */

.bp-pm-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

@media (min-width: 1024px) {
  .bp-pm-container { padding: 0 2.5rem; }
}

.bp-pm-single h1,
.bp-pm-single h2,
.bp-pm-single h3 {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  margin: 0 0 1rem 0;
}

/* ─── HERO ─── */
.bp-pm-hero {
  background: var(--color-content-bg);
  padding: 4rem 0 3rem;
  border-bottom: 1px solid var(--color-content-bg-alt);
}

@media (min-width: 1024px) {
  .bp-pm-hero { padding: 6rem 0 4rem; }
}

.bp-pm-hero-inner { max-width: 48rem; }

.bp-pm-badges {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.bp-pm-badge {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  font-family: var(--font-family);
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  border-radius: 0.125rem;
}

.bp-pm-badge-primary { background: var(--color-content-heading); color: var(--color-content-secondary); }
.bp-pm-badge-muted   { background: rgba(11, 11, 61, 0.05); color: var(--color-content-heading); }

.bp-pm-datum {
  display: block;
  font-family: var(--font-family);
  font-size: 0.875rem;
  color: var(--color-content-faded);
  margin-bottom: 1rem;
}

.bp-pm-h1 {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0;
}

/* ─── AUTOREN-BAR ─── */
.bp-pm-autoren {
  background: var(--color-content-bg);
  border-bottom: 1px solid var(--color-content-bg-alt);
}

.bp-pm-autoren-row {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
  padding: 1.5rem 0;
}

.bp-pm-autoren-label {
  font-family: var(--font-family);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--color-content-faded);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  flex-shrink: 0;
}

.bp-pm-autoren-list {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.bp-pm-autor {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.2s;
}

.bp-pm-autor:hover { opacity: 0.8; }

.bp-pm-autor img,
.bp-pm-autor-initials {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  object-fit: cover;
  background: rgba(11, 11, 61, 0.1);
  color: var(--color-content-heading);
  font-family: var(--font-family);
  font-weight: 500;
  font-size: 0.875rem;
}

.bp-pm-autor-info { display: flex; flex-direction: column; line-height: 1.2; }
.bp-pm-autor-name {
  font-family: var(--font-family);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-content-heading);
}
.bp-pm-autor-titel {
  font-family: var(--font-family);
  font-size: 0.75rem;
  color: var(--color-content-faded);
  margin-top: 0.25rem;
}

/* ─── CONTENT + SIDEBAR ─── */
.bp-pm-content-section {
  background: var(--color-content-bg);
  padding: 4rem 0;
}

@media (min-width: 1024px) {
  .bp-pm-content-section { padding: 6rem 0; }
}

.bp-pm-content-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}

@media (min-width: 1024px) {
  .bp-pm-content-grid { grid-template-columns: 1fr 280px; gap: 4rem; }
}

.bp-pm-artikel {
  max-width: 45rem;
  font-family: var(--font-family);
  font-size: 1rem;
  color: var(--color-content-text);
  line-height: 1.8;
}

@media (min-width: 1024px) {
  .bp-pm-artikel { font-size: 1.0625rem; }
}

.bp-pm-artikel p { margin: 0 0 1.25rem 0; }
.bp-pm-artikel ul,
.bp-pm-artikel ol { margin: 0 0 1.25rem 0; padding-left: 1.5rem; }
.bp-pm-artikel ul { list-style: disc; }
.bp-pm-artikel ol { list-style: decimal; }
.bp-pm-artikel li { margin-bottom: 0.5rem; }
.bp-pm-artikel strong { color: var(--color-content-heading); font-weight: 600; }
.bp-pm-artikel a { color: var(--color-content-heading); text-decoration: underline; }
.bp-pm-artikel a:hover { color: var(--color-content-faded); }
.bp-pm-artikel h2,
.bp-pm-artikel h3,
.bp-pm-artikel h4 {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  margin: 2rem 0 1rem 0;
}
.bp-pm-artikel h2 { font-size: 1.5rem; line-height: 1.25; }
.bp-pm-artikel h3 { font-size: 1.25rem; line-height: 1.3; }
.bp-pm-artikel h4 { font-size: 1.125rem; line-height: 1.35; }
.bp-pm-artikel blockquote {
  border-left: 2px solid rgba(11, 11, 61, 0.2);
  padding-left: 1.5rem;
  font-style: italic;
  color: var(--color-content-faded);
  margin: 1.5rem 0;
}

/* ─── SIDEBAR ─── */
.bp-pm-sidebar { display: none; }

@media (min-width: 1024px) {
  .bp-pm-sidebar { display: block; }
}

.bp-pm-sidebar-sticky {
  position: sticky;
  top: 7rem;
}

.bp-pm-sidebar-block {
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid var(--color-content-bg-alt);
}

.bp-pm-sidebar-label {
  font-family: var(--font-family);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--color-content-faded);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin: 0 0 1rem 0;
}

.bp-pm-standorte-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.bp-pm-standorte-list li { margin-bottom: 0.75rem; }

.bp-pm-standorte-list a {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-family: var(--font-family);
  font-size: 0.875rem;
  color: var(--color-content-heading);
  font-weight: 500;
  text-decoration: none;
  transition: opacity 0.2s;
}

.bp-pm-standorte-list a:hover { opacity: 0.7; }

.bp-pm-mapicon {
  flex-shrink: 0;
  color: rgba(11, 11, 61, 0.3);
  margin-top: 0.25rem;
}

.bp-pm-sidebar-block time {
  font-family: var(--font-family);
  font-size: 0.875rem;
  color: var(--color-content-faded);
}

.bp-pm-btn-sec {
  display: inline-block;
  padding: 0.75rem 2rem;
  color: var(--color-content-heading);
  font-family: var(--font-family);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  border: 1px solid rgba(11, 11, 61, 0.2);
  border-radius: 1.5rem;
  transition: all 0.2s;
}

.bp-pm-btn-sec:hover { background: var(--color-content-heading); color: var(--color-content-bg); }

/* ─── MOBILE SIDEBAR-INFO ─── */
.bp-pm-mobile-info {
  background: var(--color-alt-content-bg);
  border-top: 1px solid var(--color-content-bg-alt);
}

@media (min-width: 1024px) {
  .bp-pm-mobile-info { display: none; }
}

.bp-pm-mobile-info-row {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 2rem 1.5rem;
  flex-wrap: wrap;
}

.bp-pm-mobile-standorte {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-family);
  font-size: 0.875rem;
  color: var(--color-content-faded);
}

/* ─── WEITERE PMs ─── */
.bp-pm-weitere {
  background: var(--color-alt-content-bg);
  padding: 4rem 0;
}

@media (min-width: 1024px) {
  .bp-pm-weitere { padding: 6rem 0; }
}

.bp-pm-weitere-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-bottom: 3rem;
}

.bp-pm-weitere-header h2 {
  font-size: 1.5rem;
  line-height: 1.25;
  margin: 0;
}

@media (min-width: 1024px) {
  .bp-pm-weitere-header h2 { font-size: 1.875rem; }
}

.bp-pm-weitere-link {
  font-family: var(--font-family);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-content-heading);
  text-decoration: none;
}

.bp-pm-weitere-link:hover { opacity: 0.7; }

.bp-pm-weitere-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 700px) {
  .bp-pm-weitere-grid { grid-template-columns: 1fr 1fr 1fr; gap: 2rem; }
}

.bp-pm-weitere-card {
  display: block;
  padding: 1.5rem;
  background: var(--color-content-bg);
  border: 1px solid var(--color-content-bg-alt);
  border-radius: 0.125rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.3s, box-shadow 0.3s;
}

.bp-pm-weitere-card:hover {
  border-color: rgba(11, 11, 61, 0.1);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.bp-pm-weitere-card time {
  font-family: var(--font-family);
  font-size: 0.625rem;
  font-weight: 700;
  color: var(--color-content-faded);
  text-transform: uppercase;
  letter-spacing: 0.15em;
}

.bp-pm-weitere-card h3 {
  font-size: 1.125rem;
  line-height: 1.35;
  margin: 0.75rem 0 0 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.bp-pm-weitere-thema {
  display: inline-block;
  margin-top: 0.75rem;
  padding: 0.25rem 0.75rem;
  font-family: var(--font-family);
  font-size: 0.625rem;
  font-weight: 500;
  color: var(--color-content-heading);
  background: rgba(11, 11, 61, 0.05);
  border: 1px solid rgba(11, 11, 61, 0.1);
  border-radius: 9999px;
}

/* ─── CTA ─── */
.bp-pm-cta {
  background: var(--color-content-bg);
  padding: 4rem 0;
}

@media (min-width: 1024px) {
  .bp-pm-cta { padding: 6rem 0; }
}

.bp-pm-cta-inner {
  text-align: center;
  max-width: 40rem;
}

.bp-pm-cta-kicker {
  font-family: var(--font-family);
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-content-faded);
  margin: 0 0 0.75rem 0;
}

.bp-pm-cta-inner h2 {
  font-size: 1.5rem;
  line-height: 1.25;
  margin: 0 0 1rem 0;
}

@media (min-width: 1024px) {
  .bp-pm-cta-inner h2 { font-size: 1.875rem; }
}

.bp-pm-cta-text {
  font-family: var(--font-family);
  font-size: 1.0625rem;
  color: var(--color-content-faded);
  line-height: 1.65;
  max-width: 36rem;
  margin: 0 auto 2.5rem;
}

.bp-pm-cta-btn {
  display: inline-block;
  padding: 0.75rem 2rem;
  background: var(--color-content-heading);
  color: var(--color-content-bg);
  font-family: var(--font-family);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  border-radius: 1.5rem;
  transition: background 0.2s;
}

.bp-pm-cta-btn:hover { background: #07072a; color: var(--color-content-bg); }

/* ══════════════════════════════════════════════════════════════════
   ARCHIVE-FILTER (PM + Referenz)
   Shortcode [bp_archive_filter type="pm|referenz"]
   ══════════════════════════════════════════════════════════════════ */

.bp-archive { font-family: var(--font-family); color: var(--color-content-heading); }

.bp-archive * { box-sizing: border-box; }

/* PM-Archive + Referenz-Archive: beide nutzen die volle Container-Breite
   (1200px via Impreza .l-section-h). React-Pattern: prose-Text im Intro
   darüber ist schmal (48rem), aber Filter + Liste/Grid sind breit.
   Einheitlich für alle [bp_archive_filter]-Typen — keine Type-Unterschiede. */

/* ─── Filter-Bar ─── */
.bp-archive-filter-bar {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 1.5rem;
}

.bp-archive-search {
  flex: 1 1 16rem;
  min-width: 14rem;
}

.bp-archive-search-input {
  width: 100%;
  padding: 0.75rem 1rem;
  /* Impreza setzt <input> border-width:0 + unteren Box-Shadow; volle 1px-Border
     im Button-Token erzwingen, damit Such-Feld + Buttons identisch umrandet sind. */
  border: 1px solid var(--color-content-border) !important;
  box-shadow: none !important;
  border-radius: 0.125rem;
  font-family: var(--font-family);
  font-size: 0.9375rem;
  color: var(--color-content-heading);
  /* Impreza gibt <input> global den grauen --color-content-bg-alt; weißen Token
     erzwingen (site-weit, da custom.css überall lädt — auch ohne archive-filter.css). */
  background: var(--color-content-bg) !important;
  transition: border-color 0.2s;
}

.bp-archive-search-input:focus {
  outline: none;
  border-color: var(--color-content-heading);
}

.bp-archive-search-input::placeholder { color: var(--color-content-faded); }

.bp-archive-dropdowns {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.bp-archive-dropdown {
  position: relative;
}

.bp-archive-dropdown-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  background: var(--color-content-bg);
  border: 1px solid rgba(11, 11, 61, 0.15);
  border-radius: 0.125rem;
  font-family: var(--font-family);
  font-size: 0.875rem;
  color: var(--color-content-heading);
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}

.bp-archive-dropdown-btn:hover {
  border-color: rgba(11, 11, 61, 0.35);
}

.bp-archive-dropdown.is-open .bp-archive-dropdown-btn,
.bp-archive-dropdown.has-value .bp-archive-dropdown-btn {
  background: var(--color-content-heading);
  color: var(--color-content-bg);
  border-color: var(--color-content-heading);
}

.bp-archive-dropdown-caret {
  font-size: 0.75rem;
  opacity: 0.6;
}

.bp-archive-dropdown-panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 14rem;
  max-height: 24rem;
  overflow-y: auto;
  background: var(--color-content-bg);
  border: 1px solid rgba(11, 11, 61, 0.15);
  border-radius: 0.125rem;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
  z-index: 20;
  padding: 0.5rem 0;
}

.bp-archive-dropdown-option {
  display: block;
  width: 100%;
  text-align: left;
  padding: 0.5rem 1rem;
  background: transparent;
  border: 0;
  font-family: var(--font-family);
  font-size: 0.875rem;
  color: var(--color-content-heading);
  cursor: pointer;
  transition: background 0.1s;
}

.bp-archive-dropdown-option:hover {
  background: rgba(11, 11, 61, 0.05);
}

/* ─── Chips ─── */
.bp-archive-chips {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.bp-archive-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  background: rgba(11, 11, 61, 0.05);
  color: var(--color-content-heading);
  border: 1px solid rgba(11, 11, 61, 0.1);
  border-radius: 9999px;
  font-family: var(--font-family);
  font-size: 0.8125rem;
  cursor: pointer;
  transition: background 0.2s;
}

.bp-archive-chip:hover { background: rgba(11, 11, 61, 0.1); }

.bp-archive-chip-x {
  font-size: 1rem;
  line-height: 1;
  color: rgba(11, 11, 61, 0.5);
}

/* ─── Counter + Reset ─── */
.bp-archive-counter {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  padding: 0.75rem 0;
  border-top: 1px solid rgba(11, 11, 61, 0.08);
  border-bottom: 1px solid rgba(11, 11, 61, 0.08);
}

.bp-archive-counter-text {
  font-family: var(--font-family);
  font-size: 0.8125rem;
  color: var(--color-content-faded);
}

.bp-archive-reset {
  background: transparent;
  border: 0;
  font-family: var(--font-family);
  font-size: 0.8125rem;
  color: var(--color-content-heading);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.bp-archive-reset:hover { color: var(--color-content-faded); }

.bp-archive-top-partner {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  overflow: hidden;
  background: rgba(11, 11, 61, 0.08);
  border: 2px solid transparent;
  cursor: pointer;
  transition: border-color 0.2s, transform 0.2s;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.bp-archive-top-partner:hover {
  border-color: rgba(11, 11, 61, 0.3);
  transform: scale(1.05);
}

.bp-archive-top-partner.is-active {
  border-color: var(--color-content-secondary);
}

.bp-archive-top-partner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}

/* ─── Liste ─── */
.bp-archive-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

/* PM-Cards: einspaltig kompakt */
[data-bp-archive-type="pm"] .bp-archive-list {
  gap: 0;
}

.bp-archive-card {
  list-style: none;
  margin: 0;
}

[data-bp-archive-type="pm"] .bp-archive-card {
  border-bottom: 1px solid rgba(11, 11, 61, 0.08);
}

[data-bp-archive-type="pm"] .bp-archive-card-link {
  display: block;
  padding: 1.25rem 0;
  text-decoration: none;
  color: inherit;
  transition: padding-left 0.2s;
}

[data-bp-archive-type="pm"] .bp-archive-card-link:hover {
  padding-left: 0.5rem;
}

.bp-archive-card-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

.bp-archive-card-meta time {
  font-size: 0.75rem;
  color: var(--color-content-faded);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.bp-archive-card-thema {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  background: rgba(11, 11, 61, 0.05);
  color: var(--color-content-heading);
  border-radius: 9999px;
  font-size: 0.6875rem;
  font-weight: 500;
}

.bp-archive-card-titel {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  font-size: 1.125rem;
  line-height: 1.35;
  margin: 0;
  transition: color 0.2s;
}

.bp-archive-card-link:hover .bp-archive-card-titel { color: rgba(11, 11, 61, 0.7); }

/* Referenz-Cards: Grid */
[data-bp-archive-type="referenz"] .bp-archive-list {
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 700px) {
  [data-bp-archive-type="referenz"] .bp-archive-list {
    grid-template-columns: 1fr 1fr;
  }
}

@media (min-width: 1024px) {
  [data-bp-archive-type="referenz"] .bp-archive-list {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

.bp-archive-card-ref .bp-archive-card-link {
  display: block;
  background: var(--color-content-bg);
  border: 1px solid rgba(11, 11, 61, 0.08);
  border-radius: 0.125rem;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.3s, box-shadow 0.3s;
  height: 100%;
}

.bp-archive-card-ref .bp-archive-card-link:hover {
  border-color: rgba(11, 11, 61, 0.25);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.bp-archive-card-bild {
  aspect-ratio: 16 / 10;
  background: var(--color-content-bg-alt);
  overflow: hidden;
}

.bp-archive-card-bild img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s;
}

.bp-archive-card-ref .bp-archive-card-link:hover .bp-archive-card-bild img {
  transform: scale(1.03);
}

.bp-archive-card-body {
  padding: 1.25rem;
}

.bp-archive-card-funkt {
  font-size: 0.6875rem;
  color: var(--color-content-faded);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 0.5rem 0;
}

.bp-archive-card-ref .bp-archive-card-titel {
  font-size: 1rem;
  line-height: 1.4;
  margin-bottom: 0.5rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.bp-archive-card-meta2 {
  font-size: 0.75rem;
  color: var(--color-content-faded);
  margin: 0;
}

.bp-archive-empty {
  padding: 3rem 1rem;
  text-align: center;
  font-family: var(--font-family);
  color: var(--color-content-faded);
}

.bp-archive-reset-inline {
  background: transparent;
  border: 0;
  color: var(--color-content-heading);
  text-decoration: underline;
  cursor: pointer;
}

/* Partner-Dropdown mit Foto + Name */
.bp-archive-dropdown-partner .bp-archive-dropdown-panel {
  min-width: 18rem;
  padding: 0.25rem 0;
}

.bp-archive-dropdown-option-partner {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  font-family: var(--font-family);
  font-size: 0.875rem;
  color: var(--color-content-heading);
  cursor: pointer;
  transition: background 0.15s;
}

.bp-archive-dropdown-option-partner:hover {
  background: rgba(11, 11, 61, 0.05);
}

.bp-archive-dropdown-option-foto {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  object-fit: cover;
  object-position: top center;
  flex-shrink: 0;
  background: rgba(11, 11, 61, 0.08);
}

.bp-archive-dropdown-option-init {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: rgba(11, 11, 61, 0.08);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-content-heading);
}

.bp-archive-dropdown-option-name {
  flex: 1;
  line-height: 1.3;
}

/* PM-Card Team-Block (Partner-Avatare + Namen) */
.bp-archive-card-team {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.bp-archive-card-avatars {
  display: inline-flex;
  flex-shrink: 0;
}

.bp-archive-card-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  border: 2px solid var(--color-content-bg);
  background: rgba(11, 11, 61, 0.08);
  margin-left: -0.5rem;
  overflow: hidden;
  flex-shrink: 0;
}

.bp-archive-card-avatar:first-child { margin-left: 0; }

.bp-archive-card-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}

.bp-archive-card-avatar-init {
  font-family: var(--font-family);
  font-weight: 700;
  font-size: 0.4375rem;
  color: var(--color-content-heading);
}

.bp-archive-card-team-names {
  font-family: var(--font-family);
  font-size: 0.75rem;
  color: var(--color-content-faded);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

/* ══════════════════════════════════════════════════════════════════
   TEAM-LIST (/team/) + PARTNER-LIST (/wir/partner/)
   ══════════════════════════════════════════════════════════════════ */

.bp-teamlist-container,
.bp-partnerlist-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

@media (min-width: 1024px) {
  .bp-teamlist-container,
  .bp-partnerlist-container { padding: 0 2.5rem; }
}

/* Grid-Section (Hero nutzt [bp_hero]) */
.bp-teamlist-grid-section,
.bp-partnerlist-grid-section {
  background: var(--color-content-bg);
  padding: 4rem 0;
}

@media (min-width: 1024px) {
  .bp-teamlist-grid-section, .bp-partnerlist-grid-section { padding: 6rem 0; }
}

/* ─── Team-Filter-Bar ─── */
.bp-teamlist-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  margin-bottom: 1.5rem;
}

.bp-teamlist-search {
  flex: 1 1 16rem;
  min-width: 14rem;
}

.bp-teamlist-search-input {
  width: 100%;
  padding: 0.75rem 1rem;
  /* Impreza setzt <input> border-width:0 + unteren Box-Shadow; volle 1px-Border
     im Button-Token erzwingen, damit Such-Feld + Buttons identisch umrandet sind. */
  border: 1px solid var(--color-content-border) !important;
  box-shadow: none !important;
  border-radius: 0.125rem;
  font-family: var(--font-family);
  font-size: 0.9375rem;
  color: var(--color-content-heading);
  /* Impreza gibt <input> global den grauen --color-content-bg-alt; weißen Token
     erzwingen, damit das Team-Such-Feld wie bei Referenzen/PM weiß ist. */
  background: var(--color-content-bg) !important;
}

.bp-teamlist-search-input::placeholder { color: var(--color-content-faded); }

.bp-teamlist-search-input:focus {
  outline: none;
  border-color: var(--color-content-heading);
}

.bp-teamlist-dropdowns {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.bp-teamlist-dropdown {
  position: relative;
}

.bp-teamlist-dropdown-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  background: var(--color-content-bg);
  border: 1px solid rgba(11,11,61,0.15);
  border-radius: 0.125rem;
  font-family: var(--font-family);
  font-size: 0.875rem;
  color: var(--color-content-heading);
  cursor: pointer;
}

.bp-teamlist-dropdown.is-open .bp-teamlist-dropdown-btn,
.bp-teamlist-dropdown.has-value .bp-teamlist-dropdown-btn {
  background: var(--color-content-heading);
  color: var(--color-content-bg);
  border-color: var(--color-content-heading);
}

.bp-teamlist-dropdown-panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 14rem;
  max-height: 24rem;
  overflow-y: auto;
  background: var(--color-content-bg);
  border: 1px solid rgba(11,11,61,0.15);
  border-radius: 0.125rem;
  box-shadow: 0 6px 20px rgba(0,0,0,0.08);
  z-index: 20;
  padding: 0.5rem 0;
}

.bp-teamlist-dropdown-option {
  display: block;
  width: 100%;
  text-align: left;
  padding: 0.5rem 1rem;
  background: transparent;
  border: 0;
  font-family: var(--font-family);
  font-size: 0.875rem;
  color: var(--color-content-heading);
  cursor: pointer;
}

.bp-teamlist-dropdown-option:hover {
  background: rgba(11,11,61,0.05);
}

.bp-teamlist-chips {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.bp-teamlist-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  background: rgba(11,11,61,0.05);
  color: var(--color-content-heading);
  border: 1px solid rgba(11,11,61,0.1);
  border-radius: 9999px;
  font-family: var(--font-family);
  font-size: 0.8125rem;
  cursor: pointer;
}

.bp-teamlist-chip-x { color: rgba(11,11,61,0.5); font-size: 1rem; line-height: 1; }

.bp-teamlist-counter {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 0;
  border-top: 1px solid rgba(11,11,61,0.08);
  border-bottom: 1px solid rgba(11,11,61,0.08);
  margin-bottom: 2rem;
}

.bp-teamlist-counter-text {
  font-family: var(--font-family);
  font-size: 0.8125rem;
  color: var(--color-content-faded);
}

.bp-teamlist-reset {
  background: transparent;
  border: 0;
  font-family: var(--font-family);
  font-size: 0.8125rem;
  color: var(--color-content-heading);
  cursor: pointer;
  text-decoration: underline;
}

/* ─── Team-Grid (Partner-Stil via .bp-team-card--large) ─── */
.bp-teamlist-grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 600px) { .bp-teamlist-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } }
@media (min-width: 1024px) { .bp-teamlist-grid { grid-template-columns: repeat(3, 1fr); gap: 2rem; } }

.bp-teamlist-card {
  list-style: none;
  margin: 0;
  display: block;
}

.bp-teamlist-empty {
  padding: 3rem 1rem;
  text-align: center;
  font-family: var(--font-family);
  color: var(--color-content-faded);
}

/* ─── CTA (Team + Partner gemeinsam) ─── */
.bp-teamlist-cta,
.bp-partnerlist-cta {
  background: var(--color-alt-content-bg);
  padding: 4rem 0;
}

@media (min-width: 1024px) {
  .bp-teamlist-cta, .bp-partnerlist-cta { padding: 6rem 0; }
}

.bp-teamlist-cta-inner,
.bp-partnerlist-cta-inner {
  text-align: center;
  max-width: 40rem;
  margin: 0 auto;
}

.bp-teamlist-cta h2,
.bp-partnerlist-cta h2 {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  font-size: 2rem;
  line-height: 1.2;
  margin: 0 0 0.75rem 0;
}

.bp-teamlist-cta p,
.bp-partnerlist-cta p {color: var(--color-content-faded);
margin: 0 auto 2rem;
  max-width: 36rem;
}

.bp-teamlist-cta-btns,
.bp-partnerlist-cta-btns {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: center;
}

.bp-teamlist-btn,
.bp-partnerlist-btn {
  display: inline-block;
  padding: 0.75rem 2rem;
  font-family: var(--font-family);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  border-radius: 1.5rem;
  transition: all 0.2s;
}

.bp-teamlist-btn-primary,
.bp-partnerlist-btn-primary {
  background: var(--color-content-heading);
  color: var(--color-content-bg);
}

.bp-teamlist-btn-primary:hover,
.bp-partnerlist-btn-primary:hover {
  background: #07072a;
  color: var(--color-content-bg);
}

.bp-teamlist-btn-sec,
.bp-partnerlist-btn-sec {
  color: var(--color-content-heading);
  border: 1px solid rgba(11,11,61,0.2);
}

.bp-teamlist-btn-sec:hover,
.bp-partnerlist-btn-sec:hover {
  background: var(--color-content-heading);
  color: var(--color-content-bg);
}
/* ═══ Default Page Template ═══ */
.bp-page-hero {
  background: var(--color-content-bg);
  padding: 4rem 0 2rem;
  border-bottom: 1px solid rgba(11, 11, 61, 0.05);
}

@media (min-width: 1024px) {
  .bp-page-hero { padding: 6rem 0 3rem; }
}

.bp-page-container {
  max-width: 56rem;
  margin: 0 auto;
  padding: 0 1.5rem;
}

@media (min-width: 1024px) {
  .bp-page-container { padding: 0 2.5rem; }
}

.bp-page-title {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.1;
  margin: 0;
}

.bp-page-body {
  background: var(--color-content-bg);
  padding: 3rem 0 5rem;
}

@media (min-width: 1024px) {
  .bp-page-body { padding: 4rem 0 7rem; }
}

/* ══════════════════════════════════════════════════════════════════
   GERMANY MAP (Shortcode [bp_germany_map])
   ══════════════════════════════════════════════════════════════════ */

.bp-map-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 500px;
}

.bp-map-svg {
  width: 100%;
  height: 100%;
  display: block;
}

.bp-map-marker {
  cursor: pointer;
  transition: transform 0.3s;
}

.bp-map-marker:focus { outline: none; }

.bp-map-marker .bp-map-ring,
.bp-map-marker .bp-map-dot,
.bp-map-marker .bp-map-glow-circle {
  transition: all 0.3s ease-out;
}

.bp-map-marker:hover .bp-map-glow-circle,
.bp-map-marker:focus-visible .bp-map-glow-circle {
  fill: rgba(255, 236, 109, 0.18);
}

.bp-map-marker:hover .bp-map-ring,
.bp-map-marker:focus-visible .bp-map-ring {
  stroke: var(--color-content-secondary) !important;
}

.bp-map-marker:hover .bp-map-dot,
.bp-map-marker:focus-visible .bp-map-dot {
  fill: var(--color-content-secondary) !important;
  filter: url(#bp-map-glow);
}

.bp-map-pulse {
  transform-origin: center;
  animation: bp-map-pulse 2.5s cubic-bezier(0, 0, 0.2, 1) infinite;
}

@keyframes bp-map-pulse {
  0%   { transform: scale(1);   opacity: 0.5; }
  75%  { transform: scale(2.3); opacity: 0; }
  100% { transform: scale(2.3); opacity: 0; }
}

/* ─── Tooltip ─── */
.bp-map-tooltip {
  position: absolute;
  z-index: 30;
  pointer-events: none;
  width: 260px;
}

.bp-map-tooltip-inner {
  background: var(--color-content-bg);
  border-radius: 0.125rem;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
  overflow: hidden;
  font-family: var(--font-family);
}

.bp-map-tooltip-bild {
  position: relative;
  aspect-ratio: 16 / 10;
  background: rgba(11, 11, 61, 0.2);
  overflow: hidden;
}

.bp-map-tooltip-bild img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* HTML-[hidden]-Attribut wieder respektieren: unser display:inline-block
   oben würde sonst das User-Agent-Default [hidden]{display:none} schlagen.
   JS toggelt das Badge via .hidden=true — das muss wirken. */
.bp-map-tooltip-body {
  padding: 1.25rem;
}

.bp-map-tooltip-kicker {
  font-size: 0.625rem;
  font-weight: 700;
  color: var(--color-content-heading);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0 0 0.5rem 0;
}

.bp-map-tooltip-stadt {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  font-size: 1.25rem;
  line-height: 1.25;
  margin: 0 0 1rem 0;
}

.bp-map-tooltip-meta {
  font-size: 0.75rem;
  color: var(--color-content-text);
  line-height: 1.5;
}

.bp-map-tooltip-meta p {
  margin: 0 0 0.75rem 0;
}

.bp-map-tooltip-meta p:last-child { margin-bottom: 0; }

/* ══════════════════════════════════════════════════════════════════
   STANDORT-ÜBERSICHT — /standort/ (page-standort.php)
   1:1 Port aus React /standort/page.tsx
   ══════════════════════════════════════════════════════════════════ */

.bp-standortpage-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

@media (min-width: 1024px) { .bp-standortpage-container { padding: 0 2.5rem; } }

/* Heading-Styles auf der Standort-Übersicht: KEIN Custom-Styling — Impreza-
   Theme-Options übernehmen Font-Family, -Weight, -Size, -Color für H1/H2/H3.
   (Frühere Custom-Definitionen entfernt 2026-05-20.) */

/* ─── STANDORT-GRID ─── */
.bp-standortpage-grid-section {
  background: var(--color-content-bg);
  padding: 4rem 0;
}

@media (min-width: 1024px) { .bp-standortpage-grid-section { padding: 6rem 0; } }

.bp-standortpage-grid-header {
  margin-bottom: 2.5rem;
}

.bp-standortpage-grid-header h2 {
  /* Impreza-native Font-Size — kein Custom-Override. */
  margin: 0.75rem 0 0 0;
}

.bp-standortpage-grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

@media (min-width: 600px) { .bp-standortpage-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .bp-standortpage-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .bp-standortpage-grid { grid-template-columns: repeat(4, 1fr); } }

.bp-standortpage-card {
  list-style: none;
  margin: 0;
}

.bp-standortpage-card-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem;
  background: var(--color-content-bg);
  border: 1px solid var(--color-content-bg-alt);
  border-radius: 0.125rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.bp-standortpage-card-link:hover {
  border-color: rgba(11, 11, 61, 0.2);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.bp-standortpage-card-bild {
  width: 4rem;
  height: 4rem;
  border-radius: 0.125rem;
  overflow: hidden;
  background: rgba(11, 11, 61, 0.05);
  flex-shrink: 0;
}

.bp-standortpage-card-bild img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.bp-standortpage-card-info {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.bp-standortpage-card-info h3 {
  font-family: var(--h1-font-family);
  font-weight: 300;
  font-size: 1.0625rem;
  color: var(--color-content-heading);
  margin: 0;
  line-height: 1.25;
}

/* ─── CTA ─── */
.bp-standortpage-cta {
  background: var(--color-alt-content-bg);
  padding: 4rem 0;
}

@media (min-width: 1024px) { .bp-standortpage-cta { padding: 6rem 0; } }

.bp-standortpage-cta-inner {
  text-align: center;
  max-width: 40rem;
}

.bp-standortpage-cta h2 {
  /* Impreza-native Font-Size — kein Custom-Override. */
  margin: 0 0 0.75rem 0;
}

.bp-standortpage-cta p {color: var(--color-content-faded);
margin: 0 auto 2rem;
}

/* ══════════════════════════════════════════════════════════════════
   GIS + HINWEISGEBERPORTAL (gemeinsames Styling)
   ══════════════════════════════════════════════════════════════════ */
/* ═══ Hinweisgeber — fehlende Sektionen ═══ */

/* ══════════════════════════════════════════════════════════════════
   WPBakery-Seiten: globale Korrekturen
   ══════════════════════════════════════════════════════════════════ */

/* Iconbox-Description: kleiner, lesbarer */
.l-main .w-iconbox-description {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-content-faded);
}

/* Iconbox mit type=left: bessere Abstände */
.l-main .w-iconbox.iconpos_left .w-iconbox-text {
  padding-left: 1rem;
}

/* 2-Col-Sticky Pattern: Overlap verhindern (vertikaler Abstand auf Mobile) */
@media (max-width: 899px) {
  .l-main .vc_col-sm-4 + .vc_col-sm-8,
  .l-main .vc_col-sm-8 + .vc_col-sm-4 {
    margin-top: 2rem;
  }
}

/* H2 in Hero-Rows nicht zu klein */
.l-main .l-section.color_scheme_primary h1,
.l-main .l-section.color_scheme_primary h2 {
  color: var(--color-content-bg);
}

/* Hero-Rows bekommen vernünftiges Padding statt "huge" voll leerem Raum */
.l-main .l-section.color_scheme_primary .l-section-h {
  padding-top: 6rem;
  padding-bottom: 6rem;
}

@media (min-width: 1024px) {
  .l-main .l-section.color_scheme_primary .l-section-h {
    padding-top: 8rem;
    padding-bottom: 8rem;
  }
}

/* ---------- Leistungen: panoramisches Bild-Break ---------- */
/* Section mit el_class="bp-bild-break": Bild auf 3:1 Ratio,
   max 420px hoch — wirkt als Atmosphäre-Puffer, nicht als Vollbild. *//* ---------- Leistungen: Kategorie-Sektion 2-col sticky ---------- */
/* Linke 1/3-Column (Titel + Button) bleibt beim Scrollen sichtbar,
   während rechts Content (Text + Cards) scrollt. */
/* ---------- Startseite: runde Service-Bubbles ---------- */
/* Forciert perfekten Kreis unabhängig von Textlänge (1 oder 2 Zeilen).
   bp-old Trick war position:absolute auf Text — wir nutzen flex + aspect-ratio. */
.bubble-hover {
  aspect-ratio: 1 / 1 !important;
  height: 240px !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.bubble-hover > .vc_column-inner {
  width: 100%;
  padding: 1rem 2.5rem !important;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.bubble-hover > .vc_column-inner > .wpb_wrapper {
  width: 100%;
  text-align: left;
}

/* Hover/Active: BG wird gelb (in Impreza us-custom-css) → Text muss
   auf Navy wechseln, sonst Weiß-auf-Gelb = unleserlich. */
.bubble-hover:hover,
.bubble-hover:hover p,
.bubble-hover:hover .wpb_text_column,
.bubble-hover.active,
.bubble-hover.active p,
.bubble-hover.active .wpb_text_column {
  color: var(--color-content-heading) !important;
  transition: color 0.3s ease-in-out;
}

/* ---------- Button Fill-Hover (exakte React-Animation) ---------- */
/* Werte 1:1 aus React (brinkmann-partner/src/components/ui/Button.tsx):
   500×500 Circle, transform 1.2s cubic-bezier(0.22,1,0.36,1), text 0.3s.
   Impreza's native BG-Hover muss DISABLED sein — nur der Circle animiert. */

/* Parent-Container: overflow:hidden für Kreis-Clipping.
   Border-Radius 2em zentral für ALLE us_btn-Varianten (style 1, 11, 30, 32 etc.) —
   Impreza's eigener border-radius wird hiermit überschrieben. */
.w-btn {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-radius: 2em !important;
}

/* Impreza's background-color:hover komplett unterdrücken — BG bleibt rest-state,
   der Fill-Circle übernimmt die Animation. Text-Color fadet (React: 0.3s). */
.w-btn.us-btn-style_30:hover,
.w-btn.us-btn-style_30:focus { background-color: var(--color-content-heading) !important; }
.w-btn.us-btn-style_32:hover,
.w-btn.us-btn-style_32:focus { background-color: transparent !important; }
.w-btn.us-btn-style_11:hover,
.w-btn.us-btn-style_11:focus { background-color: transparent !important; }
.w-btn.us-btn-style_1:hover,
.w-btn.us-btn-style_1:focus  { background-color: var(--color-content-secondary) !important; }

/* Text über dem Fill-Circle, Color-Transition wie React (300ms) */
.w-btn > .w-btn-label,
.w-btn > .w-btn-icon,
.w-btn > .w-btn-icon-i {
  position: relative;
  z-index: 2;
  transition: color 0.3s ease !important;
}

/* Fill-Circle: Enter sanfter/gleichmäßiger, Leave bleibt fluffiges ease-out */
.bp-btn-fill {
  position: absolute;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0);
  z-index: 0;
  left: 50%;
  top: 50%;
  will-change: transform;
  /* Default (initial/leave): 30% schneller als React (1.2s → 0.85s) */
  transition: transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Enter: gleichmäßige ease-in-out, 30% schneller (1.6s → 1.1s) */
.bp-btn-fill.is-entering {
  transition: transform 1.1s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ============================================================
 * Mitteilungen-Hero — 1:1 wie React-Startseite
 * Shortcode: [bp_mitteilungen_hero]
 * ============================================================ */

.bp-mt-hero { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
@media (min-width: 1025px) {
  .bp-mt-hero { padding: 0 2.5rem; }
}

/* Header-Row: Overline+H2 links, Button rechts */
.bp-mt-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}
/* .bp-mt-overline → ersetzt durch .bp-overline (Master, siehe Sektion "4. OVERLINES") */
.bp-mt-title {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  line-height: 1.2;
  font-size: var(--h2-font-size, inherit);
  margin: 0;
}
@media (min-width: 1025px) {
  .bp-mt-title { font-size: 2.5rem; }
}

/* "Alle Pressemitteilungen"-Button: Outline-Variante mit Fill-Hover-Animation
   (Navy-Kreis wächst aus Mausposition, Label fadet auf Weiß). buttons.js
   erkennt die Klasse und injiziert <span class="bp-btn-fill"> als first-child. */
.bp-mt-btn {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  padding: 0.75rem 1.25rem;
  border: 1px solid rgba(11, 11, 61, 0.25); /* Brand-spezifische Border-Opacity */
  border-radius: 2em;
  background: transparent;
  color: var(--color-content-heading);
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.2;
  text-decoration: none;
  transition: color 0.3s ease, border-color 0.35s ease;
}
.bp-mt-btn:hover {
  border-color: var(--color-content-heading);
}
/* Label-Span über den Fill-Circle heben (sonst verdeckt der Fill den Text) */
.bp-mt-btn-label {
  position: relative;
  z-index: 2;
  transition: color 0.3s ease;
}
/* Hover-Text-Farbe auf das Label statt auf das <a>: Impreza setzt
   `a:hover { color: var(--color-alt-content-link-hover) }` (= Brand-Gelb)
   im alternate-Scheme, was die Button-Hover-Farbe sonst überschreibt.
   #fff bewusst hart (Pure White über Navy-Fill, kein Pendant in Theme-Options). */
.bp-mt-btn:hover .bp-mt-btn-label {
  color: #fff;
}

/* Linke Spalte: Featured-Artikel oben, Button unten — Button wird über
   margin-top:auto an die Spalten-Unterkante geschoben (bündig mit letzter
   Mini-Mitteilung in der rechten Spalte). */
.bp-mt-col-main {
  display: flex;
  flex-direction: column;
}
.bp-mt-foot {
  margin-top: auto;
  padding-top: 2.5rem;
  display: flex;
  justify-content: flex-start;
}

/* Grid: 7/5 auf Desktop, stacked auf Mobile */
.bp-mt-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  align-items: stretch;
}
@media (min-width: 1025px) {
  .bp-mt-grid {
    grid-template-columns: 7fr 5fr;
    gap: 4rem;
  }
}

/* Featured Card */
.bp-mt-featured-link {
  display: block;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.bp-mt-featured-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.bp-mt-badge-neu {
  display: inline-block;
  padding: 0.3rem 0.5rem;
  background: var(--color-content-heading);
  color: var(--color-content-secondary);
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  border-radius: 20px;
  line-height: 1;
}
.bp-mt-sep {
  flex: 1;
  height: 1px;
  background: var(--color-content-border);
}
.bp-mt-date {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-content-faded);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  white-space: nowrap;
}
.bp-mt-featured-title {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  font-size: 1.6rem;
  line-height: 1.4;
  margin: 0 0 1rem;
  transition: color 0.3s ease;
  padding-bottom: 22px;
}
@media (min-width: 1025px) {
  .bp-mt-featured-title { font-size: 1.875rem; }
}
.bp-mt-featured-link:hover .bp-mt-featured-title { color: #2d2d8c; }

.bp-mt-featured-excerpt {
  font-size: 1rem;
  color: var(--color-content-faded);
  line-height: 1.5;
  margin: 0 0 1.25rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Chips */
/* Meta-Zeile: ruhige Inline-Tags, kein Button-Eindruck.
   Zwei (oder mehr) Tags werden via "·" zwischen den Items getrennt. */
.bp-mt-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0;
  margin-bottom: 1.5rem;
  font-size: 0.75rem;
  line-height: 1.4;
  color: var(--color-content-faded);
}
.bp-mt-chip {
  display: inline-block;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  font-weight: 400;
  color: inherit;
}
.bp-mt-chip + .bp-mt-chip::before {
  content: "·";
  margin: 0 0.5rem;
  color: inherit;
}

/* "Weiterlesen →" */
.bp-mt-more {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-content-heading);
  transition: color 0.3s ease;
}
.bp-mt-featured-link:hover .bp-mt-more { color: #2d2d8c; }
.bp-mt-more-label { line-height: 1; }
.bp-mt-more-line {
  display: inline-block;
  height: 1px;
  width: 2rem;
  background: currentColor;
  transition: width 0.3s ease;
}
.bp-mt-featured-link:hover .bp-mt-more-line { width: 3rem; }
/* Pfeil als CSS-Chevron — gleiche Geometrie wie Impreza icon_chevron
   (Akkordeon-Pfeil auf der Wir-Seite), aber 90° zur Seite gedreht
   (horizontale Stäbe → Spitze zeigt nach rechts). */
.bp-mt-more-arrow {
  position: relative;
  display: inline-block;
  width: 1em;
  height: 1em;
  transition: transform 0.3s ease;
}
.bp-mt-more-arrow::before,
.bp-mt-more-arrow::after {
  content: '';
  position: absolute;
  left: 20%;
  width: 60%;
  height: 0.15em;
  background: currentColor;
  border-radius: 1px;
}
.bp-mt-more-arrow::before {
  top: 0.262em;
  transform: rotate(45deg);
}
.bp-mt-more-arrow::after {
  bottom: 0.262em;
  transform: rotate(-45deg);
}
.bp-mt-featured-link:hover .bp-mt-more-arrow { transform: translateX(4px); }

/* Rest/Sidebar */
.bp-mt-rest {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--color-content-border);
}
@media (min-width: 1025px) {
  .bp-mt-rest {
    border-top: none;
    border-left: 1px solid var(--color-content-border);
    padding-left: 2.5rem;
  }
}
.bp-mt-mini {
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--color-content-border);
}
.bp-mt-mini:last-child { border-bottom: none; padding-bottom: 0; }
.bp-mt-mini:first-child { padding-top: 1.25rem; }
@media (min-width: 1025px) {
  .bp-mt-mini:first-child { padding-top: 0; }
}
.bp-mt-mini-link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.bp-mt-mini-date {
  display: block;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-content-faded);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1;
}
.bp-mt-mini-title {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  font-size: 1rem;
  line-height: 1.35;
  margin: 0.5rem 0 0.5rem;
  transition: color 0.3s ease;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bp-mt-mini-link:hover .bp-mt-mini-title { color: #2d2d8c; }
.bp-mt-chips-mini { margin-top: 0.5rem; margin-bottom: 0; }

/* ============================================================
 * Kontakt-Seite: Standort-Chips-Grid + Sidebar-Cards
 * ============================================================ */

/* Standort-Chips — 2/3/4/5-col responsive */
.bp-standort-chips-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
}
@media (min-width: 640px)  { .bp-standort-chips-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 768px)  { .bp-standort-chips-grid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1025px) { .bp-standort-chips-grid { grid-template-columns: repeat(5, 1fr); } }

.bp-standort-chip {
  display: block;
  padding: 0.75rem 1rem;
  background: var(--color-content-bg);
  border: 1px solid var(--color-content-border);
  border-radius: 2px;
  text-decoration: none;
  text-align: center;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}
.bp-standort-chip:hover {
  background: var(--color-content-heading);
  border-color: var(--color-content-heading);
}
.bp-standort-chip-label {
  font-family: var(--h1-font-family);
  font-weight: 300;
  font-size: 0.9375rem;
  color: var(--color-content-heading);
  transition: color 0.3s ease;
}
.bp-standort-chip:hover .bp-standort-chip-label { color: var(--color-content-bg); }

/* Sidebar-Cards (Kontakt-Seite) */
.bp-kontakt-card {
  border: 1px solid var(--color-content-bg-alt);
  border-radius: 2px;
  padding: 2rem;
  background: var(--color-content-bg);
}
.bp-kontakt-card + .bp-kontakt-card { margin-top: 2rem; }
/* .bp-kontakt-card-overline → ersetzt durch .bp-overline (Master, siehe "4. OVERLINES") */
.bp-kontakt-card-title {
  font-family: var(--h1-font-family);
  font-weight: 300;
  font-size: 1.25rem;
  color: var(--color-content-heading);
  margin: 0 0 1.5rem;
  line-height: 1.25;
}
.bp-kontakt-card-body {
  font-size: 0.9375rem;
  color: rgba(11, 11, 61, 0.8);
  line-height: 1.7;
}
.bp-kontakt-card-body p { margin: 0 0 0.75rem; }
.bp-kontakt-card-body p:last-child { margin-bottom: 0; }
.bp-kontakt-card-body a { color: var(--color-content-heading); text-decoration: none; transition: color 0.3s ease; }
.bp-kontakt-card-body a:hover { color: #2d2d8c; }
.bp-kontakt-card-body .bp-kontakt-card-hours {
  padding-top: 0.75rem;
  margin-top: 0.75rem;
  border-top: 1px solid var(--color-content-bg-alt);
  color: rgba(11, 11, 61, 0.6);
  font-size: 0.875rem;
}
.bp-kontakt-card-body .bp-kontakt-card-hours-note {
  display: block;
  color: var(--color-content-faded);
  font-size: 0.75rem;
  margin-top: 0.25rem;
}

/* ==================================================================
   HERO BLOCK — [bp_hero]
   ================================================================== */

.bp-hero {
  position: relative;
  min-height: var(--bp-hero-min-height, 480px);
  display: flex;
  overflow: hidden;
  isolation: isolate;
  padding: 7.5rem 1.5rem 5rem;
  box-sizing: border-box;
}

/* Hintergrundbild — Blur + Scale (damit keine Blur-Kanten sichtbar) */
.bp-hero__bg {
  position: absolute;
  inset: 0;
  background-image: var(--bp-hero-image);
  background-size: cover;
  background-position: center;
  filter: blur(var(--bp-hero-blur, 12px));
  transform: scale(1.1);
  z-index: -2;
}

/* Overlay (weiß oder dunkel über dem Bild) */
.bp-hero__overlay {
  position: absolute;
  inset: 0;
  background: var(--bp-hero-overlay);
  z-index: -1;
}
/* Inner Container */
.bp-hero__inner {
  width: 100%;
}
.bp-hero__container {
  max-width: 1200px;
  margin: 0 auto;
  /* Kein horizontales Padding: Hero-Inhalt exakt linksbündig zur Content-Container-
     Kante (wie der Body-Content darunter). Gilt global für alle bp_hero-Heroes.
     Mobile-Edge-Spacing kommt aus der Media-Query weiter unten (padding: 0 1rem). */
  padding: 0;
  padding-top: 50px;
}

/* Overline — Hero nutzt die globale .bp-overline-Klasse (siehe "4. OVERLINES").
   Auf weißem Hero-Overlay (text-navy): automatisch var(--color-content-heading).
   Auf dunklem Hero-Overlay (text-white): .bp-hero--text-white überschreibt auf Gelb. */
.bp-hero--text-white .bp-overline {
  color: var(--color-content-secondary);
}

/* Titel — erbt H1-Styles aus Impreza-Theme-Options
   (font-family, size, weight, line-height laut projects/bp/project.md).
   Hier nur Hero-spezifische Overrides: Farbe + max-width. */
.bp-hero__title {
  margin: 0;
  max-width: 42rem;
  color: var(--color-content-heading);
}
.bp-hero--text-white .bp-hero__title {
  color: var(--color-content-bg);
}

/* Gelbes, kursives Akzentwort im Titel */
.bp-hero__title .hero-accent {
  font-style: italic;
  color: var(--color-content-secondary);
}
.bp-hero--text-navy .bp-hero__title .hero-accent {
  /* Auf weißem Overlay ist Gelb schlecht lesbar — dunkler akzentuieren */
  color: var(--color-content-heading);
  font-style: italic;
  font-weight: 400;
}

/* Subline */
.bp-hero__subline {
  margin: 50px 0 0 0;
  font-size: 1.15rem;
  line-height: 1.6;
  max-width: 40rem;
  color: var(--color-content-heading);
}
.bp-hero--text-white .bp-hero__subline {
  color: rgba(255, 255, 255, 0.75);
}

@media (max-width: 768px) {
  .bp-hero { padding: 5.5rem 1rem 3rem; }
  .bp-hero__container { padding: 0 1rem; }
  .bp-hero__subline { font-size: 1rem; }
}

/* ==================================================================
   GLASS HEADER — Minimal-Fix
   ==================================================================
   Behält die Original-Optik komplett. Korrigiert ausschließlich die
   Pille-Breite (max-width:1200px-Limit des Impreza-Subheader-Wraps).
   Die Dropdown-Auto-Höhe wird dynamisch per JS gesteuert
   (impreza-child/assets/custom.js) — die Pille-::before-BG dehnt sich
   beim Hover um die gemessene Dropdown-Höhe aus (Original-Mechanik,
   nur ohne hartkodierte -220px).
   ================================================================== */

.l-header .l-subheader.at_middle > .l-subheader-h {
  max-width: none !important;
  padding-inline: 5rem;
}
.glass-header {
  max-width: none !important;
}
/* Innen-Padding der Pille (Impreza-Config setzt 12/24 !important —
   wir gewinnen mit höherer Specificity durch Doppel-Klassen-Selector). */
.ush_hwrapper_1.glass-header {
  padding: 0.6rem 3rem !important;
}

/* Logo exakt symmetrisch: Impreza setzt am Logo-Element margin-left:1rem (20px)
   per Element-Design (inline !important). Hier auf 0, damit der Abstand
   Pille-Kante→Logo = Abstand Icon→Pille-Kante (beide = Pille-Padding). */
.glass-header .ush_image_1 {
  margin-left: 0 !important;
}

/* Menü-Items über die volle Menü-Breite verteilen, damit sie auf breiten
   Viewports nicht am linken Rand kleben (keine große Lücke vor den Socials). */
.glass-header .w-nav.type_desktop .w-nav-list.level_1 {
  width: 100% !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}

/* Pille auf Container-Breite begrenzen (nie breiter als --site-content-width),
   auf schmalen Viewports den Bildschirm respektieren (min). */
.ush_hwrapper_1.glass-header {
  max-width: min(var(--site-content-width), calc(100vw - 260px)) !important;
}

/* Responsive: bei schmaleren Desktops weniger Seitenabstand,
   damit Logo + 8 Items + Socials in die Pille passen. */
@media (max-width: 1700px) {
  .l-header .l-subheader.at_middle > .l-subheader-h {
    padding-inline: 2.5rem;
  }
  .ush_hwrapper_1.glass-header {
    max-width: min(var(--site-content-width), calc(100vw - 180px)) !important;
    padding: 0.6rem 2rem !important;
  }
}

@media (max-width: 1500px) {
  .l-header .l-subheader.at_middle > .l-subheader-h {
    padding-inline: 1.25rem;
  }
  .ush_hwrapper_1.glass-header {
    max-width: min(var(--site-content-width), calc(100vw - 140px)) !important;
    padding: 0.6rem 1.5rem !important;
  }
}

/* ──────────────────────────────────────────────────────────────────
   ADAPTIVE HEADER — Ton wechselt je nach Sektion unter dem Header.
   header-adaptive.js toggelt .is-tone-dark / .is-tone-light auf .l-header.
   Custom-CSS/JS für den (custom gebauten) Header freigegeben. Farben über
   Brand-Tokens + color-mix (kein Hardcode → Validator bleibt grün).
   ────────────────────────────────────────────────────────────────── */
.glass-header::before,
.glass-header .w-nav-anchor,
.l-header .w-socials-item-link,
.l-header .ush_image_1 img {
  transition: background 0.4s ease, color 0.4s ease, filter 0.4s ease;
}

/* Dunkler Ton: frosted Pille dunkel, Logo/Menü/Icons weiß */
.l-header.is-tone-dark .glass-header::before {
  background: color-mix(in srgb, var(--color-content-heading) 55%, transparent);
}
.l-header.is-tone-dark .glass-header .w-nav-anchor,
.l-header.is-tone-dark .glass-header .w-nav-title,
.l-header.is-tone-dark .w-socials-item-link {
  color: var(--color-content-bg);
}
.l-header.is-tone-dark .ush_image_1 img {
  filter: brightness(0) invert(1);
}
/* Mobile-Burger-Linien im dunklen Ton weiß */
.w-nav-icon,
.w-nav-icon::before,
.w-nav-icon::after {
  transition: background-color 0.4s ease;
}
.l-header.is-tone-dark .w-nav-icon,
.l-header.is-tone-dark .w-nav-icon::before,
.l-header.is-tone-dark .w-nav-icon::after {
  background-color: var(--color-content-bg);
}

/* Mobile-Fullscreen-Menü: solider Navy-Frosted-Overlay statt durchscheinender
   Seite (lesbarer weißer Text). Bei offenem Menü Logo + Schließen-X immer weiß. */
.w-nav.type_mobile .w-nav-list {
  background: color-mix(in srgb, var(--color-content-heading) 96%, transparent) !important;
  backdrop-filter: blur(20px);
}
html.w-nav-open .l-header .ush_image_1 img {
  filter: brightness(0) invert(1);
}
html.w-nav-open .l-header .w-nav-icon,
html.w-nav-open .l-header .w-nav-icon::before,
html.w-nav-open .l-header .w-nav-icon::after {
  background-color: var(--color-content-bg) !important;
}
html.w-nav-open .l-header .w-nav-control {
  color: var(--color-content-bg) !important;
}
/* Schließen-X (FA-Glyph im Fullscreen-Menü) weiß auf dem Navy-Overlay */
.w-nav.type_mobile .w-nav-close::before {
  color: var(--color-content-bg) !important;
}

/* Burger-Modus (≤900px): Logo links, Burger rechts (Pille verteilt).
   Mobile-Nav auf Burger-Breite schrumpfen, sonst spannt sie + Icon klebt links. */
@media (max-width: 900px) {
  .ush_hwrapper_1.glass-header {
    justify-content: space-between !important;
  }
  .glass-header .w-nav.type_mobile {
    flex: 0 0 auto !important;
    width: auto !important;
  }
}

/* ==================================================================
   TEAM-GRID + TEAM-CARD — [bp_team_grid]
   ==================================================================
   Layout für Partner/Rechtsanwälte/Wirtschaftsjuristen-Filter-Seiten.
   Design: Impreza-nativ (Fira Sans Body, Noto Serif Light Name, Navy).
   ================================================================== */

.bp-team-grid {
	display: grid;
	gap: 2rem;
	margin: 2.5rem 0;
}@media (max-width: 600px) {
	.bp-team-grid { grid-template-columns: 1fr !important; gap: 1.5rem; }
}

.bp-team-card {
	display: flex;
	flex-direction: column;
	background: var(--color-content-bg);
	border: 1px solid var(--color-content-bg-alt);
	border-radius: 2px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.bp-team-card:hover {
	box-shadow: 0 8px 24px rgba(11, 11, 61, 0.08);
	transform: translateY(-2px);
	text-decoration: none;
}

.bp-team-card__media {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 5;
	background: var(--color-alt-content-bg);
	overflow: hidden;
}
.bp-team-card--large .bp-team-card__media { aspect-ratio: 4 / 5.2; }

.bp-team-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	display: block;
}

.bp-team-card__initials {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--h1-font-family);
	font-weight: 300;
	font-size: 2.5rem;
	color: var(--color-content-faded);
}

.bp-team-card__body {
	padding: 1.25rem 1.25rem 1.5rem;
}
.bp-team-card--large .bp-team-card__body {
	padding: 1.5rem 1.5rem 2rem;
}

.bp-team-card__name {
	font-family: var(--h1-font-family);
	font-weight: 300;
	font-size: 1.25rem;
	line-height: 1.25;
	color: var(--color-content-heading);
	margin: 0 0 0.5rem 0;
	transition: color 0.2s ease;
}
.bp-team-card--large .bp-team-card__name {
	font-size: 1.5rem;
}
.bp-team-card:hover .bp-team-card__name {
	color: #1e1e7a;
}

.bp-team-card__title {
	font-family: var(--font-family);
	font-size: 0.875rem;
	font-weight: 400;
	color: rgba(11, 11, 61, 0.65);
	margin: 0 0 0.25rem 0;
	line-height: 1.4;
}

.bp-team-card__location {
	font-family: var(--font-family);
	font-size: 0.8125rem;
	font-weight: 400;
	color: var(--color-content-faded);
	margin: 0;
}

.bp-team-grid__empty {
	text-align: center;
	padding: 3rem 1rem;
	color: rgba(11, 11, 61, 0.5);
}

/* ==================================================================
   BUNDESWEIT-SEKTION — [bp_standort_section]
   ==================================================================
   Navy-Sektion "Bundesweit vor Ort" mit Deutschland-Karte.
   Einheitlicher Block auf /standort/, /wir/ und ggf. Startseite.

   WICHTIG: Eigenständiger Klassen-Namespace .bp-bundesweit-section
   (NICHT .bp-standort-section!), weil das Standort-Single-Template
   bereits .bp-standort-section als Padding-Utility nutzt — sonst
   würden alle Template-Sections (Leistungen, Intro, Team, Zerts,
   PMs, Kontakt) den Navy-Background hier erben.
   ================================================================== */

.bp-bundesweit-section {
	background: var(--color-content-heading);
	color: var(--color-content-bg);
	padding: 6rem 1.5rem;
	display: flex;
	align-items: center;
	box-sizing: border-box;
	position: relative;
}
.bp-bundesweit-section--full-height {
	min-height: 100vh;
	min-height: 100dvh;
}

/* Container-Standard der Seite: 1200px (konsistent mit .bp-standortpage-container etc.) */
.bp-bundesweit-section__inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(300px, 5fr) minmax(0, 6fr);
	gap: 3rem;
	align-items: center;
}

@media (max-width: 1024px) {
	.bp-bundesweit-section { padding: 4rem 1.5rem; min-height: auto; }
	.bp-bundesweit-section__inner { grid-template-columns: 1fr; gap: 2.5rem; }
}

/* === Text-Spalte ===
   Normaler Block-Flow (KEIN flex!). Würde ich flex setzen, würde das
   Overline-<p> als Flex-Item "blockified" (display:inline-block → block)
   und der gelbe Overline-Strich ginge über die volle Spalten-Breite. */
.bp-bundesweit-section__text {
	max-width: 30rem;
}

.bp-bundesweit-section h2.bp-bundesweit-section__title,
.bp-bundesweit-section .bp-bundesweit-section__title {
	font-family: var(--h1-font-family);
	font-weight: 300;
	color: var(--color-content-bg);
	/* Abstand H2 → Subline: 60px (gemessen auf Startseite-Karriere-Sektion) */
	margin: 0 0 3.0625rem 0;
	line-height: 1.1;
	font-size: clamp(1.75rem, 3.2vw, 2.5rem);
}

.bp-bundesweit-section__subline {
	font-family: var(--font-family);
	font-size: 1rem;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.65);
	/* Abstand Subline → Rollen-Liste: 60px (vorher 40px, jetzt +20px) */
	margin: 0 0 3rem 0;
	max-width: 28rem;
}

/* Overline auf Navy-Section → expliziter Gelb-Override (Sektion ist keine
   Impreza-l-section). Font-size kleiner, weil Text hier 29 Zeichen lang ist
   ("29 Standorte · 88 Mitarbeitende") — andere Overlines haben 8-16 Zeichen. */
.bp-bundesweit-section .bp-overline {
	color: var(--color-content-secondary);
	font-size: 0.75rem;
	letter-spacing: 0.02em;
	/* Abstand Overline → H2 (kleinere Overline-Font-Size in dieser Section, daher
	   nicht volle 40px nötig — visuell wirkt etwas weniger besser ausbalanciert). */
	margin-bottom: 1rem;
}
@media (min-width: 1024px) {
	.bp-bundesweit-section .bp-overline {
		font-size: 0.8125rem;
	}
}

/* === Rollen-Liste === */
.bp-bundesweit-section__rollen {
	list-style: none;
	padding: 0;
	margin: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.bp-bundesweit-section__rollen li {
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.bp-bundesweit-rolle {
	display: grid;
	grid-template-columns: 4rem 1fr auto;
	align-items: center;
	gap: 1.25rem;
	padding: 0.75rem 0;
	color: rgba(255, 255, 255, 0.9);
	text-decoration: none;
	transition: color 0.2s ease, transform 0.2s ease;
}
.bp-bundesweit-rolle:hover {
	color: var(--color-content-secondary);
	text-decoration: none;
}
.bp-bundesweit-rolle:hover .bp-bundesweit-rolle__arrow {
	transform: translateX(4px);
	color: var(--color-content-secondary);
	opacity: 1;
}

.bp-bundesweit-rolle__count {
	font-family: var(--h1-font-family);
	font-weight: 300;
	font-size: 1.625rem;
	color: rgba(255, 255, 255, 0.35);
	letter-spacing: -0.02em;
}
.bp-bundesweit-rolle:hover .bp-bundesweit-rolle__count {
	color: var(--color-content-secondary);
}

.bp-bundesweit-rolle__label {
	font-family: var(--font-family);
	font-size: 1.0625rem;
	font-weight: 400;
}

/* Pfeil als CSS-Chevron — identische Geometrie wie .bp-mt-more-arrow
   (Impreza-Akkordeon-Chevron, 90° nach rechts gedreht).
   Transparenz auf dem Container (opacity), NICHT auf der Farbe — sonst
   überlagern sich die Alpha-Werte am Schnittpunkt der beiden Stäbe und
   der Knotenpunkt erscheint heller als die Stäbe selbst. */
.bp-bundesweit-rolle__arrow {
	position: relative;
	display: inline-block;
	width: 1em;
	height: 1em;
	font-size: 1.25rem;
	color: var(--color-content-bg);
	opacity: 0.4;
	transition: color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}
.bp-bundesweit-rolle__arrow::before,
.bp-bundesweit-rolle__arrow::after {
	content: '';
	position: absolute;
	left: 20%;
	width: 60%;
	height: 0.15em;
	background: currentColor;
	border-radius: 1px;
}
.bp-bundesweit-rolle__arrow::before {
	top: 0.262em;
	transform: rotate(45deg);
}
.bp-bundesweit-rolle__arrow::after {
	bottom: 0.262em;
	transform: rotate(-45deg);
}

/* === Optionaler Button (Bundesweit-Sektion, auf Navy-BG) === */
.bp-bundesweit-section__btn {
	display: inline-block;
	margin-top: 2rem;
	padding: 0.75rem 2rem;
	border: 1px solid var(--color-content-secondary);
	border-radius: 9999px;
	color: var(--color-content-secondary);
	font-family: var(--font-family);
	font-size: 0.9375rem;
	font-weight: 500;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}
.bp-bundesweit-section__btn:hover {
	background: var(--color-content-secondary);
	color: var(--color-content-heading);
	text-decoration: none;
}

/* === Map-Spalte === */
.bp-bundesweit-section__map {
	width: 100%;
	position: relative;
	display: flex;
	justify-content: center;
}
.bp-bundesweit-section__map svg,
.bp-bundesweit-section__map .bp-map-inner {
	width: 100%;
	height: auto;
	max-width: 100%;
}
/* Bei full-height: Map-Höhe = 100vh - 2×padding (=8rem), damit Section
   exakt in einen Viewport passt — kein Overflow, kein Scroll. */
.bp-bundesweit-section--full-height .bp-bundesweit-section__map svg {
	max-height: calc(100vh - 8rem);
	max-height: calc(100dvh - 8rem);
}
@media (max-width: 1024px) {
	.bp-bundesweit-section--full-height .bp-bundesweit-section__map svg {
		max-height: 60vh;
	}
}

/* ==================================================================
   ZERTIFIZIERUNGEN-BAND — Polish für nativen us_page_block ID 781
   ==================================================================
   Inhalt + Struktur kommen aus dem Impreza Page Block (Pflege im
   Admin → Page Blocks). Hier nur visuelles Refinement: kompakter
   Container, kleine Logos, grayscale + hover. Selektor scoped via
   .bp-zert-band (vc_row el_class) → keine Auswirkung auf andere
   us_image/Sektionen.
   ================================================================== */

/* Inner-Content schmaler — Header + Logo-Reihe alle zentriert in 720px */
.bp-zert-band > .l-section-h {
	max-width: 800px;
}

/* Logos kompakter: max 80px breit, in Höhe natürlich proportional.
   Vorher: 160-300px (medium-Größe), jetzt klein wie eine Trustbar. */
.bp-zert-band .w-image-h img {
	max-width: 80px;
	width: auto;
	height: auto;
	filter: grayscale(1);
	opacity: 0.65;
	transition: filter 0.3s ease, opacity 0.3s ease;
}
.bp-zert-band .w-image:hover .w-image-h img,
.bp-zert-band .w-image-h:hover img {
	filter: grayscale(0);
	opacity: 1;
}

/* Spalten-Gap kompakter (40px → 28px) für die 5er-Logo-Reihe */
.bp-zert-band .g-cols.cols_5 {
	--columns-gap: 2rem;
}

/* Vertikales Padding leicht reduzieren — height_large fühlt sich für
   einen schmalen Trustbar zu monumental an. */
.bp-zert-band.height_large {
	padding-top: 4rem;
	padding-bottom: 4rem;
}
@media (min-width: 1024px) {
	.bp-zert-band.height_large {
		padding-top: 4rem;
		padding-bottom: 5rem;
	}
}

/* ==================================================================
   STARTSEITE — Einheitliche Section-Abstände
   Native WPBakery: alle vc_rows auf der Homepage haben height="medium"
   (siehe Page 22 Content). Kein CSS-Override nötig — Impreza's eigene
   height_medium-Regel macht das automatisch konsistent.
   ================================================================== */

/* ==================================================================
   STARTSEITE — GIS-Block (2 Buttons side-by-side wie React)
   ================================================================== */

/* ==================================================================
   MENU-DROPDOWN — Kompaktere Sub-Items (Level 2)
   Nur Dropdown-Items, Top-Level bleibt unverändert.
   ================================================================== */
.glass-header .w-nav .w-nav-list.level_2 .w-nav-anchor,
.w-nav.type_desktop .w-nav-list.level_2 .w-nav-anchor {
	/* padding-left=0: Unterpunkt-Text startet flush links mit dem Top-Level-
	   Menüpunkt darüber (nicht eingerückt). */
	padding: 0.25rem 1rem 0.25rem 0 !important;
	line-height: 1 !important;
	font-size: 0.875rem !important;
	min-height: 0 !important;
}
.glass-header .w-nav .w-nav-list.level_2 .w-nav-title,
.w-nav.type_desktop .w-nav-list.level_2 .w-nav-title {
	font-size: 0.875rem !important;
	line-height: 1 !important;
}

/* ═══════════════════════════════════════════════
   EVENTS-LISTING (Shortcode [bp_events_grid])
   ═══════════════════════════════════════════════ */
.bp-events-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media (min-width: 1024px) { .bp-events-grid { grid-template-columns: repeat(2, 1fr); gap: 2.5rem; } }

.bp-events-card {
  background: var(--color-content-bg);
  border: 1px solid var(--color-content-border);
  border-radius: 0.3rem;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.bp-events-card:hover { border-color: var(--color-content-heading); box-shadow: 0 6px 20px rgba(11,11,61,0.08); }
.bp-events-card-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}
.bp-events-card-media {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--color-content-bg-alt);
}
.bp-events-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s;
}
.bp-events-card:hover .bp-events-card-media img { transform: scale(1.05); }
.bp-events-card-badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background: var(--color-content-secondary);
  color: var(--color-content-heading);
  padding: 0.5rem 0.75rem;
  font-family: var(--font-family);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 0.2rem;
}
.bp-events-card-body {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.bp-events-card-titel {
  font-family: var(--h1-font-family);
  font-weight: 300;
  color: var(--color-content-heading);
  font-size: 1.5rem;
  margin: 0 0 0.25rem 0;
}
.bp-events-card-untertitel {
  font-family: var(--h1-font-family);
  font-weight: 300;
  font-style: normal;
  color: var(--color-content-faded);
  font-size: 1rem;
  margin: 0 0 1rem 0;
}
.bp-events-card-next {
  border-left: 3px solid var(--color-content-secondary);
  padding: 0.5rem 0 0.5rem 1rem;
  margin: 0 0 1rem 0;
  background: var(--color-alt-content-bg);
}
.bp-events-card-next-datum {
  font-family: var(--font-family);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-content-heading);
  margin: 0;
}
.bp-events-card-next-ort {
  font-family: var(--font-family);
  font-size: 0.8125rem;
  color: var(--color-content-faded);
  margin: 0.25rem 0 0;
}
.bp-events-card-excerpt {
  font-family: var(--font-family);
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--color-content-faded);
  margin: 0 0 1.25rem;
  flex: 1;
}
.bp-events-card-cta {
  font-family: var(--font-family);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-content-heading);
  letter-spacing: 0.02em;
}
.bp-events-card:hover .bp-events-card-cta { color: var(--color-content-faded); }

.bp-events-empty {
  text-align: center;
  padding: 3rem 0;
  font-family: var(--font-family);
  color: var(--color-content-faded);
}

/* ═══════════════════════════════════════════════
   EVENTS-LISTING — Story-Sektionen (Testimonials, Strip)
   ═══════════════════════════════════════════════ */

/* Testimonials (3 Cards auf navy-Hintergrund) ─── */
.bp-events-testimonials {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media (min-width: 768px)  { .bp-events-testimonials { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .bp-events-testimonials { grid-template-columns: repeat(3, 1fr); gap: 2.5rem; } }
.bp-events-testimonial {
  position: relative;
}
.bp-events-testimonial-icon {
  width: 2.5rem;
  height: 2.5rem;
  fill: rgba(255, 236, 109, 0.25);
  margin: 0 0 1.25rem 0;
  display: block;
}
.bp-events-testimonial-zitat {
  font-family: var(--h1-font-family);
  font-weight: 300;
  font-size: 1.0625rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.92);
  margin: 0 0 1.5rem 0;
  border: 0;
  padding: 0;
  background: none;
}
.bp-events-testimonial-zitat::before,
.bp-events-testimonial-zitat::after { content: none !important; }
.bp-events-testimonial-name {
  font-family: var(--font-family);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--color-content-secondary);
  margin: 0;
}
.bp-events-testimonial-kontext {
  font-family: var(--font-family);
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.5);
  margin: 0.25rem 0 0;
}

/* Impressionen-Streifen ─── */
.bp-events-strip {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  padding: 0 1rem;
  scroll-snap-type: x mandatory;
}
.bp-events-strip::-webkit-scrollbar { display: none; }
.bp-events-strip { scrollbar-width: none; }
.bp-events-strip-item {
  flex: 0 0 auto;
  width: 280px;
  height: 200px;
  overflow: hidden;
  border-radius: 0.3rem;
  scroll-snap-align: start;
}
.bp-events-strip-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ════════════════════════════════════════════════════════════════════════════
   STARTSEITE — Brand-Klassen (Pass 8a, 2026-05-13)
   ─────────────────────────────────────────────────────────────────────────────
   Ersetzt 27 von 31 Inline-CSS-Stellen auf der Startseite (ID 22).
   Alle Brand-Werte über var(--*) — Theme-Options-Änderungen propagieren.
   Brand-Geometrien (Pixel/em/rem) hardcoded an einer Stelle pro Klasse.
   Refs: docs/superpowers/notes/2026-05-13-pass-8a-startseite-tiefe-analyse.md
   ════════════════════════════════════════════════════════════════════════════ */

/* S3: 4× Service-Bubble (Insolvenz, Restrukturierung, Beratung, Treuhand) */
.bp-bubble {
  background: var(--color-header-middle-bg);
  max-width: 240px;
  border-radius: 50%;
  text-align: center;
}

/* S3: 4× Bubble-Label (innerer vc_column mit Text) */
.bp-bubble-label {
  color: var(--color-header-middle-text);
  text-align: left;
  font-size: var(--h6-font-size);   /* war 1.5rem hartkodiert */
  font-weight: 500;                  /* mid-weight, kein Impreza-Token */
  line-height: 1.2;                  /* Brand-spezifisch */
  letter-spacing: 1px;               /* Brand-spezifisch */
  margin-left: -1.25rem;                /* Brand-Geometrie */
}






/* ════════════════════════════════════════════════════════════════════════════
   PASS 8b — GIS-Page + Hinweisgeberportal (2026-05-13)
   ════════════════════════════════════════════════════════════════════════════ */













/* ════════════════════════════════════════════════════════════════════════════
   PASS 8c — Leistungen + Wir + Kontakt (2026-05-13)
   ════════════════════════════════════════════════════════════════════════════ */





/* ════════════════════════════════════════════════════════════════════════════
   PASS 8d — Events + Erfolge + Karriere (2026-05-13)
   ════════════════════════════════════════════════════════════════════════════ */



/* ════════════════════════════════════════════════════════════════════════════
   PASS 8e — Page-Blocks (Footer, Hauptsitz, Ref-Teaser, Zerts, Kontakt-CTA)
   ════════════════════════════════════════════════════════════════════════════ */




/* ═══════════════════ KARRIERE-SEITE (Page 14) ═══════════════════ */

/* Karriere-Werte (S2–S5) — Bild gleich hoch wie Text-Spalte */
.bp-karriere-img-col {
  display: flex !important;
  width: 100%;
}
.bp-karriere-img-col > .vc_column-inner {
  display: flex;
  flex: 1;
  width: 100%;
}
.bp-karriere-img-col .w-image {
  flex: 1;
  display: flex;
  width: 100%;
  height: 100%;
}
.bp-karriere-img-col .w-image-h {
  flex: 1;
  width: 100%;
  height: 100%;
  border-radius: 0.3rem;
  overflow: hidden;
}
.bp-karriere-img-col .w-image-h img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  min-height: 360px;
}

/* Wir-Seite (Page 23): Block 781 „Fachliche Anerkennung" sitzt zwischen
   Podcast (alternate) und Kontakt-CTA. Wenn der Block global im alternate-
   Scheme bleibt, gibt's 2× hellblau hintereinander. Hier den Block-Background
   PAGE-SCOPED auf das Default-Scheme zurücksetzen, damit der Rhythmus stimmt
   (Podcast alt → Zert weiß → CTA alt). Andere Seiten (Leistungen) bleiben
   unberührt. */
body.page-id-23 .l-section.bp-zert-band {
  background: var(--color-content-bg-grad);
}

/* ═══════════════════ LEISTUNGEN-SEITE (Page 25) ═══════════════════ */

/* ─── Designer-Refactor 2026-05-15: Selektoren ohne Original-Pendant ─── */

.bp-overline {
  letter-spacing: 0.5px;
    margin: 0 0 0px 0;
}

.bp-partner-label {
  font-size: 1.6rem;
    color: var(--color-content-heading);
    padding-bottom: 30px;
}

.bp-partner-section:not(.bp-partner-section-gray) {
  background-color: transparent;
}

.bp-partner-quali-label {
  font-size: 1.6rem;
}

/* Partner-Quali-Liste — Compact-Variante (z.B. Sprachen):
   keine vertikalen Abstände zwischen Items, line-height 1.5 wie Fließtext */
.bp-partner-quali-list--compact li {
    margin: 0 !important;
    padding: 0 0 0 0 !important;
    line-height: 1.5 !important;
}

/* ─── Auszeichnungen-Page (Seite 136) ─── */

/* Hero — gleiches Pattern wie single-event Template (navy + height huge + linksbündig).
   H1 darf Container-Breite voll nutzen, max-width 60rem stoppt sehr lange Titles. */

/* Award-Liste: Item-Pattern aus React (links Jahre uppercase, rechts Name + Text, Border-bottom).
   2.5rem Gap zwischen den beiden Spalten — Standard-Impreza-Gap (10px) ist zu eng. */
.bp-award-item {
  padding: 2rem 0;
  border-bottom: 1px solid var(--color-content-border);
  align-items: start;
  --columns-gap: 2.5rem;
}
.bp-award-item:first-of-type {
  padding-top: 0;
}

/* Zertifizierungs-Grid: flex statt grid, damit die unvollständige letzte Reihe (2 Cards) zentriert.
   Impreza setzt .g-cols als grid mit fixen Spalten — wir überschreiben das gezielt für diese Section. */
.bp-zert-grid.g-cols {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.5rem;
}
.bp-zert-grid.g-cols > .vc_column_container {
  flex: 0 0 calc((100% - 3rem) / 3);
  max-width: calc((100% - 3rem) / 3);
  width: auto;
  display: flex;
}
@media (max-width: 1024px) {
  .bp-zert-grid.g-cols > .vc_column_container {
    flex: 0 0 calc((100% - 1.5rem) / 2);
    max-width: calc((100% - 1.5rem) / 2);
  }
}
@media (max-width: 600px) {
  .bp-zert-grid.g-cols > .vc_column_container {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.bp-zert-card > .vc_column-inner {
  background: var(--color-content-bg);
  border: 1px solid var(--color-content-border);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  flex: 1;
  width: 100%;
}
/* Image-Wrapper mit fixer Höhe sodass alle Cards die gleiche Card-Top-Höhe haben */
.bp-zert-image {
  height: 5rem;
  display: flex;
  align-items: center;
  margin-bottom: 1rem;
}
.bp-zert-card .bp-zert-image img,
.bp-zert-card .w-image-h img {
  max-height: 4rem !important;
  max-width: 7rem !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain;
}

/* CTA-Section: Lead-Text zentriert, Buttons via us_hwrapper (Impreza-Flex). */
/* ═══════════════════ Leistungs-Partner-Grid (3-Spalter, Expand) ═══════════════════ */

.bp-leistung-partner-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-top: 1rem;
}
@media (max-width: 1024px) { .bp-leistung-partner-grid { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } }
@media (max-width: 700px)  { .bp-leistung-partner-grid { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; } }

.bp-leistung-partner-grid .bp-leistung-partner-cell[hidden] { display: none; }
.bp-leistung-partner-grid[data-collapsed="0"] .bp-leistung-partner-cell[hidden] { display: block; }

.bp-leistung-partner-expand {
	margin-top: 2rem;
	text-align: left;
}
/* Button nutzt jetzt Impreza Style 11 (.w-btn.us-btn-style_11) — kein eigenes Styling */
.bp-leistung-expand-btn[hidden] { display: none; }

/* ─────────────────────────────────────────────────────────────────────
   STANDORT-SEO-REFACTOR (2026-05-22) — neue Sections
   Impreza-First: Variablen + Theme-Options, keine eigenen Tokens.
   ───────────────────────────────────────────────────────────────────── */

/* Section-Padding-Default (matched bestehende .bp-standort-section) */
.bp-standort-kurzvorstellung,
.bp-standort-trust,
.bp-standort-aktuelles,
.bp-standort-weitere {
	padding: 4rem 0;
}


/* Section-Header (Overline + H2 Pattern) */
.bp-standort-section-header {
	margin-bottom: 3rem;
}
.bp-standort-section-header .bp-overline {
	margin-bottom: 1.5rem;
}
.bp-standort-section-header h2 {
	margin-bottom: 0;
}



/* ─────────────────────────────────────────────────────────────────────
   ERFOLGE-HUB Shortcodes (2026-05-22)
   - [bp_featured_refs]
   - [bp_erfolge_kpis]
   ───────────────────────────────────────────────────────────────────── */

.bp-featured-refs-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}
@media (min-width: 600px) {
	.bp-featured-refs-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
	.bp-featured-refs-grid { grid-template-columns: repeat(3, 1fr); }
}

.bp-featured-ref-card {
	display: flex;
	flex-direction: column;
	color: var(--color-content-heading);
	text-decoration: none;
	background: var(--color-alt-content-bg);
	border-radius: 0.3rem;
	overflow: hidden;
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.bp-featured-ref-card:hover {
	box-shadow: 0 10px 26px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}

.bp-featured-ref-thumb {
	aspect-ratio: 16 / 10;
	overflow: hidden;
}

.bp-featured-ref-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.bp-featured-ref-body {
	padding: 1.25rem 1.25rem 1.5rem;
}

.bp-featured-ref-body h3 {
	font-family: var(--h1-font-family);
	font-size: 1.25rem;
	line-height: 1.35;
	margin: 0 0 0.5rem;
	color: var(--color-content-heading);
}

.bp-featured-ref-card:hover .bp-featured-ref-body h3 {
	color: var(--color-content-secondary);
}

.bp-featured-ref-branche {
	font-size: 0.875rem;
	color: var(--color-content-faded);
	margin: 0;
}

/* KPIs auf Hub-Page (primary-BG, weißer Text) */
.bp-erfolge-kpis-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2.5rem 1rem;
	text-align: center;
}
@media (min-width: 1024px) {
	.bp-erfolge-kpis-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 3rem 2rem;
	}
}

.bp-erfolge-kpi {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.bp-erfolge-kpi-num {
	font-family: var(--h1-font-family);
	font-size: 3.5rem;
	line-height: 1;
	color: var(--color-content-secondary);
	font-weight: 400;
}

@media (max-width: 600px) {
	.bp-erfolge-kpi-num { font-size: 2.5rem; }
}

.bp-erfolge-kpi-label {
	font-size: 0.9375rem;
	letter-spacing: 0.02em;
}
