/* ============================================================
   BDL Onlinejahresbericht 2026 — Site Theme (v4)
   Bootstrap Package 16 Override
   fiveandfriends GmbH 2026
   ============================================================ */

:root {
  --bdl-blue:       #1C4F9B;
  --bdl-blue-dark:  #133770;
  --bdl-blue-light: #4A80C8;
  --bdl-blue-pale:  #d4e0f5;
  --bdl-blue-muted: #eef4fd;
  --bdl-gray:       #444444;
  --bdl-gray-light: #f5f5f5;
  --bdl-white:      #ffffff;
  --bdl-section-pad: clamp(28px, 4vw, 52px);

  --bs-primary:          #1C4F9B;
  --bs-primary-rgb:      28, 79, 155;
  --bs-btn-bg:           #1C4F9B;
  --bs-btn-border-color: #1C4F9B;
  --bs-btn-hover-bg:     #133770;
  --bs-link-color:       #1C4F9B;
  --bs-link-hover-color: #133770;
}

body::before {
  content: "Leasing-Report 2026: Leasing und Handwerk – zwei starke Partner";
  display: block;
  background: var(--bdl-blue);
  color: var(--bdl-white);
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  font-weight: 500;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 11px 1rem;
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 10000;
}

body {
  padding-top: 48px;
  font-family: 'Open Sans', Arial, Helvetica, sans-serif;
  font-size: 15px;
  line-height: 1.65em;
  color: var(--bdl-gray);
}

/* ======================== NAVIGATION ======================== */
.bp-page-header.navbar-mainnavigation {
  background-color: var(--bdl-white) !important;
  border-bottom: 1px solid #e0e0e0;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  padding-top: 0; padding-bottom: 0;
}
.navbar-mainnavigation .nav-link,
.navbar-mainnavigation .nav-link-main {
  color: var(--bdl-gray) !important;
  font-family: 'Open Sans', sans-serif;
  font-size: 13.5px; font-weight: 600;
  padding: 26px 14px !important;
  transition: color 0.2s; text-decoration: none;
}
.navbar-mainnavigation .nav-link:hover,
.navbar-mainnavigation .nav-link-main:hover { color: var(--bdl-blue) !important; }
.navbar-mainnavigation .dropdown-menu { border-top: 3px solid var(--bdl-blue); border-radius: 0; }
.navbar-mainnavigation .nav-item:last-child .nav-link-main {
  background: var(--bdl-blue); color: var(--bdl-white) !important;
  border-radius: 4px; margin: 16px 0 16px 10px; padding: 9px 14px !important; font-size: 13px;
}
.navbar-mainnavigation .nav-item:last-child .nav-link-main:hover { background: var(--bdl-blue-dark); }
.container-mainnavigation { display: flex; align-items: center; justify-content: space-between; }
.navbar-brand { order: 2; margin-right: 0; margin-left: 1rem; }
.navbar-collapse { order: 1; flex-grow: 0 !important; }
.navbar-brand img { max-height: 48px; width: auto; }
.navbar-toggler { border-color: var(--bdl-blue); order: 3; }
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%231C4F9B' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* ======================== HERO ======================== */
.section-default:first-of-type {
  background: linear-gradient(135deg, #eef3fb 0%, #f7f9fd 60%, #fff 100%);
  border-bottom: 1px solid #e5edf8; padding-bottom: 0;
}
.frame-type-header.frame-space-before-none { padding: 60px 0 20px; }
.frame-type-header h1 {
  font-size: clamp(26px, 4vw, 42px); font-weight: 400; color: var(--bdl-blue);
  text-transform: uppercase; letter-spacing: 0.03em; line-height: 1.3; max-width: 800px;
}

/* ======================== BUTTONS ======================== */
.btn-primary {
  background-color: var(--bdl-blue) !important; border-color: var(--bdl-blue) !important;
  color: #fff !important; font-family: 'Open Sans', sans-serif; font-weight: 600;
  font-size: 14px; padding: 10px 22px; border-radius: 3px; text-decoration: none;
}
.btn-primary:hover { background-color: var(--bdl-blue-dark) !important; border-color: var(--bdl-blue-dark) !important; }
.btn-outline-secondary {
  border-color: var(--bdl-blue) !important; color: var(--bdl-blue) !important;
  font-family: 'Open Sans', sans-serif; font-weight: 600; font-size: 14px;
  padding: 10px 22px; border-radius: 3px; text-decoration: none;
}
.btn-outline-secondary:hover { background-color: var(--bdl-blue) !important; color: #fff !important; }

/* ======================== TYPOGRAFIE ======================== */
h1, h2, h3, h4, h5, h6 { font-family: 'Roboto', sans-serif; color: var(--bdl-blue); }
h2 { font-size: 24px; font-weight: 400; line-height: 1.5; }
h3 { font-size: 16px; font-weight: 600; font-family: 'Open Sans', sans-serif; color: var(--bdl-gray); }
a { color: var(--bdl-blue); }
a:hover { color: var(--bdl-blue-dark); }

/* ======================== KPI ======================== */
.bdl-kpi-section { background: var(--bdl-white); }
.bdl-stat-card {
  background: var(--bdl-white); border-radius: 4px; padding: 2rem 1.5rem; text-align: center;
  box-shadow: 0 2px 16px rgba(28,79,155,0.08); border-top: 4px solid var(--bdl-blue-light);
  transition: transform 0.3s ease, box-shadow 0.3s ease; height: 100%;
}
.bdl-stat-card:hover { transform: translateY(-4px); box-shadow: 0 8px 28px rgba(28,79,155,0.16); }
.bdl-stat-number { font-family: 'Roboto', sans-serif; font-size: 2.8rem; font-weight: 700; color: var(--bdl-blue); display: inline; line-height: 1; }
.bdl-stat-suffix { font-family: 'Roboto', sans-serif; font-size: 1.6rem; font-weight: 700; color: var(--bdl-blue-light); }
.bdl-stat-label { display: block; font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.08em; margin-top: 0.7rem; font-family: 'Open Sans', sans-serif; }

/* ======================== FRAMES / SPACING ======================== */
.frame-space-before-small  { padding-top: 2rem; }
.frame-space-before-medium { padding-top: 3.5rem; }
.frame-space-before-large  { padding-top: 5rem; }
.frame-space-after-small   { padding-bottom: 2rem; }
.frame-space-after-medium  { padding-bottom: 3.5rem; }
.frame-space-after-large   { padding-bottom: 5rem; }

/* Text/textmedia CEs: readable max-width */
.frame-inner { max-width: 820px; }

/* HTML CEs (Bootstrap grids, cards, charts) — full container width */
.frame-type-html .frame-inner,
.frame-type-header .frame-inner,
.frame-type-bdl_landing_block .frame-inner,
.frame-type-bdl_landing_quote .frame-inner,
.frame-type-bdl_landing_stats .frame-inner,
.frame-type-bdl_landing_faq .frame-inner,
.frame-type-bdl_landing_people .frame-inner {
  max-width: none;
  width: 100%;
}

/* ======================== SECTION ALTERNATION ======================== */
/* Abwechselnde Sektionshintergründe: ungerade = weiss, gerade = hellgrau */
.section-default:nth-of-type(even) { background-color: var(--bdl-gray-light); }
/* Blue-Sektion für Call-to-Action Rahmen */
.frame-background-primary { background-color: var(--bdl-blue) !important; color: #fff; }
.frame-background-primary h2,
.frame-background-primary h3,
.frame-background-primary p { color: #fff; }
.frame-background-light { background-color: var(--bdl-gray-light) !important; }


/* ======================== ABSCHNITTE ======================== */
.section-blue { background: var(--bdl-blue); color: var(--bdl-white); }
.section-blue h2, .section-blue h3 { color: var(--bdl-white); }
.section-light { background: var(--bdl-gray-light); }

/* ======================== FOOTER ======================== */
.bp-page-footer { background: var(--bdl-blue-dark); color: rgba(255,255,255,0.8); margin-top: 3rem; }
.footer-section-meta { background: #0e2a58; }
.footer-navigation-link, .footer-meta a, .footer-language a { color: rgba(255,255,255,0.65) !important; }
.footer-navigation-link:hover, .footer-meta a:hover { color: rgba(255,255,255,0.9) !important; text-decoration: none; }
.footer-copyright p { font-size: 12px; color: rgba(255,255,255,0.45); }
.scroll-top { background: var(--bdl-blue); border-radius: 50%; }
/* BDL Custom Footer */
.bdl-footer-main { padding: 3rem 0 2rem; }
.bdl-footer-row { gap-y: 2rem; }
.bdl-footer-col { padding-bottom: 1.5rem; }
.bdl-footer-heading {
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: rgba(255,255,255,0.45);
  border-bottom: 1px solid rgba(255,255,255,0.12);
  padding-bottom: 0.5rem; margin-bottom: 0.75rem;
}
.bdl-footer-nav { list-style: none; padding: 0; margin: 0; }
.bdl-footer-nav li { margin-bottom: 0.35rem; }
.bdl-footer-nav a {
  color: rgba(255,255,255,0.75); text-decoration: none;
  font-size: 0.875rem; line-height: 1.5;
  transition: color 0.15s;
}
.bdl-footer-nav a:hover { color: #fff; text-decoration: underline; }
.bdl-footer-social { display: flex; gap: 1rem; align-items: center; }
.bdl-social-icon {
  color: rgba(255,255,255,0.6); transition: color 0.15s;
  display: inline-flex; align-items: center;
}
.bdl-social-icon:hover { color: #fff; }
.bdl-footer-credit {
  font-size: 0.72rem; color: rgba(255,255,255,0.35);
  margin-top: 1.25rem; margin-bottom: 0;
}

/* ======================== RESPONSIVE ======================== */
@media (max-width: 991px) {
  body::before { font-size: 12px; padding: 8px 1rem; letter-spacing: 0.04em; }
  body { padding-top: 40px; }
  .navbar-brand { order: 1; }
  .navbar-collapse { order: 2; width: 100%; }
  .navbar-toggler { order: 3; }
  .navbar-mainnavigation .nav-link,
  .navbar-mainnavigation .nav-link-main { padding: 12px 16px !important; color: var(--bdl-blue) !important; }
  .frame-type-header.frame-space-before-none { padding: 30px 0 10px; }
}

/* ============================================================
   BRANCHENSTIMMEN — STATEMENT CARDS
   ============================================================ */

/* Basis-Karte */
.bdl-statement-card {
  background: var(--bdl-white);
  border-radius: 4px;
  padding: 2rem 2rem 1.5rem;
  margin-bottom: 2.5rem;
  box-shadow: 0 2px 20px rgba(28,79,155,0.07);
  border-top: 3px solid var(--bdl-blue-pale);
  transition: box-shadow 0.25s, transform 0.25s;
}
.bdl-statement-card:hover { box-shadow: 0 8px 32px rgba(28,79,155,0.14); transform: translateY(-2px); }

/* Alt-Karte — hervorgehoben + Foto rechts */
.bdl-statement-card.bdl-alt {
  background: var(--bdl-blue-muted);
  border-top-color: var(--bdl-blue-light);
}
.bdl-statement-card.bdl-alt .row { flex-direction: row-reverse; }
.bdl-statement-card.bdl-alt .col-7 {
  padding-left: 0 !important;
  padding-right: 1.5rem !important;
}

/* Name + Trennlinie */
.bdl-statement-header { margin-bottom: 1rem; }
.bdl-person-name {
  font-family: 'Roboto', sans-serif; font-size: 1.1rem; font-weight: 400;
  color: var(--bdl-blue); margin-bottom: 0.6rem; letter-spacing: 0.01em;
}
.bdl-statement-divider { border: none; border-top: 1px solid var(--bdl-blue-pale); margin: 0; }

/* Foto: explizite 180x180px — kein aspect-ratio, kein height:auto-Problem durch HTML-Attribute */
.bdl-photo-wrap {
  width: 180px;
  min-width: 180px;
  flex-shrink: 0;
}
.bdl-statement-photo {
  width: 180px;
  height: 180px;
  object-fit: cover;
  object-position: top center;
  border-radius: 4px;
  display: block;
}

/* Caption unter Foto */
.bdl-photo-caption { margin-top: 0.65rem; font-size: 0.78rem; line-height: 1.4; }
.bdl-photo-caption strong { display: block; color: var(--bdl-blue); font-weight: 600; }
.bdl-photo-caption span { color: #888; display: block; }

/* Zitat (Legacy für bdl-statement-card — Klasse aktuell nicht mehr in Verwendung) */
.bdl-statement-card .bdl-statement-quote { border: none; padding: 0; margin: 0; }
.bdl-statement-card .bdl-statement-quote p {
  font-size: 0.95rem; line-height: 1.75; color: var(--bdl-gray); margin-bottom: 0;
  font-style: italic; position: relative; padding-left: 1.4rem;
}
.bdl-statement-card .bdl-statement-quote p::before {
  content: '\201E'; color: var(--bdl-blue-pale); font-size: 2.2rem; font-style: normal;
  line-height: 0; vertical-align: -0.5em; position: absolute; left: 0; top: 0.1em;
}

/* Social Share Bar */
.bdl-social-bar {
  display: flex; align-items: center; gap: 0.5rem;
  margin-top: 1.25rem; padding-top: 0.9rem;
  border-top: 1px solid var(--bdl-blue-pale);
}
.bdl-social-bar::before {
  content: 'Teilen:'; font-size: 0.72rem; text-transform: uppercase;
  letter-spacing: 0.06em; color: #aaa; margin-right: 0.25rem; font-family: 'Open Sans', sans-serif;
}
.bdl-social-link {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 50%;
  background-color: var(--bdl-blue-pale);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat; color: var(--bdl-blue) !important;
  transition: background 0.2s, color 0.2s; text-decoration: none !important;
}
.bdl-social-link:hover { background: var(--bdl-blue); color: #fff !important; }

/* ======================== YP-KARTEN ======================== */
.bdl-yp-card {
  background: var(--bdl-gray-light); border-top: 4px solid var(--bdl-blue-light);
  border-radius: 4px; padding: 1.5rem; margin-bottom: 1.5rem; height: 100%;
}
.bdl-yp-photo {
  width: 120px; height: 120px; object-fit: cover;
  border-radius: 50%; margin-bottom: 1rem; display: block;
}

/* ============================================================
   DUMMY-CONTENT MARKIERUNG
   Entfernen: REPLACE bodytext '<div class="bdl-dummy" data-dummy="2025">' mit ''
              + '</div><!-- /bdl-dummy -->' mit ''
   ============================================================ */
.bdl-dummy {
  position: relative;
  outline: 2px dashed #f59e0b;
  outline-offset: 4px;
  border-radius: 2px;
}
.bdl-dummy::after {
  content: '◈ Demo 2025';
  position: absolute; top: -1px; right: -1px;
  background: #f59e0b; color: #fff;
  font-size: 10px; font-family: 'Open Sans', sans-serif; font-weight: 700;
  letter-spacing: 0.05em; padding: 2px 8px;
  border-radius: 0 2px 0 4px; z-index: 100;
  pointer-events: none; line-height: 16px;
}

/* ============================================================
   HOMEPAGE — TEASER KARTEN + EDITORIAL
   ============================================================ */
.bdl-teaser-section { padding: 4rem 0; background: var(--bdl-gray-light); }
.bdl-teaser-section-label {
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--bdl-blue-light); margin-bottom: 0.4rem; display: block;
}
.bdl-teaser-section-headline {
  font-family: 'Roboto', sans-serif; font-size: clamp(20px,2.5vw,30px); font-weight: 400;
  color: var(--bdl-blue); margin-bottom: 2.5rem; line-height: 1.35;
}
.bdl-teaser-card {
  background: var(--bdl-white); border-radius: 4px; padding: 2rem 1.75rem; height: 100%;
  box-shadow: 0 2px 20px rgba(28,79,155,0.07); border-top: 4px solid var(--bdl-blue-pale);
  transition: box-shadow 0.25s, transform 0.25s, border-color 0.25s;
  display: flex; flex-direction: column;
}
.bdl-teaser-card:hover {
  box-shadow: 0 10px 36px rgba(28,79,155,0.15);
  transform: translateY(-4px); border-top-color: var(--bdl-blue);
}
.bdl-teaser-icon { font-size: 1.8rem; margin-bottom: 0.75rem; display: block; line-height: 1; }
.bdl-teaser-title {
  font-family: 'Roboto', sans-serif; font-size: 1.1rem; font-weight: 400;
  color: var(--bdl-blue); margin-bottom: 0.65rem; line-height: 1.4;
}
.bdl-teaser-body { font-size: 0.88rem; color: var(--bdl-gray); line-height: 1.65; flex: 1; margin-bottom: 1rem; }
.bdl-teaser-link {
  color: var(--bdl-blue); font-size: 0.82rem; font-weight: 700;
  text-decoration: none; letter-spacing: 0.02em; align-self: flex-start;
}
.bdl-teaser-link:hover { color: var(--bdl-blue-dark); text-decoration: underline; }
.bdl-editorial-section {
  padding: 4rem 0; background: var(--bdl-white);
  border-bottom: 1px solid var(--bdl-blue-pale);
}
.bdl-editorial-eyebrow {
  display: inline-block; background: var(--bdl-blue); color: #fff;
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  padding: 3px 10px; border-radius: 2px; margin-bottom: 1rem;
}
.bdl-editorial-title {
  font-family: 'Roboto', sans-serif; font-size: clamp(20px,2.5vw,28px); font-weight: 400;
  color: var(--bdl-blue); margin-bottom: 1rem; line-height: 1.4;
}
.bdl-editorial-text { font-size: 0.93rem; color: var(--bdl-gray); line-height: 1.75; margin-bottom: 1.5rem; }
.bdl-portrait-img { width: 100%; border-radius: 4px; object-fit: cover; display: block; }
.bdl-portrait-caption {
  background: var(--bdl-blue-muted); color: var(--bdl-blue-dark);
  padding: 0.6rem 1rem; font-size: 0.8rem; border-radius: 0 0 4px 4px;
  border-top: 1px solid var(--bdl-blue-pale);
}

/* ============================================================
   SEKTION-ÜBERSICHT (Perspektiven, LiP, M&T, Rahmenbedingungen)
   ============================================================ */
.bdl-section-hero {
  background: linear-gradient(135deg, var(--bdl-blue-muted) 0%, var(--bdl-white) 100%);
  padding: 3rem 0 2.5rem; border-bottom: 1px solid var(--bdl-blue-pale);
}
.bdl-section-tag {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bdl-blue, #1C4F9B);
  padding: 0.35rem 0.9rem;
  border: 1px solid rgba(28, 79, 155, 0.25);
  border-radius: 999px;
  background: #fff;
  margin: 0 0 1rem;
}
.bdl-section-title {
  font-family: 'Roboto', sans-serif; font-size: clamp(22px,3vw,40px); font-weight: 400;
  color: var(--bdl-blue); line-height: 1.3; margin-bottom: 1rem;
}
.bdl-section-lead { font-size: 1rem; color: var(--bdl-gray); line-height: 1.7; max-width: 680px; }
.bdl-articles-grid { padding: 3rem 0; }
.bdl-article-card {
  background: var(--bdl-white); border-radius: 4px; overflow: hidden;
  box-shadow: 0 2px 16px rgba(28,79,155,0.07);
  transition: box-shadow 0.25s, transform 0.25s; height: 100%;
  display: flex; flex-direction: column;
}
.bdl-article-card:hover { box-shadow: 0 8px 28px rgba(28,79,155,0.16); transform: translateY(-4px); }
.bdl-article-card-img-placeholder {
  width: 100%; height: 210px; background: var(--bdl-blue-pale);
  display: flex; align-items: center; justify-content: center;
  color: var(--bdl-blue-light); font-size: 3rem;
}
.bdl-article-card-body { padding: 1.5rem; flex: 1; display: flex; flex-direction: column; }
.bdl-article-card-tag {
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--bdl-blue-light); margin-bottom: 0.5rem; display: block;
}
.bdl-article-card-title {
  font-family: 'Roboto', sans-serif; font-size: 1rem; font-weight: 400;
  color: var(--bdl-blue); margin-bottom: 0.6rem; line-height: 1.4; flex: 1;
}
.bdl-article-card-text { font-size: 0.85rem; color: var(--bdl-gray); line-height: 1.6; margin-bottom: 1rem; }
.bdl-article-card-link { font-size: 0.82rem; font-weight: 700; color: var(--bdl-blue); text-decoration: none; }
.bdl-article-card-link:hover { color: var(--bdl-blue-dark); }

/* ============================================================
   ARTIKEL-SEITE LAYOUT
   ============================================================ */
.bdl-article-header {
  background: var(--bdl-blue-muted); padding: 3rem 0 2.5rem;
  border-bottom: 1px solid var(--bdl-blue-pale);
}
.bdl-article-tag {
  display: inline-block; background: var(--bdl-blue); color: #fff;
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  padding: 3px 10px; border-radius: 2px; margin-bottom: 1rem;
}
.bdl-article-title {
  font-family: 'Roboto', sans-serif; font-size: clamp(22px, 3vw, 38px); font-weight: 400;
  color: var(--bdl-blue); line-height: 1.3; margin-bottom: 1rem;
}
.bdl-article-lead { font-size: 1.05rem; color: var(--bdl-gray); line-height: 1.7; max-width: 720px; }
.bdl-article-content { padding: 3rem 0; }
.bdl-article-body { font-size: 0.95rem; line-height: 1.85; color: var(--bdl-gray); }
.bdl-article-body h3 {
  font-family: 'Roboto', sans-serif; font-size: 1.2rem; font-weight: 400;
  color: var(--bdl-blue); margin: 2.25rem 0 0.75rem;
}
.bdl-article-body blockquote {
  border-left: 4px solid var(--bdl-blue-light); padding: 0.75rem 0 0.75rem 1.5rem;
  margin: 2rem 0; color: var(--bdl-blue-dark); font-size: 1.05rem; font-style: italic;
}
.bdl-article-body blockquote cite { font-size: 0.82rem; color: #888; font-style: normal; display: block; margin-top: 0.4rem; }
.bdl-author-box {
  background: var(--bdl-gray-light); border-radius: 4px; padding: 1.5rem; margin-top: 2.5rem;
  display: flex; gap: 1.25rem; align-items: flex-start; border-left: 4px solid var(--bdl-blue);
}
.bdl-author-photo { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.bdl-author-photo-placeholder { width: 80px; height: 80px; border-radius: 50%; background: var(--bdl-blue-pale); flex-shrink: 0; }
.bdl-author-name { font-family: 'Roboto', sans-serif; font-weight: 500; color: var(--bdl-blue); font-size: 0.95rem; margin-bottom: 0.15rem; }
.bdl-author-role { font-size: 0.8rem; color: #888; margin-bottom: 0.5rem; }
.bdl-sidebar-box {
  background: var(--bdl-blue-muted); border-radius: 4px; padding: 1.5rem;
  margin-bottom: 1.5rem; border-left: 4px solid var(--bdl-blue-light);
}
.bdl-sidebar-box-title { font-family: 'Roboto', sans-serif; font-size: 0.9rem; font-weight: 500; color: var(--bdl-blue); margin-bottom: 0.75rem; }
.bdl-sidebar-box ul { padding-left: 1.2rem; margin: 0; }
.bdl-sidebar-box li { font-size: 0.85rem; color: var(--bdl-gray); margin-bottom: 0.4rem; line-height: 1.5; }

/* ============================================================
   PULL-QUOTE & DIVIDER SECTION
   ============================================================ */
.bdl-pullquote-section {
  background: var(--bdl-blue); padding: 3.5rem 0; color: #fff;
}
.bdl-pullquote-section .bdl-pullquote {
  font-family: 'Roboto', sans-serif; font-size: clamp(18px,2vw,26px); font-weight: 400;
  color: #fff; line-height: 1.5; font-style: italic; position: relative; padding-left: 2rem;
}
.bdl-pullquote-section .bdl-pullquote::before {
  content: '\201E'; color: rgba(255,255,255,0.25); font-size: 5rem; font-style: normal;
  line-height: 0; vertical-align: -0.45em; position: absolute; left: 0; top: 0.1em;
}
.bdl-pullquote-section .bdl-pullquote-source { font-size: 0.85rem; color: rgba(255,255,255,0.6); margin-top: 1rem; font-style: normal; }

/* ============================================================
   IMAGE CONTAINERS (v5 — added with image iteration)
   ============================================================ */

/* Teaser card image at the top of homepage cards */
.bdl-teaser-card-img {
  margin: -2rem -1.75rem 1.25rem;
  height: 160px;
  overflow: hidden;
  border-radius: 4px 4px 0 0;
}
.bdl-teaser-card-img img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.35s ease;
}
.bdl-teaser-card:hover .bdl-teaser-card-img img { transform: scale(1.04); }

/* Section card image (overview grids: Perspektiven, LiP, M&T) */
.bdl-section-card-img {
  height: 180px; overflow: hidden;
  margin: -1.5rem -1.5rem 1.25rem;
  border-radius: 4px 4px 0 0;
}
.bdl-section-card-img img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.35s ease;
}
.bdl-section-card:hover .bdl-section-card-img img { transform: scale(1.04); }

/* Article hero image (full-width between header and content) */
.bdl-article-hero-img {
  width: 100%; overflow: hidden;
  max-height: 380px;
}
.bdl-article-hero-img img {
  width: 100%; height: 380px;
  object-fit: cover; display: block;
}

/* Inline article figure */
.bdl-article-figure {
  margin: 2rem 0;
  border-radius: 4px;
  overflow: hidden;
}
.bdl-article-figure img {
  width: 100%; display: block; border-radius: 4px;
}
.bdl-article-figure figcaption {
  font-size: 0.78rem; color: #888;
  margin-top: 0.4rem; line-height: 1.4;
}

/* Editorial portrait image on homepage */
.bdl-editorial-img {
  border-radius: 4px; overflow: hidden;
  box-shadow: 0 4px 30px rgba(28,79,155,0.12);
}
.bdl-editorial-img img {
  width: 100%; display: block;
  object-fit: cover; max-height: 320px;
}

/* ============================================================
   RESPONSIVE FIXES — Mobile (≤ 575px) + Tablet (576–991px)
   ============================================================ */

/* --- Statement cards: resize photo on mobile --- */
@media (max-width: 575px) {
  .bdl-statement-card { padding: 1.25rem 1.25rem 1rem; }
  .bdl-photo-wrap { width: 90px; min-width: 90px; }
  .bdl-statement-photo { width: 90px; height: 90px; }
  .bdl-photo-caption { font-size: 0.7rem; }
  .bdl-statement-card .col-7.ps-4 { padding-left: 0.75rem !important; }
  .bdl-statement-card.bdl-alt .col-7 { padding-right: 0.75rem !important; }
  .bdl-statement-card .bdl-statement-quote p { font-size: 0.85rem; line-height: 1.6; padding-left: 1rem; }

  /* Article hero: shorter on mobile */
  .bdl-article-hero-img { max-height: 220px; }
  .bdl-article-hero-img img { height: 220px; }

  /* Teaser section spacing */
  .bdl-teaser-section { padding: 2.5rem 0; }
  .bdl-editorial-section { padding: 2.5rem 0; }

  /* KPI numbers: slightly smaller on very narrow screens */
  .bdl-stat-number { font-size: 2.2rem; }
  .bdl-stat-suffix { font-size: 1.3rem; }

  /* Article content tighter on mobile */
  .bdl-article-content { padding: 2rem 0; }
  .bdl-article-header { padding: 2rem 0 1.5rem; }
  .bdl-section-hero { padding: 2rem 0 1.5rem; }
}

/* --- Tablet range (576–767px): tweak statement photos --- */
@media (min-width: 576px) and (max-width: 767px) {
  .bdl-photo-wrap { width: 130px; min-width: 130px; }
  .bdl-statement-photo { width: 130px; height: 130px; }
  .bdl-article-hero-img { max-height: 280px; }
  .bdl-article-hero-img img { height: 280px; }
}

/* --- Medium screens (768–991px) --- */
@media (min-width: 768px) and (max-width: 991px) {
  .bdl-article-hero-img { max-height: 320px; }
  .bdl-article-hero-img img { height: 320px; }
}

/* ============================================================
   BDL Chart-Styles (Chart.js)
   ============================================================ */
.bdl-chart-wrap {
  margin: 2rem 0 2.5rem;
  padding: 1.5rem;
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 1px 6px rgba(0,0,0,0.07);
}
.bdl-chart-wrap canvas {
  display: block;
  width: 100% !important;
  max-width: 100%;
}
.bdl-chart-pie canvas {
  max-width: 500px;
  max-height: 400px;
  margin: 0 auto;
}
.bdl-chart-title {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--bdl-gray);
  margin-bottom: 0.75rem;
  margin-top: 1rem;
  text-align: center;
}
.bdl-chart-footer {
  font-size: 0.72rem;
  color: #888;
  margin-top: 0.75rem;
  margin-bottom: 0;
  text-align: center;
}

/* ============================================================
   PHASE 3 VISUAL FIXES (v5 — 2026-04-29)
   ============================================================ */

/* Active nav item — alt (Unterstrich) deaktiviert */ /* DISABLED:
.navbar-mainnavigation .nav-item.active > .nav-link,
.navbar-mainnavigation .nav-item.active > .nav-link-main,
.navbar-mainnavigation .current > .nav-link,
.navbar-mainnavigation .current > .nav-link-main {
  color: var(--bdl-blue) !important;
  border-bottom: 3px solid var(--bdl-blue);
  padding-bottom: calc(26px - 3px) !important;
} */

/* Blockquote styling (matches 2025 OJB) */
blockquote, .blockquote {
  border-left: 4px solid var(--bdl-blue-light);
  padding: 0.75rem 0 0.75rem 1.5rem;
  margin: 1.5rem 0;
  font-style: italic;
  color: var(--bdl-blue-dark);
  font-size: 1.05rem;
}

/* Inline image float (2025 OJB: pull-left/right ~35% width) */
.ce-bodytext img.pull-left,
.ce-bodytext .image-left img { float: left; width: 35%; margin: 0 1.5rem 1rem 0; border-radius: 3px; }
.ce-bodytext img.pull-right,
.ce-bodytext .image-right img { float: right; width: 35%; margin: 0 0 1rem 1.5rem; border-radius: 3px; }
@media (max-width: 575px) {
  .ce-bodytext img.pull-left,
  .ce-bodytext img.pull-right,
  .ce-bodytext .image-left img,
  .ce-bodytext .image-right img { float: none; width: 100%; margin: 0 0 1rem 0; }
}

/* Figure caption styling */
figcaption, .ce-bodytext figcaption { font-size: 0.78rem; color: #888; margin-top: 0.35rem; line-height: 1.4; }

/* Table styling */
.ce-bodytext table, .frame-type-html table {
  width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 0.9rem;
}
.ce-bodytext th, .frame-type-html th {
  background-color: var(--bdl-blue); color: #fff;
  padding: 0.6rem 0.85rem; text-align: left; font-weight: 600; font-size: 0.85rem;
}
.ce-bodytext td, .frame-type-html td {
  padding: 0.55rem 0.85rem; border-bottom: 1px solid #e9ecef; vertical-align: top;
}
.ce-bodytext tr:last-child td, .frame-type-html tr:last-child td { border-bottom: none; }
.ce-bodytext tr:nth-child(even) td, .frame-type-html tr:nth-child(even) td { background-color: #f8f9fa; }

/* Progress bars (used in Kundenbeispiele) */
.progress { background-color: #e9ecef; border-radius: 2px; }
.progress-bar { background-color: var(--bdl-blue); border-radius: 2px; transition: width 0.6s ease; }

/* Alert warning (Platzhalter-Banner) — dezenter */
.alert-warning {
  background-color: #fff3cd; border-color: #ffc107; color: #856404;
  font-size: 0.8rem; border-radius: 3px;
}

/* Ensure Bootstrap cards within html CEs use full width */
.frame-type-html .row { margin-left: 0; margin-right: 0; }
.frame-type-html .container { max-width: 100% !important; padding-left: 0; padding-right: 0; }

/* Section-hero und articles-grid: kein überschüssiges Padding im Container */
.bdl-section-hero .container,
.bdl-articles-grid .container { padding-left: 1rem; padding-right: 1rem; }

/* Rahmenbedingungen Bootstrap-Card-Grid: korrekte Margins */
.frame-type-html .card { border-radius: 4px; }
.frame-type-html .shadow-sm { box-shadow: 0 2px 16px rgba(28,79,155,0.08) !important; }

/* KPI/Stats numbers auf Startseite */
.bdl-kpi-section .row { gap: 0; }

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* Bootstrap Package Sub-Footer hide */
footer .footer-section-meta { display: none !important; }
.footer-language-navigation { display: none !important; }

/* ============================================================
   HOMEPAGE HERO (v6 — 2026-04-29)
   ============================================================ */
.bdl-hero-section {
  margin: 0;
  padding: 0;
}
.bdl-hero-img-wrap {
  position: relative;
  width: 100%;
  height: 480px;
  overflow: hidden;
}
.bdl-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
}
.bdl-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(19,55,112,0.82) 0%, rgba(28,79,155,0.5) 60%, rgba(28,79,155,0.15) 100%);
  display: flex;
  align-items: center;
}
.bdl-hero-content {
  max-width: 620px;
  color: #fff;
  padding: 2rem 0;
}
.bdl-hero-tag {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  margin-bottom: 0.75rem;
}
.bdl-hero-title {
  font-family: 'Roboto', sans-serif;
  font-size: clamp(26px, 4vw, 46px);
  font-weight: 300;
  color: #fff;
  line-height: 1.25;
  margin-bottom: 1rem;
  text-transform: none;
  letter-spacing: -0.01em;
}
.bdl-hero-lead {
  font-size: 1rem;
  color: rgba(255,255,255,0.88);
  line-height: 1.7;
  margin-bottom: 1.75rem;
  max-width: 520px;
}
.bdl-hero-actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.btn-hero-outline {
  display: inline-block;
  border: 2px solid rgba(255,255,255,0.75);
  color: #fff !important;
  background: transparent;
  font-family: 'Open Sans', sans-serif;
  font-weight: 600;
  font-size: 14px;
  padding: 9px 22px;
  border-radius: 3px;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s;
}
.btn-hero-outline:hover {
  background: rgba(255,255,255,0.15);
  border-color: #fff;
}
/* Remove the old first-section gradient now that we have a hero */
.section-default:first-of-type {
  background: var(--bdl-white) !important;
  border-bottom: none;
}
@media (max-width: 767px) {
  .bdl-hero-img-wrap { height: 320px; }
  .bdl-hero-overlay {
    background: linear-gradient(180deg, rgba(19,55,112,0.72) 0%, rgba(28,79,155,0.6) 100%);
    align-items: flex-end;
    padding-bottom: 2rem;
  }
  .bdl-hero-content { max-width: 100%; padding: 0; }
  .bdl-hero-title { font-size: clamp(22px, 6vw, 30px); }
}

/* ============================================================
   v7 FIXES — 2026-04-29
   ============================================================ */

/* --- Hero: container padding fix (global .frame-type-html rule removes it) --- */
/* v8 — 2026-04-30: Hero-Container an BP page-container max-width angeglichen,
   damit Hero-Text linksbündig zum übrigen Seitencontent steht (vorher 88px Versatz). */
.bdl-hero-overlay .container {
  padding-left: clamp(20px, 3vw, 40px) !important;
  padding-right: clamp(20px, 3vw, 40px) !important;
  max-width: 1320px !important;
}

/* Mehr vertikale Atemluft + breiterer Content für die längere Headline */
.bdl-hero-content {
  padding: 2.75rem 0 !important;
  max-width: 660px !important;
}
.bdl-hero-lead {
  max-width: 560px !important;
  font-size: 1.0625rem !important;
}


/* ============================================================
   LOGO — Clean rewrite (replaces v7–v10 logo attempts)
   Root cause: Bootstrap 5 sets .navbar-collapse{flex-basis:100%}
   which squeezes the brand. Fix: auto flex-basis + flex-shrink:0
   on brand. Logo on RIGHT (order:2), nav on LEFT (order:1).
   ============================================================ */

/* 1. Collapse takes only its content width (not 100%) */
.navbar-mainnavigation .navbar-collapse {
  flex-grow: 0 !important;
  flex-basis: auto !important;
  width: auto !important;
}

/* 2. Brand never shrinks; sits to the right of nav links */
.navbar-mainnavigation .navbar-brand,
.navbar-mainnavigation a.navbar-brand {
  order: 2 !important;
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
  height: 80px !important;
  padding: 0 0 0 1.5rem !important;
  margin: 0 !important;
}

/* 3. Logo image: reset ALL BP positioning, show at 48px max */
.navbar-mainnavigation .navbar-brand img,
.navbar-mainnavigation .navbar-brand-image img {
  position: static !important;
  top: auto !important;
  transform: none !important;
  max-height: 72px !important;
  height: 72px !important;
  width: auto !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* 4. Hide inverted variant (same file anyway, just clean up) */
.navbar-mainnavigation .navbar-brand .navbar-brand-logo-inverted {
  display: none !important;
}

/* ============================================================
   SHARING OVERLAY
   ============================================================ */
.bdl-share-bar {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 8000;
  display: flex;
  flex-direction: column;
  border-radius: 4px 0 0 4px;
  overflow: hidden;
  box-shadow: -2px 2px 12px rgba(28,79,155,0.18);
}
.bdl-share-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  background: var(--bdl-blue);
  color: rgba(255,255,255,0.85) !important;
  text-decoration: none !important;
  transition: background 0.2s, color 0.2s;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}
.bdl-share-link:last-child { border-bottom: none; }
.bdl-share-link:hover { background: var(--bdl-blue-dark); color: #fff !important; }
.bdl-share-link svg { display: block; flex-shrink: 0; }
@media (max-width: 991px) { .bdl-share-bar { display: none; } }

/* ============================================================
   STICKY NAVBAR + SCROLL-SHRINK
   ============================================================ */
#page-header.bp-page-header.navbar-mainnavigation {
  position: sticky;
  top: 48px;
  z-index: 9999;
  transition: background 0.35s ease, box-shadow 0.35s ease;
  will-change: transform;
}

/* Scrolled state: frosted glass */
#page-header.navbar-scrolled {
  background: rgba(255, 255, 255, 0.78) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  box-shadow: 0 3px 28px rgba(28, 79, 155, 0.18) !important;
}
/* Nav links tighter */
#page-header.navbar-scrolled .nav-link,
#page-header.navbar-scrolled .nav-link-main {
  padding: 13px 14px !important;
}
/* BDL-Website button */
#page-header.navbar-scrolled .nav-item:last-child .nav-link-main {
  padding: 7px 12px !important;
  margin: 9px 0 9px 10px !important;
}
/* Brand shrinks */
#page-header.navbar-scrolled .navbar-brand,
#page-header.navbar-scrolled a.navbar-brand {
  height: 56px !important;
  transition: height 0.35s ease;
}
#page-header.navbar-scrolled .navbar-brand img {
  max-height: 44px !important;
  transition: max-height 0.35s ease;
}

@media (max-width: 991px) {
  #page-header.bp-page-header.navbar-mainnavigation { top: 40px; }
}

/* ============================================================
   v9 POLISH — 2026-04-30
   Mikro-Verfeinerungen für Lebendigkeit ohne Aufdringlichkeit
   ============================================================ */

/* --- Teaser-Link Pfeil: slidet beim Hover 4px nach rechts ------- */
.bdl-teaser-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  transition: color 0.2s ease, gap 0.2s ease;
}
.bdl-teaser-card:hover .bdl-teaser-link {
  gap: 0.6em;
}

/* --- Hero-Buttons: subtiler Lift + smoother Transition ---------- */
.btn-hero-outline {
  transition: background 0.25s ease, border-color 0.25s ease,
              transform 0.2s ease, box-shadow 0.25s ease;
  will-change: transform;
}
.btn-hero-outline:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}
/* Erster Hero-Button (gefüllt, "Markt & Zahlen") */
.btn-hero-primary,
.bdl-hero-actions .btn-primary {
  transition: background 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease !important;
  will-change: transform;
}
.btn-hero-primary:hover,
.bdl-hero-actions .btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
}

/* --- Smooth scrolling für Anker-Links --------------------------- */
html {
  scroll-behavior: smooth;
}

/* --- Editorial-Lead: gleiche Lesbarkeits-Größe wie Hero-Lead ---- */
.bdl-editorial-lead,
.bdl-editorial-section p {
  font-size: 1.0625rem;
  line-height: 1.7;
}

/* --- Footer-Heading: bessere typo Hierarchie -------------------- */
.bdl-footer-heading {
  letter-spacing: 0.08em;
  font-size: 0.78rem;
}

/* --- Footer-Link: Underline subtiler (kein dickes underline) ---- */
.bdl-footer-nav a {
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

/* ============================================================
   v10 — 2026-05-01
   ARTICLE HERO + STICKY TOC
   ============================================================ */

/* --- Article-Hero (full-bleed, Bild + Overlay) ----------------- */
/* full-bleed-Trick: aus Bootstrap-Container ausbrechen via 100vw + negative margin */
.bdl-article-hero {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  height: clamp(220px, 32vw, 380px);
  overflow: hidden;
  margin-top: -1px;             /* schließt minimalen Spalt zur Navbar */
  margin-bottom: 2.5rem;
  background: var(--bdl-blue);
}
/* Wenn Article-Hero präsent: Breadcrumb-Spalt vor main reduzieren
   und alten bdl-article-header ausblenden (visuelle Doppelung) */
body:has(.bdl-article-hero) main#page-content {
  padding-top: 0;
}
body:has(.bdl-article-hero) .bdl-article-header {
  display: none;
}
.bdl-article-hero-img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 25%;
  display: block;
}

/* Page-spezifische Hero-Crop-Overrides für Personenfotos.
   Höhe des Bilds = clamp(220px,32vw,380px); Default 25% zentriert das Gesicht meist gut.
   Bei stark abgeschnittenen Personen-Heros nach oben verschieben. */
body.page-8 .bdl-article-hero-img { background-position: center 12%; }   /* Connemann */
body.page-9 .bdl-article-hero-img { background-position: center 8%; }    /* Dittrich */
body.page-11 .bdl-article-hero-img { background-position: center 18%; }  /* Branchenstimmen (3 Personen) */
body.page-26 .bdl-article-hero-img { background-position: center 8%; }   /* Steuerreform / Maaß */
body.page-31 .bdl-article-hero-img { background-position: center 60%; }   /* KB Hidding KI-Hero */
body.page-32 .bdl-article-hero-img { background-position: center 60%; }  /* KB TAT Lieferwagen */
body.page-33 .bdl-article-hero-img { background-position: center 15%; }  /* KB Wohlfart */
body.page-34 .bdl-article-hero-img { background-position: center 65%; }  /* KB Zuercher KI-Hero Drucker */
body.page-35 .bdl-article-hero-img { background-position: center 40%; }  /* KB Sax Schneidemaschine */
body.page-36 .bdl-article-hero-img { background-position: center 60%; }   /* KB Kunder KI-Hero Tempering */
body.page-37 .bdl-article-hero-img { background-position: center 30%; }  /* KB Weingut Ress */
.bdl-article-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(19, 55, 112, 0.15) 0%,
    rgba(19, 55, 112, 0.60) 70%,
    rgba(19, 55, 112, 0.85) 100%);
  display: flex;
  align-items: flex-end;
}
.bdl-article-hero-overlay .container {
  width: 100%;
  padding-left: clamp(20px, 3vw, 40px);
  padding-right: clamp(20px, 3vw, 40px);
  max-width: 1320px;
  padding-bottom: 2rem;
}
.bdl-article-hero-content {
  color: #fff;
  max-width: 760px;
}
.bdl-article-hero-tag {
  display: inline-block;
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.28);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 20px;
  margin-bottom: 0.85rem;
}
.bdl-article-hero-title {
  font-family: 'Roboto', sans-serif;
  font-size: clamp(26px, 3.8vw, 44px);
  font-weight: 300;
  color: #fff;
  line-height: 1.2;
  margin: 0 0 0.65rem;
  letter-spacing: -0.01em;
}
.bdl-article-hero-subtitle {
  font-size: 1.0625rem;
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.5;
  margin: 0;
  max-width: 620px;
  font-weight: 400;
}

/* Wenn Article-Hero präsent: Page-Title-Wiederholung im Content vermeiden */
.bdl-article-hero ~ main .bdl-article-title:first-child,
.bdl-article-hero ~ main .bdl-article-header > .bdl-article-title {
  /* kein Hide, nur subtilere Größe wenn schon im Hero */
  font-size: clamp(20px, 2vw, 26px);
  margin-top: 0;
}

@media (max-width: 767px) {
  .bdl-article-hero {
    height: clamp(180px, 50vw, 260px);
    margin-bottom: 1.5rem;
  }
  .bdl-article-hero-overlay {
    background: linear-gradient(180deg,
      rgba(19, 55, 112, 0.30) 0%,
      rgba(19, 55, 112, 0.85) 100%);
    padding-bottom: 1rem;
  }
  .bdl-article-hero-overlay .container {
    padding-bottom: 1.25rem;
  }
}

/* --- Sticky TOC (Floating, rechts, ab 1200px) ------------------- */
.bdl-toc-floating {
  position: fixed;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 230px;
  max-height: 70vh;
  overflow-y: auto;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(28, 79, 155, 0.10);
  border-radius: 6px;
  box-shadow: 0 4px 22px rgba(28, 79, 155, 0.10);
  padding: 1.1rem 1.2rem;
  z-index: 50;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.85rem;
  line-height: 1.5;
  /* Damit's nicht mit Sharing-Bar kollidiert: Sharing wandert nach links */
}
body:has(.bdl-toc-floating) .bdl-share-bar {
  right: auto !important;
  left: 16px !important;
}
.bdl-toc-heading {
  font-family: 'Roboto', sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bdl-blue);
  margin: 0 0 0.7rem;
}
.bdl-toc-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-left: 2px solid rgba(28, 79, 155, 0.10);
}
.bdl-toc-list li { margin: 0; }
.bdl-toc-list a {
  display: block;
  padding: 0.4rem 0.8rem;
  color: rgba(68, 68, 68, 0.85);
  text-decoration: none;
  border-left: 2px solid transparent;
  margin-left: -2px;
  transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
  font-size: 0.83rem;
  line-height: 1.4;
  border-radius: 0 3px 3px 0;
}
.bdl-toc-list a:hover {
  color: var(--bdl-blue);
  background: rgba(28, 79, 155, 0.04);
}
.bdl-toc-list a.active {
  color: var(--bdl-blue);
  border-left-color: var(--bdl-blue);
  font-weight: 600;
  background: rgba(28, 79, 155, 0.04);
}
.bdl-toc-list .bdl-toc-h3 a {
  padding-left: 1.6rem;
  font-size: 0.78rem;
  color: rgba(68, 68, 68, 0.7);
}

/* TOC nicht überlappen mit Sticky-Navbar */
.bdl-toc-list a {
  scroll-margin-top: 140px;
}

/* Auf Tablets/Mobile: TOC ausblenden, Share-Bar zurück nach rechts */
@media (max-width: 1199px) {
  .bdl-toc-floating { display: none; }
  body:has(.bdl-toc-floating) .bdl-share-bar {
    right: 16px !important;
    left: auto !important;
  }
}

/* Bei aktiver TOC: Content-Container left-aligned (statt zentriert), damit
   der rechte Rand nicht hinter der TOC-Sidebar verschwindet.
   TOC ist 230px breit + 16px right-offset → reservierte Spalte 260px. */
@media (min-width: 1200px) {
  /* Nur unsere bdl-bleed-Sektionen rücken nach links — BP-Standard-Container bleiben zentriert */
  body:has(.bdl-toc-floating) .bdl-bleed > .container {
    max-width: min(1100px, calc(100vw - 280px)) !important;
    margin-left: clamp(20px, 3vw, 40px) !important;
    margin-right: auto !important;
  }
  /* Pull-Quote: zentriert innerhalb des verkürzten Containers, 720px max */
  body:has(.bdl-toc-floating) .bdl-pullquote {
    max-width: 720px;
  }
  /* Optional: BP-Standard-Container (außerhalb bdl-bleed) — auch left-aligned bei TOC,
     damit Charts/Texte rechts genug Platz lassen */
  body:has(.bdl-toc-floating) main#page-content > .section-default .container {
    max-width: min(1100px, calc(100vw - 280px)) !important;
    margin-left: clamp(20px, 3vw, 40px) !important;
    margin-right: auto !important;
  }
}

/* Anchors brauchen scroll-margin damit sticky Navbar nicht überdeckt */
:target,
[id]:target {
  scroll-margin-top: 140px;
}


/* ============================================================
   v11 — 2026-05-01
   ITERATION 3: SECTION-RHYTHMIK (full-bleed + Tonwechsel)
   Ziel: Magazin-Charakter wie 2025er, ohne den Refresh aufzugeben.
   Redaktion-Klassen, die in HTML-CEs einfach genutzt werden können.
   ============================================================ */

/* --- Full-Bleed-Wrapper: bricht aus dem Bootstrap-Container aus -- */
.bdl-bleed {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: clamp(3rem, 6vw, 5rem) 0;
  position: relative;
}

/* --- Drei Tonwerte für Section-Rhythmik ------------------------- */
.bdl-bleed--white { background: #ffffff; }
.bdl-bleed--pale  { background: var(--bdl-blue-pale, #e8f0fa); }
.bdl-bleed--gray  { background: #f5f6f8; }

/* --- Akzent-Section: BDL-Blau Background mit weißem Text -------- */
.bdl-bleed--accent {
  background: var(--bdl-blue);
  color: #fff;
}
.bdl-bleed--accent h1,
.bdl-bleed--accent h2,
.bdl-bleed--accent h3,
.bdl-bleed--accent h4,
.bdl-bleed--accent a:not(.btn) {
  color: #fff !important;
}
.bdl-bleed--accent .bdl-section-tag,
.bdl-bleed--accent .bdl-teaser-section-label {
  color: rgba(255, 255, 255, 0.78);
}

/* --- Bild-Section: Background-Image mit Overlay ----------------- */
.bdl-bleed--image {
  color: #fff;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  isolation: isolate;
}
.bdl-bleed--image::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(19, 55, 112, 0.5) 0%, rgba(19, 55, 112, 0.78) 100%);
  z-index: -1;
}
.bdl-bleed--image .container { position: relative; }
.bdl-bleed--image h1,
.bdl-bleed--image h2,
.bdl-bleed--image h3,
.bdl-bleed--image p {
  color: #fff;
}

/* --- Inneres Spacing innerhalb der bdl-bleed Sektion ------------ */
/* IMPORTANT: BP setzt im Layout-Default .container { max-width: 100% } auf
   Frame-Level, was unser bleed-Container plattmacht. Mit !important durchsetzen. */
.bdl-bleed > .container,
.bdl-bleed > div > .container,
.bdl-bleed .container {
  max-width: 1320px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(20px, 3vw, 40px) !important;
  padding-right: clamp(20px, 3vw, 40px) !important;
}

/* --- Abstände zwischen aufeinanderfolgenden Bleed-Sektionen ----- */
.bdl-bleed + .bdl-bleed {
  margin-top: 0;
}

/* --- Section-Title-Pattern (im Bleed-Wrapper) ------------------- */
.bdl-bleed .bdl-section-tag {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bdl-blue-light, #4a80c8);
  margin-bottom: 0.6rem;
}
.bdl-bleed--accent .bdl-section-tag,
.bdl-bleed--image .bdl-section-tag {
  color: rgba(255, 255, 255, 0.78);
}
.bdl-bleed h2.bdl-section-headline {
  font-family: 'Roboto', sans-serif;
  font-size: clamp(22px, 2.6vw, 32px);
  font-weight: 400;
  line-height: 1.3;
  color: var(--bdl-blue);
  margin-bottom: 1.5rem;
  max-width: 760px;
}
.bdl-bleed--accent h2.bdl-section-headline,
.bdl-bleed--image h2.bdl-section-headline {
  color: #fff;
}

/* --- Image-Beside-Text: 2-Spalt-Layout (analog 2025er) ---------- */
.bdl-feature-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: center;
}
.bdl-feature-row--reverse {
  direction: rtl;
}
.bdl-feature-row--reverse > * {
  direction: ltr;
}
.bdl-feature-row__media {
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background-color: var(--bdl-blue-pale);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
.bdl-feature-row__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.bdl-feature-row__body p {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--bdl-gray, #444);
  margin-bottom: 1rem;
}
/* --- CTA (dezent prominent) ------------------------------------- */
/* Greift überall auf .bdl-feature-cta außer der --large-Variante.   */
/* Style: Outline-Pill mit BDL-Blau Border + Hover-Fill.             */
.bdl-feature-cta:not(.bdl-feature-cta--large) {
  display: inline-block;
  padding: 0.55rem 1.15rem;
  margin-top: 0.5rem;
  border: 1.5px solid var(--bdl-blue, #003a78);
  border-radius: 4px;
  background: transparent;
  color: var(--bdl-blue, #003a78);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.bdl-feature-cta:not(.bdl-feature-cta--large):hover {
  background: var(--bdl-blue, #003a78);
  color: #fff !important;
  border-color: var(--bdl-blue, #003a78);
  transform: translateY(-1px);
}
.bdl-feature-cta:not(.bdl-feature-cta--large)::after {
  content: none; /* Pfeil ist bereits inline im HTML — kein zweiter über ::after */
}

@media (max-width: 767px) {
  .bdl-feature-row { grid-template-columns: 1fr; }
  .bdl-feature-row--reverse { direction: ltr; }
}

/* --- Pull-Quote (Magazin-Zitat) --------------------------------- */
.bdl-pullquote {
  position: relative;
  max-width: 880px;
  margin: 0 auto;
  padding: 2rem 0 2rem 4rem;
}
.bdl-pullquote::before {
  content: '\201E'; /* unteres Anführungszeichen, deutsch */
  position: absolute;
  left: 0;
  top: -1rem;
  font-family: Georgia, serif;
  font-size: clamp(80px, 10vw, 140px);
  line-height: 1;
  color: var(--bdl-blue);
  opacity: 0.18;
  font-weight: 700;
}
.bdl-bleed--accent .bdl-pullquote::before,
.bdl-bleed--image .bdl-pullquote::before {
  color: #fff;
  opacity: 0.32;
}
.bdl-pullquote__text {
  font-family: 'Roboto', sans-serif;
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 300;
  line-height: 1.45;
  letter-spacing: -0.005em;
  color: var(--bdl-blue);
  margin-bottom: 1.25rem;
}
.bdl-bleed--accent .bdl-pullquote__text,
.bdl-bleed--image .bdl-pullquote__text {
  color: #fff;
}
.bdl-pullquote__author {
  display: block;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--bdl-blue);
  letter-spacing: 0.02em;
}
.bdl-pullquote__role {
  display: block;
  font-size: 0.85rem;
  color: var(--bdl-gray, #666);
  margin-top: 0.15rem;
  font-weight: 400;
}
.bdl-bleed--accent .bdl-pullquote__author,
.bdl-bleed--accent .bdl-pullquote__role,
.bdl-bleed--image .bdl-pullquote__author,
.bdl-bleed--image .bdl-pullquote__role {
  color: rgba(255, 255, 255, 0.88);
}

@media (max-width: 767px) {
  .bdl-pullquote { padding: 1rem 0 1rem 2.5rem; }
  .bdl-pullquote::before { top: -0.5rem; font-size: 70px; }
}

/* --- Bild-Banner (Streifen mit Bild + Caption-Overlay) ---------- */
.bdl-banner {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  height: clamp(180px, 28vw, 320px);
  background-size: cover;
  background-position: center;
  position: relative;
  display: flex;
  align-items: flex-end;
  margin-block: clamp(2rem, 4vw, 3.5rem);
  isolation: isolate;
}
.bdl-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(19, 55, 112, 0.65) 100%);
  z-index: -1;
}
.bdl-banner__caption {
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 clamp(20px, 3vw, 40px) clamp(1.25rem, 2.5vw, 2rem);
  color: #fff;
}
.bdl-banner__caption-tag {
  display: inline-block;
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.28);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 4px 12px;
  border-radius: 16px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 0.6rem;
}
.bdl-banner__caption-title {
  font-family: 'Roboto', sans-serif;
  font-size: clamp(20px, 2.5vw, 30px);
  font-weight: 300;
  line-height: 1.25;
  margin: 0;
  color: #fff;
}
.bdl-banner__caption-credit {
  position: absolute;
  bottom: 0.5rem;
  right: clamp(20px, 3vw, 40px);
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.65);
}

/* --- Auto-Section-Rhythmik für BP frame-default Sektionen ------- */
/* Default-Verhalten: dezenter Tonwechsel zwischen Sektionen,
   ohne Inhalte zu verändern. Nur einzelne Wechsel, nicht zu invasiv. */
main#page-content > .section-default + .section-default {
  /* Visueller Abstand zwischen aufeinanderfolgenden default-Sektionen */
}
/* Optional: jede zweite section-default leicht eingefärbt,
   nur wenn sie keinen eigenen Tonwert via .bdl-bleed* hat */
main#page-content > .section-default:nth-of-type(even):not(:has(.bdl-bleed)) {
  /* dezenter Hauch — auskommentiert für jetzt, weil zu invasiv;
     Stefan kann es bewusst per .bdl-bleed--gray pro Sektion anwenden */
}

/* --- Wenn ein bdl-bleed direkt unter dem Hero steht ------------- */
.bdl-article-hero + .bdl-bleed,
.bdl-article-hero + * .bdl-bleed:first-child {
  margin-top: 0;
}


/* ============================================================
   v12 — 2026-05-01
   ITERATION 4: MOBILE-OPTIMIERUNGEN
   Verfeinerungen für 360-575px Viewports — fokussiert auf neue
   Iteration-3-Komponenten und ältere Hero/Topbar/Footer.
   ============================================================ */

/* --- Topbar Mobile: Title kleiner, damit er nicht umbricht ------ */
@media (max-width: 575px) {
  body::before {
    font-size: 11px !important;
    letter-spacing: 0.04em !important;
    padding: 0 12px !important;
    line-height: 40px !important;
    height: 40px !important;
  }
  body { padding-top: 40px !important; }
}

/* --- Hero Mobile: vertikales Padding und Tag-Position ----------- */
@media (max-width: 575px) {
  .bdl-article-hero {
    height: clamp(180px, 50vw, 240px);
  }
  .bdl-article-hero-content { max-width: 100%; }
  .bdl-article-hero-title {
    font-size: clamp(20px, 5.5vw, 26px);
    line-height: 1.25;
  }
  .bdl-article-hero-subtitle {
    font-size: 0.92rem;
    line-height: 1.45;
  }
}

/* --- bdl-bleed Mobile: kompakteres vertikales Padding ----------- */
@media (max-width: 575px) {
  .bdl-bleed {
    padding: 2.25rem 0;
  }
  .bdl-bleed h2.bdl-section-headline {
    font-size: 1.25rem;
    margin-bottom: 1rem;
  }
}

/* --- Pull-Quote Mobile: weniger Indent, kleineres Glyph --------- */
@media (max-width: 575px) {
  .bdl-pullquote {
    padding: 0.75rem 0 0.75rem 2rem;
  }
  .bdl-pullquote::before {
    top: -0.25rem;
    font-size: 56px;
  }
  .bdl-pullquote__text {
    font-size: 1.0625rem;
    line-height: 1.5;
  }
  .bdl-pullquote__author {
    font-size: 0.875rem;
  }
  .bdl-pullquote__role {
    font-size: 0.8rem;
  }
}

/* --- Feature-Row Mobile: konsistenter Abstand zwischen Bild & Text */
@media (max-width: 767px) {
  .bdl-feature-row {
    gap: 1.25rem;
  }
  .bdl-feature-row__media {
    aspect-ratio: 16 / 9;
  }
}

/* --- Banner Mobile: kleinere Caption, mehr Bildanteil ----------- */
@media (max-width: 575px) {
  .bdl-banner {
    height: clamp(160px, 50vw, 220px);
    margin-block: 1.5rem;
  }
  .bdl-banner__caption-title {
    font-size: 1.0625rem;
    line-height: 1.3;
  }
  .bdl-banner__caption-tag {
    font-size: 0.65rem;
    padding: 3px 10px;
  }
}

/* --- Footer Mobile: zusätzlicher vertikaler Abstand zwischen Spalten */
@media (max-width: 767px) {
  .bdl-footer-col + .bdl-footer-col {
    margin-top: 2rem;
  }
  .bdl-footer-heading.mt-4 {
    margin-top: 1.75rem !important;
  }
}

/* --- Sticky Topbar bei sehr kleinem Header-Offset --------------- */
@media (max-width: 991px) {
  #page-header.bp-page-header.navbar-mainnavigation { top: 40px; }
}

/* --- Hero-Buttons Mobile: full-width statt nebeneinander --------- */
@media (max-width: 480px) {
  .bdl-hero-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }
  .bdl-hero-actions .btn,
  .bdl-hero-actions a {
    text-align: center;
    width: 100%;
  }
}

/* --- Demo-Box "Demo 2025" Mobile: Badge-Position fixieren -------- */
@media (max-width: 575px) {
  .bdl-dummy::after {
    font-size: 9px;
    padding: 1px 6px;
    line-height: 14px;
  }
}

/* --- Stat-Cards Mobile: kompaktere Höhe ------------------------- */
@media (max-width: 575px) {
  .bdl-stat-card {
    padding: 1.25rem 0.85rem;
  }
  .bdl-stat-card .bdl-stat-value {
    font-size: 1.75rem;
  }
}

/* --- Generischer Mobile-Container-Padding-Override -------------- */
@media (max-width: 575px) {
  .container,
  .bdl-bleed > .container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* ============================================================
   YP / Branchenstimmen: zusätzliche Typo-Helfer
   ============================================================ */

/* Frage als Lead-In über der Antwort */
.bdl-statement-question {
  font-size: 1.05rem;
  line-height: 1.45;
  margin: 1.25rem 0 0.85rem;
  color: var(--bdl-text, #1c2330);
}

/* Rolle/Position kursiv direkt unter dem Namen — Legacy-Fallback */
.bdl-statement-role {
  margin: -0.25rem 0 1rem;
  font-size: 0.95rem;
  line-height: 1.5;
  color: #4a5568;
}

/* Antwort als Zitat (Branchenstimmen & YP) — schlanke Variante --- */
blockquote.bdl-statement-quote {
  position: relative;
  margin: 0.5rem 0 1.4rem;
  padding: 0.1rem 0 0.2rem 1.6rem;
  border: none;
  background: transparent;
  border-radius: 0;
  font-family: 'Roboto', sans-serif;
  font-size: 1rem;
  line-height: 1.7;
  color: #2c3543;
  font-style: normal;
  quotes: "„" "\201C" "‚" "\2018";
}
blockquote.bdl-statement-quote::before {
  content: "„";
  position: absolute;
  left: 0;
  top: -0.4rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.8rem;
  line-height: 1;
  color: var(--bdl-blue, #003a78);
  opacity: 0.55;
  pointer-events: none;
}
blockquote.bdl-statement-quote p {
  margin: 0 0 0.7rem;
}
blockquote.bdl-statement-quote p:last-child {
  margin-bottom: 0;
}

/* ----------- Statements-Layout (page-11 Branchenstimmen, page-12 YPs) ----------- */
/* Spaltenmodell: Bild 1/3, Text 2/3 — explizit für diese beiden Seiten */
body.page-11 .frame-type-textmedia .textmedia-left,
body.page-12 .frame-type-textmedia .textmedia-left {
  grid-template-columns: 1fr 2fr !important;
  align-items: start !important;
}
body.page-11 .frame-type-textmedia .textmedia-right,
body.page-12 .frame-type-textmedia .textmedia-right {
  grid-template-columns: 2fr 1fr !important;
  align-items: start !important;
}

/* Gallery-Container: overflow:visible, damit figcaption darunter sichtbar ist.
   Crop-Verhalten (4:3 + cover) verschieben wir auf das innere <picture>/<img>. */
body.page-11 .frame-type-textmedia .textmedia-item.textmedia-gallery,
body.page-12 .frame-type-textmedia .textmedia-item.textmedia-gallery {
  aspect-ratio: auto !important;
  overflow: visible !important;
  background: transparent !important;
  border-radius: 0 !important;
  position: relative !important;
}
body.page-11 .frame-type-textmedia .textmedia-gallery figure,
body.page-12 .frame-type-textmedia .textmedia-gallery figure {
  margin: 0;
  display: block;
}

/* FIX: Legacy-Regel ".textmedia-gallery > div { position: absolute; inset: 0 }"
   schließt das Bild aus dem Flow aus und kollabiert die Gallery auf 0 Höhe,
   sodass die Sharing-Bar im whitespace verschwindet. Für die Statement-Seiten
   wieder Normal-Flow erzwingen, inkl. .gallery-row und .gallery-item: kein
   aspect-Trick / padding-bottom, sondern volle Bild+figcaption-Höhe. */
body.page-11 .frame-type-textmedia .textmedia-item.textmedia-gallery > div,
body.page-12 .frame-type-textmedia .textmedia-item.textmedia-gallery > div,
body.page-11 .frame-type-textmedia .textmedia-item.textmedia-gallery > a,
body.page-12 .frame-type-textmedia .textmedia-item.textmedia-gallery > a,
body.page-11 .frame-type-textmedia .textmedia-item.textmedia-gallery .ce-bodytext,
body.page-12 .frame-type-textmedia .textmedia-item.textmedia-gallery .ce-bodytext,
body.page-11 .frame-type-textmedia .textmedia-gallery .gallery-row,
body.page-12 .frame-type-textmedia .textmedia-gallery .gallery-row,
body.page-11 .frame-type-textmedia .textmedia-gallery .gallery-item,
body.page-12 .frame-type-textmedia .textmedia-gallery .gallery-item {
  position: static !important;
  inset: auto !important;
  display: block !important;
  height: auto !important;
  padding-bottom: 0 !important;
  aspect-ratio: auto !important;
  overflow: visible !important;
}
body.page-11 .frame-type-textmedia .textmedia-gallery figure picture,
body.page-12 .frame-type-textmedia .textmedia-gallery figure picture {
  display: block;
  aspect-ratio: 4 / 3;
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
  background-color: var(--bdl-blue-pale, #e8eef5);
}
body.page-11 .frame-type-textmedia .textmedia-gallery figure picture img,
body.page-12 .frame-type-textmedia .textmedia-gallery figure picture img,
body.page-11 .frame-type-textmedia .textmedia-gallery figure > img,
body.page-12 .frame-type-textmedia .textmedia-gallery figure > img {
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block;
  aspect-ratio: 4 / 3 !important;
}

/* Vita als figcaption — klein, kursiv, grau, sichtbar unterm Bild */
body.page-11 .frame-type-textmedia figcaption,
body.page-12 .frame-type-textmedia figcaption,
body.page-11 .frame-type-textmedia figcaption.caption,
body.page-12 .frame-type-textmedia figcaption.caption {
  display: block !important;
  position: static !important;
  margin-top: 0.7rem;
  padding: 0 0.15rem;
  font-family: 'Roboto', sans-serif;
  font-size: 0.85rem;
  line-height: 1.5;
  color: #555;
  font-style: italic;
  opacity: 1;
  visibility: visible;
}

/* Mobile (1-spaltig) — figure und Text untereinander */
@media (max-width: 767px) {
  body.page-11 .frame-type-textmedia .textmedia-left,
  body.page-11 .frame-type-textmedia .textmedia-right,
  body.page-12 .frame-type-textmedia .textmedia-left,
  body.page-12 .frame-type-textmedia .textmedia-right {
    grid-template-columns: 1fr !important;
  }
}

/* ----------- Sharing-Leiste pro Statement ----------- */
.bdl-share {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  margin: 0.9rem 0 0;
  padding: 0.75rem 0 0;
  border-top: 1px solid rgba(0, 58, 120, 0.12);
}
.bdl-share__label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #888;
  margin-right: 0.1rem;
}
.bdl-share__item {
  display: inline-flex;
}
.bdl-share__item a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: transparent;
  color: var(--bdl-blue, #003a78);
  border: 1px solid rgba(0, 58, 120, 0.25);
  text-decoration: none !important;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.15s ease;
}
.bdl-share__item a:hover,
.bdl-share__item a:focus-visible {
  background: var(--bdl-blue, #003a78);
  color: #fff;
  border-color: var(--bdl-blue, #003a78);
  transform: translateY(-1px);
}
.bdl-share__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
}
.bdl-share__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
/* Screenreader-only label (Icon-Only-Buttons) */
.bdl-share__text {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}

/* ============================================================
   YP-Video-Embed (Jan Köberle, Markus Thomann)
   ============================================================ */
.bdl-yp-video-wrapper {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #0d1421;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 6px 28px rgba(0, 0, 0, 0.18);
}

.bdl-yp-video-wrapper--full {
  margin-top: 2rem;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

.bdl-yp-video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* Wenn das Video die Stelle des Bildes einnimmt (Jan Köberle): an feature-row__media-Grid anpassen */
.bdl-feature-row__media:has(.bdl-yp-video-wrapper) {
  background: transparent !important;
  padding: 0;
}

.bdl-feature-row__media .bdl-yp-video-wrapper {
  aspect-ratio: auto;
  height: 100%;
  min-height: 320px;
}

/* ============================================================
   Kundenbeispiele: Article-Hero + Story-Layout
   ============================================================ */

/* Container für Story-Text (schmaler als bdl-bleed default) */
.bdl-narrow {
  max-width: 760px !important;
  margin-left: auto;
  margin-right: auto;
}

/* Article-Hero über bdl-bleed--image */
.bdl-bleed--image .bdl-article-headline {
  font-family: var(--bdl-font, "Roboto"), system-ui, sans-serif;
  font-weight: 300;
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.15;
  color: #fff;
  margin: 0.5rem 0 1rem;
  max-width: 900px;
}

.bdl-bleed--image .bdl-article-lead {
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(1.05rem, 1.6vw, 1.35rem);
  font-weight: 300;
  line-height: 1.55;
  max-width: 760px;
  margin: 0;
}

.bdl-section-tag--light {
  color: #fff;
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.32);
  backdrop-filter: blur(6px);
}

.bdl-bleed--image {
  padding-top: clamp(60px, 8vw, 100px) !important;
  padding-bottom: clamp(60px, 8vw, 100px) !important;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* Teaser-Lead direkt unter dem Hero in der Story */
.bdl-article-teaser {
  font-size: 1.15rem;
  line-height: 1.55;
  color: #4a5568;
  font-weight: 400;
  border-left: 4px solid var(--bdl-blue, #003a78);
  padding: 0.25rem 0 0.25rem 1.25rem;
  margin: 0 0 2rem;
}

/* Inline-Figure mit Bildunterschrift */
.bdl-figure {
  margin: 0 auto;
  max-width: 1100px;
  text-align: center;
}

.bdl-figure-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.10);
}

.bdl-figure figcaption {
  margin-top: 0.85rem;
  font-size: 0.92rem;
  color: #6b7280;
  font-style: italic;
}

/* Info-Box (Projekt im Überblick) */
.bdl-info-box {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-left: 4px solid var(--bdl-blue, #003a78);
  padding: 1.5rem 1.75rem;
  border-radius: 8px;
}

.bdl-info-box h3 {
  margin: 0 0 0.85rem;
  font-size: 1.15rem;
  color: var(--bdl-blue, #003a78);
}

.bdl-info-box ul {
  margin: 0;
  padding-left: 1.25rem;
  list-style-type: disc;
}

.bdl-info-box li {
  margin: 0.35rem 0;
  line-height: 1.5;
}

/* Back-Link zur Übersicht */
.bdl-back-link {
  margin: 1rem 0 0;
  font-size: 0.95rem;
}

.bdl-back-link a {
  color: var(--bdl-blue, #003a78);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}

.bdl-back-link a:hover {
  opacity: 0.7;
}

/* Video-Embed (16:9 Responsive) */
.bdl-video-embed {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: 12px;
  background: #000;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
}

.bdl-video-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ============================================================
   Marktbericht 2025: Stats + Chart-Helfer
   ============================================================ */
.bdl-stat-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.5rem;
  max-width: 1100px;
  margin: 0 auto;
}

.bdl-chart-subtitle {
  font-size: 1rem;
  color: #6b7280;
  margin: 0 0 1rem;
  text-align: center;
}

.bdl-chart-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  margin: 1.5rem 0;
}

@media (min-width: 900px) {
  .bdl-chart-grid {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
}

.bdl-chart-grid > div {
  min-width: 0;
}

/* ============================================================
   Pull-Quote: Default-Styling für <p> und <footer>
   (Fallback wenn kein __text/__author Markup verwendet wird)
   ============================================================ */
.bdl-pullquote > p {
  font-family: 'Roboto', sans-serif;
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 300;
  line-height: 1.45;
  letter-spacing: -0.005em;
  color: var(--bdl-blue, #003a78);
  margin: 0 0 1.25rem;
  font-style: normal;
}

.bdl-pullquote > footer {
  font-size: 0.92rem;
  color: #6b7280;
  font-style: normal;
}

.bdl-pullquote > footer strong {
  display: block;
  color: var(--bdl-blue, #003a78);
  font-weight: 600;
  letter-spacing: 0.02em;
  font-size: 0.95rem;
  margin-bottom: 0.15rem;
}

.bdl-bleed--accent .bdl-pullquote > p,
.bdl-bleed--image .bdl-pullquote > p,
.bdl-bleed--accent .bdl-pullquote > footer,
.bdl-bleed--image .bdl-pullquote > footer,
.bdl-bleed--accent .bdl-pullquote > footer strong,
.bdl-bleed--image .bdl-pullquote > footer strong {
  color: #fff;
}
/* ============================================================
   BDL Frame-Classes für Bootstrap Package Frame-System.
   Werden ausgewählt im BE-Tab "Erscheinungsbild" → "Layout" (frame_class).
   BP rendert diese als <div class="frame ... frame-bdl-gray ...">.
   ============================================================ */

/* Volle Breite (Full-Bleed) für alle BDL-Sektionen */
.frame-bdl-gray,
.frame-bdl-white,
.frame-bdl-pale,
.frame-bdl-accent,
.frame-bdl-image {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-top: var(--bdl-section-pad);
    padding-bottom: var(--bdl-section-pad);
}

/* Container innerhalb der Frames wieder zentriert */
.frame-bdl-gray > .frame-container,
.frame-bdl-white > .frame-container,
.frame-bdl-pale > .frame-container,
.frame-bdl-accent > .frame-container,
.frame-bdl-image > .frame-container {
    max-width: 1320px;
    margin: 0 auto;
    padding-left: clamp(20px, 3vw, 40px);
    padding-right: clamp(20px, 3vw, 40px);
}

.frame-bdl-gray  { background: #f5f6f8; }
.frame-bdl-white { background: #ffffff; }
.frame-bdl-pale  { background: var(--bdl-blue-pale, #e8f0fa); }

.frame-bdl-accent {
    background: var(--bdl-blue, #003a78);
    color: #ffffff;
}
.frame-bdl-accent h1,
.frame-bdl-accent h2,
.frame-bdl-accent h3,
.frame-bdl-accent h4,
.frame-bdl-accent a:not(.btn) { color: #ffffff; }
.frame-bdl-accent .bdl-section-tag {
    background: rgba(255, 255, 255, 0.16);
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.32);
}

.frame-bdl-image {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
    padding-top: var(--bdl-section-pad);
    padding-bottom: var(--bdl-section-pad);
}

/* ============================================================
   textmedia als Feature-Row, wenn Frame-Class gesetzt ist
   ============================================================ */

.frame-bdl-gray .ce-textpic.ce-left,
.frame-bdl-white .ce-textpic.ce-left,
.frame-bdl-pale .ce-textpic.ce-left,
.frame-bdl-gray .ce-textpic.ce-right,
.frame-bdl-white .ce-textpic.ce-right,
.frame-bdl-pale .ce-textpic.ce-right {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(1.5rem, 4vw, 4rem);
    align-items: center;
}

.frame-bdl-gray .ce-textpic.ce-right .ce-gallery,
.frame-bdl-white .ce-textpic.ce-right .ce-gallery,
.frame-bdl-pale .ce-textpic.ce-right .ce-gallery {
    order: 2;
}

.frame-bdl-gray .ce-textpic .ce-gallery img,
.frame-bdl-white .ce-textpic .ce-gallery img,
.frame-bdl-pale .ce-textpic .ce-gallery img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 4px;
    display: block;
}

@media (max-width: 767px) {
    .frame-bdl-gray .ce-textpic.ce-left,
    .frame-bdl-white .ce-textpic.ce-left,
    .frame-bdl-pale .ce-textpic.ce-left,
    .frame-bdl-gray .ce-textpic.ce-right,
    .frame-bdl-white .ce-textpic.ce-right,
    .frame-bdl-pale .ce-textpic.ce-right {
        grid-template-columns: 1fr;
    }
    .frame-bdl-gray .ce-textpic.ce-right .ce-gallery,
    .frame-bdl-white .ce-textpic.ce-right .ce-gallery,
    .frame-bdl-pale .ce-textpic.ce-right .ce-gallery {
        order: 0;
    }
}

/* ============================================================
   BP element-header in BDL-Frames mit BDL-Headline-Styling
   ============================================================ */

.frame-bdl-gray .element-header,
.frame-bdl-white .element-header,
.frame-bdl-pale .element-header {
    font-family: 'Roboto', sans-serif;
    line-height: 1.25;
    color: var(--bdl-blue, #003a78);
    margin: 0 0 1.25rem;
    font-weight: 400;
    max-width: 760px;
}

.frame-bdl-gray h2.element-header,
.frame-bdl-white h2.element-header,
.frame-bdl-pale h2.element-header {
    font-size: clamp(26px, 3vw, 38px);
    font-weight: 300;
    letter-spacing: -0.01em;
    margin: 0.5rem 0 1.5rem;
}

.frame-bdl-gray h3.element-header,
.frame-bdl-white h3.element-header,
.frame-bdl-pale h3.element-header {
    font-size: clamp(20px, 2.2vw, 28px);
    font-weight: 500;
    margin: 0.5rem 0 1rem;
}

.frame-bdl-accent .element-header,
.frame-bdl-image .element-header {
    color: #fff;
}

.element-header span {
    /* span um Text - keine eigenen Style nötig, erbt von h-Tag */
    display: inline;
}

/* ============================================================
   BP14 textmedia (mit Bild + Text 50/50) — als Feature-Row
   Container auf 1200px erweitert + Grid-Layout
   ============================================================ */

/* textmedia-CEs in BDL-Frames brauchen mehr Breite als Standard-820px */
.frame-type-textmedia .frame-inner,
.frame-type-image .frame-inner {
    max-width: 1200px;
}

/* Grid-Layout für textmedia mit Bild links/rechts */
.frame-type-textmedia .textmedia-left,
.frame-type-textmedia .textmedia-right {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 4vw, 4.5rem);
    align-items: center;
}

/* Bild rechts: media-Spalte als 2. Spalte */
.frame-type-textmedia .textmedia-right .textmedia-item.textmedia-gallery {
    order: 2;
}

/* Bilder selbst: 4:3, full-width, sauberer Crop */
.frame-type-textmedia .textmedia-gallery {
    border-radius: 4px;
    overflow: hidden;
    background-color: var(--bdl-blue-pale, #e8eef5);
}
.frame-type-textmedia .textmedia-gallery img,
.frame-type-textmedia .textmedia-gallery picture,
.frame-type-textmedia .textmedia-gallery .image,
.frame-type-textmedia .textmedia-gallery > div {
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}

/* textmedia-above (Bild oben, Bild voll-breit) */
.frame-type-textmedia .textmedia-above .textmedia-gallery,
.frame-type-textmedia .textmedia-below .textmedia-gallery {
    margin: 0 auto 1.5rem;
    max-width: 880px;
}
.frame-type-textmedia .textmedia-above .textmedia-gallery img,
.frame-type-textmedia .textmedia-below .textmedia-gallery img {
    aspect-ratio: 16 / 9;
}

/* Mobile: 1-Spalten */
@media (max-width: 767px) {
    .frame-type-textmedia .textmedia-left,
    .frame-type-textmedia .textmedia-right {
        grid-template-columns: 1fr;
    }
    .frame-type-textmedia .textmedia-right .textmedia-item.textmedia-gallery {
        order: 0;
    }
}

/* Tag-Label über der Headline (bei card-style textmedia) */
.frame-type-textmedia .frame-bdl-section-tag,
.frame-type-textmedia .bdl-section-tag {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--bdl-blue, #003a78);
    margin-bottom: 0.5rem;
}

/* Statement-Question (in Branchenstimmen/YPs) */
.frame-type-textmedia .textmedia-text .bdl-statement-question {
    font-weight: 600;
    color: var(--bdl-blue-dark, #002951);
    margin-bottom: 1rem;
}
.frame-type-textmedia .textmedia-text .bdl-statement-role {
    margin-top: 1rem;
    font-style: italic;
    color: var(--bdl-gray, #666);
    font-size: 0.95rem;
}

/* ============================================================
   FIX: Bilder in textmedia-Cards füllen den 4:3-Container aus
   ============================================================ */
.frame-type-textmedia .textmedia-item.textmedia-gallery {
    aspect-ratio: 4 / 3;
    position: relative;
    overflow: hidden;
    border-radius: 4px;
    background-color: var(--bdl-blue-pale, #e8eef5);
}
.frame-type-textmedia .textmedia-item.textmedia-gallery img {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover;
    display: block;
    aspect-ratio: auto !important;
}
/* Wrapper-divs (TYPO3 image gallery wrappers) durchsichtig */
.frame-type-textmedia .textmedia-item.textmedia-gallery .ce-bodytext,
.frame-type-textmedia .textmedia-item.textmedia-gallery > div,
.frame-type-textmedia .textmedia-item.textmedia-gallery > a {
    position: absolute;
    inset: 0;
    display: block;
}

/* textmedia-above/below: NICHT cropped, Bild bleibt im Verhältnis */
.frame-type-textmedia .textmedia-above .textmedia-item.textmedia-gallery,
.frame-type-textmedia .textmedia-below .textmedia-item.textmedia-gallery {
    aspect-ratio: auto;
    margin: 0 auto 1.5rem;
}
.frame-type-textmedia .textmedia-above .textmedia-item.textmedia-gallery img,
.frame-type-textmedia .textmedia-below .textmedia-item.textmedia-gallery img {
    position: static;
    width: 100% !important;
    height: auto !important;
    object-fit: contain;
}

/* ============================================================
   FIX 2: frame-inner-Breite für textmedia explizit erhöhen
   ============================================================ */
.frame-type-textmedia .frame-inner {
    max-width: 1200px !important;
}
.frame-type-image .frame-inner {
    max-width: 1200px !important;
}
/* Bei textmedia-above/below soll der Text trotzdem lesbar bleiben */
.frame-type-textmedia .textmedia-above,
.frame-type-textmedia .textmedia-below {
    max-width: 880px;
    margin-left: auto;
    margin-right: auto;
}
/* Bei text-CEs (ohne Bild) bleiben 820px für Lesbarkeit */
.frame-type-text .frame-inner,
.frame-type-bdl_pullquote .frame-inner,
.frame-type-bdl_infobox .frame-inner {
    max-width: 820px;
}

/* ============================================================
   FIX 3: gallery-Container füllt Grid-Spalte komplett
   ============================================================ */
.frame-type-textmedia .textmedia-left,
.frame-type-textmedia .textmedia-right {
    width: 100%;
}
.frame-type-textmedia .textmedia-item.textmedia-gallery {
    width: 100%;
    min-width: 0;
}
/* Auch alle inneren Wrapper full-width */
.frame-type-textmedia .gallery-row,
.frame-type-textmedia .gallery-item,
.frame-type-textmedia .image,
.frame-type-textmedia .image-embed-item {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    min-width: 0;
    display: block;
}

/* ============================================================
   FIX 4: Grid-Items full-width (BP-Default-100% reicht nicht)
   ============================================================ */
.frame-type-textmedia .textmedia-left > .textmedia-item,
.frame-type-textmedia .textmedia-right > .textmedia-item {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
}

/* ============================================================
   FIX 5: textmedia-above/below (kein 50/50-Bild-Layout) auf 820px
   Damit Text bei nicht-Card-textmedia gute Lesebreite hat
   ============================================================ */
.frame-type-textmedia:has(.textmedia-above) .frame-inner,
.frame-type-textmedia:has(.textmedia-below) .frame-inner {
    max-width: 820px !important;
}

/* ============================================================
   FIX 6: object-position für Personen-Cards etwas nach oben
   Default object-fit: cover zentriert vertikal; bei Portraits
   wird oft der Kopf zu weit oben angeschnitten.
   ============================================================ */
.frame-type-textmedia .textmedia-item.textmedia-gallery img {
    object-position: center 30%;
}

/* ============================================================
   STARTSEITE — Hero-Block + Stat-Counter
   ============================================================ */
.bdl-home-hero {
    max-width: 880px;
    margin: 0 auto;
    padding: clamp(2.5rem, 5vw, 5rem) 0 clamp(1.5rem, 3vw, 3rem);
    text-align: left;
}
.bdl-home-hero .bdl-section-tag {
    display: inline-block;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--bdl-blue, #003a78);
    background: var(--bdl-blue-pale, #e8eef5);
    padding: 0.4rem 1rem;
    border-radius: 4px;
    margin-bottom: 1.75rem;
}
.bdl-home-hero-title {
    font-family: 'Roboto', sans-serif;
    font-weight: 300;
    font-size: clamp(38px, 5.5vw, 64px);
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--bdl-blue, #003a78);
    margin: 0 0 1.75rem;
}
.bdl-home-hero-lead {
    font-size: clamp(17px, 1.6vw, 21px);
    line-height: 1.6;
    color: #333;
    margin-bottom: 1.25rem;
    max-width: 780px;
}
.bdl-home-hero .bdl-feature-cta--large {
    display: inline-block;
    margin-top: 1.5rem;
    font-size: 1.1rem;
    font-weight: 600;
    padding: 0.85rem 1.6rem;
    background: var(--bdl-blue, #003a78);
    color: #fff !important;
    border-radius: 6px;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.2s ease;
}
.bdl-home-hero .bdl-feature-cta--large:hover {
    background: var(--bdl-blue-dark, #002951);
    transform: translateY(-1px);
}
.bdl-home-hero .bdl-feature-cta--large::after {
    display: none; /* Pfeil ist inline im Text */
}

/* ----------- Stat-Counter -------------- */
.bdl-home-stats {
    max-width: 1200px;
    margin: 0 auto;
    padding: clamp(2rem, 4vw, 4rem) 0;
    text-align: center;
}
.bdl-home-stats-headline {
    font-family: 'Roboto', sans-serif;
    font-weight: 300;
    font-size: clamp(28px, 3vw, 42px);
    color: var(--bdl-blue, #003a78);
    margin: 0 0 2.5rem;
    letter-spacing: -0.01em;
}
.bdl-home-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(1.5rem, 3vw, 3rem);
    margin-bottom: 2rem;
}
.bdl-home-stat {
    padding: 1.5rem 1rem;
}
.bdl-home-stat-value {
    font-family: 'Roboto', sans-serif;
    font-weight: 700;
    font-size: clamp(34px, 4.5vw, 58px);
    line-height: 1.05;
    color: var(--bdl-blue, #003a78);
    margin-bottom: 0.75rem;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}
.bdl-home-stat-label {
    font-size: 0.95rem;
    line-height: 1.45;
    color: #555;
    font-weight: 500;
}
.bdl-home-stats-cta {
    margin-top: 1rem;
}

@media (max-width: 767px) {
    .bdl-home-stats-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* ============================================================
   Verlinkte Headlines in textmedia-Cards (BP element-header > a)
   sollen NICHT wie Standard-Links aussehen — kein Underline,
   gleiche Farbe wie nicht-verlinkte Headlines.
   ============================================================ */
.frame-type-textmedia .element-header a,
.frame-type-textmedia .element-header a:link,
.frame-type-textmedia .element-header a:visited,
.frame-bdl-gray .element-header a,
.frame-bdl-white .element-header a,
.frame-bdl-pale .element-header a {
    color: inherit;
    text-decoration: none;
    border-bottom: none;
}
.frame-type-textmedia .element-header a:hover,
.frame-bdl-gray .element-header a:hover,
.frame-bdl-white .element-header a:hover,
.frame-bdl-pale .element-header a:hover {
    color: var(--bdl-blue-dark, #002951);
    text-decoration: none;
}
.frame-type-textmedia .element-header a span,
.frame-bdl-gray .element-header a span,
.frame-bdl-white .element-header a span,
.frame-bdl-pale .element-header a span {
    text-decoration: none;
    border-bottom: none;
}

/* ============================================================

/* ============================================================

/* ============================================================
   HEADER-MENU v5 (27.05.2026) — kennt BP-Theme-Defaults
   - BP-eigener Underline (.nav-link-main:before) wird DEAKTIVIERT
   - BP-eigener Chevron (.nav-link-indicator:before) bleibt unverändert
   - Active: blauer 5px-Punkt unter dem Text
   - Hover: 2px-Strich in BDL-Blau erscheint smooth (via opacity)
   - Start[href="/"] kein Active-Marker außer Seite=Start
   - 992–1199px → Burger
   ============================================================ */

/* Base: nav-item flex-row no-wrap */
.navbar-mainnavigation .nav-item {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
}

/* Mittlerer Viewport: schmaleres Padding */
@media (min-width: 992px) and (max-width: 1199px) {
  .navbar-mainnavigation .nav-link,
  .navbar-mainnavigation .nav-link-main {
    padding: 26px 8px !important;
    font-size: 12.5px;
  }
}

/* Burger früher (<1200px) */
@media (min-width: 992px) and (max-width: 1199px) {
  .navbar-mainnavigation .navbar-toggler { display: block !important; }
  .navbar-mainnavigation .navbar-collapse:not(.show) { display: none !important; }
  .navbar-mainnavigation .navbar-collapse.show { flex-basis: 100%; width: 100%; order: 4; }
  .navbar-mainnavigation .navbar-nav { flex-direction: column !important; width: 100%; }
  .navbar-mainnavigation .nav-item { width: 100%; }
  .navbar-mainnavigation .nav-link,
  .navbar-mainnavigation .nav-link-main { padding: 12px 16px !important; color: var(--bdl-blue) !important; }
}

/* ----- BP-Underline-:before via opacity-Tuning steuern ----- */
/* BP definiert das :before-Strich-Element. Wir nutzen es kontrolliert: */
/* - Active: KEINE Anzeige (wir wollen nur den Punkt) */
/* - Hover: Anzeige in BDL-Blau */
.navbar-mainnavigation .nav-link.nav-link-main:before {
  background: var(--bdl-blue) !important;
  height: 2px !important;
}
.navbar-mainnavigation .nav-link:not(.nav-link-toggle).active:before,
.navbar-mainnavigation .nav-link:not(.nav-link-toggle).show:before {
  opacity: 0 !important;   /* Aktiv-Strich AUS, wir nehmen den Punkt */
}
.navbar-mainnavigation .nav-link:not(.nav-link-toggle):hover:before,
.navbar-mainnavigation .nav-link:not(.nav-link-toggle):focus-visible:before {
  opacity: 1 !important;   /* Hover-Strich AN */
}

/* ----- Aktivzustand: nur Punkt + Farbe + Bold ----- */
.navbar-mainnavigation .nav-link-main.active,
.navbar-mainnavigation .nav-link.active {
  color: var(--bdl-blue) !important;
  font-weight: 700 !important;
  border-bottom: 0 !important;
  position: relative;
}
.navbar-mainnavigation .nav-link-main.active::after,
.navbar-mainnavigation .nav-link.active::after {
  content: "";
  position: absolute;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--bdl-blue);
}

/* ----- Start-Page: Active-Markierung ausblenden, außer wir SIND auf Start ----- */
body:not(.page-1) .navbar-mainnavigation .nav-link-main[href="/"].active,
body:not(.page-1) .navbar-mainnavigation .nav-link[href="/"].active {
  color: var(--bdl-gray) !important;
  font-weight: 600 !important;
}
body:not(.page-1) .navbar-mainnavigation .nav-link-main[href="/"].active::after,
body:not(.page-1) .navbar-mainnavigation .nav-link[href="/"].active::after {
  display: none !important;
}
body:not(.page-1) .navbar-mainnavigation .nav-link[href="/"]:before {
  opacity: 0 !important;   /* Auch der BP-Strich aus auf Start-Link wenn nicht-Start */
}

/* ----- Hover: nur Farbe-Change (Underline kommt aus dem BP-:before mit opacity:1) ----- */
.navbar-mainnavigation .nav-link:hover,
.navbar-mainnavigation .nav-link-main:hover {
  color: var(--bdl-blue) !important;
}

/* ----- Chevron-Indicator: BP-Default bleibt (rotate -135deg = Chevron down) ----- */
/* WICHTIG: nicht überschreiben! BP macht das schon richtig. */
.navbar-mainnavigation .nav-link-toggle[aria-expanded="true"] .nav-link-indicator:before {
  transform: rotate(45deg) !important;  /* Chevron up wenn geöffnet */
}

/* ----- Focus-Ring nur Keyboard ----- */
.navbar-mainnavigation .nav-link-toggle:focus,
.navbar-mainnavigation .nav-link:focus,
.navbar-mainnavigation .nav-link-main:focus {
  outline: none;
  box-shadow: none;
}
.navbar-mainnavigation .nav-link-toggle:focus-visible,
.navbar-mainnavigation .nav-link:focus-visible,
.navbar-mainnavigation .nav-link-main:focus-visible {
  outline: 2px solid var(--bdl-blue);
  outline-offset: 2px;
  border-radius: 2px;
}

/* ----- Dropdown-Menü Look ----- */
.navbar-mainnavigation .dropdown-menu {
  border-top: 2px solid var(--bdl-blue);
  border-radius: 0 0 4px 4px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  padding: 8px 0;
  margin-top: 0;
}
.navbar-mainnavigation .dropdown-menu .nav-link-dropdown {
  padding: 8px 18px !important;
  font-size: 13px;
  color: var(--bdl-gray) !important;
  transition: background 0.15s, color 0.15s;
}
.navbar-mainnavigation .dropdown-menu .nav-link-dropdown:hover {
  background: rgba(28, 79, 155, 0.06);
  color: var(--bdl-blue) !important;
}
.navbar-mainnavigation .dropdown-menu .nav-link-dropdown.active {
  background: rgba(28, 79, 155, 0.08);
  color: var(--bdl-blue) !important;
  font-weight: 600;
}

/* Mega-Layout vorerst auf Single-Column reduzieren */
.navbar-mainnavigation .dropdown-menu-mega {
  width: auto !important;
  min-width: 240px;
  max-width: 380px;
  left: auto !important;
  right: auto !important;
}
.navbar-mainnavigation .dropdown-menu-mega .dropdown-nav .dropdown-nav {
  display: none !important;
}


/* ============================================================
   BREADCRUMB v3 (27.05.2026)
   ============================================================ */
.breadcrumb-section {
  border-bottom: 1px solid #e5edf8;
  background: var(--bdl-white);
}
.breadcrumb {
  font-size: 13px;
  margin-bottom: 0;
  padding: 8px 0;
}

/* Trenner › zwischen den Items */
.breadcrumb-item + .breadcrumb-item::before {
  content: '\203A' !important;
  color: #b3b3b3 !important;
  font-weight: 400 !important;
  padding: 0 6px !important;
  float: none !important;
}

/* Home-Icon vor dem ersten Item */
.breadcrumb-item:first-child .breadcrumb-link[href="/"] {
  display: inline-flex;
  align-items: center;
}
.breadcrumb-item:first-child .breadcrumb-link[href="/"]::before {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c4f9b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 9.5L12 3l9 6.5V20a1 1 0 01-1 1h-5v-7h-6v7H4a1 1 0 01-1-1V9.5z'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 14px 14px;
}
.breadcrumb-item:first-child .breadcrumb-link[href="/"]:hover::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23163d75' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 9.5L12 3l9 6.5V20a1 1 0 01-1 1h-5v-7h-6v7H4a1 1 0 01-1-1V9.5z'/></svg>");
}

.breadcrumb-item:first-child .breadcrumb-link[href="/"] .breadcrumb-text {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

.breadcrumb-link { color: var(--bdl-gray); text-decoration: none; }
.breadcrumb-link:hover { color: var(--bdl-blue); text-decoration: none; }
.breadcrumb-item.active { color: var(--bdl-gray); }

/* ============================================================
   BREADCRUMB v4 (27.05.2026)
   - Startseite: ausblenden
   - Linksbündig zu "Start" im Header (nav-link padding 14px)
   ============================================================ */
body.page-1 .breadcrumb-section { display: none !important; }
.breadcrumb-section .container .breadcrumb { padding-left: 14px; }

/* HEADER-MENU v5.1 — Punkt im gescrollten Header anpassen */
#page-header.navbar-scrolled .navbar-mainnavigation .nav-link-main.active::after,
#page-header.navbar-scrolled .navbar-mainnavigation .nav-link.active::after {
  bottom: 3px;
}

/* HEADER-MENU v5.2 — Active-Punkt relativ zur Text-Mitte (statt Container-Rand) */
.navbar-mainnavigation .nav-link-main.active::after,
.navbar-mainnavigation .nav-link.active::after {
  bottom: auto !important;
  top: calc(50% + 0.8em) !important;
  transform: translate(-50%, 0) !important;
}
#page-header.navbar-scrolled .navbar-mainnavigation .nav-link-main.active::after,
#page-header.navbar-scrolled .navbar-mainnavigation .nav-link.active::after {
  top: calc(50% + 0.8em) !important;
  bottom: auto !important;
}





/* ============================================================
   LANDINGPAGE v3 (Kundinnen-Konzept v2 mit Bildern + Grid)
   body.page-1 — alternative Startseite /start-v2
   ============================================================ */

/* Reset für Landing v2 alte Selectoren */
body.page-1 main#page-content { padding-top: 0; }
body.page-1 main .frame { margin-bottom: 0; }
body.page-1 main .frame-inner { padding-top: 0; padding-bottom: 0; }

/* --- HERO mit Background-Illustration ----------------------- */
.bdl-landing-hero {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  min-height: clamp(360px, 50vw, 540px);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  margin-top: -1px;
  margin-bottom: 0;
}
.bdl-landing-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg,
    rgba(19, 55, 112, 0.85) 0%,
    rgba(28, 79, 155, 0.70) 50%,
    rgba(28, 79, 155, 0.30) 100%);
  pointer-events: none;
}
.bdl-landing-hero__inner {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(3rem, 8vw, 5rem) clamp(1.5rem, 4vw, 3rem);
  color: #fff;
}
.bdl-landing-hero h1 {
  color: #fff !important;
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 1.5rem;
  letter-spacing: -0.01em;
  max-width: 900px;
}
.bdl-landing-hero-sub {
  font-size: clamp(1.05rem, 1.4vw, 1.25rem) !important;
  line-height: 1.6 !important;
  color: rgba(255, 255, 255, 0.95) !important;
  max-width: 760px;
  font-weight: 400;
}

/* --- Section-Wrapper --------------------------------------- */
.bdl-landing-section {
  display: grid;
  grid-template-columns:
    [full-start] minmax(clamp(1.5rem, 4vw, 3rem), 1fr)
    [content-start] min(1200px, 100% - clamp(3rem, 8vw, 6rem)) [content-end]
    minmax(clamp(1.5rem, 4vw, 3rem), 1fr) [full-end];
  padding: clamp(2.5rem, 5vw, 4.5rem) 0;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  max-width: 100vw;
  box-sizing: border-box;
}
.bdl-landing-section > * {
  grid-column: content;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
/* Inline-Elemente (Tag-Pills, CTA-Buttons-Paragraphen) bekommen Auto-Width, sonst werden sie gestreckt */
.bdl-landing-section > .bdl-landing-tag {
  justify-self: start;
  width: max-content;
  max-width: 100%;
}
.bdl-landing-section--alt {
  background: #f7f9fc;
}
.bdl-landing-section--alt > p { margin-top: 0; }
.bdl-landing-section--alt > p { margin-top: 1rem; }

.bdl-landing-section h2 {
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  color: var(--bdl-blue, #1C4F9B);
  margin: 0 0 1.25rem;
  line-height: 1.2;
  font-weight: 600;
}
.bdl-landing-section p {
  font-size: 1.02rem;
  line-height: 1.7;
}
.bdl-landing-section p.bdl-landing-lead {
  font-size: 1.15rem;
  line-height: 1.6;
  color: #2c3543;
  margin-bottom: 1.5rem;
  max-width: 850px;
}

/* --- Section-Tag (Pill oberhalb der H2) -------------------- */
.bdl-landing-tag {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bdl-blue, #1C4F9B);
  margin-bottom: 1rem;
  padding: 0.35rem 0.9rem;
  border: 1px solid rgba(28, 79, 155, 0.25);
  border-radius: 999px;
  background: #fff;
}
.bdl-landing-section--alt .bdl-landing-tag { background: #fff; }

/* --- 2-Spalten-Layout (Editorial, Handwerk, Resilienz) ----- */
.bdl-landing-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: center;
}
.bdl-landing-2col--img-left .bdl-landing-figure { order: 0; }
.bdl-landing-2col--img-left .bdl-landing-2col__text { order: 1; }
.bdl-landing-2col--img-right .bdl-landing-figure { order: 1; }
.bdl-landing-2col--img-right .bdl-landing-2col__text { order: 0; }
.bdl-landing-2col--text-quote { grid-template-columns: 1.5fr 1fr; }
.bdl-landing-2col__text h2 { margin-top: 0; }
.bdl-landing-2col__text p { margin-bottom: 1rem; }

.bdl-landing-figure {
  margin: 0;
}
.bdl-landing-figure img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  box-shadow: 0 8px 30px rgba(19, 55, 112, 0.12);
  display: block;
}
.bdl-landing-figure figcaption {
  font-size: 0.8rem;
  color: #777;
  margin-top: 0.7rem;
  font-style: italic;
  line-height: 1.4;
}

@media (max-width: 767px) {
  .bdl-landing-2col,
  .bdl-landing-2col--text-quote {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .bdl-landing-2col--img-left .bdl-landing-figure,
  .bdl-landing-2col--img-right .bdl-landing-figure { order: 0; }
}

/* --- Pull-Quote (in Handwerk-Block) ------------------------ */
.bdl-landing-pullquote {
  background: #fff;
  padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 4vw, 3rem) clamp(1.75rem, 3.5vw, 2.5rem);
  border-radius: 8px;
  border-top: 6px solid var(--bdl-blue, #1C4F9B);
  box-shadow: 0 6px 28px rgba(19, 55, 112, 0.10);
  max-width: 900px;
  margin: 1.5rem auto 2rem;
  text-align: center;
}
.bdl-landing-pullquote blockquote {
  margin: 0;
  padding: 0;
  border: none;
  background: none;
}
.bdl-landing-pullquote blockquote p {
  font-size: clamp(1.3rem, 2.4vw, 1.7rem) !important;
  line-height: 1.45 !important;
  color: var(--bdl-blue-dark, #133770);
  font-weight: 500;
  margin: 0 0 1.25rem;
  font-style: italic;
}
.bdl-landing-pullquote blockquote p::before {
  content: "„";
  font-family: Georgia, serif;
  font-size: 2rem;
  line-height: 0;
  vertical-align: -0.35em;
  color: var(--bdl-blue, #1C4F9B);
  margin-right: 0.15rem;
  opacity: 0.5;
}
.bdl-landing-pullquote blockquote footer {
  font-size: 0.88rem;
  color: #555;
  font-style: normal;
}
.bdl-landing-pullquote blockquote footer strong {
  color: var(--bdl-blue-dark, #133770);
  font-weight: 600;
  display: block;
  margin-bottom: 0.15rem;
}
.bdl-landing-pullquote blockquote footer span { color: #888; }

/* --- DREI ZAHLEN ------------------------------------------- */
.bdl-landing-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  margin: 1.5rem 0 1rem;
}
.bdl-landing-stat {
  padding: 1.5rem 0.5rem;
  text-align: center;
}
.bdl-landing-stat__number {
  font-family: 'Roboto', sans-serif;
  font-weight: 200;
  font-size: clamp(3.5rem, 9vw, 6.5rem);
  line-height: 1;
  color: var(--bdl-blue, #1C4F9B);
  margin: 0 0 0.5rem;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  display: block;
}
.bdl-landing-stat__unit {
  font-size: 0.95rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--bdl-blue-dark, #133770);
  margin: 0 auto 1rem;
  display: block;
}
.bdl-landing-stat__caption {
  font-size: 0.95rem !important;
  line-height: 1.55 !important;
  color: var(--bdl-gray, #555);
  margin: 0 auto !important;
  max-width: 28ch;
}
.bdl-landing-source {
  font-size: 0.78rem !important;
  color: #888 !important;
  font-style: italic;
  margin-top: 1.25rem !important;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  padding-top: 0.85rem;
}
@media (max-width: 767px) {
  .bdl-landing-stats { grid-template-columns: 1fr; gap: 2rem; }
}

/* --- POLITIK 2x2-GRID -------------------------------------- */
.bdl-landing-grid-2x2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1rem, 2vw, 1.5rem);
  margin: 1.5rem 0;
}
.bdl-landing-demand {
  position: relative;
  padding: 1.75rem 1.5rem 1.5rem;
  background: #fff;
  border: 1px solid rgba(28, 79, 155, 0.12);
  border-radius: 6px;
  border-left: 4px solid var(--bdl-blue, #1C4F9B);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.bdl-landing-demand:hover {
  box-shadow: 0 8px 30px rgba(19, 55, 112, 0.10);
  transform: translateY(-2px);
}
.bdl-landing-demand__num {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  font-family: 'Roboto', sans-serif;
  font-weight: 200;
  font-size: 2.5rem;
  line-height: 1;
  color: var(--bdl-blue, #1C4F9B);
  opacity: 0.18;
}
.bdl-landing-demand h3 {
  font-size: 1.1rem;
  color: var(--bdl-blue-dark, #133770);
  margin: 0 0 0.65rem;
  font-weight: 600;
  padding-right: 2rem;
}
.bdl-landing-demand p {
  margin: 0;
  font-size: 0.95rem !important;
  line-height: 1.6 !important;
  color: var(--bdl-gray, #444);
}

/* Quote-Card (4. Box) */
.bdl-landing-quote-card {
  position: relative;
  padding: 0;
  background: var(--bdl-blue, #1C4F9B);
  color: #fff;
  border-radius: 6px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.bdl-landing-quote-card__img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  object-position: center 20%;
  display: block;
  filter: brightness(0.85);
}
.bdl-landing-quote-card__quote {
  padding: 1.5rem 1.5rem 1.5rem;
  margin: 0;
  background: none;
  border: none;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.bdl-landing-quote-card__quote p {
  font-size: 1.05rem !important;
  line-height: 1.45 !important;
  margin: 0 0 1rem !important;
  color: #fff !important;
  font-style: italic;
  font-weight: 500;
  position: relative;
  padding-left: 1.5rem;
}
.bdl-landing-quote-card__quote p::before {
  content: "„";
  position: absolute;
  left: 0;
  top: -0.3rem;
  font-family: Georgia, serif;
  font-size: 3rem;
  line-height: 1;
  color: rgba(255, 255, 255, 0.4);
}
.bdl-landing-quote-card__quote footer {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.9);
  margin-top: auto;
}
.bdl-landing-quote-card__quote footer strong {
  color: #fff;
  font-weight: 600;
}
.bdl-landing-quote-card__quote footer span {
  color: rgba(255, 255, 255, 0.75);
  font-size: 0.78rem;
  display: block;
  margin-top: 0.2rem;
}

@media (max-width: 767px) {
  .bdl-landing-grid-2x2 { grid-template-columns: 1fr; }
}

/* --- KUNDENBEISPIELE 2-Spalt-Cards mit Bildern ------------- */
.bdl-landing-kb-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.5rem, 3vw, 2.25rem);
  margin: 1.5rem 0;
}
.bdl-landing-kb-card {
  background: #fff;
  border: 1px solid rgba(28, 79, 155, 0.12);
  border-radius: 6px;
  overflow: hidden;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  display: flex;
  flex-direction: column;
}
.bdl-landing-kb-card:hover {
  box-shadow: 0 10px 35px rgba(19, 55, 112, 0.12);
  transform: translateY(-3px);
}
.bdl-landing-kb-card__img-wrap {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--bdl-blue-pale, #e8eef5);
}
.bdl-landing-kb-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 25%;
  display: block;
}
.bdl-landing-kb-card__body {
  padding: 1.5rem 1.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.bdl-landing-kb-card__tag {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bdl-blue, #1C4F9B);
  margin-bottom: 0.65rem;
}
.bdl-landing-kb-card h3 {
  font-size: 1.2rem;
  color: var(--bdl-blue-dark, #133770);
  margin: 0 0 0.75rem;
  font-weight: 600;
  line-height: 1.25;
}
.bdl-landing-kb-card p { font-size: 0.95rem !important; line-height: 1.6 !important; margin-bottom: 1rem; }
.bdl-landing-kb-card p:last-of-type { margin-bottom: 0; margin-top: auto; }

@media (max-width: 767px) {
  .bdl-landing-kb-grid { grid-template-columns: 1fr; }
}

/* --- Inline-Quote (im Resilienz-Block) --------------------- */
.bdl-landing-inline-quote {
  margin: 1.5rem 0;
  padding: 1.25rem 0 1.25rem 1.75rem;
  border-left: 3px solid var(--bdl-blue, #1C4F9B);
  background: none;
  font-style: normal;
}
.bdl-landing-inline-quote p {
  font-size: 1.1rem !important;
  line-height: 1.5 !important;
  margin: 0 0 0.6rem !important;
  color: var(--bdl-blue-dark, #133770);
  font-weight: 500;
  font-style: italic;
}
.bdl-landing-inline-quote footer {
  font-size: 0.85rem;
  color: #555;
}
.bdl-landing-inline-quote footer strong { color: var(--bdl-blue-dark, #133770); }

/* --- YPs Avatar-Row ---------------------------------------- */
.bdl-landing-avatars {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: clamp(0.75rem, 2vw, 1.5rem);
  margin: 1.5rem 0 2rem;
}
.bdl-landing-avatars figure {
  margin: 0;
  text-align: center;
}
.bdl-landing-avatars img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center 30%;
  border-radius: 50%;
  display: block;
  box-shadow: 0 4px 18px rgba(19, 55, 112, 0.15);
}
.bdl-landing-avatars figcaption {
  font-size: 0.82rem;
  margin-top: 0.6rem;
  line-height: 1.35;
  color: var(--bdl-blue-dark, #133770);
  font-weight: 600;
}
.bdl-landing-avatars figcaption span {
  display: block;
  font-size: 0.72rem;
  color: #888;
  font-weight: 400;
  margin-top: 0.1rem;
}
@media (max-width: 991px) {
  .bdl-landing-avatars { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 480px) {
  .bdl-landing-avatars { grid-template-columns: repeat(2, 1fr); }
}

/* --- FAQ (mit <details>-Akkordeon) ------------------------- */
.bdl-landing-faq details {
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  padding: 1rem 0;
}
.bdl-landing-faq details:first-of-type { border-top: 1px solid rgba(0, 0, 0, 0.08); }
.bdl-landing-faq summary {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--bdl-blue-dark, #133770);
  cursor: pointer;
  padding: 0.4rem 2rem 0.4rem 0;
  position: relative;
  list-style: none;
  user-select: none;
}
.bdl-landing-faq summary::-webkit-details-marker { display: none; }
.bdl-landing-faq summary::after {
  content: "+";
  position: absolute;
  right: 0.25rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.5rem;
  color: var(--bdl-blue, #1C4F9B);
  transition: transform 0.2s ease;
  line-height: 1;
}
.bdl-landing-faq details[open] summary::after { content: "\2212"; }
.bdl-landing-faq details p {
  margin: 0.85rem 0 0.5rem !important;
  font-size: 0.98rem !important;
  line-height: 1.65 !important;
  color: var(--bdl-gray, #555);
}

/* --- Closer ------------------------------------------------ */
.bdl-landing-closer-section { padding-top: 1rem !important; }
.bdl-landing-closer {
  font-size: 1.18rem !important;
  line-height: 1.55 !important;
  color: var(--bdl-blue-dark, #133770) !important;
  font-weight: 500;
  padding: 2rem 0;
  border-top: 2px solid var(--bdl-blue, #1C4F9B);
  margin-top: 1rem !important;
}


/* ============================================================
   Scroll-Reveal-Animation (subtil, mit prefers-reduced-motion)
   Reversibel: body.classList.add("reveal-disabled") schaltet aus.
   ============================================================ */
.bdl-animate {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}
.bdl-animate.bdl-animated {
  opacity: 1;
  transform: translateY(0);
}

/* Bilder/Figures: nur fade, kein move (Bewegung wirkt bei Bildern unnötig) */
.bdl-animate.bdl-landing-figure,
.bdl-animate.bdl-landing-quote-card,
.bdl-landing-avatars > figure.bdl-animate {
  transform: translateY(12px) scale(0.985);
}
.bdl-animate.bdl-landing-figure.bdl-animated,
.bdl-animate.bdl-landing-quote-card.bdl-animated,
.bdl-landing-avatars > figure.bdl-animate.bdl-animated {
  transform: translateY(0) scale(1);
}

/* Zahlen-Container kommen etwas weiter "ein" für mehr Wow */
.bdl-landing-stat.bdl-animate { transform: translateY(36px); }
.bdl-landing-stat.bdl-animate.bdl-animated { transform: translateY(0); }

/* Reduced-Motion: alle Animationen abschalten */
@media (prefers-reduced-motion: reduce) {
  .bdl-animate {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Reversible "kill switch" via body-class */
body.reveal-disabled .bdl-animate {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}


/* ============================================================
   bdl_landing_people — Endloscarousel
   ============================================================ */
.bdl-landing-people-carousel {
    overflow: hidden;
    margin-top: 2rem;
    position: relative;
    mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
}
.bdl-landing-people-track {
    display: flex;
    gap: 1.25rem;
    width: max-content;
    animation-name: bdlPeopleScroll;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-duration: 40s;
    will-change: transform;
}
.bdl-landing-people-carousel:hover .bdl-landing-people-track,
.bdl-landing-people-carousel:focus-within .bdl-landing-people-track {
    animation-play-state: paused;
}
@keyframes bdlPeopleScroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
    .bdl-landing-people-track {
        animation: none;
        flex-wrap: wrap;
        justify-content: center;
        width: 100%;
    }
}

.bdl-landing-person {
    flex: 0 0 auto;
    width: 168px;
    text-decoration: none;
    color: inherit;
    transition: transform 0.25s ease;
    display: block;
}
a.bdl-landing-person:hover {
    transform: translateY(-4px);
}
.bdl-landing-person__photo {
    width: 168px;
    height: 168px;
    border-radius: 50%;
    overflow: hidden;
    background: #e9eef5;
    box-shadow: 0 4px 18px rgba(19, 55, 112, 0.10);
    margin-bottom: 0.85rem;
}
.bdl-landing-person__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}
.bdl-landing-person__caption {
    text-align: center;
    font-size: 0.88rem;
    line-height: 1.35;
    color: #2c3543;
}
.bdl-landing-person__caption strong {
    display: block;
    color: var(--bdl-blue-dark, #133770);
    font-weight: 600;
    margin-bottom: 0.15rem;
}
.bdl-landing-person__caption span {
    display: block;
    color: #6e7585;
    font-size: 0.82rem;
}

@media (max-width: 600px) {
    .bdl-landing-person,
    .bdl-landing-person__photo {
        width: 120px;
        height: 120px;
    }
    .bdl-landing-person__photo { height: 120px; }
}

/* ============================================================
   Landing-Page Section-Rhythmus (pid=41)
   Hero (index 1) bleibt; ab Index 2: weiss → hellblau alternierend.
   ============================================================ */
body.page-1 .section > .frame:nth-of-type(even) .bdl-landing-section,
body.page-5 .section > .frame:nth-of-type(even) .bdl-landing-section,
body.page-25 .section > .frame:nth-of-type(even) .bdl-landing-section {
    background: #e8f0fa;
}
/* Section-tag bleibt auf white auch in hellblauen Sections, fuer Kontrast */
body.page-1 .section > .frame:nth-of-type(even) .bdl-landing-section .bdl-landing-tag,
body.page-5 .section > .frame:nth-of-type(even) .bdl-landing-section .bdl-landing-tag,
body.page-25 .section > .frame:nth-of-type(even) .bdl-landing-section .bdl-landing-tag {
    background: #fff;
}
/* Pull-Quote Card bleibt weiss, aber Border-Top staerker */
body.page-1 .section > .frame:nth-of-type(even) .bdl-landing-pullquote,
body.page-5 .section > .frame:nth-of-type(even) .bdl-landing-pullquote,
body.page-25 .section > .frame:nth-of-type(even) .bdl-landing-pullquote {
    background: #fff;
}
/* Generischer --pale-Modifier (falls einzeln gewuenscht) */
.bdl-landing-section--pale {
    background: #e8f0fa;
}

/* ============================================================
   Home (pid=1) — prominenter Hero
   Behaelt die Standard-Negativ-Variante bei (blauer Gradient,
   weisse Texte), macht Bild + H1 nur deutlich grosszuegiger.
   ============================================================ */
/* Full-Bleed Hero — exakt Browserfenster minus Top-Banner (48px) und sticky Nav (~80px) */
body.page-1 .bdl-article-hero {
    height: calc(100dvh - var(--bdl-hero-offset, 128px));
    min-height: 460px;
    max-height: none;
    margin-bottom: 0;
    aspect-ratio: auto;
    position: relative;
}
body.page-1 .bdl-article-hero-img {
    background-size: cover;
    background-position: center center;
    max-height: none !important;
    height: 100% !important;
    inset: 0;
    width: 100% !important;
}
/* Gleichmaessiger blauer Tint ueber das ganze Bild — flach, kein Verlauf */
body.page-1 .bdl-article-hero-overlay {
    background: rgba(19, 55, 112, 0.42);
    align-items: center;
}
body.page-1 .bdl-article-hero-overlay .container {
    padding-bottom: 0;
    text-align: center;
}
body.page-1 .bdl-article-hero-content {
    max-width: 1140px;
    margin: 0 auto;
    text-shadow: 0 2px 24px rgba(0, 28, 70, 0.55);
}
body.page-1 .bdl-article-hero-tag {
    font-size: 0.92rem;
    padding: 10px 24px;
    margin-bottom: 2rem;
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.45);
}
body.page-1 .bdl-article-hero-title {
    font-size: clamp(54px, 8vw, 116px);
    font-weight: 300;
    line-height: 1.0;
    letter-spacing: -0.025em;
    margin: 0 0 1.4rem;
}
body.page-1 .bdl-article-hero-subtitle {
    font-size: clamp(19px, 1.85vw, 28px);
    max-width: 780px;
    margin-inline: auto;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.98);
    font-weight: 400;
}

/* Scroll-Hint Chevron unten zentriert — sanft hoch/runter animiert */
body.page-1 .bdl-article-hero::after {
    content: "";
    position: absolute;
    bottom: clamp(1.5rem, 3.5vh, 2.5rem);
    left: 50%;
    width: 26px;
    height: 26px;
    border-right: 2.5px solid rgba(255, 255, 255, 0.85);
    border-bottom: 2.5px solid rgba(255, 255, 255, 0.85);
    transform: translateX(-50%) rotate(45deg);
    transform-origin: center;
    animation: bdl-scroll-hint 2s ease-in-out infinite;
    pointer-events: none;
    z-index: 2;
}
@keyframes bdl-scroll-hint {
    0%, 100% {
        transform: translate(-50%, 0) rotate(45deg);
        opacity: 0.55;
    }
    50% {
        transform: translate(-50%, 12px) rotate(45deg);
        opacity: 1;
    }
}
@media (prefers-reduced-motion: reduce) {
    body.page-1 .bdl-article-hero::after {
        animation: none;
        opacity: 0.7;
    }
}

@media (max-width: 991px) {
    body.page-1 .bdl-article-hero {
        height: calc(100dvh - var(--bdl-hero-offset-mobile, 104px));
    }
}
@media (max-width: 767px) {
    body.page-1 .bdl-article-hero {
        height: calc(100dvh - var(--bdl-hero-offset-mobile, 104px));
        min-height: 420px;
    }
    body.page-1 .bdl-article-hero-title {
        font-size: clamp(38px, 11vw, 58px);
    }
}

/* ===========================================================
   Archiv-Übersicht (Page 43 /archiv) — 9 Jahreskacheln 2017–2025
   =========================================================== */
.bdl-archive-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin: 32px 0;
}
@media (max-width: 900px) {
    .bdl-archive-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 540px) {
    .bdl-archive-grid { grid-template-columns: 1fr; gap: 18px; }
}

.bdl-archive-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid rgba(0, 51, 102, 0.10);
    border-radius: 6px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.bdl-archive-card:hover,
.bdl-archive-card:focus-visible {
    transform: translateY(-4px);
    box-shadow: 0 10px 28px rgba(0, 51, 102, 0.16);
    border-color: rgba(0, 51, 102, 0.25);
    text-decoration: none;
    color: inherit;
}
.bdl-archive-card__img-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #f4f6f8;
}
.bdl-archive-card__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .4s ease;
}
.bdl-archive-card:hover .bdl-archive-card__img-wrap img {
    transform: scale(1.04);
}
.bdl-archive-card__caption {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 18px 20px 22px;
}
.bdl-archive-card__year {
    font-size: 14px;
    font-weight: 600;
    color: #003366;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.bdl-archive-card__title {
    font-size: 17px;
    line-height: 1.35;
    font-weight: 500;
    color: #1a1a1a;
}

/* aktueller Jahrgang als großer "Active"-Block über zwei Spalten */
.bdl-archive-grid > .bdl-archive-card:first-child {
    grid-column: 1 / -1;
}
.bdl-archive-grid > .bdl-archive-card:first-child .bdl-archive-card__img-wrap {
    aspect-ratio: 21 / 9;
}
.bdl-archive-grid > .bdl-archive-card:first-child .bdl-archive-card__title {
    font-size: 22px;
}
@media (max-width: 900px) {
    .bdl-archive-grid > .bdl-archive-card:first-child .bdl-archive-card__img-wrap { aspect-ratio: 16 / 9; }
}

/* --- Pullquote im frame-bdl-accent (BDL-blau): weisser Text -------- */
.frame-bdl-accent .bdl-pullquote > p,
.frame-bdl-accent .bdl-pullquote > footer,
.frame-bdl-accent .bdl-pullquote > footer strong,
.frame-bdl-accent .bdl-pullquote { color: #ffffff !important; }
.frame-bdl-accent .bdl-pullquote::before { color: rgba(255,255,255,0.25) !important; }

/* --- Pullquote 2-Spalten Layout (Bild + Zitat) --------------------- */
.bdl-pullquote-figure {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 2fr;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  align-items: center;
  margin: 0;
}
.bdl-pullquote-figure img {
  width: 100%; height: auto; display: block;
  border-radius: 4px;
  box-shadow: 0 12px 32px rgba(0,0,0,0.25);
}
@media (max-width: 767px) {
  .bdl-pullquote-figure { grid-template-columns: 1fr; }
}

/* ============================================================
   Pull-Quote im frame-bdl-accent — 2025er Vöpel-Stil
   (Bild rechts, full-height, kein Radius; großes weisses „;
    Footer-Name nicht fett, ohne Line-Break)
   ============================================================ */

/* Container Vollbreite, Bild darf rechts ohne Padding ausstrahlen */
.frame-bdl-accent .container.bdl-narrow {
  max-width: 1320px;
  padding-right: 0;
}

/* Figure: 2-Spalten Layout, links Quote, rechts Bild (stretched) */
.frame-bdl-accent .bdl-pullquote-figure {
  grid-template-columns: 1fr 1.05fr;
  gap: clamp(2rem, 4vw, 4rem);
  align-items: stretch;
  min-height: 360px;
}

/* Bild: ohne Radius/Shadow, fuellt rechte Spalte voll */
.frame-bdl-accent .bdl-pullquote-figure img {
  border-radius: 0;
  box-shadow: none;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Quote-Container: zentriert vertikal, mit Anfuehrungszeichen */
.frame-bdl-accent .bdl-pullquote-figure > blockquote {
  margin: 0;
  padding: 1.5rem 0 1.5rem 3rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}

/* Grosses weisses „ links oben */
.frame-bdl-accent .bdl-pullquote-figure > blockquote::before {
  content: '\201E';
  font-family: Georgia, serif;
  font-size: clamp(80px, 9vw, 130px);
  line-height: 0.8;
  color: #fff;
  position: absolute;
  top: -0.2rem;
  left: 0;
}

/* Zitattext: kursiv, mittlere Groesse, weiss */
.frame-bdl-accent .bdl-pullquote-figure > blockquote > p {
  font-style: italic;
  font-size: clamp(18px, 1.7vw, 23px);
  font-weight: 400;
  line-height: 1.5;
  margin: 0 0 1.5rem;
  color: #fff !important;
}

/* Footer: Fließtext „Name, Rolle" — nicht fett, kein <br> */
.frame-bdl-accent .bdl-pullquote-figure > blockquote > footer {
  font-size: 0.92rem;
  font-style: normal;
  font-weight: 400;
  color: rgba(255,255,255,0.92) !important;
  line-height: 1.45;
  letter-spacing: 0;
}
.frame-bdl-accent .bdl-pullquote-figure > blockquote > footer strong {
  font-weight: 400 !important;
  display: inline;
  font-size: inherit;
  color: inherit !important;
  letter-spacing: 0;
  margin: 0;
}
.frame-bdl-accent .bdl-pullquote-figure > blockquote > footer strong::after {
  content: ', ';
}
.frame-bdl-accent .bdl-pullquote-figure > blockquote > footer br {
  display: none;
}

/* Outer ::before des bdl-pullquote im accent-Frame unterdruecken
   (sonst doppeltes Anführungszeichen) */
.frame-bdl-accent .bdl-pullquote-figure > blockquote.bdl-pullquote::before {
  content: '\201E';
  color: #fff;
}
.frame-bdl-accent .bdl-pullquote:not(.bdl-pullquote-figure *)::before { display: none; }

/* Mobile: stack vertikal, Bild oben */
@media (max-width: 767px) {
  .frame-bdl-accent .container.bdl-narrow { padding-right: 1rem; }
  .frame-bdl-accent .bdl-pullquote-figure {
    grid-template-columns: 1fr;
    min-height: auto;
    gap: 1.5rem;
  }
  .frame-bdl-accent .bdl-pullquote-figure img {
    order: 1;
    height: auto;
    max-height: 320px;
  }
  .frame-bdl-accent .bdl-pullquote-figure > blockquote {
    order: 2;
    padding: 0 0 0 2rem;
  }
}

/* Spalten-Reihenfolge im accent-Frame: Quote links, Bild rechts */
.frame-bdl-accent .bdl-pullquote-figure > blockquote {
  grid-column: 1;
  grid-row: 1;
}
.frame-bdl-accent .bdl-pullquote-figure img {
  grid-column: 2;
  grid-row: 1;
}

/* Override Bootstrap-Package em-dash + Anfuehrungs-Transparenz im accent-Pullquote */
.frame-bdl-accent .bdl-pullquote-figure > blockquote > footer::before,
.frame-bdl-accent .bdl-pullquote-figure blockquote footer::before {
  content: none !important;
}
.frame-bdl-accent .bdl-pullquote-figure > blockquote::before {
  color: #ffffff !important;
  opacity: 1 !important;
}
/* Linkes Padding fuer Quote-Bereich etwas grosszuegiger */
.frame-bdl-accent .bdl-pullquote-figure > blockquote {
  padding-left: clamp(2rem, 4vw, 4rem);
}
.frame-bdl-accent .bdl-pullquote-figure > blockquote::before {
  left: clamp(0.5rem, 1.5vw, 1.5rem);
}

/* ============================================================
   Pullquote im accent-Frame — Final-Tuning (Bug + Style)
   ============================================================ */

/* Punkt 2: Container im accent-Frame breiter (760 -> 1200) */
.frame-bdl-accent .container.bdl-narrow {
  max-width: 1200px !important;
}

/* Punkt 3: Frame-Padding tighter (80 -> 56px) */
.frame-bdl-accent {
  padding-top: clamp(28px, 4vw, 56px) !important;
  padding-bottom: clamp(28px, 4vw, 56px) !important;
}

/* Punkt 4: Bild-Anteil groesser (1:1.05 -> 1:1.35), Min-Height generoeser */
.frame-bdl-accent .bdl-pullquote-figure {
  grid-template-columns: 1fr 1.35fr;
  min-height: 460px;
}

/* Punkt 5: Anfuehrungszeichen weiter nach oben/aussen ragend */
.frame-bdl-accent .bdl-pullquote-figure > blockquote::before {
  top: -2.2rem !important;
  left: -0.5rem !important;
  font-weight: 700 !important;
}
.frame-bdl-accent .bdl-pullquote-figure > blockquote {
  padding-left: clamp(2.5rem, 5vw, 5rem) !important;
}

/* Punkt 1: Mobile-Bug fix — bei <=767px: Single-Column, img+bq full-width */
@media (max-width: 767px) {
  .frame-bdl-accent .bdl-pullquote-figure {
    grid-template-columns: 1fr !important;
    min-height: auto;
  }
  .frame-bdl-accent .bdl-pullquote-figure > blockquote,
  .frame-bdl-accent .bdl-pullquote-figure img {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
  }
  .frame-bdl-accent .bdl-pullquote-figure img {
    order: 1;
    height: auto;
    max-height: 300px;
  }
  .frame-bdl-accent .bdl-pullquote-figure > blockquote {
    order: 2;
    padding: 0.5rem 0 0 2rem !important;
  }
  .frame-bdl-accent .bdl-pullquote-figure > blockquote::before {
    top: -1.2rem !important;
    left: -0.2rem !important;
    font-size: clamp(70px, 16vw, 110px) !important;
  }
  .frame-bdl-accent .container.bdl-narrow {
    padding-right: 1rem !important;
    max-width: 100% !important;
  }
}

/* ============================================================
   Objekt-Galerie für Kundenbeispiele
   (HTML-CE mit Bootstrap-Grid, Figures mit border-radius)
   ============================================================ */
.bdl-objekt-galerie { margin: 1.5rem 0; }
.bdl-galerie-figure {
  margin: 0;
  overflow: hidden;
  border-radius: 4px;
  background: #f5f6f8;
  aspect-ratio: 4 / 3;
}
.bdl-galerie-figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}
.bdl-galerie-figure:hover img { transform: scale(1.03); }

/* ============================================================
   Pullquote-Variante "Kompakt" (layout=1) — 2025er-Stil fuer Kundenbeispiele
   Bild rechts mit Caption, Quote-Text dezenter, kleines „
   Existierender Standard-Pullquote bleibt unveraendert.
   ============================================================ */

.bdl-pullquote-figure--compact {
  display: grid;
  grid-template-columns: 1fr minmax(180px, 320px);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: start;
  margin: 0;
  padding: 0.5rem 0;
}
.bdl-pullquote-figure--compact .bdl-pullquote-figure__media {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.bdl-pullquote-figure--compact .bdl-pullquote-figure__media img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 2px;
  box-shadow: none;
  object-fit: cover;
}
.bdl-pullquote-figure--compact .bdl-pullquote-figure__caption {
  font-size: 0.82rem;
  font-style: italic;
  color: #6b7280;
  line-height: 1.4;
}

/* Quote selbst — dezenter Stil */
.bdl-pullquote--compact {
  position: relative;
  margin: 0;
  padding: 0.25rem 0 0.25rem 2.25rem;
  max-width: none;
}
.bdl-pullquote--compact::before {
  content: '\201E';
  position: absolute;
  left: 0;
  top: -0.5rem;
  font-family: Georgia, serif;
  font-size: clamp(40px, 4.5vw, 64px);
  line-height: 1;
  color: var(--bdl-blue-light, #4d80c2);
  opacity: 0.35;
  font-weight: 700;
}
.bdl-pullquote--compact > p,
.bdl-pullquote--compact > * {
  font-family: 'Roboto', sans-serif;
  font-size: clamp(15px, 1.1vw, 18px) !important;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0;
  color: var(--bdl-gray, #444) !important;
  font-style: italic;
  margin: 0 0 0.85rem;
}
.bdl-pullquote--compact > footer {
  font-size: 0.85rem;
  color: #6b7280 !important;
  font-style: normal;
  font-weight: 400;
  margin-top: 0.5rem;
  line-height: 1.4;
}
.bdl-pullquote--compact > footer strong {
  font-weight: 400 !important;
  display: inline;
  color: inherit !important;
  font-size: inherit;
  letter-spacing: 0;
}
/* Bootstrap-Package em-dash unterdruecken */
.bdl-pullquote--compact > footer::before {
  content: none !important;
}

/* Mobile: Bild unter Quote (stack), kleinere Margins */
@media (max-width: 767px) {
  .bdl-pullquote-figure--compact {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .bdl-pullquote-figure--compact .bdl-pullquote-figure__media {
    max-width: 60%;
  }
}

/* Compact-Pullquote — Container nutzt mehr Platz, Bild rechts */
.bdl-pullquote-container {
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(15px, 2vw, 30px);
  padding-right: clamp(15px, 2vw, 30px);
}
/* Bild RECHTS, Quote links — Reihenfolge swap */
.bdl-pullquote-figure--compact > blockquote {
  grid-column: 1;
  grid-row: 1;
}
.bdl-pullquote-figure--compact > .bdl-pullquote-figure__media {
  grid-column: 2;
  grid-row: 1;
}
@media (max-width: 767px) {
  .bdl-pullquote-figure--compact > blockquote,
  .bdl-pullquote-figure--compact > .bdl-pullquote-figure__media {
    grid-column: 1;
  }
  .bdl-pullquote-figure--compact > .bdl-pullquote-figure__media {
    grid-row: 1;
    order: 1;
  }
  .bdl-pullquote-figure--compact > blockquote {
    grid-row: 2;
    order: 2;
  }
}

/* Compact-Pullquote: Bilder quadratisch (Test) */
.bdl-pullquote-figure--compact .bdl-pullquote-figure__media img {
  aspect-ratio: 1 / 1;
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: center top;
}

/* Compact-Pullquote: aspect-ratio Hack DEAKTIVIERT — wir nutzen jetzt TYPO3 FAL-Crop
   (cropVariant="square") damit der Redakteur den Ausschnitt im BE bearbeiten kann.
   Falls kein Crop gesetzt: TYPO3 macht center-crop. Falls Redakteur Crop setzt: dort drin. */
.bdl-pullquote-figure--compact .bdl-pullquote-figure__media img {
  aspect-ratio: auto !important;
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: unset;
}

/* Compact-Pullquote Bild: aspect-ratio 1/1 + cover als Fallback.
   Wenn Redakteur via FAL-Crop-Editor einen 1:1-Crop setzt, liefert TYPO3 schon
   das perfekt zugeschnittene Bild — der CSS-cover crop hat dann nichts mehr zu tun
   und respektiert die Redakteurs-Wahl. */
.bdl-pullquote-figure--compact .bdl-pullquote-figure__media img {
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
  height: auto !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* ============================================================
   Teaser-Grid für 4x2 Kundenbeispiel-Kacheln (Leasing im Handwerk)
   Wiederverwendet bdl-article-card-* Klassen, ergänzt Card-Image-Container
   und macht die ganze Card klickbar (a-Element als Wrapper).
   ============================================================ */
.bdl-teaser-grid { margin: 1.5rem 0; }
.bdl-teaser-card-link {
  text-decoration: none !important;
  color: inherit !important;
  height: 100%;
  width: 100%;
}
.bdl-teaser-card-link:hover { color: inherit !important; }
.bdl-teaser-card-link .bdl-teaser-card-img {
  height: 180px;
  overflow: hidden;
  margin: 0;
  border-radius: 4px 4px 0 0;
  background: var(--bdl-blue-pale, #e8f0fa);
}
.bdl-teaser-card-link .bdl-teaser-card-img img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.35s ease;
}
.bdl-teaser-card-link:hover .bdl-teaser-card-img img { transform: scale(1.04); }

/* ============================================================
   Weiterführende Seiten — Variante 3 (redaktionell, seitliches Label)
   Wird am Ende jeder Detailseite über CType=html eingefügt.
   ============================================================ */
.bdl-related-pages {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 24px;
  align-items: start;
  margin: 3rem 0 1.5rem;
  padding: 0;
}
.bdl-related-pages__label {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bs-bdl-blue, #1d4f8c);
  font-weight: 500;
  padding-top: 4px;
  line-height: 1.35;
}
.bdl-related-pages__list {
  list-style: none !important;
  margin: 0 !important;
  padding-left: 1.5rem !important;
  border-left: 2px solid var(--bs-bdl-blue, #1d4f8c);
}
.bdl-related-pages__item {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}
.bdl-related-pages__item::before { content: none !important; }
.bdl-related-pages__link {
  display: block;
  padding: 0.75rem 0;
  border-bottom: 1px solid #ececec;
  text-decoration: none !important;
  color: inherit !important;
  transition: padding-left 0.2s ease, background 0.2s ease;
}
.bdl-related-pages__item:last-child .bdl-related-pages__link {
  border-bottom: none;
}
.bdl-related-pages__link:hover {
  padding-left: 8px;
}
.bdl-related-pages__row {
  display: flex;
  align-items: baseline;
  gap: 14px;
}
.bdl-related-pages__cat {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #888;
  min-width: 96px;
  flex-shrink: 0;
}
.bdl-related-pages__title {
  font-size: 1rem;
  color: var(--bs-bdl-blue, #1d4f8c) !important;
  font-weight: 500;
  flex: 1;
  line-height: 1.35;
}
.bdl-related-pages__arrow {
  color: var(--bs-bdl-blue, #1d4f8c);
  font-size: 1.1rem;
  transition: transform 0.2s ease;
  margin-left: 8px;
  flex-shrink: 0;
}
.bdl-related-pages__link:hover .bdl-related-pages__arrow {
  transform: translateX(6px);
}
@media (max-width: 599px) {
  .bdl-related-pages {
    grid-template-columns: 1fr;
    gap: 14px;
    margin: 2.5rem 0 1rem;
  }
  .bdl-related-pages__list {
    border-left: 0;
    border-top: 2px solid var(--bs-bdl-blue, #1d4f8c);
    padding-left: 0 !important;
    padding-top: 1rem !important;
  }
  .bdl-related-pages__label br { display: none; }
  .bdl-related-pages__row {
    flex-direction: column;
    gap: 4px;
  }
  .bdl-related-pages__cat {
    min-width: auto;
  }
  .bdl-related-pages__arrow {
    display: none;
  }
}

/* ============================================================
   Text & Image: Text-Flow um Bild (imageorient 17 = rechts, 18 = links)
   Bild floatet, der Bodytext umfließt es. Bild ~38% Breite im Container.
   ============================================================ */
.textpic-float { overflow: hidden; }
.textpic-float::after {
  content: "";
  display: table;
  clear: both;
}
.textpic-float .textpic-float-media {
  width: 38%;
  max-width: 420px;
  margin: 0.25rem 0 1rem 1.75rem;
  float: right;
  shape-outside: margin-box;
}
.textpic-float-left .textpic-float-media {
  float: left;
  margin: 0.25rem 1.75rem 1rem 0;
}
.textpic-float .textpic-float-media figure,
.textpic-float .textpic-float-media .ce-gallery,
.textpic-float .textpic-float-media .image {
  margin: 0;
}
.textpic-float .textpic-float-media img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 2px;
}
.textpic-float .textpic-float-media figcaption {
  font-size: 0.85rem;
  color: #666;
  line-height: 1.4;
  margin-top: 0.5rem;
}
.textpic-float .textpic-float-text > h1,
.textpic-float .textpic-float-text > h2,
.textpic-float .textpic-float-text > h3 {
  margin-top: 0;
}
.textpic-float .textpic-float-text p {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}
@media (max-width: 599px) {
  .textpic-float .textpic-float-media,
  .textpic-float-left .textpic-float-media {
    float: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 1.25rem 0;
  }
  .textpic-float .textpic-float-text p {
    text-align: left;
    hyphens: none;
  }
}

/* Override Bootstrap-Package: .textpic ist im BP per default display:flex.
   Fuer Float-Variante muessen wir display:block erzwingen, sonst greift float nicht. */
.textpic.textpic-float {
  display: block !important;
  gap: 0 !important;
}
.textpic-float .gallery-row { display: block !important; }
.textpic-float .gallery-item { display: block !important; padding: 0 !important; margin: 0 !important; }

/* ============================================================
   A5 — Schokoladenmanufaktur Kunder (pid=36): Video deutlich kleiner
   Schur-Feedback 23.06.2026
   ============================================================ */
body.page-36 .bdl-video-embed {
  max-width: none;
  margin: 2.5rem 0;
}

/* B1 — Pull-Quote-Schrift global reduzieren (Schur 23.06.2026) */
.bdl-pullquote__text { font-size: clamp(17px, 1.6vw, 22px) !important; line-height: 1.5 !important; }
.bdl-pullquote::before { font-size: clamp(60px, 7vw, 100px) !important; }
.bdl-pullquote-section .bdl-pullquote { font-size: clamp(16px, 1.5vw, 20px) !important; line-height: 1.55 !important; }
.bdl-pullquote-section .bdl-pullquote::before { font-size: 3.5rem !important; }
.bdl-landing-pullquote blockquote p { font-size: clamp(1.05rem, 1.7vw, 1.3rem) !important; line-height: 1.5 !important; }
.bdl-landing-quote-inline { margin: 1.25rem 0; padding: 1rem 1.25rem 1rem 2.5rem; border-left: 3px solid var(--bdl-blue, #1C4F9B); background: rgba(28, 79, 155, 0.04); border-radius: 0 6px 6px 0; position: relative; }
.bdl-landing-quote-inline::before { content: "\201E"; position: absolute; left: 0.5rem; top: 0.2rem; font-family: Georgia, serif; font-size: 2.5rem; line-height: 1; color: var(--bdl-blue, #1C4F9B); opacity: 0.3; }
.bdl-landing-quote-inline p { font-size: 1.02rem; line-height: 1.55; margin: 0 0 0.5rem; font-style: italic; color: #1a1a1a; }
.bdl-landing-quote-inline p:last-of-type { margin-bottom: 0; }
.bdl-landing-quote-inline footer { margin-top: 0.5rem; font-size: 0.85rem; color: rgba(0, 0, 0, 0.6); font-style: normal; }

/* C3 — H2-Variante in Landing-Sections reduzieren (Schur 23.06.2026: "Zwischenüberschriften erscheinen mir bei einigen Artikel zu groß") */
.bdl-landing-section h2 {
  font-size: clamp(1.4rem, 2vw, 1.75rem) !important;
  line-height: 1.25 !important;
}
.bdl-landing-block h2,
.bdl-landing-quote h2,
.bdl-landing-stats h2,
.bdl-landing-faq h2,
.bdl-landing-people h2 {
  font-size: clamp(1.4rem, 2vw, 1.75rem) !important;
  line-height: 1.25 !important;
}
.bdl-infobox h2,
.bdl-infobox .h2 {
  font-size: clamp(1.3rem, 1.8vw, 1.6rem) !important;
  line-height: 1.3 !important;
}

/* ============================================================

/* ============================================================
 * Marktbericht-Charts (Page 16) — TOC-Sidebar-Überlapp fixen v2
 * Schur-Feedback 23.06.2026: aside.bdl-toc-floating (230px sticky right)
 * deckte rechte Chart-Kante ab.
 * Lösung: HTML-Sektionen (= Chart-CEs) bekommen padding-right damit
 * Inhalt komplett links der TOC-Spalte landet — single & grid robust.
 * ============================================================ */
@media (min-width: 992px) {
  body.page-16 .frame.frame-type-html {
    padding-right: 260px;
  }
}

/* ============================================================
 * Marktbericht-Charts v2 (Page 16) — Pie-Größe + Grid-Equal-Height
 * Schur-Folge-Feedback 23.06.2026: Pies zu klein, Doppel-Chart
 * Container nicht gleich hoch, Tooltips winzig.
 * ============================================================ */

/* Single Pie-Charts (CE 225, 227): groß + zentriert */
.bdl-chart-pie-large {
  position: relative;
  max-width: 720px;
  height: 460px;
  margin: 0 auto;
}
.bdl-chart-pie-large > canvas { width: 100% !important; height: 100% !important; }

/* Doppel-Chart Grid (CE 223): Pie + Bar gleich hoch */
.bdl-chart-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: stretch;
}
.bdl-chart-grid-cell {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border-radius: 6px;
  padding: 16px 20px 20px 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.bdl-chart-grid-cell > .bdl-chart-subtitle {
  text-align: center;
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 14px 0;
}
.bdl-chart-grid-cell > .bdl-chart-wrap {
  position: relative;
  flex: 1 1 auto;
  min-height: 480px;
}
.bdl-chart-grid-cell > .bdl-chart-wrap > canvas { width: 100% !important; height: 100% !important; }
@media (max-width: 991px) {
  .bdl-chart-grid { grid-template-columns: 1fr; }
}

/* ============================================================
 * OJB-Wide Spacing-Variable (23.06.2026, Stefan-Entscheidung Option A)
 * Vereinheitlicht frame-default (42px aus BP) + frame-bdl-* (52px aus
 * Sitepackage) + frame-bdl-image (war 40-72) auf einen Wert:
 *   --bdl-section-pad: clamp(28px, 4vw, 52px)
 * Wirkung: alle Section-Übergänge im OJB konsistent ~104px (52+52).
 * ============================================================ */
main#page-content .frame {
  padding-top: var(--bdl-section-pad);
  padding-bottom: var(--bdl-section-pad);
}

/* bdl_infobox (Bio-/InfoBox-Section, z.B. "Zur Person") braucht visuell
 * mehr Anlauf nach oben — der negative margin-top reisst sie sonst zu nah
 * an den vorherigen Inhalt. Stefan-Feedback 23.06.2026. */
main#page-content .frame.frame-type-bdl_infobox {
  padding-top: clamp(48px, 5.5vw, 76px);
}

/* BP zieht aufeinanderfolgende Sections per --frame-outer-spacing-before
 * standardmäßig um 42px überlappend zusammen — das lässt nach Text-Ende
 * kaum noch sichtbares "Section-Weiß" übrig.
 * Stefan-Feedback Connemann 23.06.2026: zwischen Text und neuer Section
 * deutlich mehr Anlauf nach unten gewünscht.
 * Reduktion des Overlap-Werts auf 20px. */
main#page-content .frame {
  --frame-outer-spacing-before: -20px;
  --frame-outer-spacing-after: 0;
}

/* Solo-Header-Sections (CType=header, kein Bodytext) — z.B. Article-Intro-
 * Headline "Ohne Leasing…" auf der Connemann-Seite. Stefan-Feedback 23.06.2026:
 * der "header-only" Frame hatte mit Standard-Padding zu viel Luft oben + unten
 * weil keine Body-Content unter der H2 das Section-Padding kompensiert.
 * Reduziertes Padding macht den Block kompakter und ausgewogener. */
main#page-content .frame.frame-type-header {
  padding-top: clamp(20px, 3vw, 36px);
  padding-bottom: clamp(8px, 1.5vw, 18px);
}
main#page-content .frame.frame-type-header .element-header {
  margin-bottom: 0;
}

/* Hero-Crop per Page: optimale Position pro Bild
 * (statt globalem center werden hier seitenspezifische
 * Fokuspunkte gesetzt) — Stefan-Feedback 24.06.2026 */
body.page-33 .bdl-article-hero-img { background-position: center 75% !important; }

/* ============================================================
   PULL-QUOTE BILD-VEREINHEITLICHUNG (Stefan 24.06.2026)
   Bisher: default-Variante 226px (links), compact-Variante 320px (rechts).
   Neu: beide Varianten einheitliche Bildgröße, größer.
   ============================================================ */
.bdl-pullquote-figure {
  grid-template-columns: minmax(300px, 380px) 1.4fr !important;
  gap: clamp(1.5rem, 3vw, 2.75rem) !important;
}
.bdl-pullquote-figure:not(.bdl-pullquote-figure--compact) > img:first-child,
.bdl-pullquote-figure:not(.bdl-pullquote-figure--compact) > a:first-child img {
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
  height: auto !important;
  object-fit: cover !important;
  object-position: center center !important;
}
.bdl-pullquote-figure--compact {
  grid-template-columns: 1fr minmax(300px, 380px) !important;
  gap: clamp(1.5rem, 3vw, 2.75rem) !important;
}
.bdl-pullquote-figure--compact .bdl-pullquote-figure__media img {
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
  height: auto !important;
  object-fit: cover !important;
  object-position: center center !important;
}
@media (max-width: 767px) {
  .bdl-pullquote-figure, .bdl-pullquote-figure--compact { grid-template-columns: 1fr !important; }
}

/* Pull-Quote in Figure (default, Bild links): Schrift an Compact angleichen
   (Stefan 24.06.2026: 28px war fast doppelt so groß wie Compact 15px) */
.bdl-pullquote-figure:not(.bdl-pullquote-figure--compact) .bdl-pullquote > p,
.bdl-pullquote-figure:not(.bdl-pullquote-figure--compact) blockquote > p {
  font-size: clamp(15px, 1.25vw, 17px) !important;
  line-height: 1.55 !important;
}
.bdl-pullquote-figure:not(.bdl-pullquote-figure--compact) .bdl-pullquote::before,
.bdl-pullquote-figure:not(.bdl-pullquote-figure--compact) blockquote::before {
  font-size: clamp(50px, 6vw, 80px) !important;
}

/* ============================================================
   PULL-QUOTE GLOBAL HARMONISIERUNG (Stefan 24.06.2026)
   Default und Compact-Variante teilen jetzt die gleiche Optik:
   - NICHT kursiv, Editorial-Blau, einheitliche Schrift
   - Footer = blauer Name + grauer Role im selben Block
   - Caption unter dem Bild ausgeblendet (Name steht im Footer)
   ============================================================ */
.bdl-pullquote-figure .bdl-pullquote > p,
.bdl-pullquote-figure .bdl-pullquote > *:not(footer),
.bdl-pullquote-figure--compact .bdl-pullquote > p,
.bdl-pullquote-figure--compact .bdl-pullquote > *:not(footer) {
  font-family: 'Roboto', sans-serif !important;
  font-size: clamp(15px, 1.25vw, 17px) !important;
  font-weight: 300 !important;
  font-style: normal !important;
  line-height: 1.55 !important;
  letter-spacing: -0.005em !important;
  color: var(--bdl-blue, #1C4F9B) !important;
  margin: 0 0 0.85rem !important;
}
.bdl-pullquote-figure .bdl-pullquote > footer,
.bdl-pullquote-figure--compact .bdl-pullquote > footer {
  font-size: 0.92rem !important;
  font-style: normal !important;
  font-weight: 400 !important;
  color: var(--bdl-gray, #666) !important;
  margin-top: 0.75rem !important;
  line-height: 1.4 !important;
}
.bdl-pullquote-figure .bdl-pullquote > footer strong,
.bdl-pullquote-figure--compact .bdl-pullquote > footer strong {
  display: block !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
  color: var(--bdl-blue, #1C4F9B) !important;
  letter-spacing: 0.02em !important;
  margin-bottom: 0.2rem !important;
}
/* Anführungszeichen einheitlich */
.bdl-pullquote-figure .bdl-pullquote::before,
.bdl-pullquote-figure--compact .bdl-pullquote::before {
  font-size: clamp(60px, 7vw, 90px) !important;
  color: var(--bdl-blue, #1C4F9B) !important;
  opacity: 0.22 !important;
}
/* Redundante Caption unter Bild ausblenden (Name steht im Quote-Footer) */
.bdl-pullquote-figure .bdl-pullquote-figure__caption,
.bdl-pullquote-figure--compact .bdl-pullquote-figure__caption {
  display: none !important;
}

/* ============================================================
   ARCHIV-PAGE (43) — Spacing kompakter (Stefan 24.06.2026)
   Oberer Bereich (Intro-Block + erste Archive-Card) wirkte zu luftig.
   ============================================================ */
body.page-43 .bdl-landing-section {
  padding: clamp(1.25rem, 2vw, 2rem) 0 !important;
}
body.page-43 .bdl-archive-grid {
  margin: 8px 0 0 !important;
}
/* Frame-Padding zwischen aufeinanderfolgenden Landing-Frames reduzieren */
body.page-43 .frame-type-bdl_landing_block .frame-inner,
body.page-43 .frame-type-html .frame-inner {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}
body.page-43 .frame-type-bdl_landing_block {
  margin-top: 0 !important;
}

/* Archiv-Page Frame-Padding direkt ansprechen (frame, nicht frame-inner) */
body.page-43 .frame-type-bdl_landing_block,
body.page-43 .frame-type-html {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
}
body.page-43 .frame-type-bdl_landing_block .frame-inner,
body.page-43 .frame-type-html .frame-inner {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* ============================================================
   HUB-SEITEN Spacing-Reduktion (Stefan 24.06.2026)
   Gilt für 5 Markt&Trends, 8 Connemann, 9 Dittrich, 25 Rahmenbed., 29 Kommunal, 43 Archiv.
   Startseite (1) bleibt mit großzügigem Spacing.
   ============================================================ */
body.page-5 .frame-type-bdl_landing_block,
body.page-8 .frame-type-bdl_landing_block,
body.page-9 .frame-type-bdl_landing_block,
body.page-25 .frame-type-bdl_landing_block,
body.page-29 .frame-type-bdl_landing_block,
body.page-43 .frame-type-bdl_landing_block {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}
body.page-5 .bdl-landing-section,
body.page-8 .bdl-landing-section,
body.page-9 .bdl-landing-section,
body.page-25 .bdl-landing-section,
body.page-29 .bdl-landing-section,
body.page-43 .bdl-landing-section {
  padding: clamp(1rem, 1.5vw, 1.75rem) 0 !important;
}

/* ============================================================
   MOBILE-FIX (Stefan 24.06.2026)
   - Topbar darf wrappen auf 2 Zeilen, body+Navbar reservieren genug Platz
   - Breadcrumb auf Mobile kompakter, sauberer Abstand zum Hero
   ============================================================ */
@media (max-width: 575px) {
  body::before {
    white-space: normal !important;
    line-height: 1.3 !important;
    height: auto !important;
    min-height: 40px !important;
    padding: 8px 12px !important;
    font-size: 11px !important;
  }
  body {
    padding-top: 68px !important;
  }
  #page-header.bp-page-header.navbar-mainnavigation {
    top: 68px !important;
  }
  /* Breadcrumb: kleinere Schrift + word-break, sodass lange Pfade sauber umbrechen */
  .breadcrumb-section {
    padding: 4px 0;
  }
  .breadcrumb {
    font-size: 11.5px !important;
    line-height: 1.5 !important;
    padding: 6px 0 !important;
    flex-wrap: wrap;
  }
  .breadcrumb-item {
    word-break: break-word;
  }
  /* Hero etwas Luft nach oben gönnen, damit Breadcrumb nicht direkt anstößt */
  .bdl-article-hero {
    margin-top: 0 !important;
  }
}
/* Tablet/Phablet zwischen 576 und 991: Navbar-Top auf Topbar-Höhe synchron halten,
   falls der Topbar wegen mittlerer Breite auch wraped */
@media (min-width: 576px) and (max-width: 991px) {
  body::before {
    white-space: normal !important;
    line-height: 1.3 !important;
    height: auto !important;
    min-height: 48px !important;
    padding: 8px 12px !important;
  }
  body {
    padding-top: 56px !important;
  }
  #page-header.bp-page-header.navbar-mainnavigation {
    top: 56px !important;
  }
}

/* ============================================================
   MOBILE-FIX v2 (Stefan 25.06.2026)
   - Breadcrumb auf Mobile: nur Home + aktuelle Page zeigen,
     Zwischenebenen ausblenden (statt 3-zeilig auf 1-zeilig)
   - Topbar-Padding minimal reduziert
   ============================================================ */
@media (max-width: 575px) {
  /* Topbar minimal kompakter */
  body::before {
    padding: 6px 12px !important;
    letter-spacing: 0.04em !important;
  }
  body { padding-top: 62px !important; }
  #page-header.bp-page-header.navbar-mainnavigation { top: 62px !important; }

  /* Breadcrumb: Zwischenebenen ausblenden, 1-zeilig */
  .breadcrumb {
    flex-wrap: nowrap !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .breadcrumb-item:not(:first-child):not(:last-child) {
    display: none !important;
  }
  /* Zwischen Home und letzter Ebene Ellipse einsetzen, optisch wie ein Trenner */
  .breadcrumb-item:last-child:not(:nth-child(2))::before {
    content: '… ›' !important;
    padding: 0 6px !important;
    color: #b3b3b3 !important;
  }
  /* letzte Ebene darf ihr Text mit ellipsis abkürzen */
  .breadcrumb-item:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1 1 auto;
    min-width: 0;
  }
}

/* ============================================================
   A1 STARTSEITE-HERO v2 (Stefan 25.06.2026)
   Reversibel: alles in diesem Block. Zum Rollback: Block löschen.
   - Hero-Höhe stark reduziert (mehr horizontale Illu-Sicht)
   - Headline raus dem Overlay, als Band unter dem Hero
   - Tint reduziert, damit Illustration prominenter wirkt
   ============================================================ */
body.page-1 .bdl-article-hero {
  height: clamp(280px, 36vh, 420px) !important;
  min-height: 280px !important;
  max-height: 420px !important;
  margin-bottom: 0 !important;
  overflow: visible !important;
  position: relative !important;
}
/* Bild bleibt cover, aber Container ist breiter als hoch → mehr Illu sichtbar */
body.page-1 .bdl-article-hero-img {
  background-size: cover !important;
  background-position: center center !important;
}
/* Tint deutlich reduziert: Illustration prominenter */
body.page-1 .bdl-article-hero-overlay {
  background: rgba(19, 55, 112, 0.18) !important;
  align-items: flex-end !important;
}
/* Overlay-Container: Headline raus aus Bild, als weißes Band UNTER dem Hero */
body.page-1 .bdl-article-hero-overlay > .container {
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  right: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1rem, 4vw, 3rem) !important;
  background: var(--bdl-white, #fff) !important;
  text-align: center !important;
}
body.page-1 .bdl-article-hero-content {
  text-shadow: none !important;
  max-width: 1140px !important;
  margin: 0 auto !important;
}
/* Tag: blau auf weiß statt weiß auf transparent */
body.page-1 .bdl-article-hero-tag {
  background: rgba(28, 79, 155, 0.10) !important;
  color: var(--bdl-blue, #1C4F9B) !important;
  border-color: rgba(28, 79, 155, 0.25) !important;
  margin-bottom: 1.25rem !important;
  font-size: 0.85rem !important;
  padding: 8px 18px !important;
}
/* Titel: kleiner, blauer Text auf weißem Band */
body.page-1 .bdl-article-hero-title {
  font-size: clamp(36px, 5.5vw, 72px) !important;
  color: var(--bdl-blue, #1C4F9B) !important;
  margin: 0 0 1rem !important;
  line-height: 1.05 !important;
}
body.page-1 .bdl-article-hero-subtitle {
  color: var(--bdl-gray, #666) !important;
  font-size: clamp(17px, 1.6vw, 22px) !important;
}
/* Scroll-Hint Chevron: unten am Bild-Rand statt unter Page-Title, oder ganz weg */
body.page-1 .bdl-article-hero::after {
  bottom: 1rem !important;
  width: 18px !important;
  height: 18px !important;
  border-color: rgba(255, 255, 255, 0.7) !important;
}
/* Platz unter dem Hero, sodass das Headline-Band sichtbar bleibt und der Inhalt nicht überlappt */
body.page-1 main#page-content {
  padding-top: clamp(180px, 22vh, 260px) !important;
}
@media (max-width: 575px) {
  body.page-1 .bdl-article-hero {
    height: clamp(220px, 30vh, 320px) !important;
    min-height: 220px !important;
  }
  body.page-1 .bdl-article-hero-title {
    font-size: clamp(28px, 7vw, 40px) !important;
  }
  body.page-1 main#page-content {
    padding-top: clamp(160px, 26vh, 240px) !important;
  }
}

/* ============================================================
   A1 STARTSEITE-HERO v3 (Stefan 25.06.2026)
   Reversibel: alles in diesem Block. Zum Rollback: Block löschen.
   - Hero als Flex-Stapel: Illustration oben, Headline-Band unten
   - Mehr horizontale Illustration sichtbar (breiterer Crop bei kleinerer Höhe)
   ============================================================ */
body.page-1 .bdl-article-hero {
  display: flex !important;
  flex-direction: column !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin-bottom: 0 !important;
  overflow: hidden !important;
  position: relative !important;
  aspect-ratio: auto !important;
}
/* Bild-Container: nimmt feste Höhe (kleiner als bisher → mehr horizontaler Illu-Anteil) */
body.page-1 .bdl-article-hero-img {
  position: relative !important;
  inset: auto !important;
  height: clamp(280px, 36vh, 420px) !important;
  width: 100% !important;
  flex: none !important;
  background-size: cover !important;
  background-position: center center !important;
}
/* Overlay = Headline-Band, sitzt UNTER dem Bild als eigene Box */
body.page-1 .bdl-article-hero-overlay {
  position: relative !important;
  inset: auto !important;
  background: var(--bdl-white, #fff) !important;
  padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1rem, 4vw, 3rem) !important;
  display: block !important;
  align-items: stretch !important;
}
body.page-1 .bdl-article-hero-overlay > .container {
  padding: 0 !important;
  max-width: 1140px !important;
  margin: 0 auto !important;
  text-align: center !important;
}
body.page-1 .bdl-article-hero-content {
  text-shadow: none !important;
  max-width: 1140px !important;
  margin: 0 auto !important;
}
body.page-1 .bdl-article-hero-tag {
  background: rgba(28, 79, 155, 0.10) !important;
  color: var(--bdl-blue, #1C4F9B) !important;
  border-color: rgba(28, 79, 155, 0.25) !important;
  margin-bottom: 1.25rem !important;
  font-size: 0.85rem !important;
  padding: 8px 18px !important;
}
body.page-1 .bdl-article-hero-title {
  font-size: clamp(36px, 5.5vw, 72px) !important;
  color: var(--bdl-blue, #1C4F9B) !important;
  margin: 0 0 1rem !important;
  line-height: 1.05 !important;
  font-weight: 300 !important;
}
body.page-1 .bdl-article-hero-subtitle {
  color: var(--bdl-gray, #666) !important;
  font-size: clamp(17px, 1.6vw, 22px) !important;
  max-width: 780px !important;
  margin-inline: auto !important;
}
/* Scroll-Chevron entfernen — passt nicht mehr zum neuen Layout */
body.page-1 .bdl-article-hero::after { display: none !important; }
/* main braucht keinen Extra padding-top mehr, weil Headline jetzt in normalem Flow */
body.page-1 main#page-content { padding-top: 0 !important; }
@media (max-width: 575px) {
  body.page-1 .bdl-article-hero-img {
    height: clamp(220px, 30vh, 320px) !important;
  }
  body.page-1 .bdl-article-hero-title {
    font-size: clamp(28px, 7vw, 40px) !important;
  }
}

/* A1 v3-Patch: Container muss in normalen Flow, Hero darf nicht clippen */
body.page-1 .bdl-article-hero {
  overflow: visible !important;
}
body.page-1 .bdl-article-hero-overlay > .container {
  position: relative !important;
  inset: auto !important;
  background: var(--bdl-white, #fff) !important;
}

/* ============================================================
   A1 STARTSEITE-HERO v4 (Stefan 25.06.2026)
   Reversibel: gesamter Block hier. Zum Rollback: Block löschen.
   - Hero-Höhe reduziert (mehr horizontaler Illu-Ausschnitt)
   - Headline zurück AUF das Bild, mittig
   - Tint dunkler für weiße Schrift-Lesbarkeit
   - Headline kleiner (passt zu reduzierter Hero-Höhe)
   ============================================================ */
body.page-1 .bdl-article-hero {
  height: clamp(360px, 48vh, 520px) !important;
  min-height: 360px !important;
  max-height: 520px !important;
  margin-bottom: 0 !important;
  overflow: hidden !important;
  position: relative !important;
  display: block !important;
  aspect-ratio: auto !important;
}
body.page-1 .bdl-article-hero-img {
  position: absolute !important;
  inset: 0 !important;
  height: 100% !important;
  width: 100% !important;
  background-size: cover !important;
  background-position: center center !important;
}
/* Tint deutlich kräftiger für weiße Schrift-Kontrast */
body.page-1 .bdl-article-hero-overlay {
  background: rgba(19, 55, 112, 0.55) !important;
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
}
body.page-1 .bdl-article-hero-overlay > .container {
  position: relative !important;
  inset: auto !important;
  max-width: 1140px !important;
  margin: 0 auto !important;
  background: transparent !important;
  text-align: center !important;
  padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1rem, 4vw, 3rem) !important;
}
body.page-1 .bdl-article-hero-content {
  text-shadow: 0 2px 18px rgba(0, 28, 70, 0.55) !important;
  max-width: 1140px !important;
  margin: 0 auto !important;
}
body.page-1 .bdl-article-hero-tag {
  background: rgba(255, 255, 255, 0.18) !important;
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.45) !important;
  margin-bottom: 1.25rem !important;
  font-size: 0.85rem !important;
  padding: 8px 18px !important;
}
body.page-1 .bdl-article-hero-title {
  font-size: clamp(34px, 5vw, 64px) !important;
  color: #fff !important;
  margin: 0 0 0.9rem !important;
  line-height: 1.05 !important;
  font-weight: 300 !important;
  letter-spacing: -0.02em !important;
}
body.page-1 .bdl-article-hero-subtitle {
  color: rgba(255, 255, 255, 0.95) !important;
  font-size: clamp(17px, 1.55vw, 22px) !important;
  max-width: 720px !important;
  margin-inline: auto !important;
  line-height: 1.45 !important;
}
body.page-1 .bdl-article-hero::after { display: none !important; }
body.page-1 main#page-content { padding-top: 0 !important; }
@media (max-width: 575px) {
  body.page-1 .bdl-article-hero {
    height: clamp(280px, 42vh, 380px) !important;
    min-height: 280px !important;
  }
  body.page-1 .bdl-article-hero-title {
    font-size: clamp(26px, 7vw, 38px) !important;
  }
  body.page-1 .bdl-article-hero-subtitle {
    font-size: clamp(15px, 4vw, 17px) !important;
  }
}

/* ============================================================
   Tunings (Stefan 25.06.2026 evening)
   ============================================================ */

/* 1) A3 Hero-Crops nachjustieren */
body.page-8 .bdl-article-hero-img  { background-position: center 50% !important; }   /* Connemann: Tisch+Stühle mittig */
body.page-9 .bdl-article-hero-img  { background-position: center 55% !important; }   /* Dittrich: Werkstattbank zentriert */
body.page-26 .bdl-article-hero-img { background-position: center 60% !important; }   /* Maaß: Ledger+Charts unten zentriert */
body.page-29 .bdl-article-hero-img { background-position: center 55% !important; }   /* Hartmann: Rathaus zentriert */
body.page-30 .bdl-article-hero-img { background-position: center 55% !important; }   /* Editorial: Brücke zentriert */
body.page-11 .bdl-article-hero-img { background-position: center 55% !important; }   /* Branchen: Halle zentriert */

/* 2) D1 Share-Bar bei TOC-Pages ausblenden — Sharing über OS-Funktion */
body:has(.bdl-toc-floating) .bdl-share-bar {
  display: none !important;
}

/* 3) Pull-Quote-Zitat optisch differenzieren von Personen-Footer
   Zitat: serifenlos, größer, blau, kursiv (Editorial-Look)
   Footer: kleiner, grau, klare Hierarchie */
.bdl-pullquote-figure .bdl-pullquote > p,
.bdl-pullquote-figure--compact .bdl-pullquote > p {
  font-family: 'Roboto', sans-serif !important;
  font-size: clamp(19px, 1.65vw, 24px) !important;
  font-style: italic !important;
  font-weight: 300 !important;
  line-height: 1.4 !important;
  color: var(--bdl-blue, #1C4F9B) !important;
  letter-spacing: -0.005em !important;
}
.bdl-pullquote-figure .bdl-pullquote > footer,
.bdl-pullquote-figure--compact .bdl-pullquote > footer {
  font-size: 0.82rem !important;
  font-style: normal !important;
  font-weight: 400 !important;
  color: var(--bdl-gray, #666) !important;
  margin-top: 1.1rem !important;
  line-height: 1.4 !important;
}
.bdl-pullquote-figure .bdl-pullquote > footer strong,
.bdl-pullquote-figure--compact .bdl-pullquote > footer strong {
  display: block !important;
  font-weight: 600 !important;
  font-size: 0.92rem !important;
  color: var(--bdl-blue, #1C4F9B) !important;
  letter-spacing: 0.01em !important;
  margin-bottom: 0.2rem !important;
}

/* 4) A1 Startseite-Hero: obere Hälfte der Illustration sichtbar machen */
body.page-1 .bdl-article-hero {
  height: clamp(440px, 56vh, 620px) !important;
  min-height: 440px !important;
  max-height: 620px !important;
}
body.page-1 .bdl-article-hero-img {
  background-position: center top !important;
  background-size: cover !important;
}
@media (max-width: 575px) {
  body.page-1 .bdl-article-hero {
    height: clamp(320px, 44vh, 420px) !important;
    min-height: 320px !important;
  }
}

/* ============================================================
   Tunings v2 (Stefan 25.06.2026 evening 2)
   ============================================================ */

/* Share-Bar bei TOC-Pages WIEDER sichtbar, ueber TOC inline */
body:has(.bdl-toc-floating) .bdl-share-bar {
  display: flex !important;
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  left: auto !important;
  transform: none !important;
  flex-direction: row !important;
  border-radius: 0 4px 4px 0 !important;
  z-index: 10 !important;
}
.bdl-toc-floating {
  position: relative !important;
  padding-top: 56px !important;  /* Platz fuer Share-Bar */
}
body:has(.bdl-toc-floating) .bdl-share-bar .bdl-share-link {
  width: 36px !important;
  height: 36px !important;
}

/* Page 24 Spacing-Audit: gleiches Pattern wie Hub-Seiten */
body.page-24 .frame-type-text,
body.page-24 .frame-type-textmedia,
body.page-24 .frame-type-textpic,
body.page-24 .frame-type-html,
body.page-24 .frame-type-bdl_landing_faq,
body.page-24 .frame-type-bdl_landing_people,
body.page-24 .frame-type-bdl_infobox {
  padding-top: 28px !important;
  padding-bottom: 28px !important;
}
body.page-24 .frame { margin-top: -8px !important; }
body.page-24 .frame-type-bdl_infobox { padding-top: 40px !important; }

/* ============================================================
   Tunings v3 (Stefan 25.06.2026 evening 3) — TOC + Share-Bar Fix
   ============================================================ */
/* TOC zurück auf fixed (sticky rechts, wie ursprünglich) */
.bdl-toc-floating {
  position: fixed !important;
  right: 16px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  padding-top: 56px !important;
  padding-right: 1.2rem !important;
}
/* Share-Bar im TOC-Bereich: absolut innerhalb der TOC-Box, oben mittig */
body:has(.bdl-toc-floating) .bdl-share-bar {
  position: fixed !important;
  right: 16px !important;
  left: auto !important;
  top: calc(50% - 35vh + 8px) !important;
  transform: none !important;
  flex-direction: row !important;
  width: auto !important;
  z-index: 60 !important;
  background: var(--bdl-white) !important;
  border-radius: 6px 6px 0 0 !important;
  box-shadow: 0 -2px 8px rgba(28,79,155,0.08) !important;
  display: flex !important;
}
body:has(.bdl-toc-floating) .bdl-share-bar .bdl-share-link {
  width: 36px !important;
  height: 36px !important;
}
/* Mobile/Tablet: TOC weg, Share zurück nach rechts wie zuvor */
@media (max-width: 1199px) {
  body:has(.bdl-toc-floating) .bdl-share-bar {
    position: fixed !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    flex-direction: column !important;
    border-radius: 4px 0 0 4px !important;
    box-shadow: -2px 2px 12px rgba(28,79,155,0.18) !important;
  }
}

/* ============================================================
   Tunings v4 (Stefan 25.06.2026 evening 4)
   Share-Bar = oberer Abschluss der TOC, volle TOC-Breite
   ============================================================ */
body:has(.bdl-toc-floating) .bdl-share-bar {
  position: fixed !important;
  right: 16px !important;
  left: auto !important;
  width: 230px !important;
  top: calc(50% - 35vh + 0px) !important;
  transform: none !important;
  flex-direction: row !important;
  justify-content: space-around !important;
  align-items: center !important;
  background: var(--bdl-white) !important;
  border: 1px solid rgba(28, 79, 155, 0.10) !important;
  border-bottom: none !important;
  border-radius: 6px 6px 0 0 !important;
  box-shadow: 0 -2px 12px rgba(28, 79, 155, 0.06) !important;
  z-index: 60 !important;
  display: flex !important;
  height: 44px !important;
}
body:has(.bdl-toc-floating) .bdl-share-bar .bdl-share-link {
  flex: 1 1 auto !important;
  width: auto !important;
  height: 44px !important;
  border-bottom: none !important;
  border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
}
body:has(.bdl-toc-floating) .bdl-share-bar .bdl-share-link:last-child {
  border-right: none !important;
}
/* TOC oberer Border-Radius weg, nahtloser Anschluss an Share-Bar */
.bdl-toc-floating {
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
  border-top: none !important;
  padding-top: 1.1rem !important;  /* Original-Padding zurück */
}

/* ============================================================
   Tunings v5 (Stefan 25.06.2026 evening 5)
   Share-Bar bündig oben auf TOC (kein Überlapp mehr)
   ============================================================ */
.bdl-toc-floating {
  top: 14vh !important;
  transform: none !important;
  padding-top: 60px !important;
  max-height: 76vh !important;
}
body:has(.bdl-toc-floating) .bdl-share-bar {
  top: 14vh !important;
  height: 44px !important;
}

/* ============================================================
   Sekundär-Quotes (Stefan 25.06.2026) — frame_class=bdl-quote-secondary
   1. Quote pro Person bleibt prominent, ab dem 2. Quote:
   - Fließtextgröße
   - Foto ausblenden
   - Leicht editorial ausgezeichnet (italic, blau, blaue Seitenleiste)
   ============================================================ */
.frame-bdl-quote-secondary {
  background: transparent !important;
}
.frame-bdl-quote-secondary .bdl-pullquote-figure,
.frame-bdl-quote-secondary .bdl-pullquote-figure--compact {
  grid-template-columns: 1fr !important;
  background: rgba(28, 79, 155, 0.04) !important;
  border-left: 3px solid var(--bdl-blue, #1C4F9B) !important;
  border-radius: 0 6px 6px 0 !important;
  padding: 1.1rem 1.5rem !important;
  margin: 0.5rem 0 !important;
  gap: 0 !important;
}
.frame-bdl-quote-secondary .bdl-pullquote-figure__media,
.frame-bdl-quote-secondary .bdl-pullquote-figure > img:first-child,
.frame-bdl-quote-secondary .bdl-pullquote-figure > a:first-child {
  display: none !important;
}
.frame-bdl-quote-secondary .bdl-pullquote {
  padding: 0 0 0 1.6rem !important;
  margin: 0 !important;
  max-width: none !important;
}
.frame-bdl-quote-secondary .bdl-pullquote::before {
  font-size: 36px !important;
  top: -0.5rem !important;
  left: 0 !important;
  opacity: 0.4 !important;
}
.frame-bdl-quote-secondary .bdl-pullquote > p {
  font-family: 'Open Sans', sans-serif !important;
  font-size: 1rem !important;
  font-style: italic !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  color: var(--bdl-blue, #1C4F9B) !important;
  letter-spacing: 0 !important;
  margin-bottom: 0.5rem !important;
}
.frame-bdl-quote-secondary .bdl-pullquote > footer {
  font-size: 0.82rem !important;
  font-style: normal !important;
  color: var(--bdl-gray, #666) !important;
  margin-top: 0.4rem !important;
  line-height: 1.4 !important;
}
.frame-bdl-quote-secondary .bdl-pullquote > footer strong {
  display: inline !important;
  font-weight: 600 !important;
  color: var(--bdl-blue, #1C4F9B) !important;
  font-size: 0.85rem !important;
}
.frame-bdl-quote-secondary .bdl-pullquote > footer br + * {
  display: inline !important;
}
.frame-bdl-quote-secondary .bdl-pullquote > footer br {
  display: none !important;
}
.frame-bdl-quote-secondary .bdl-pullquote > footer strong::after {
  content: ' · ';
  color: var(--bdl-gray, #999);
  font-weight: 400;
}

/* ============================================================
   YouTube Click-to-Load Embed (privacy-friendly).
   Bis zum Klick wird NUR das Posterbild geladen, kein YouTube.
   Beim Klick wird ein iframe von youtube-nocookie.com eingesetzt.
   ============================================================ */
.bdl-yt-embed {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #000;
  overflow: hidden;
  cursor: pointer;
  margin: 1.5rem 0;
  border-radius: 4px;
  max-width: 100%;
}
.bdl-yt-embed img,
.bdl-yt-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}
.bdl-yt-embed img {
  object-fit: cover;
  transition: filter 0.2s ease;
}
.bdl-yt-embed:hover img {
  filter: brightness(0.9);
}
.bdl-yt-embed__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  width: 88px;
  height: 62px;
  z-index: 2;
}
.bdl-yt-embed__play svg {
  width: 100%;
  height: 100%;
  display: block;
  opacity: 0.92;
  transition: opacity 0.2s ease, transform 0.2s ease;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.35));
}
.bdl-yt-embed:hover .bdl-yt-embed__play svg {
  opacity: 1;
  transform: scale(1.06);
}
.bdl-yt-embed--playing img,
.bdl-yt-embed--playing .bdl-yt-embed__play {
  display: none;
}
.bdl-yt-embed__caption {
  margin: 0.5rem 0 0;
  font-size: 0.85rem;
  color: #666;
  line-height: 1.45;
}

/* Vollbreite-Override fuer YT-Embed: bricht aus dem Standard-Text-Container aus
   und nimmt die volle Inhaltsbreite ein (max. 1100px = Hauptcontainer-Breite).
   Funktioniert ohne separates frame_class — wirkt automatisch fuer alle .bdl-yt-embed. */
.bdl-yt-embed {
  width: 100% !important;
  max-width: 1100px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
@media (min-width: 992px) {
  .frame-type-html .bdl-yt-embed,
  .frame-type-text .bdl-yt-embed {
    width: min(1100px, calc(100vw - 64px)) !important;
    margin-left: 50% !important;
    transform: translateX(-50%);
    position: relative;
  }
}
@media (min-width: 1280px) {
  /* Wenn Sticky-TOC aktiv (linke Sidebar ~260px), Video nach rechts versetzt zentrieren */
  body:has(.bdl-toc-floating) .frame-type-html .bdl-yt-embed,
  body:has(.bdl-toc-floating) .frame-type-text .bdl-yt-embed {
    margin-left: auto !important;
    transform: none;
    max-width: min(1100px, calc(100vw - 320px)) !important;
  }
}

/* ============================================================
   Tunings v6 (Stefan 25.06.2026 night)
   1) Teaser-Cards: Tag/Titel/Text nicht wie Link aussehen
   2) Visited-Link-Farbe global BDL-konform statt Browser-Grün
   ============================================================ */

/* (1) Teaser-Card: ganze Card ist im a-Element, aber Tag/Titel/Text sollen
       normal aussehen (kein Link-Style). Nur :hover wirkt subtil. */
.bdl-landing-kb-card a,
.bdl-landing-kb-card a:link,
.bdl-landing-kb-card a:visited,
.bdl-landing-kb-card a:hover,
.bdl-landing-kb-card a:active {
  text-decoration: none !important;
  color: inherit !important;
}
.bdl-landing-kb-card__tag {
  color: var(--bdl-blue, #1C4F9B) !important;
}
.bdl-landing-kb-card h3 {
  color: var(--bdl-blue-dark, #133770) !important;
}
.bdl-landing-kb-card p {
  color: var(--bdl-gray, #444) !important;
}
.bdl-landing-kb-card .bdl-feature-cta {
  color: var(--bdl-blue, #1C4F9B) !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}
.bdl-landing-kb-card:hover h3 {
  color: var(--bdl-blue, #1C4F9B) !important;
}

/* Analoge Regeln für bdl-teaser-card-link (Page 24) */
.bdl-article-card.bdl-teaser-card-link,
.bdl-article-card.bdl-teaser-card-link:link,
.bdl-article-card.bdl-teaser-card-link:visited,
.bdl-article-card.bdl-teaser-card-link:hover {
  text-decoration: none !important;
  color: inherit !important;
}
.bdl-article-card-tag { color: var(--bdl-blue, #1C4F9B) !important; }
.bdl-article-card-title { color: var(--bdl-blue-dark, #133770) !important; }
.bdl-article-card-text { color: var(--bdl-gray, #444) !important; }
.bdl-article-card-link { color: var(--bdl-blue, #1C4F9B) !important; font-weight: 600 !important; }

/* (2) Globale visited-Farbe: BDL-blau-grau, nicht Browser-default Grün/Lila */
a:visited {
  color: var(--bdl-gray, #666);
}
/* In Body-Texten / RTE-Links etwas dezenter (grau-blau) damit nicht prominent */
.frame-default p a:visited,
.bdl-landing-section p a:visited,
.bdl-landing-block p a:visited {
  color: #5d6e84;
}

/* ============================================================
   Visited-Strategy v2 (Stefan 25.06.2026 late)
   - Default: visited = gleiche Farbe wie Link (BDL-blau)
   - Footer/dunkle Bereiche: visited bleibt hell (rgba weiss)
   - Pull-Quote / Hero / Accent: visited bleibt weiss
   - Kein Browser-Default-Lila/Grün mehr
   ============================================================ */

/* Alle a:visited folgen dem unvisited-Stil (kein Sonder-Farb-Effekt) */
a:visited,
.frame-default p a:visited,
.bdl-landing-section p a:visited,
.bdl-landing-block p a:visited {
  color: var(--bdl-blue, #1C4F9B) !important;
}

/* Footer-Bereiche: visited bleibt hell wie unvisited */
.bp-page-footer a:visited,
.bdl-footer a:visited,
.bdl-footer-nav a:visited,
.footer-section a:visited,
.footer-navigation-link:visited,
.footer-meta a:visited,
.footer-language a:visited {
  color: rgba(255, 255, 255, 0.65) !important;
}
.bp-page-footer a:visited:hover,
.bdl-footer a:visited:hover,
.bdl-footer-nav a:visited:hover {
  color: #fff !important;
}

/* Akzent-Bereiche (blauer Hintergrund): visited bleibt weiss */
.frame-bdl-accent a:visited,
.bdl-bleed--accent a:visited,
.bdl-pullquote-figure--compact a:visited {
  color: rgba(255, 255, 255, 0.92) !important;
}

/* Topbar-Link weiss */
body::before a:visited,
.bdl-topbar a:visited { color: #fff !important; }

/* ============================================================
   Link-Farbe v3: BDL-Blau global durchsetzen
   (BP setzt --bs-link-color=#577760 im RTE-CSS → das war das Grün)
   ============================================================ */
:root {
  --bs-link-color: #1C4F9B !important;
  --bs-link-hover-color: #133770 !important;
  --bs-primary: #1C4F9B !important;
}
/* a-Tags global durchsetzen — höhere Spezifität als BP-Defaults */
html body a:not(.btn):not(.bdl-feature-cta):not(.bdl-landing-kb-card__link):not(.bdl-teaser-card-link):not([class*=footer]):not([class*=topbar]):not(.cn-learn-more):not(.cm-link):not([data-klaro]),
html body p a,
html body li a,
html body .bdl-landing-block a,
html body .bdl-landing-section a,
html body .bdl-pullquote a {
  color: var(--bdl-blue, #1C4F9B) !important;
}
html body a:visited:not(.btn):not(.bdl-feature-cta):not(.bdl-landing-kb-card__link):not(.bdl-teaser-card-link):not([class*=footer]):not([class*=topbar]),
html body p a:visited,
html body li a:visited {
  color: var(--bdl-blue, #1C4F9B) !important;
}

/* ============================================================
   Link-Farbe v4: Footer-Kontrast fix (Stefan 25.06.2026 final)
   v3-Override mit html body p/li a war zu breit und hat Footer
   blau eingefärbt → unlesbar. Hier präziser pro Container.
   ============================================================ */
html body .bdl-footer-main a,
html body .bdl-footer-main a:visited,
html body .bdl-footer-main a:link,
html body section.footer-section-content a,
html body section.footer-section-content a:visited,
html body .bdl-footer-nav a,
html body .bdl-footer-nav a:visited,
html body .bdl-footer-nav li a {
  color: rgba(255, 255, 255, 0.85) !important;
  text-decoration: none;
}
html body .bdl-footer-main a:hover,
html body .bdl-footer-nav a:hover,
html body section.footer-section-content a:hover {
  color: #fff !important;
  text-decoration: underline;
}
/* Footer-Headings heller — bessere Hierarchie */
.bdl-footer-heading {
  color: rgba(255, 255, 255, 0.95) !important;
}
/* Meta-Bar im Footer (Impressum etc.) */
html body .footer-section-meta a,
html body .footer-section-meta a:visited {
  color: rgba(255, 255, 255, 0.75) !important;
}

/* ============================================================
   Link-Farbe v5: Specificity-Krieg beenden (Stefan 25.06.2026)
   v3 hatte 4x :not(.cls) = Specificity (0,6,3), v4 verlor mit
   (0,1,4). Hier mit GLEICH vielen :not()-Selektoren am Footer.
   ============================================================ */
html body footer a:not(.btn):not(.bdl-feature-cta):not(.x):not(.y):not(.z):not(.w),
html body .bdl-footer-main a:not(.btn):not(.bdl-feature-cta):not(.x):not(.y):not(.z):not(.w),
html body .bdl-footer-nav a:not(.btn):not(.bdl-feature-cta):not(.x):not(.y):not(.z):not(.w),
html body .bdl-footer-nav li a:not(.btn):not(.bdl-feature-cta):not(.x):not(.y):not(.z):not(.w),
html body .footer-section-content a:not(.btn):not(.bdl-feature-cta):not(.x):not(.y):not(.z):not(.w),
html body footer a:visited:not(.btn):not(.bdl-feature-cta):not(.x):not(.y):not(.z):not(.w),
html body .bdl-footer-main a:visited:not(.btn):not(.bdl-feature-cta):not(.x):not(.y):not(.z):not(.w),
html body .bdl-footer-nav a:visited:not(.btn):not(.bdl-feature-cta):not(.x):not(.y):not(.z):not(.w),
html body .footer-section-content a:visited:not(.btn):not(.bdl-feature-cta):not(.x):not(.y):not(.z):not(.w) {
  color: rgba(255, 255, 255, 0.85) !important;
  text-decoration: none !important;
}
html body footer a:hover,
html body .bdl-footer-main a:hover,
html body .bdl-footer-nav a:hover {
  color: #fff !important;
  text-decoration: underline !important;
}
.bdl-footer-heading {
  color: rgba(255, 255, 255, 0.95) !important;
}

/* ============================================================
   Link-Farbe v6: blau-auf-blau Buttons fix (Stefan 25.06.2026)
   - .nav-link-main (BDL-Website Button oben rechts)
   - .scroll-top (Scroll-to-top rechts unten)
   - Beide brauchen weißen Text auf blauem BG
   Specificity-Strategie wie Footer: 6 :not()-Selektoren.
   ============================================================ */
html body a.scroll-top:not(.x):not(.y):not(.z):not(.w):not(.v):not(.u),
html body a.scroll-top:visited:not(.x):not(.y):not(.z):not(.w):not(.v):not(.u),
html body a.scroll-top-visible:not(.x):not(.y):not(.z):not(.w):not(.v):not(.u),
html body .bdl-topbar a:not(.x):not(.y):not(.z):not(.w):not(.v):not(.u),
html body .bdl-topbar a:visited:not(.x):not(.y):not(.z):not(.w):not(.v):not(.u) {
  color: #fff !important;
}
html body a.scroll-top:hover {
  color: #fff !important;
  text-decoration: none !important;
}
/* Scroll-top Pfeil-Icon: ::before muss auch weiß sein */
html body a.scroll-top .scroll-top-icon::before,
html body a.scroll-top::before {
  color: #fff !important;
  border-color: #fff !important;
}

/* ============================================================
   POST-10:46 RE-APPLY 26.06.2026 — Änderungen nach dem Backup
   Wieder aufgesetzt nach dem rm-Vorfall.
   ============================================================ */

/* 1) Logo-Größe — Header-Logo prominent (Stefan-Wunsch ~14:30 Uhr)
   BP14 nutzt HTML-Attribut height/width — Override via width + height:auto.
   Original 181×66, Ratio ≈0.365. Default 88px = width 241; scrolled 44 = 121; mobile 56 = 154. */
html body .navbar-mainnavigation .navbar-brand img.navbar-brand-logo-normal {
  width: 241px !important;
  height: auto !important;
  max-height: none !important;
}
html body #page-header.navbar-scrolled .navbar-brand img.navbar-brand-logo-normal {
  width: 121px !important;
  height: auto !important;
}
@media (max-width: 991px) {
  html body .navbar-mainnavigation .navbar-brand img.navbar-brand-logo-normal {
    width: 154px !important;
    height: auto !important;
  }
}

/* 2) Nav-Menü-Bug-Fix — Vorgänger-Override v6 hatte .nav-link-main global weiß gemacht.
   Wir wollen nur den letzten Eintrag (BDL-Website-Button) weiß auf blau.
   Plus Scroll-Top weiß. */
html body .navbar-mainnavigation .nav-item:last-child a.nav-link-main:not(.x):not(.y):not(.z):not(.w):not(.v):not(.u),
html body .navbar-mainnavigation .nav-item:last-child a.nav-link-main:visited:not(.x):not(.y):not(.z):not(.w):not(.v):not(.u),
html body a.scroll-top:not(.x):not(.y):not(.z):not(.w):not(.v):not(.u),
html body a.scroll-top:visited:not(.x):not(.y):not(.z):not(.w):not(.v):not(.u),
html body a.scroll-top-visible:not(.x):not(.y):not(.z):not(.w):not(.v):not(.u),
html body .bdl-topbar a:not(.x):not(.y):not(.z):not(.w):not(.v):not(.u),
html body .bdl-topbar a:visited:not(.x):not(.y):not(.z):not(.w):not(.v):not(.u) {
  color: #fff !important;
}
html body .navbar-mainnavigation .nav-item:last-child a.nav-link-main:hover,
html body a.scroll-top:hover {
  color: #fff !important;
  text-decoration: none !important;
}

/* 3) Page-14 Hero-Crop — DNA mittig sichtbar */
body.page-14 .bdl-article-hero-img {
  background-position: center 55% !important;
}
@media (max-width: 575px) {
  body.page-14 .bdl-article-hero-img {
    background-position: center 50% !important;
  }
}

/* ============================================================
   Hero-Crop-Fix 3 Pages (Stefan 26.06.2026 nach Audit)
   Default 25% war zu hoch — Personen/Hauptmotive abgeschnitten
   ============================================================ */

/* Page 12 Nachwuchs — altes Bild, Köpfe oben sichtbar, Frau im Anschnitt unten (Stefan 27.06.2026) */
body.page-12 .bdl-article-hero-img { background-position: center 8% !important; }

/* ============================================================
   Hero-h1 auf Site-Root: bdl_landing_block mit Layout=hero
   bekommt h1 statt h2. Visuell groesserer Title.
   ============================================================ */
.bdl-landing-section--hero h1 {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.1;
  margin: 0 0 0.5rem;
  color: var(--bs-bdl-blue, #1d4f8c);
  font-weight: 500;
}

/* CTA-Link unter Pullquote (innerhalb container) */
.bdl-pullquote-cta {
  margin: 1.25rem 0 0;
  text-align: left;
}
.bdl-pullquote-container .bdl-pullquote-cta,
.bdl-narrow .bdl-pullquote-cta {
  padding-top: 0.25rem;
}

/* CTA-Link unter bdl_kbteaser-Grid */
.bdl-landing-kb-cta {
  margin: 1.5rem 0 0;
  text-align: left;
}

/* Schmalere Bilder auf der Startseite: 16:9 statt 4:3 */
.bdl-landing-kb-grid--home .bdl-landing-kb-card__img-wrap {
  aspect-ratio: 16 / 9;
}

/* Pullquote-Tag: ggf. Spacing oben, sonst klebt am Containerrand */
.bdl-pullquote-tag {
  display: inline-block;
  margin-bottom: 0.8rem;
}
.frame-bdl-accent .bdl-pullquote-tag {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.3);
}

/* CTA-Link im accent-Frame: weisser Border + weisse Schrift (kein Pfeil) */
.frame-bdl-accent .bdl-pullquote-cta .bdl-feature-cta:not(.bdl-feature-cta--large) {
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.85);
  background: transparent;
}
.frame-bdl-accent .bdl-pullquote-cta .bdl-feature-cta:not(.bdl-feature-cta--large):hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff !important;
  border-color: #fff;
}

/* ============================================================
   Auf-einen-Blick-Box: Hero-Zahl + Stat-Liste (Variante 2)
   Wiederherstellung 29.06.2026 — CSS war aus der Datei verschwunden,
   das Markup im DB-bodytext von uid=203 war noch da.
   ============================================================ */
.bdl-stat-hero {
  background: #fff;
  border-radius: 4px;
  padding: 1.75rem 1.75rem 1.5rem;
  margin: 1.5rem 0;
}
.bdl-stat-hero__tag {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bs-bdl-blue, #1d4f8c);
  font-weight: 500;
  margin-bottom: 6px;
}
.bdl-stat-hero__title {
  font-size: 1.5rem;
  color: var(--bs-bdl-blue, #1d4f8c) !important;
  margin: 0 0 1.5rem;
  font-weight: 500;
}
.bdl-stat-hero__grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 32px;
  align-items: start;
}
.bdl-stat-hero__main {
  border-right: 1px solid #e6e6e6;
  padding-right: 24px;
}
.bdl-stat-hero__big {
  font-size: clamp(56px, 7vw, 80px);
  font-weight: 500;
  color: var(--bs-bdl-blue, #1d4f8c);
  line-height: 1;
  letter-spacing: -0.02em;
}
.bdl-stat-hero__big-unit {
  font-size: 0.42em;
  color: #185fa5;
  margin-left: 6px;
  font-weight: 500;
}
.bdl-stat-hero__big-label {
  font-size: 1rem;
  color: var(--bs-bdl-blue, #1d4f8c);
  font-weight: 500;
  margin-top: 12px;
}
.bdl-stat-hero__big-source {
  font-size: 12px;
  color: #777;
  margin-top: 4px;
}
.bdl-stat-hero__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.bdl-stat-hero__list li {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 0.6rem 0;
  border-bottom: 1px solid #ececec;
  margin: 0;
}
.bdl-stat-hero__list li:last-child { border-bottom: 0; }
.bdl-stat-hero__list li::before { content: none !important; }
.bdl-stat-hero__num {
  font-size: 1.45rem;
  font-weight: 500;
  color: var(--bs-bdl-blue, #1d4f8c);
  min-width: 110px;
  flex-shrink: 0;
  line-height: 1.15;
}
.bdl-stat-hero__txt {
  font-size: 0.9rem;
  color: #444;
  line-height: 1.45;
}
.bdl-stat-hero__service {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid #ececec;
  font-size: 0.85rem;
  color: #555;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .bdl-stat-hero { padding: 1.25rem 1.25rem 1rem; }
  .bdl-stat-hero__grid { grid-template-columns: 1fr; gap: 1.25rem; }
  .bdl-stat-hero__main { border-right: 0; padding-right: 0; border-bottom: 1px solid #e6e6e6; padding-bottom: 1.25rem; }
  .bdl-stat-hero__num { min-width: 100px; font-size: 1.25rem; }
}

/* ============================================================
   Pullquote-Tag im frame-header: gleiche Pill-Optik wie bdl-landing-tag.
   Vorher: vollbreite Bar (.bdl-section-tag display:block). Jetzt:
   runde Pille, weisser Border + weisse Schrift im accent-Frame.
   ============================================================ */
.frame-type-bdl_pullquote .frame-header { margin-bottom: 0.5rem; }
.frame-type-bdl_pullquote .frame-header .bdl-section-tag {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.35rem 0.9rem;
  border-radius: 999px;
  background: transparent;
  border: 1px solid rgba(28, 79, 155, 0.25);
  color: var(--bdl-blue, #1C4F9B);
  margin: 0;
}
.frame-bdl-accent.frame-type-bdl_pullquote .frame-header .bdl-section-tag {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.55);
  background: rgba(255, 255, 255, 0.08);
}

/* ============================================================
   Kb-teaser: 9. "Alle ansehen"-Kachel im Grid (statt CTA-Absatz darunter)
   Format wie andere Kacheln, aber ohne Bild und mit BDL-Blau als Blickfang.
   ============================================================ */
.bdl-landing-kb-card--cta {
  display: flex;
}
.bdl-landing-kb-card__link--cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 220px;
  padding: 1.5rem;
  background: var(--bdl-blue, #1d4f8c);
  border-radius: 4px;
  color: #fff;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.2s ease;
}
.bdl-landing-kb-card__link--cta:hover,
.bdl-landing-kb-card__link--cta:focus {
  background: #185fa5;
  color: #fff !important;
  text-decoration: none;
  transform: translateY(-2px);
}
.bdl-landing-kb-card__cta-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.6rem;
}
.bdl-landing-kb-card__cta-label {
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.35;
  color: #fff;
}
.bdl-landing-kb-card__cta-arrow {
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1;
  color: #fff;
  transition: transform 0.2s ease;
}
.bdl-landing-kb-card--cta:hover .bdl-landing-kb-card__cta-arrow {
  transform: translateX(6px);
}

/* ============================================================
   Kundenbeispiele-Marquee (rollierendes Band, full-bleed)
   ============================================================ */
.bdl-kb-marquee-block { padding: 0; }
.bdl-kb-marquee-block__head {
  max-width: 820px;
  margin: 0 auto 1.25rem;
  padding: 0 1rem;
}
.bdl-kb-marquee-block__head h2 {
  margin: 0 0 0.5rem;
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.2;
}
.bdl-kb-marquee-block__head .bdl-landing-lead {
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
  color: #444;
  max-width: 640px;
}
.bdl-kb-marquee-block__tag {
  display: inline-block;
  padding: 3px 12px;
  border-radius: 999px;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: #e5e2d9;
  color: #333;
  margin-bottom: 0.6rem;
  font-weight: 500;
}
.bdl-kb-marquee {
  position: relative;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%);
}
.bdl-kb-marquee__track {
  display: flex;
  gap: 12px;
  padding: 0 12px;
  width: max-content;
  animation: bdl-kb-roll 42s linear infinite;
}
.bdl-kb-marquee:hover .bdl-kb-marquee__track { animation-play-state: paused; }
@keyframes bdl-kb-roll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.bdl-kb-marquee__card {
  position: relative;
  flex: 0 0 200px;
  height: 130px;
  border-radius: 4px;
  overflow: hidden;
  color: #fff !important;
  padding: 14px 14px 30px;
  background-size: cover;
  background-position: center;
  background-color: var(--bdl-blue, #1d4f8c);
  text-decoration: none !important;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  transition: transform 0.2s ease;
}
.bdl-kb-marquee__card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(29,79,140,.30) 0%, rgba(29,79,140,.72) 60%, rgba(12,42,80,.90) 100%);
  pointer-events: none;
  z-index: 0;
}
.bdl-kb-marquee__card > * { position: relative; z-index: 1; }
.bdl-kb-marquee__card:hover { transform: translateY(-2px); }
.bdl-kb-marquee__cat {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: rgba(255,255,255,.85);
  font-weight: 500;
  margin-bottom: 4px;
  display: block;
}
.bdl-kb-marquee__title {
  font-weight: 500;
  font-size: 0.92rem;
  line-height: 1.3;
  color: #fff;
  display: block;
}
.bdl-kb-marquee__arrow {
  position: absolute;
  bottom: 8px; right: 12px;
  font-size: 1.1rem;
  color: #fff;
}
.bdl-kb-marquee__foot {
  max-width: 820px;
  margin: 1rem auto 0;
  padding: 0 1rem;
  font-size: 0.85rem;
  color: #666;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.bdl-kb-marquee__foot a {
  color: var(--bdl-blue, #1d4f8c);
  font-weight: 500;
  text-decoration: none;
}
.bdl-kb-marquee__foot a:hover { text-decoration: underline; }
@media (prefers-reduced-motion: reduce) {
  .bdl-kb-marquee__track { animation: none; }
}

/* ============================================================
   Kundenbeispiele — 3-Kachel-Variante (Bild + Blau-Overlay,
   Text unten in der Box) + zentrierter Outline-CTA-Link darunter.
   ============================================================ */
.bdl-kb3-block { padding: 0; }
.bdl-kb3-block__head {
  margin: 0 0 1.25rem 0;
  padding: 0;
}
.bdl-kb3-block__tag {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bdl-blue, #1C4F9B);
  margin-bottom: 1rem;
  padding: 0.35rem 0.9rem;
  border: 1px solid rgba(28, 79, 155, 0.25);
  border-radius: 999px;
  background: #fff;
}
.bdl-kb3-block__head h2 {
  margin: 0 0 0.5rem;
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.2;
}
.bdl-kb3-block__head .bdl-landing-lead {
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
  color: #444;
  max-width: 640px;
}
.bdl-kb3-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  max-width: 100%;
}
.bdl-kb3-card {
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  color: #fff !important;
  text-decoration: none !important;
  background-size: cover;
  background-position: center;
  background-color: var(--bdl-blue, #1d4f8c);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 220px;
  padding: 16px 16px 40px;
  transition: transform 0.2s ease;
}
.bdl-kb3-card::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(29,79,140,.30) 0%, rgba(29,79,140,.72) 60%, rgba(12,42,80,.90) 100%);
  pointer-events: none;
  z-index: 0;
}
.bdl-kb3-card > * { position: relative; z-index: 1; }
.bdl-kb3-card:hover { transform: translateY(-2px); color: #fff; }
.bdl-kb3-card__cat {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: rgba(255,255,255,.85);
  font-weight: 500;
  margin-bottom: 4px;
  display: block;
}
.bdl-kb3-card__title {
  font-weight: 500;
  font-size: 1.05rem;
  line-height: 1.3;
  color: #fff;
  display: block;
}
.bdl-kb3-card__arrow {
  position: absolute;
  bottom: 12px;
  right: 16px;
  font-size: 1.3rem;
  color: #fff;
  z-index: 1;
}
.bdl-kb3-cta-wrap {
  margin-top: 1.5rem;
  text-align: center;
}
.bdl-kb3-cta-wrap a {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--bdl-blue, #1d4f8c) !important;
  text-decoration: none !important;
  padding: 12px 24px;
  border: 1px solid var(--bdl-blue, #1d4f8c);
  border-radius: 4px;
  transition: background 0.2s ease, color 0.2s ease;
}
.bdl-kb3-cta-wrap a::after {
  content: "→";
  font-size: 1.1rem;
  transition: transform 0.2s ease;
}
.bdl-kb3-cta-wrap a:hover {
  background: var(--bdl-blue, #1d4f8c);
  color: #fff !important;
}
.bdl-kb3-cta-wrap a:hover::after { transform: translateX(4px); }
@media (max-width: 768px) {
  .bdl-kb3-grid { grid-template-columns: 1fr; }
  .bdl-kb3-card { min-height: 180px; }
}

/* ============================================================
   Container: bdl_2col (b13/container) — Text links, Chart/Bild rechts
   ============================================================ */
.bdl-2col__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}
@media (max-width: 992px) {
    .bdl-2col__grid { grid-template-columns: 1fr; gap: 32px; }
}
.bdl-2col__text > .frame,
.bdl-2col__aside > .frame {
    padding: 0;
}
.bdl-2col__aside > .frame > * {
    max-width: 100%;
}

/* ============================================================
   Container bdl_2col — Grid + ESG-Chart-Styles
   ============================================================ */
/* Container-Wrapper: analog .bdl-landing-section (full-bleed + content-grid) */
.bdl-2col-wrap {
    display: grid;
    grid-template-columns:
        [full-start] minmax(clamp(1.5rem, 4vw, 3rem), 1fr)
        [content-start] min(1200px, 100% - clamp(3rem, 8vw, 6rem)) [content-end]
        minmax(clamp(1.5rem, 4vw, 3rem), 1fr) [full-end];
    padding: clamp(2.5rem, 5vw, 4.5rem) 0;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}
.bdl-2col__grid {
    grid-column: content;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 48px;
    align-items: start;
}
@media (max-width: 992px) {
    .bdl-2col__grid { grid-template-columns: 1fr; gap: 32px; }
}
.bdl-2col__aside {
    position: sticky;
    top: 100px;
}
/* Innere bdl-landing-section im Container: Full-Bleed hart deaktivieren */
.bdl-2col-wrap .bdl-landing-section {
    display: block !important;
    grid-template-columns: none !important;
    padding: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.bdl-2col-wrap .bdl-landing-section > * {
    grid-column: auto !important;
    max-width: 100% !important;
}
/* Section-Tag oben in bdl-landing-section: darf im Container bleiben */
.bdl-2col-wrap .bdl-landing-tag {
    justify-self: auto !important;
}
/* Frame-Wrapper des inneren CE: kein extra padding */
.bdl-2col__text > .frame,
.bdl-2col__aside > .frame {
    padding: 0;
    margin: 0;
}
.bdl-2col__text .frame-inner,
.bdl-2col__aside .frame-inner {
    padding: 0;
}

/* ESG-Chart-Styles — im rechten Aside */
.bdl-esg-charts-wrap {
    max-width: 460px;
    margin: 0 auto;
}
.bdl-esg-question {
    font-size: 1rem;
    font-style: italic;
    color: #50649a;
    text-align: center;
    margin: 0 0 24px;
    line-height: 1.4;
}
.bdl-esg-panel {
    margin: 0 auto 40px;
    text-align: center;
}
.bdl-esg-panel h3 {
    font-size: 1.05rem;
    font-weight: 700;
    color: #212121;
    margin: 0 0 16px;
}
.bdl-esg-chart-box {
    position: relative;
    width: 100%;
    max-width: 380px;
    margin: 0 auto;
}
.bdl-esg-chart-box canvas {
    display: block;
    width: 100% !important;
    height: auto !important;
}
.bdl-esg-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    pointer-events: none;
    z-index: 2;
    width: 60%;
}
.bdl-esg-divider {
    width: 60px;
    height: 1px;
    background: #d0d0d0;
    margin: 8px auto;
}
.bdl-esg-chart-box { max-width: 380px; margin: 0 auto; }
.bdl-esg-center { z-index: 2; }
.bdl-esg-a { font-size: 1.6rem; font-weight: 800; color: #1e3a6f; line-height: 1.05; }
.bdl-esg-a-lbl { font-size: 0.62rem; color: #1e3a6f; text-transform: uppercase; letter-spacing: 0.06em; margin-top: 3px; font-weight: 600; }
.bdl-esg-b-below { display: block; text-align: center; margin: 8px 0 0; font-weight: 700; }
.bdl-esg-b { font-size: 1rem; font-weight: 800; color: #b16d00; }
.bdl-esg-b-lbl { font-size: 0.6rem; color: #b16d00; text-transform: uppercase; letter-spacing: 0.06em; margin-left: 6px; font-weight: 600; }
.bdl-esg-legend {
    list-style: none;
    padding: 0;
    margin: 4px auto 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    font-size: 0.8rem;
    color: #555;
    max-width: 300px;
    text-align: left;
}
.bdl-esg-legend li {
    display: flex;
    align-items: center;
    gap: 8px;
    line-height: 1.2;
}
.bdl-esg-legend li span {
    width: 12px; height: 12px; border-radius: 2px;
    display: inline-block; flex-shrink: 0;
}
.bdl-esg-source {
    font-size: 0.72rem;
    color: #888;
    text-align: center;
    margin: 8px 0 0;
    line-height: 1.4;
}

/* ============================================================
   bdl-stat-card: Variante A — Zahlen deutlich größer,
   klare blaue Oberkante, Label kleiner & luftiger.
   (Klasse .bdl-stat-value wird vom aktuellen Template gerendert;
    die alten Regeln für .bdl-stat-number bleiben als Fallback.)
   ============================================================ */
.bdl-stat-card {
  border-top: 2px solid var(--bdl-blue, #1d4f8c) !important;
  padding: 2rem 1.25rem 1.75rem !important;
}
.bdl-stat-card .bdl-stat-value {
  font-family: 'Roboto', sans-serif;
  font-size: 2.6rem;
  font-weight: 500;
  color: var(--bdl-blue, #1d4f8c);
  line-height: 1.05;
  letter-spacing: -0.01em;
  margin-bottom: 0.75rem;
  display: block;
}
.bdl-stat-card .bdl-stat-label {
  display: block;
  font-family: 'Open Sans', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  color: #777;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  line-height: 1.4;
  margin-top: 0;
}
@media (max-width: 767px) {
  .bdl-stat-card .bdl-stat-value { font-size: 2.1rem; }
}

/* --- Pullquote-Attribution (footer) — analog __author/__role, Schur 06.07. --- */
.bdl-pullquote footer {
  margin-top: 1rem;
  font-style: normal;
  font-size: 0.85rem;
  color: var(--bdl-gray, #666);
  line-height: 1.4;
}
.bdl-pullquote footer strong {
  display: block;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--bdl-blue);
  letter-spacing: 0.02em;
}
.bdl-bleed--accent .bdl-pullquote footer,
.bdl-bleed--image .bdl-pullquote footer,
.bdl-bleed--accent .bdl-pullquote footer strong,
.bdl-bleed--image .bdl-pullquote footer strong {
  color: rgba(255, 255, 255, 0.88);
}
.bdl-pullquote-figure:not(.bdl-pullquote-figure--compact) .bdl-pullquote > footer,
.bdl-pullquote-figure:not(.bdl-pullquote-figure--compact) blockquote > footer {
  font-size: 0.85rem;
  line-height: 1.4;
  font-style: normal;
}
.bdl-pullquote-figure:not(.bdl-pullquote-figure--compact) .bdl-pullquote > footer strong,
.bdl-pullquote-figure:not(.bdl-pullquote-figure--compact) blockquote > footer strong {
  font-size: 0.92rem;
}

/* Compact-Pullquote: Media vertikal zentriert (wirkt nur bei langen Zitaten, Schur/Stefan 07.07.) */
.bdl-pullquote-figure--compact > .bdl-pullquote-figure__media {
  align-self: center;
}

/* Kraus-ID-Override 07.07. -- durch Pullquote-Refactor 08.07. obsolet, entfernt. Bild-Groessen-Regeln fuer Kraus bleiben unten. */

/* Foto-Quellenangabe im Pullquote-Footer (aus Bild-Description, Stefan 07.07.) */
.bdl-pullquote footer .bdl-photocredit {
  font-size: 0.72rem;
  color: var(--bdl-gray, #888);
  font-weight: 400;
}

/* Kraus-Zitat (S.15): Bildspalte 270px, Zitat läuft breiter (Stefan 07.07.) */
#c484 .bdl-pullquote-figure--compact {
  grid-template-columns: 1fr 270px !important;
}
#c484 .bdl-pullquote-figure__media {
  max-width: 270px;
}

/* ================================================================
   Kommunalleasing (page 29): Landing-Block-Headlines an die
   Rahmenbedingungen-Optik (element-header) angleichen — Schur 07.07.2026.
   Scoped auf page-29, andere Landing-Sections bleiben unberührt. */
.page-29 .bdl-landing-section h2 {
  font-size: clamp(30px, 2.2vw + 20px, 38px) !important;
  font-weight: 300;
  line-height: 1.25;
  color: #1c4f9b;
  margin: 8px 0 24px;
}
.page-29 .bdl-landing-section h3 {
  font-size: clamp(22px, 1.4vw + 16px, 28px);
  font-weight: 500;
  line-height: 1.25;
  color: #1c4f9b;
  margin: 8px 0 16px;
}

/* M&T Branchenporträt (14) + Sicherheit (15): default-Frames erhalten
   dieselbe Headline-Optik wie die BDL-Frames — Schur 07.07.2026 */
.page-15 .frame-default .element-header,
.page-14 .frame-default .element-header {
    font-family: 'Roboto', sans-serif;
    line-height: 1.25;
    color: var(--bdl-blue, #003a78);
    margin: 0 0 1.25rem;
    font-weight: 400;
    max-width: 760px;
}
.page-15 .frame-default h2.element-header,
.page-14 .frame-default h2.element-header {
    font-size: clamp(26px, 3vw, 38px);
    font-weight: 300;
    letter-spacing: -0.01em;
    margin: 0.5rem 0 1.5rem;
}
.page-15 .frame-default h3.element-header,
.page-14 .frame-default h3.element-header {
    font-size: clamp(20px, 2.2vw, 28px);
    font-weight: 500;
    margin: 0.5rem 0 1rem;
}


/* ============================================================
   PULLQUOTE REFACTOR 2026-07-08 -- kanonische Font-Sizes.
   compact=0 -> Standard 24px; compact=1 -> Kompakt 18px; compact=2 -> XL 28px.
   image_side left|right steuert grid-Position.
   ============================================================ */

.bdl-pullquote > p,
.bdl-pullquote-figure > blockquote.bdl-pullquote > p,
.frame-bdl-accent .bdl-pullquote-figure > blockquote.bdl-pullquote > p,
.frame-bdl-white  .bdl-pullquote-figure > blockquote.bdl-pullquote > p,
.frame-bdl-gray   .bdl-pullquote-figure > blockquote.bdl-pullquote > p,
.frame-bdl-pale   .bdl-pullquote-figure > blockquote.bdl-pullquote > p {
    font-size: 24px !important;
    line-height: 1.45 !important;
}

.bdl-pullquote.bdl-pullquote--compact > p,
.bdl-pullquote--compact > p,
.bdl-pullquote-figure--compact > blockquote.bdl-pullquote--compact > p,
.frame-bdl-accent .bdl-pullquote-figure--compact > blockquote.bdl-pullquote--compact > p,
.frame-bdl-white  .bdl-pullquote-figure--compact > blockquote.bdl-pullquote--compact > p,
.frame-bdl-gray   .bdl-pullquote-figure--compact > blockquote.bdl-pullquote--compact > p,
.frame-bdl-pale   .bdl-pullquote-figure--compact > blockquote.bdl-pullquote--compact > p {
    font-size: 18px !important;
    line-height: 1.5 !important;
}

.bdl-pullquote.bdl-pullquote--xl > p,
.bdl-pullquote--xl > p,
.bdl-pullquote-figure--xl > blockquote.bdl-pullquote--xl > p,
.frame-bdl-accent .bdl-pullquote-figure--xl > blockquote.bdl-pullquote--xl > p,
.frame-bdl-white  .bdl-pullquote-figure--xl > blockquote.bdl-pullquote--xl > p,
.frame-bdl-gray   .bdl-pullquote-figure--xl > blockquote.bdl-pullquote--xl > p,
.frame-bdl-pale   .bdl-pullquote-figure--xl > blockquote.bdl-pullquote--xl > p {
    font-size: 28px !important;
    line-height: 1.4 !important;
}

.bdl-pullquote-figure > .bdl-pullquote-figure__media,
.bdl-pullquote-figure > img:first-child,
.bdl-pullquote-figure > a:first-child {
    grid-column: 1 !important;
    order: 0 !important;
}
.bdl-pullquote-figure > blockquote {
    grid-column: 2 !important;
    order: 1 !important;
}

.bdl-pullquote-figure--image-right > .bdl-pullquote-figure__media,
.bdl-pullquote-figure--image-right > img:first-child,
.bdl-pullquote-figure--image-right > a:first-child {
    grid-column: 2 !important;
    order: 1 !important;
}
.bdl-pullquote-figure--image-right > blockquote {
    grid-column: 1 !important;
    order: 0 !important;
}

@media (max-width: 767px) {
    .bdl-pullquote-figure > .bdl-pullquote-figure__media,
    .bdl-pullquote-figure > blockquote,
    .bdl-pullquote-figure > img:first-child,
    .bdl-pullquote-figure--image-right > .bdl-pullquote-figure__media,
    .bdl-pullquote-figure--image-right > blockquote,
    .bdl-pullquote-figure--image-right > img:first-child {
        grid-column: 1 !important;
    }
}

/* Pullquote refactor 2026-07-08 -- Spezifitaets-Verschaerfung */
.bdl-pullquote-figure.bdl-pullquote-figure > blockquote.bdl-pullquote.bdl-pullquote > p {
    font-size: 24px !important;
    line-height: 1.45 !important;
}
.bdl-pullquote-figure.bdl-pullquote-figure--compact > blockquote.bdl-pullquote.bdl-pullquote--compact > p,
figure.bdl-pullquote-figure--compact blockquote.bdl-pullquote--compact.bdl-pullquote--compact > p {
    font-size: 18px !important;
    line-height: 1.5 !important;
}
.bdl-pullquote-figure.bdl-pullquote-figure--xl > blockquote.bdl-pullquote.bdl-pullquote--xl > p,
blockquote.bdl-pullquote.bdl-pullquote--xl > p {
    font-size: 28px !important;
    line-height: 1.4 !important;
}

/* Pullquote--compact Feinschliff 2026-07-08 */
/* 16px, kleineres Anfuehrungszeichen, kurzer zentrierter Divider vor Autor */

.bdl-pullquote.bdl-pullquote--compact > p,
.bdl-pullquote-figure--compact > blockquote.bdl-pullquote--compact > p,
figure.bdl-pullquote-figure--compact blockquote.bdl-pullquote--compact.bdl-pullquote--compact > p {
    font-size: 16px !important;
    line-height: 1.6 !important;
}

.bdl-pullquote.bdl-pullquote--compact::before {
    font-size: clamp(28px, 3vw, 40px) !important;
    top: -0.35rem !important;
    opacity: 0.4 !important;
}

/* Kurzer, zentrierter Divider zwischen Zitattext und Autor */
.bdl-pullquote.bdl-pullquote--compact > footer::before,
figure.bdl-pullquote-figure--compact blockquote.bdl-pullquote--compact > footer::before {
    content: '' !important;
    display: block !important;
    width: 40px;
    height: 1px;
    background: rgba(107, 114, 128, 0.55);
    margin: 0 0 0.9rem 0;
}

/* Pullquote--compact 16px -- Spezifitaets-Verschaerfung 2026-07-08 */
figure.bdl-pullquote-figure.bdl-pullquote-figure--compact > blockquote.bdl-pullquote.bdl-pullquote--compact.bdl-pullquote--compact > p {
    font-size: 16px !important;
    line-height: 1.6 !important;
}

/* Pullquote-Compact im accent-Frame: Anfuehrungszeichen + Divider angleichen */
.frame-bdl-accent .bdl-pullquote-figure--compact > blockquote.bdl-pullquote--compact::before,
.frame-bdl-accent blockquote.bdl-pullquote.bdl-pullquote--compact::before {
    font-size: 28px !important;
    top: -0.35rem !important;
    opacity: 0.55 !important;
    color: #ffffff !important;
}
.frame-bdl-accent .bdl-pullquote-figure--compact > blockquote.bdl-pullquote--compact > footer::before,
.frame-bdl-accent blockquote.bdl-pullquote.bdl-pullquote--compact > footer::before {
    background: rgba(255, 255, 255, 0.55) !important;
}

/* Pullquote-Compact im accent-Frame: Autor-Zeile an Kundenbeispiel-Standard angleichen */
.frame-bdl-accent blockquote.bdl-pullquote.bdl-pullquote--compact > footer strong,
.frame-bdl-accent .bdl-pullquote-figure--compact > blockquote.bdl-pullquote--compact > footer strong {
    font-weight: 600 !important;
    color: #ffffff !important;
    letter-spacing: 0.02em !important;
}
/* Kein Fließtext-Komma nach dem Namen */
.frame-bdl-accent blockquote.bdl-pullquote.bdl-pullquote--compact > footer strong::after,
.frame-bdl-accent .bdl-pullquote-figure--compact > blockquote.bdl-pullquote--compact > footer strong::after {
    content: '' !important;
    display: none !important;
}

/* Pullquote-Compact: blockquote nimmt volle Zellhoehe ein, Text vertikal zentriert. */
/* Damit vertikale Linie bei kurzen Zitaten (accent-Frame Connemann) nicht "verloren" wirkt */
.bdl-pullquote-figure--compact > blockquote.bdl-pullquote--compact,
.frame-bdl-accent .bdl-pullquote-figure--compact > blockquote.bdl-pullquote--compact {
    align-self: stretch !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

/* Pullquote-Compact: Container-Grid soll Items strecken, damit Blockquote-Linie voll auf Bild-Hoehe reicht */
.bdl-pullquote-figure.bdl-pullquote-figure--compact {
    align-items: stretch !important;
}

/* Pullquote-Compact im accent-Frame: alle Altregeln aussticheln, Layout = Kundenbeispiel */
.frame-bdl-accent .bdl-pullquote-figure.bdl-pullquote-figure--compact > blockquote.bdl-pullquote.bdl-pullquote--compact {
    padding: 0.25rem 0 0.25rem 2.25rem !important;
    margin: 0 !important;
    max-width: none !important;
}
/* Anfuehrungszeichen: gleiche Position wie Kundenbeispiel (top: -0.35rem, left: 0) */
.frame-bdl-accent .bdl-pullquote-figure.bdl-pullquote-figure--compact > blockquote.bdl-pullquote.bdl-pullquote--compact::before {
    content: '„' !important;
    position: absolute !important;
    left: 0 !important;
    top: -0.35rem !important;
    font-family: Georgia, serif !important;
    font-size: clamp(28px, 3vw, 40px) !important;
    line-height: 1 !important;
    color: #ffffff !important;
    opacity: 0.55 !important;
    font-weight: 700 !important;
}
/* Footer-Layout wie Kundenbeispiel */
.frame-bdl-accent .bdl-pullquote-figure.bdl-pullquote-figure--compact > blockquote.bdl-pullquote.bdl-pullquote--compact > footer {
    font-size: 0.85rem !important;
    font-style: normal !important;
    font-weight: 400 !important;
    margin-top: 0.5rem !important;
    line-height: 1.4 !important;
}
.frame-bdl-accent .bdl-pullquote-figure.bdl-pullquote-figure--compact > blockquote.bdl-pullquote.bdl-pullquote--compact > footer strong {
    display: inline !important;
    font-size: inherit !important;
    letter-spacing: 0 !important;
    font-weight: 600 !important;
    color: #ffffff !important;
}
/* Zitat-Text: kleinere Roboto-Kursiv wie Kundenbeispiel, Farbe weiss */
.frame-bdl-accent .bdl-pullquote-figure.bdl-pullquote-figure--compact > blockquote.bdl-pullquote.bdl-pullquote--compact > p {
    font-family: 'Roboto', sans-serif !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    margin: 0 0 0.85rem !important;
    font-style: italic !important;
    color: #ffffff !important;
}

/* Pullquote-Compact accent: BR-Umbrueche in Footer wieder aktivieren (accent hatte br display:none) */
.frame-bdl-accent .bdl-pullquote-figure.bdl-pullquote-figure--compact > blockquote.bdl-pullquote.bdl-pullquote--compact > footer br {
    display: inline !important;
}
/* AI-Act Art. 50: Kennzeichnung KI-generierter Bilder — dezenter Overlay */
.bdl-article-hero { position: relative; }
.bdl-article-hero .bdl-hero-ai-caption {
  position: absolute;
  right: 12px;
  bottom: 10px;
  z-index: 3;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  padding: 4px 10px;
  border-radius: 3px;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  line-height: 1.3;
  max-width: 90%;
}
/* Content-Bilder: figcaption von BP16 rendert die description automatisch —
   dort visuell dezent halten, damit die AI-Kennzeichnung nicht dominiert */
figcaption.bdl-ai-caption,
.ce-media figcaption:has(:contains("mit KI erstellt")) {
  font-size: 0.78rem;
  color: #666;
  font-style: italic;
}

/* ============================================================
   Link-Farbe v5: Footer-Kontrast final (Stefan 24.07.2026)
   v4-Regel (0-1-3) verliert gegen v3-Global-Regel (0-9-3, wegen
   9 :not(.klasse)-Klauseln). :not(#__nope) pumpt Spezifität
   in die ID-Ebene (1-1-3) — schlägt sicher jede :not-Kette
   auf Klassen-Basis.
   ============================================================ */
html body .bdl-footer-main a:not(#__bdl_footer_bump),
html body .bdl-footer-main a:visited:not(#__bdl_footer_bump),
html body .bdl-footer-main a:link:not(#__bdl_footer_bump),
html body section.footer-section-content a:not(#__bdl_footer_bump),
html body section.footer-section-content a:visited:not(#__bdl_footer_bump),
html body .bdl-footer-nav a:not(#__bdl_footer_bump),
html body .bdl-footer-nav a:visited:not(#__bdl_footer_bump),
html body .bdl-footer-nav li a:not(#__bdl_footer_bump) {
  color: rgba(255, 255, 255, 0.92) !important;
  text-decoration: none;
}
html body .bdl-footer-main a:hover:not(#__bdl_footer_bump),
html body .bdl-footer-nav a:hover:not(#__bdl_footer_bump),
html body section.footer-section-content a:hover:not(#__bdl_footer_bump) {
  color: #ffffff !important;
  text-decoration: underline;
}

/* ============================================================
   Link-Farbe v5b: Share-Bar-Icons weiß (Stefan 24.07.2026)
   .bdl-share-link hatte color:rgb(28,79,155) auf BG rgb(28,79,155)
   → Icons unsichtbar. v3-Global-Rule übersticht Icon-Color.
   :not(#__bdl_share_bump) pumpt Spezifität in ID-Ebene.
   ============================================================ */
html body a.bdl-share-link:not(#__bdl_share_bump),
html body a.bdl-share-link:visited:not(#__bdl_share_bump),
html body a.bdl-share-link:link:not(#__bdl_share_bump),
html body .bdl-share-bar a:not(#__bdl_share_bump),
html body .bdl-share-bar a:visited:not(#__bdl_share_bump) {
  color: #ffffff !important;
}
html body a.bdl-share-link:not(#__bdl_share_bump) svg,
html body a.bdl-share-link:not(#__bdl_share_bump) i,
html body .bdl-share-bar a:not(#__bdl_share_bump) svg,
html body .bdl-share-bar a:not(#__bdl_share_bump) i {
  color: #ffffff !important;
  fill: currentColor !important;
}
html body a.bdl-share-link:hover:not(#__bdl_share_bump),
html body .bdl-share-bar a:hover:not(#__bdl_share_bump) {
  color: #ffffff !important;
  background-color: #133770 !important;
}

/* ============================================================
   KI-Badge (Variante C: Dark mit weißem Rand)
   Stefan 28.07.2026 — kennzeichnet KI-generierte Bilder rechts unten
   Datenquelle: sys_file_metadata.tx_bdlojb_ai_generated
   Rendering: Hero-Bilder via ArticleHero.html (deterministisch, TypoScript-Flag)
              Content-Bilder via bdl-ai-badge.js (client-side URL-Match)
   ============================================================ */
.bdl-ai-badge {
    position: absolute;
    bottom: 12px;
    right: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(15, 23, 42, 0.85);
    color: #ffffff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.3px;
    line-height: 1;
    text-decoration: none;
    border: 1.5px solid rgba(255, 255, 255, 0.55);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
    z-index: 5;
    user-select: none;
    cursor: help;
    transition: transform 0.15s ease;
    pointer-events: auto;
}
.bdl-ai-badge:hover { transform: scale(1.08); }

/* Hero-Variante — sitzt absolut in .bdl-article-hero (position:relative erwartet) */
.bdl-article-hero { position: relative; }
.bdl-ai-badge--hero { bottom: 16px; right: 16px; width: 36px; height: 36px; font-size: 12px; }

/* Content-Bild-Variante — JS wrapt <img> in .bdl-ai-img-wrap.position:relative */
.bdl-ai-img-wrap { position: relative; display: inline-block; }
.bdl-ai-img-wrap > .bdl-ai-badge { width: 28px; height: 28px; font-size: 10px; bottom: 8px; right: 8px; }

/* Footer-Inline-Badge (Legende) */
.bdl-ai-badge-inline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(15, 23, 42, 0.85);
    color: #ffffff;
    font-size: 7px;
    font-weight: 700;
    border: 1px solid rgba(255, 255, 255, 0.55);
    vertical-align: middle;
    margin: 0 4px;
    line-height: 1;
}


/* ============================================================
   KI-Badge v3 (Stefan 28.07.2026)
   - Custom Tooltip via data-tooltip
   - Content-Bilder via :has() Selector (loose, ohne direct-child)
   ============================================================ */

.bdl-ai-badge { cursor: default; }
.bdl-ai-badge[data-tooltip] { position: absolute; }
.bdl-ai-badge[data-tooltip]::before {
    content: attr(data-tooltip);
    position: absolute;
    right: 0;
    bottom: calc(100% + 8px);
    background: rgba(15, 23, 42, 0.95);
    color: #ffffff;
    font-size: 12px;
    font-weight: 500;
    padding: 8px 12px;
    border-radius: 6px;
    white-space: nowrap;
    letter-spacing: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    opacity: 0;
    pointer-events: none;
    transform: translateY(4px);
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 10;
}
.bdl-ai-badge[data-tooltip]::after {
    content: '';
    position: absolute;
    right: 12px;
    bottom: calc(100% + 2px);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid rgba(15, 23, 42, 0.95);
    opacity: 0;
    pointer-events: none;
    transform: translateY(4px);
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 10;
}
.bdl-ai-badge[data-tooltip]:hover::before,
.bdl-ai-badge[data-tooltip]:hover::after {
    opacity: 1;
    transform: translateY(0);
}

/* Content-Bild-Badge via :has() — LOOSE Selector (kein direct-child) */
figure:has(img[src*="hidding-hero-salami"]),
figure:has(img[src*="tat-hero-extrusion-abdichtung"]),
figure:has(img[src*="zuercher-drucker-hero-v4-buero-geschlossen"]),
figure:has(img[src*="brubeg-content-esg-bericht-taktil"]),
figure:has(img[src*="tischlerei"]),
figure:has(img[src*="kunder-tempering"]) {
    position: relative;
}
figure:has(img[src*="hidding-hero-salami"])::after,
figure:has(img[src*="tat-hero-extrusion-abdichtung"])::after,
figure:has(img[src*="zuercher-drucker-hero-v4-buero-geschlossen"])::after,
figure:has(img[src*="brubeg-content-esg-bericht-taktil"])::after,
figure:has(img[src*="tischlerei"])::after,
figure:has(img[src*="kunder-tempering"])::after {
    content: 'KI';
    position: absolute;
    bottom: 8px;
    right: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(15, 23, 42, 0.85);
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.3px;
    line-height: 1;
    border: 1.5px solid rgba(255, 255, 255, 0.55);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
    z-index: 5;
    pointer-events: none;
}

/* KI-Content-Bild-Tooltip (v3.1, 28.07.2026)
   ::after ist bereits der Badge (siehe oben). ::before dient als Custom-Tooltip
   der bei figure:hover eingeblendet wird. */
figure:has(img[src*="hidding-hero-salami"])::before,
figure:has(img[src*="tat-hero-extrusion-abdichtung"])::before,
figure:has(img[src*="zuercher-drucker-hero-v4-buero-geschlossen"])::before,
figure:has(img[src*="brubeg-content-esg-bericht-taktil"])::before,
figure:has(img[src*="tischlerei"])::before,
figure:has(img[src*="kunder-tempering"])::before {
    content: 'Mit KI erstelltes Symbolbild';
    position: absolute;
    bottom: 44px;
    right: 8px;
    background: rgba(15, 23, 42, 0.95);
    color: #ffffff;
    font-size: 12px;
    font-weight: 500;
    padding: 8px 12px;
    border-radius: 6px;
    white-space: nowrap;
    letter-spacing: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    opacity: 0;
    pointer-events: none;
    transform: translateY(4px);
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 10;
}
figure:has(img[src*="hidding-hero-salami"]):hover::before,
figure:has(img[src*="tat-hero-extrusion-abdichtung"]):hover::before,
figure:has(img[src*="zuercher-drucker-hero-v4-buero-geschlossen"]):hover::before,
figure:has(img[src*="brubeg-content-esg-bericht-taktil"]):hover::before,
figure:has(img[src*="tischlerei"]):hover::before,
figure:has(img[src*="kunder-tempering"]):hover::before {
    opacity: 1;
    transform: translateY(0);
}

/* Galerie-Figure mit BU: overflow/aspect-ratio deaktivieren, damit
   die figcaption unterhalb des Bildes sichtbar wird. */
.bdl-galerie-figure:has(figcaption) {
  overflow: visible;
  aspect-ratio: auto;
  background: transparent;
}
.bdl-galerie-figure:has(figcaption) img {
  height: auto;
}


/* ESG-Donut Tooltip-Fix: Canvas (mit Tooltip) über Center-Overlay */
.bdl-esg-chart-box { position: relative; }
.bdl-esg-chart-box canvas { position: relative; z-index: 2; }
.bdl-esg-center { position: absolute; z-index: 1; pointer-events: none; }

/* Mobile: sticky Sharing-Bar ausblenden (verhindert Overlap mit Content wie Chart-Legenden) */
@media (max-width: 768px) {
  .bdl-share-bar { display: none !important; }
}

@media (max-width: 768px) {
  .bdl-share-bar { display: none !important; }
}

@media (max-width: 480px) {
  .bdl-2col-final__aside .bdl-esg-chart-box { max-width: 100% !important; }
  .bdl-esg-chart-box { max-width: 100% !important; }
}

@media (max-width: 991.98px) {
  .bdl-2col-final__grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .bdl-2col-final__aside {
    padding-top: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .bdl-esg-charts-wrap {
    max-width: 100% !important;
    padding: 0 !important;
  }
}

/* ESG-Question overflow-wrap for long word Sustainable */
.bdl-esg-question,
.bdl-esg-question * {
  overflow-wrap: break-word !important;
  word-wrap: break-word !important;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* 2col-Container: overflow-x hidden verhindert visible cut-off */
.bdl-2col-final,
.bdl-2col-final__wrap,
.bdl-2col-final__aside,
.bdl-esg-charts-wrap {
  overflow-x: hidden !important;
  max-width: 100vw;
  box-sizing: border-box;
}

/* ============================================================
   404-Seite (page uid=46) — Variante C mit 3 Rubrik-Karten
   ============================================================ */
.bdl-404 {
  padding: 3rem 0 4rem;
}
.bdl-404__inner {
  max-width: 780px;
  margin: 0 auto;
  background: #fff;
  border: 0.5px solid #d9d5c9;
  border-radius: 6px;
  padding: 2.5rem 2rem 2.75rem;
}
.bdl-404__tag {
  display: inline-block;
  padding: 3px 12px;
  border-radius: 999px;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bdl-blue, #1d4f8c);
  background: #fff;
  border: 1px solid rgba(28,79,155,.25);
  font-weight: 700;
  margin-bottom: 0.9rem;
}
.bdl-404__num {
  font-family: Georgia, serif;
  font-size: 5rem;
  font-weight: 400;
  color: var(--bdl-blue, #1d4f8c);
  line-height: 1;
  letter-spacing: -0.03em;
  margin: 0 0 0.4rem;
}
.bdl-404__headline {
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1.25;
  margin: 0 0 0.6rem;
  color: #1a1a1a;
}
.bdl-404__lead {
  font-size: 1rem;
  line-height: 1.55;
  color: #444;
  margin: 0 0 1.75rem;
  max-width: 560px;
}
.bdl-404__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.bdl-404__card {
  background: #fff;
  border: 0.5px solid #d9d5c9;
  border-radius: 4px;
  overflow: hidden;
  color: #1a1a1a !important;
  text-decoration: none !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  display: block;
}
.bdl-404__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(0,0,0,.08);
}
.bdl-404__img {
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  background-color: var(--bdl-blue, #1d4f8c);
}
.bdl-404__body {
  padding: 12px 14px 14px;
}
.bdl-404__cat {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #888;
  display: block;
  margin-bottom: 3px;
  font-weight: 500;
}
.bdl-404__title {
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--bdl-blue, #1d4f8c);
  display: block;
}
.bdl-404__cta {
  margin-top: 1.75rem;
  text-align: center;
}
.bdl-404__btn {
  display: inline-block;
  padding: 12px 28px;
  font-size: 0.95rem;
  font-weight: 500;
  border-radius: 4px;
  text-decoration: none !important;
  background: var(--bdl-blue, #1d4f8c);
  color: #fff !important;
  transition: background 0.2s ease;
}
.bdl-404__btn:hover {
  background: #164073;
  color: #fff !important;
}
@media (max-width: 767px) {
  .bdl-404__grid { grid-template-columns: 1fr; }
  .bdl-404__inner { padding: 1.75rem 1.25rem 2rem; }
  .bdl-404__num { font-size: 4rem; }
  .bdl-404__headline { font-size: 1.4rem; }
}

/* 404-Button: Farbe weiß mit hoher Spezifität gegen globale a-Regel */
html body .bdl-404 .bdl-404__cta a.bdl-404__btn,
html body .bdl-404 .bdl-404__cta a.bdl-404__btn:link,
html body .bdl-404 .bdl-404__cta a.bdl-404__btn:visited,
html body .bdl-404 .bdl-404__cta a.bdl-404__btn:hover,
html body .bdl-404 .bdl-404__cta a.bdl-404__btn:focus {
  color: #fff !important;
  text-decoration: none !important;
}

/* 404-Button v2: :not()-Spezifitätspumpe gegen globale BDL-Link-Regel */
html body a.bdl-404__btn:not(.a):not(.b):not(.c):not(.d):not(.e):not(.f):not(.g):not(.h):not(.i):not(.j):not(.k),
html body a.bdl-404__btn:visited:not(.a):not(.b):not(.c):not(.d):not(.e):not(.f):not(.g):not(.h):not(.i):not(.j):not(.k),
html body a.bdl-404__btn:hover:not(.a):not(.b):not(.c):not(.d):not(.e):not(.f):not(.g):not(.h):not(.i):not(.j):not(.k) {
  color: #ffffff !important;
  background: #1d4f8c !important;
  text-decoration: none !important;
}
html body a.bdl-404__btn:hover:not(.a):not(.b):not(.c):not(.d):not(.e):not(.f):not(.g):not(.h):not(.i):not(.j):not(.k) {
  background: #164073 !important;
}
