/**
 * NBI Template — custom.css
 * WIRD NICHT AUTOMATISCH ÜBERSCHRIEBEN.
 * Enthält alle Mockup-Stile für: Artikel, Kategorie, Sidebar-Module.
 * Variablen aus layout.css: --nbi-color-primary #0a3d6b, --nbi-color-primary-mid #1a5fa8
 */

/* ── SCHRIFTART — Helvetica Neue / Arial Stack (klassisch modern, kein Google Font) */
:root {
  --nbi-font-body:    "Helvetica Neue", Helvetica, Arial, "Segoe UI", sans-serif;
  --nbi-font-heading: "Helvetica Neue", Helvetica, Arial, "Segoe UI", sans-serif;
}
html, body {
  font-family: "Helvetica Neue", Helvetica, Arial, "Segoe UI", sans-serif !important;
}
/* Gezielt auf UI-Elemente die Bootstrap/Joomla überschreiben */
.nbi-nav a, .nbi-header-actions, .nbi-sidebar, .nbi-cat-blog,
.nbi-article-card, h1, h2, h3, h4, h5, h6,
.pagination, input, button, select, textarea {
  font-family: "Helvetica Neue", Helvetica, Arial, "Segoe UI", sans-serif !important;
}

/* ── Bootstrap-Container direkt um Joomla-Komponente: Extra-Padding entfernen ──
   Nur das direkte Wrapper-Container wird aufgehoben, Plugin-Container bleiben intakt */
.nbi-content > .com-content-article > .container,
.nbi-content > .com-content-category-blog > .container,
.nbi-content > .container,
.nbi-content > .container-fluid {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════
   1) EINZELARTIKEL  (article/default.php → .nbi-article-card)
   ═══════════════════════════════════════════════════════════════ */

/* Artikel-Karte: weißes Panel mit Radius + Schatten */
.nbi-article-card {
  background: #fff !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 16px rgba(10,61,107,.10), 0 2px 4px rgba(10,61,107,.06) !important;
  margin-bottom: 2rem;
}

/* Hero-Bild 21:9 — aspect-ratio auf img, KEIN overflow:hidden auf figure (würde figcaption clippen) */
.nbi-art-hero {
  width: 100% !important;
  display: block !important;
  line-height: 0 !important;
}
.nbi-art-hero img {
  width: 100% !important;
  aspect-ratio: 21 / 9 !important;
  object-fit: cover !important;
  display: block !important;
  max-width: none !important;
  border-radius: var(--nbi-radius-lg, 14px) var(--nbi-radius-lg, 14px) 0 0;
}
@media (max-width: 768px) {
  .nbi-art-hero img { aspect-ratio: 16 / 9 !important; }
}

/* ── Below-Intro-Bild (zwischen Introtext und Volltext) ───────────────────── */
.nbi-art-intro-img {
  margin: 24px 0 28px !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  border: 1px solid #e4e8ef !important;
  box-shadow: 0 1px 3px rgba(10,61,107,.08) !important;
  line-height: 0 !important;
}
.nbi-art-intro-img img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
}
.nbi-art-intro-img figcaption {
  font-style: normal !important;
  font-size: 12px !important;
  color: #9ca3af !important;
  padding: 7px 14px !important;
  background: #fafbfd !important;
  border-top: 1px solid #e4e8ef !important;
  line-height: 1.4 !important;
  margin: 0 !important;
}

/* ── Breiter Rahmen-Fix: AutoMeta / Bootstrap-Container Padding neutralisieren */
.nb-article-root,
.view-article .com-content-article {
  padding: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
/* Bootstrap .container innerhalb des Artikels */
.nbi-content .com-content-article .container,
.nbi-content .com-content-article .container-fluid {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Hero-Bildunterschrift: dezent, kein Kursiv */
.nbi-art-hero figcaption {
  font-style: normal !important;
  font-size: 11.5px !important;
  color: #9ca3af !important;
  line-height: 1.4 !important;
  padding: 6px 14px 8px !important;
  background: transparent !important;
  border-top: none !important;
  margin: 0 !important;
}

/* Body-Bereich */
.nbi-art-body {
  padding: 32px 36px 36px !important;
}
@media (max-width: 768px) {
  .nbi-art-body { padding: 20px 18px 24px !important; }
  /* Tags: kleinere Schrift + engerer Gap auf Mobil */
  .nbi-art-tags { gap: 5px !important; margin-top: 18px !important; }
  .nbi-tag { font-size: 11px !important; padding: 3px 8px !important; }
  /* Share-Leiste: kompakter auf Mobil */
  .nbi-share-bar { gap: 7px !important; margin-top: 20px !important; padding-top: 16px !important; }
  .nbi-share-icon { width: 32px !important; height: 32px !important; font-size: 12px !important; }
  /* Aftercontent-Box auf Mobil */
  .nbi-art-aftercontent { margin-top: 20px !important; padding-top: 18px !important; }
  .nbi-art-aftercontent .nb-autometa-articlemeta,
  .nbi-art-aftercontent [class*="autometa"],
  .nbi-art-aftercontent [class*="author-box"],
  .nbi-art-aftercontent [class*="authorbox"] { padding: 12px 14px !important; }
  /* Artikel-Karte: kein border-radius auf sehr kleinen Screens */
  .nbi-article-card { border-radius: 0 !important; }
}

/* Kicker */
.nbi-art-kicker {
  display: flex !important; align-items: center !important;
  gap: 10px !important; margin-bottom: 20px !important; flex-wrap: wrap !important;
}
.nbi-art-date, .nbi-art-readtime { font-size: 12.5px !important; color: #6b7280 !important; }
.nbi-art-dot { font-size: 12px !important; color: #6b7280 !important; opacity: .5; }
.nbi-art-date-updated { font-size: 12.5px !important; color: #9ca3af !important; }

/* Artikel-Titel */
.nbi-art-title {
  font-size: 28px !important; font-weight: 800 !important;
  line-height: 1.18 !important; color: #0a3d6b !important;
  letter-spacing: -.3px !important; margin: 0 0 12px !important;
}
.nbi-art-prefix {
  display: block !important; font-size: 14px !important; font-weight: 600 !important;
  color: #1a5fa8 !important; margin-bottom: 6px !important;
  text-transform: uppercase !important; letter-spacing: .06em !important;
}
@media (max-width: 768px) { .nbi-art-title { font-size: 22px !important; } }

/* Lesebalken */
.nbi-reading-bar {
  height: 3px !important;
  background: linear-gradient(90deg, #1a5fa8, #d94f1e) !important;
  border-radius: 2px !important; margin: 14px 0 28px !important; width: 40% !important;
}

/* Meta-Zeile (Autor) */
.nbi-art-meta {
  display: flex !important; gap: 14px !important; align-items: center !important;
  font-size: 12.5px !important; color: #6b7280 !important;
  margin-bottom: 18px !important; padding-bottom: 18px !important;
  border-bottom: 1px solid #e4e8ef !important;
}

/* Artikel-Text: erster Absatz automatisch hervorgehoben */
.nbi-art-text {
  font-size: 15.5px !important; line-height: 1.78 !important; color: #334155 !important;
}
.nbi-art-text p { margin-bottom: 18px !important; }

/* Links im Artikeltext: explizit blau + unterstrichen — immer sichtbar */
.nbi-art-text a { color: #1a5fa8 !important; text-decoration: underline !important; }
.nbi-art-text a:hover { color: #0a3d6b !important; text-decoration: underline !important; }

/* URL A/B/C Link-Buttons */
.nbi-art-links {
  display: flex !important; flex-wrap: wrap !important; align-items: center !important;
  gap: 10px !important; margin: 28px 0 8px !important;
  padding: 16px 20px !important;
  background: #f0f5fc !important; border-left: 3px solid #1a5fa8 !important;
  border-radius: 0 6px 6px 0 !important;
}
.nbi-art-links-label {
  display: block !important; width: 100% !important;
  font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: .06em !important; text-transform: uppercase !important;
  color: #6b7280 !important; margin-bottom: 8px !important;
}
.nbi-art-link-btn {
  display: inline-flex !important; align-items: center !important; gap: 6px !important;
  padding: 8px 16px !important; border-radius: 5px !important;
  background: #1a5fa8 !important; color: #fff !important;
  font-size: 13.5px !important; font-weight: 600 !important;
  text-decoration: none !important; line-height: 1.3 !important;
  border: none !important; transition: background .18s, transform .12s !important;
}
.nbi-art-link-btn::after {
  content: '↗' !important; font-size: 12px !important; opacity: .85 !important;
}
.nbi-art-link-btn:hover {
  background: #0a3d6b !important; color: #fff !important;
  text-decoration: none !important; transform: translateY(-1px) !important;
}

/* Erster Absatz = Intro-Highlight (blauer linker Balken) */
.nbi-art-text--highlight-first > p:first-of-type,
.nbi-art-text--highlight-first > div:first-of-type > p:first-child {
  font-size: 17px !important; font-weight: 600 !important;
  line-height: 1.65 !important; color: #2c3a4f !important;
  border-left: 3px solid #1a5fa8 !important;
  padding-left: 16px !important; margin-bottom: 20px !important;
}

/* Überschriften im Artikeltext */
.nbi-art-text h2 {
  font-size: 20px !important; font-weight: 700 !important; color: #0a3d6b !important;
  margin: 28px 0 10px !important; letter-spacing: -.2px !important;
}
.nbi-art-text h3 { font-size: 17px !important; font-weight: 700 !important; color: #0a3d6b !important; margin: 22px 0 8px !important; }

/* Bilder im Artikeltext */
.nbi-art-text figure,
.nbi-art-text .img_caption {
  margin: 24px 0 !important; border-radius: 8px !important;
  overflow: hidden !important; border: 1px solid #e4e8ef !important;
  box-shadow: 0 1px 3px rgba(10,61,107,.08) !important;
}
.nbi-art-text img { max-width: 100% !important; height: auto !important; display: block !important; }
.nbi-art-text figure img { width: 100% !important; }
.nbi-art-text figcaption,
.nbi-art-text .img_caption p {
  padding: 9px 14px !important; font-size: 12.5px !important; color: #6b7280 !important;
  background: #fafbfd !important; border-top: 1px solid #e4e8ef !important;
  margin: 0 !important; line-height: 1.4 !important;
}

/* Standard-Blockquotes (nicht nb-keyfacts / nb-quote) */
.nbi-art-text blockquote:not(.nb-keyfacts):not(.nb-pullquote) {
  margin: 20px 0 !important; padding: 16px 20px !important;
  border-left: 3px solid #1a5fa8 !important;
  background: #f4f6fb !important; font-style: italic !important;
  border-radius: 0 8px 8px 0 !important;
}

/* ── KEY-FACTS BOX  <blockquote class="nb-keyfacts"> ────────── */
blockquote.nb-keyfacts {
  margin: 24px 0 !important;
  padding: 0 !important;
  border: 1px solid #e4e8ef !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  background: #f8fafd !important;
  box-shadow: 0 1px 3px rgba(10,61,107,.06) !important;
  font-style: normal !important;
}
blockquote.nb-keyfacts .nb-keyfacts-title {
  display: block !important;
  margin: 0 !important;
  padding: 11px 18px !important;
  font-size: 13px !important; font-weight: 700 !important;
  letter-spacing: .05em !important; text-transform: uppercase !important;
  background: linear-gradient(90deg, #0a3d6b, #1a5fa8) !important;
  color: #fff !important;
  border: none !important;
}
blockquote.nb-keyfacts .nb-keyfacts-list {
  list-style: none !important;
  margin: 0 !important; padding: 14px 18px !important;
}
blockquote.nb-keyfacts .nb-keyfacts-list li {
  position: relative !important;
  padding: 5px 0 5px 18px !important;
  font-size: 14px !important; line-height: 1.5 !important;
  border-bottom: 1px solid #e4e8ef !important;
  color: #1a1d23 !important;
}
blockquote.nb-keyfacts .nb-keyfacts-list li:last-child { border-bottom: 0 !important; }
blockquote.nb-keyfacts .nb-keyfacts-list li::before {
  content: '–' !important;
  position: absolute !important; left: 0 !important; top: 5px !important;
  color: #1a5fa8 !important; font-weight: 700 !important;
}

/* ── ZITAT  <figure class="nb-quote"> ────────────────────────── */
figure.nb-quote {
  margin: 28px 0 !important;
  padding: 24px 28px 20px !important;
  background: #fff !important;
  border: 1px solid #e4e8ef !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 16px rgba(10,61,107,.06) !important;
  position: relative !important;
}
/* Blauer Balken oben */
figure.nb-quote::before {
  content: '' !important;
  position: absolute !important; top: 0 !important; left: 0 !important; right: 0 !important;
  height: 4px !important;
  background: linear-gradient(90deg, #0a3d6b, #1a5fa8) !important;
  border-radius: 8px 8px 0 0 !important;
}
/* Guillemets-Zeichen */
figure.nb-quote::after {
  content: '«' !important;
  position: absolute !important; right: 20px !important; top: 12px !important;
  font-size: 3.5rem !important; line-height: 1 !important;
  color: rgba(10,61,107,.1) !important;
  font-family: Georgia, serif !important;
}
blockquote.nb-pullquote {
  margin: 0 0 16px !important; padding: 0 !important;
  border: none !important; background: none !important;
  font-size: 1.05rem !important; font-weight: 500 !important;
  line-height: 1.7 !important; color: #1a1d23 !important;
  font-style: normal !important;
}
figure.nb-quote figcaption {
  margin-top: 14px !important; padding-top: 12px !important;
  border-top: 1px solid #e4e8ef !important;
  font-size: 0.875rem !important; color: #6b7280 !important;
  display: flex !important; flex-wrap: wrap !important; gap: 2px 6px !important;
}
.nb-quote-name {
  font-weight: 700 !important; color: #1a1d23 !important;
}
.nb-quote-role {
  color: #6b7280 !important;
}
.nb-quote-role::before { content: '·' !important; margin-right: 4px !important; }

/* ── CONTENT-PLUGIN OUTPUT (Autometa, Autorenbox, verwandte Artikel) ────────
   Platzierung: zwischen .nbi-art-text und .nbi-art-tags
   Plugins injizieren via onContentAfterDisplay / event->afterDisplayContent   */
.nbi-art-beforecontent {
  margin-bottom: 20px !important;
}
.nbi-art-aftercontent {
  margin-top: 28px !important;
  padding-top: 24px !important;
  border-top: 1px solid #e4e8ef !important;
  clear: both;
}
/* Autorenbox-Karten (typisches Plugin-Output) */
.nbi-art-aftercontent .nb-autometa-articlemeta,
.nbi-art-aftercontent [class*="autometa"],
.nbi-art-aftercontent [class*="author-box"],
.nbi-art-aftercontent [class*="authorbox"] {
  background: #f8fafd !important;
  border: 1px solid #e4e8ef !important;
  border-radius: 8px !important;
  padding: 16px 20px !important;
  margin-bottom: 12px !important;
  font-size: 14px !important;
  color: #334155 !important;
}
/* Bilder in Plugin-Output: max-width sicherstellen */
.nbi-art-aftercontent img {
  max-width: 100% !important;
  height: auto !important;
}

/* Tags */
.nbi-art-tags {
  margin-top: 24px !important; padding-top: 16px !important;
  border-top: 1px solid #e4e8ef !important;
  display: flex !important; flex-wrap: wrap !important; gap: 6px !important; align-items: center !important;
}
.nbi-art-tags-label { font-size: 12px !important; font-weight: 700 !important; color: #6b7280 !important; margin-right: 2px !important; }
.nbi-tag {
  display: inline-block !important; padding: 3px 10px !important; border-radius: 99px !important;
  background: #f4f6fb !important; border: 1px solid #e4e8ef !important;
  font-size: 12px !important; color: #1a1d23 !important; text-decoration: none !important;
}
.nbi-tag:hover { background: #0a3d6b !important; color: #fff !important; border-color: #0a3d6b !important; }

/* Share-Bar */
.nbi-share-bar {
  margin-top: 28px !important; padding-top: 20px !important;
  border-top: 1px solid #e4e8ef !important;
  display: flex !important; align-items: center !important; gap: 10px !important; flex-wrap: wrap !important;
}
.nbi-share-label {
  font-size: 12px !important; font-weight: 700 !important; color: #6b7280 !important;
  text-transform: uppercase !important; letter-spacing: .06em !important; margin-right: 4px !important;
}
.nbi-share-icon {
  width: 36px !important; height: 36px !important; border-radius: 50% !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  font-size: 13px !important; font-weight: 700 !important; cursor: pointer !important;
  border: 1px solid #e4e8ef !important; background: #f4f6fb !important; color: #6b7280 !important;
  text-decoration: none !important; transition: all .15s !important;
}
.nbi-share-icon:hover { transform: translateY(-2px) !important; box-shadow: 0 2px 6px rgba(10,61,107,.12) !important; }
.nbi-share-li { background: #0a66c2 !important; color: #fff !important; border-color: #0a66c2 !important; }
.nbi-share-x  { background: #000 !important; color: #fff !important; border-color: #000 !important; }
.nbi-share-wa { background: #25d366 !important; color: #fff !important; border-color: #25d366 !important; }

/* ═══════════════════════════════════════════════════════════════
   2) KATEGORIE-SEITE  (category/blog.php → .nbi-cat-blog)
   ═══════════════════════════════════════════════════════════════ */

.nbi-cat-blog { margin-bottom: 3rem; }

/* Kategorie-Titel-Zeile */
.nbi-cat-title-row {
  display: flex; align-items: center; gap: 12px; margin-bottom: 20px;
}
.nbi-cat-title {
  font-size: 22px; font-weight: 800; color: #0a3d6b; margin: 0;
}
.nbi-cat-count {
  font-size: 12px; color: #6b7280;
  background: #f4f6fb; border: 1px solid #e4e8ef;
  padding: 3px 10px; border-radius: 99px;
}

/* ── HERO ── */
.nbi-cat-hero {
  border-radius: 14px !important; overflow: hidden !important;
  position: relative !important; aspect-ratio: 21 / 9 !important;
  box-shadow: 0 8px 32px rgba(10,61,107,.14);
  margin-bottom: 14px; display: block !important;
}
.nbi-cat-hero > a {
  position: absolute !important; inset: 0 !important; z-index: 0 !important;
  display: block !important;
}
.nbi-cat-hero > a > img,
.nbi-cat-hero > img {
  width: 100% !important; height: 100% !important;
  object-fit: cover !important; display: block !important;
  position: absolute !important; inset: 0 !important;
}
.nbi-cat-hero-overlay {
  position: absolute !important; inset: 0 !important; z-index: 1 !important;
  background: linear-gradient(160deg, transparent 40%, rgba(10,20,50,.82) 100%) !important;
  pointer-events: none !important;
}
.nbi-cat-hero-content {
  position: absolute !important; bottom: 0 !important;
  left: 0 !important; right: 0 !important;
  padding: 20px 22px !important; z-index: 2 !important;
}
.nbi-cat-hero-content .nbi-cat-badge {
  background: rgba(255,255,255,.2); color: #fff;
  border-color: rgba(255,255,255,.3); margin-bottom: 8px;
  display: inline-flex;
}
.nbi-cat-hero-content h2 {
  font-size: 24px !important; font-weight: 800 !important; color: #fff !important;
  line-height: 1.2 !important; text-shadow: 0 2px 8px rgba(0,0,0,.3) !important;
  letter-spacing: -.2px !important; margin: 0 0 5px !important;
}
.nbi-cat-hero-content h2 a { color: #fff !important; text-decoration: none !important; }
.nbi-cat-hero-content h2 a:hover { text-decoration: underline !important; color: #fff !important; }
/* Content-Fläche selbst lässt Klicks durch; nur echte Links fangen sie ab */
.nbi-cat-hero-content { pointer-events: none !important; }
.nbi-cat-hero-content a { pointer-events: auto !important; }
.nbi-cat-hero-meta { font-size: 12px !important; color: rgba(255,255,255,.8) !important; }

/* ── TEASER GRID (3-spaltig) ── */
.nbi-cat-teasers {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 10px !important;
  margin-bottom: 24px !important;
}
@media (max-width: 768px) {
  .nbi-cat-teasers { grid-template-columns: 1fr !important; }

  /* Hero auf Mobile: gleicher Aufbau + Schriftgrösse wie Teaser-Card */
  .nbi-cat-hero {
    aspect-ratio: 16 / 9 !important;
    border-radius: 8px !important;
  }
  .nbi-cat-hero-content {
    padding: 10px 12px !important;
  }
  .nbi-cat-hero-content .nbi-cat-badge {
    font-size: 10px !important;
    padding: 2px 7px !important;
    margin-bottom: 4px !important;
  }
  .nbi-cat-hero-content h2 {
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    text-shadow: 0 1px 4px rgba(0,0,0,.4) !important;
    margin: 0 0 3px !important;
  }
  .nbi-cat-hero-meta {
    font-size: 11px !important;
  }
}
@media (min-width: 769px) and (max-width: 992px) { .nbi-cat-teasers { grid-template-columns: repeat(2, 1fr) !important; } }

.nbi-cat-teaser-card {
  border-radius: 8px !important; overflow: hidden !important;
  position: relative !important; aspect-ratio: 16 / 9 !important;
  box-shadow: 0 4px 16px rgba(10,61,107,.10);
  display: block !important;
}
.nbi-cat-teaser-card > a {
  position: absolute !important; inset: 0 !important; z-index: 0 !important;
  display: block !important;
}
.nbi-cat-teaser-card > a > img,
.nbi-cat-teaser-card > img {
  width: 100% !important; height: 100% !important;
  object-fit: cover !important; display: block !important;
  position: absolute !important; inset: 0 !important;
}
.nbi-cat-teaser-overlay {
  position: absolute !important; inset: 0 !important; z-index: 1 !important;
  background: linear-gradient(180deg, rgba(10,20,50,.05) 30%, rgba(10,20,50,.88) 100%) !important;
  pointer-events: none !important;
}
.nbi-cat-teaser-content {
  position: absolute !important; bottom: 0 !important;
  left: 0 !important; right: 0 !important;
  padding: 10px 12px !important; z-index: 2 !important;
}
.nbi-cat-teaser-content .nbi-cat-badge {
  font-size: 10px; padding: 2px 7px;
  background: rgba(255,255,255,.15); color: #fff;
  border-color: rgba(255,255,255,.2); margin-bottom: 4px;
  display: inline-flex;
}
.nbi-cat-teaser-content h3 {
  font-size: 13px !important; font-weight: 700 !important; color: #fff !important;
  line-height: 1.3 !important; margin: 0 0 3px !important;
  text-shadow: 0 1px 4px rgba(0,0,0,.4) !important;
}
.nbi-cat-teaser-content h3 a { color: #fff !important; text-decoration: none !important; }
.nbi-cat-teaser-content h3 a:hover { text-decoration: underline !important; color: #fff !important; }
/* Content-Fläche selbst lässt Klicks durch; nur echte Links fangen sie ab */
.nbi-cat-teaser-content { pointer-events: none !important; }
.nbi-cat-teaser-content a { pointer-events: auto !important; }
.nbi-cat-teaser-meta { font-size: 11px !important; color: rgba(255,255,255,.75) !important; }

/* ── DIVIDER ── */
.nbi-cat-divider {
  display: flex; align-items: center; gap: 10px;
  margin: 24px 0 16px;
}
.nbi-cat-divider::before, .nbi-cat-divider::after {
  content: ''; flex: 1; height: 1px; background: #e4e8ef;
}
.nbi-cat-divider span {
  font-family: var(--nbi-font-body);
  font-size: 11px; font-weight: 800; text-transform: uppercase;
  letter-spacing: .08em; color: #6b7280; white-space: nowrap;
}

/* ── LISTE (Weitere Beiträge) — Mockup: 200px Bild + Text nebeneinander ── */
.nbi-cat-list { display: flex; flex-direction: column; }

.nbi-cat-list-card {
  display: grid !important;
  grid-template-columns: 200px 1fr !important;
  gap: 16px !important;
  padding: 16px 0 !important;
  border-bottom: 1px solid #e4e8ef !important;
  align-items: start !important;
}
.nbi-cat-list-card:last-child { border-bottom: 0 !important; }
@media (max-width: 640px) {
  .nbi-cat-list-card { grid-template-columns: 1fr !important; }
  .nbi-cat-list-img { width: 100% !important; }
}

/* Bild-Container */
.nbi-cat-list-img {
  width: 200px !important;
  aspect-ratio: 16 / 9 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  background: linear-gradient(135deg, #d8eaf5 0%, #b0cfe8 100%) !important;
  box-shadow: 0 4px 16px rgba(10,61,107,.10) !important;
  flex-shrink: 0 !important;
  display: block !important;
}
/* Link-Wrapper im Bild */
.nbi-cat-list-img a {
  display: block !important;
  width: 100% !important; height: 100% !important;
}
/* Bild selbst */
.nbi-cat-list-img img {
  width: 100% !important; height: 100% !important;
  object-fit: cover !important; display: block !important;
}

/* Text-Body */
.nbi-cat-list-body {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
}

/* Kategorie-Label */
.nbi-cat-list-cat {
  font-size: 10.5px !important; font-weight: 700 !important;
  color: #1a5fa8 !important; text-transform: uppercase !important;
  letter-spacing: .06em !important; margin-bottom: 4px !important;
}
.nbi-cat-list-cat a { color: #1a5fa8 !important; text-decoration: none !important; }
.nbi-cat-list-cat a:hover { text-decoration: underline !important; }

/* Titel */
.nbi-cat-list-title {
  font-size: 16px !important; font-weight: 700 !important;
  line-height: 1.3 !important; color: #1a1d23 !important;
  margin-bottom: 6px !important;
}
.nbi-cat-list-title a { color: #1a1d23 !important; text-decoration: none !important; }
.nbi-cat-list-title a:hover { color: #1a5fa8 !important; }

/* Excerpt */
.nbi-cat-list-excerpt {
  font-size: 13.5px !important; color: #6b7280 !important;
  line-height: 1.55 !important; margin-bottom: 8px !important;
}

/* Meta-Zeile */
.nbi-cat-list-meta {
  font-size: 11.5px !important; color: #6b7280 !important;
  display: flex !important; gap: 4px !important;
  align-items: center !important; flex-wrap: wrap !important;
  margin-top: auto !important;
}
.nbi-dot { opacity: .4; }

/* Weiterlesen-Link */
.nbi-readmore-link {
  display: inline-flex !important; align-items: center !important; gap: 3px !important;
  font-size: 12.5px !important; font-weight: 600 !important; color: #1a5fa8 !important;
  padding: 4px 0 !important; border-bottom: 1px solid transparent !important;
  text-decoration: none !important; transition: border-color .15s !important;
  margin-left: 6px !important;
}
.nbi-readmore-link::after { content: '↗'; font-size: 11px; }
.nbi-readmore-link:hover { border-color: #1a5fa8 !important; text-decoration: none !important; }

/* Pagination */
.nbi-pagination-wrap { margin-top: 28px; }
.nbi-pagination-wrap .pagination {
  display: flex; gap: 4px; justify-content: center; flex-wrap: wrap; padding: 0; list-style: none;
}
.nbi-pagination-wrap .pagination .page-link {
  font-family: var(--nbi-font-body) !important;
  width: 34px; height: 34px;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  border-radius: 4px !important; border: 1px solid #e4e8ef !important;
  font-size: 13px !important; font-weight: 600 !important; color: #1a1d23 !important;
  background: #fff !important; text-decoration: none !important; transition: all .15s !important;
  padding: 0 !important;
}
.nbi-pagination-wrap .pagination .page-link:hover {
  background: #f4f6fb !important; border-color: #c5d9f5 !important;
}
.nbi-pagination-wrap .pagination .page-item.active .page-link {
  background: #0a3d6b !important; color: #fff !important; border-color: #0a3d6b !important;
  box-shadow: 0 2px 8px rgba(10,61,107,.25) !important;
}
.nbi-pagination-wrap .pagination .page-item.disabled .page-link {
  opacity: .4; pointer-events: none;
}

/* Joomla Icon-Font Pfeile → Unicode-Zeichen ersetzen */
.nbi-pagination-wrap .page-link [class*="icon-angle-double-left"]::before,
.nbi-pagination-wrap .page-link [class*="icon-chevrons-left"]::before
  { content: '«' !important; font-family: var(--nbi-font-body) !important; }
.nbi-pagination-wrap .page-link [class*="icon-angle-left"]::before,
.nbi-pagination-wrap .page-link [class*="icon-chevron-left"]::before
  { content: '‹' !important; font-family: var(--nbi-font-body) !important; }
.nbi-pagination-wrap .page-link [class*="icon-angle-right"]::before,
.nbi-pagination-wrap .page-link [class*="icon-chevron-right"]::before
  { content: '›' !important; font-family: var(--nbi-font-body) !important; }
.nbi-pagination-wrap .page-link [class*="icon-angle-double-right"]::before,
.nbi-pagination-wrap .page-link [class*="icon-chevrons-right"]::before
  { content: '»' !important; font-family: var(--nbi-font-body) !important; }

/* ═══════════════════════════════════════════════════════════════
   3a) SIDEBAR SUCHE (mod_finder override → .nbi-sidebar-search)
   Mockup: flex row | input + blauer →-Button
   ═══════════════════════════════════════════════════════════════ */
.nbi-sidebar-search {
  display: flex;
  gap: 8px;
  align-items: stretch;
}
.nbi-sidebar-search input[type="text"] {
  flex: 1;
  min-width: 0;
  padding: 8px 12px;
  border: 1px solid #e4e8ef;
  border-radius: 4px;
  font-family: var(--nbi-font-body);
  font-size: 13px;
  color: #1a1d23;
  background: #f4f6fb;
  outline: none;
  transition: border-color .15s, background .15s;
}
.nbi-sidebar-search input[type="text"]::placeholder { color: #9ca3af; }
.nbi-sidebar-search input[type="text"]:focus {
  border-color: #1a5fa8;
  background: #fff;
}
.nbi-sidebar-search button[type="submit"] {
  flex-shrink: 0;
  padding: 0 14px;
  background: #0a3d6b;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-family: var(--nbi-font-body);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  transition: background .15s;
}
.nbi-sidebar-search button[type="submit"]:hover { background: #1a5fa8; }

/* ═══════════════════════════════════════════════════════════════
   3) SIDEBAR-MODULE  (Neueste Nachrichten / Meistgeklickt)
   ═══════════════════════════════════════════════════════════════ */

/* Neueste Nachrichten — mod_articles_news */
.nb-news-list {
  list-style: none; margin: 0; padding: 0;
}
.nb-news-item {
  display: grid; grid-template-columns: 60px 1fr; gap: 10px;
  padding: 10px 0; border-bottom: 1px solid #e4e8ef; align-items: start;
}
.nb-news-item:last-child { border-bottom: 0; padding-bottom: 0; }
.nb-news-thumb {
  width: 60px; height: 60px; border-radius: 4px;
  overflow: hidden; background: #f4f6fb; flex-shrink: 0;
  border: 1px solid rgba(10, 61, 107, .10);
}
.nb-news-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nb-news-body {}
.nb-news-cat {
  font-size: 10px; font-weight: 700; color: #1a5fa8;
  text-transform: uppercase; letter-spacing: .05em; margin-bottom: 2px;
}
.nb-news-title {
  font-size: 13px; font-weight: 600; line-height: 1.35; color: #1a1d23;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nb-news-title a { color: inherit; text-decoration: none; }
.nb-news-title a:hover { color: #1a5fa8; }
.nb-news-date { font-size: 11px; color: #6b7280; margin-top: 3px; }

/* Meistgeklickt — mod_articles_popular */
.nb-popular { /* wrapper */ }
.mod-articles-popular { list-style: none; margin: 0; padding: 0; }
.mod-articles-popular-item {
  display: grid; grid-template-columns: 60px 1fr; gap: 10px;
  padding: 10px 0; border-bottom: 1px solid #e4e8ef; align-items: start;
}
.mod-articles-popular-item:last-child { border-bottom: 0; padding-bottom: 0; }
.nb-popular .nb-thumb,
.nb-popular .pull-mod-articles-image {
  width: 60px; height: 60px; border-radius: 4px;
  overflow: hidden; background: #f4f6fb; flex-shrink: 0;
  margin: 0;
}
.nb-popular .nb-thumb img,
.nb-popular .pull-mod-articles-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mod-articles-popular-content {}
.nb-popular .nb-cat a {
  font-size: 10px; font-weight: 700; color: #6b7280;
  text-transform: uppercase; letter-spacing: .06em;
  text-decoration: none; display: block; margin-bottom: 2px;
}
.nb-popular .nb-title,
.nb-popular h4 { font-size: 13px; font-weight: 600; line-height: 1.35; color: #1a1d23; margin: 0; }
.nb-popular .nb-title a,
.nb-popular h4 a { color: inherit; text-decoration: none; }
.nb-popular .nb-title a:hover,
.nb-popular h4 a:hover { color: #1a5fa8; }
.nb-popular .nb-date,
.nb-popular time { font-size: 11px; color: #6b7280; margin-top: 3px; display: block; }

/* ═══════════════════════════════════════════════════════════════
   4) HAUPT-STREAM MODULE (Neueste Nachrichten auf Startseite)
   ═══════════════════════════════════════════════════════════════ */
.main-stream .nb-news-item,
.main-stream .mod-articles-popular-item {
  grid-template-columns: 110px 1fr;
}
.main-stream .nb-news-thumb,
.main-stream .nb-popular .nb-thumb {
  width: 110px; height: 110px;
}
.main-stream .nb-news-title,
.main-stream .nb-popular .nb-title { font-size: 15px; font-weight: 700; }
.main-stream .nb-news-cat,
.main-stream .nb-popular .nb-cat a { font-size: 10.5px; }

/* ═══════════════════════════════════════════════════════════════
   5) ALTES BLOG-ITEMS GRID (Fallback falls override nicht greift)
   ═══════════════════════════════════════════════════════════════ */
.com-content-category-blog__items.blog-items {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 10px !important;
  margin-bottom: 1.5rem !important;
}
.blog-items .blog-item {
  position: relative !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  aspect-ratio: 16 / 9 !important;
  background: #1a2035 !important;
}
/* Verstecke unerwünschten Text im Fallback-Modus */
.blog-items .blog-item dl.article-info,
.blog-items .blog-item .article-info,
.blog-items .blog-item dt,
.blog-items .blog-item .readmore,
.blog-items .blog-item .item-intro-text,
.blog-items .blog-item .introtext,
.blog-items .blog-item p { display: none !important; }
/* Bild füllt Karte */
.blog-items .blog-item .item-image,
.blog-items .blog-item figure { position: absolute !important; inset: 0 !important; margin: 0 !important; }
.blog-items .blog-item .item-image img,
.blog-items .blog-item figure img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
/* Overlay Gradient */
.blog-items .blog-item > article {
  position: absolute !important; inset: 0 !important;
  background: linear-gradient(180deg, transparent 40%, rgba(10,20,50,.85) 100%) !important;
  display: flex !important; flex-direction: column !important; justify-content: flex-end !important;
  padding: 12px 14px !important;
}
/* Titel weiß */
.blog-items .blog-item .page-header h2 { font-size: 14px !important; font-weight: 700 !important; color: #fff !important; margin: 0 !important; }
.blog-items .blog-item .page-header h2 a { color: #fff !important; text-decoration: none !important; }
/* Responsive */
@media (max-width: 992px) { .com-content-category-blog__items.blog-items { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 640px)  { .com-content-category-blog__items.blog-items { grid-template-columns: 1fr !important; } }

/* ═══════════════════════════════════════════════════════════════
   6) MOD_ARTICLES — Titel-Only Variante
   ═══════════════════════════════════════════════════════════════ */
.nb-news-list--titles .nb-news-item {
  grid-template-columns: 1fr;
  padding: 8px 0;
}
.nb-news-list--titles .nb-news-title { font-size: 13.5px; }

/* ═══════════════════════════════════════════════════════════════
   7) BREADCRUMB — Abstand nach unten
   ═══════════════════════════════════════════════════════════════ */
.nbi-breadcrumb-wrap {
  margin-bottom: 1.5rem !important;
  padding-top: .5rem !important;
}

/* ═══════════════════════════════════════════════════════════════
   8) AUTORENBOX (nb_autometa / afterDisplayContent)
   Abstand nach oben — direkt auf Element, unabhängig vom Container
   ═══════════════════════════════════════════════════════════════ */
/* Wrapper (aftercontent): Trennlinie + Luft nach oben */
.nbi-art-aftercontent {
  margin-top: 2.5rem !important;
  padding-top: 2rem !important;
  border-top: 1px solid #e4e8ef !important;
}
/* Autorenbox direkt targetiert — greift auch wenn Plugin via beforeContent injiziert */
.nb-autometa-articlemeta,
[class*="nb-autometa"],
.nbi-art-beforecontent .nb-autometa-articlemeta,
.nbi-art-text .nb-autometa-articlemeta {
  margin-top: 1.75rem !important;
  padding-top: 1.5rem !important;
  border-top: 1px solid #e4e8ef !important;
}

/* ═══════════════════════════════════════════════════════════════
   9) SIDEBAR-MODULE — Schrift + Formularelemente
   Newsletter Anmeldung: Schriftgrösse reduzieren auf Sidebar-Niveau
   ═══════════════════════════════════════════════════════════════ */
/* Alle Modul-Inhalte in der Sidebar: Basis-Schrift 14px */
.nbi-sidebar .moduletable { font-size: .875rem !important; }
/* Spezifisch: Formulare, Input, Labels, Buttons */
.nbi-sidebar form,
.nbi-sidebar input,
.nbi-sidebar textarea,
.nbi-sidebar select,
.nbi-sidebar label,
.nbi-sidebar p,
.nbi-sidebar li,
.nbi-sidebar .acyContainer,
.nbi-sidebar .acymailing-module,
.nbi-sidebar [class*="newsletter"],
.nbi-sidebar [class*="acymailing"] {
  font-size: .8125rem !important;  /* 13px — passend zu Nav/Badge-Schrift */
  line-height: 1.5 !important;
}

/* ═══════════════════════════════════════════════════════════════
   10) SUCHSEITE (com_finder)
   ═══════════════════════════════════════════════════════════════ */

/* Kopfbereich Suche */
.nbi-search-view { padding-top: .25rem; }
.nbi-search-head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: .5rem 1rem;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid #0a3d6b;
}
.nbi-search-title {
  font-size: 1.375rem !important;
  font-weight: 800 !important;
  color: #0a3d6b !important;
  margin: 0 !important;
  line-height: 1.2 !important;
}
.nbi-search-query {
  color: #d94f1e;
  font-style: normal;
}
.nbi-search-count {
  font-size: .8125rem;
  font-weight: 600;
  color: #6b7280;
  background: #f4f6fb;
  border: 1px solid #e4e8ef;
  border-radius: 99px;
  padding: .2rem .75rem;
  white-space: nowrap;
}

/* Suchformular: Leiste */
.nbi-search-form { margin-bottom: 1.75rem; }
.nbi-search-bar {
  display: flex;
  align-items: center;
  gap: .5rem;
  background: #fff;
  border: 1.5px solid #c5d9f5;
  border-radius: 8px;
  padding: .375rem .5rem .375rem .875rem;
  box-shadow: 0 1px 4px rgba(10,61,107,.07);
  transition: border-color .15s, box-shadow .15s;
}
.nbi-search-bar:focus-within {
  border-color: #1a5fa8;
  box-shadow: 0 0 0 3px rgba(26,95,168,.12);
}
.nbi-search-input {
  flex: 1;
  border: none !important;
  outline: none !important;
  background: transparent !important;
  font-size: .9375rem !important;
  color: #1a1d23 !important;
  padding: .25rem 0 !important;
  min-width: 0;
}
.nbi-search-input::placeholder { color: #9ca3af; }
.nbi-search-submit {
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  background: #0a3d6b !important;
  color: #fff !important;
  border: none !important;
  border-radius: 6px !important;
  padding: .4375rem 1rem !important;
  font-size: .8125rem !important;
  font-weight: 600 !important;
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s;
}
.nbi-search-submit:hover { background: #1a5fa8 !important; }
.nbi-search-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: transparent !important;
  color: #6b7280 !important;
  border: 1px solid #e4e8ef !important;
  border-radius: 6px !important;
  padding: .375rem .75rem !important;
  font-size: .8125rem !important;
  font-weight: 500 !important;
  cursor: pointer;
  white-space: nowrap;
  transition: border-color .15s, color .15s;
}
.nbi-search-filter-btn:hover,
.nbi-search-filter-btn[aria-expanded="true"] {
  border-color: #1a5fa8 !important;
  color: #1a5fa8 !important;
}

/* Filter-Panel */
.nbi-search-filters { margin-top: .75rem; }
.nbi-search-filters-inner {
  background: #f8fafd;
  border: 1px solid #e4e8ef;
  border-radius: 8px;
  padding: 1rem 1.25rem;
}
/* Joomla-Filter-Selects stylen */
.nbi-search-filters-inner select,
.nbi-search-filters-inner .chzn-container,
.nbi-search-filters-inner .choices__inner {
  font-size: .875rem !important;
  border-radius: 6px !important;
  border: 1px solid #c5d9f5 !important;
  padding: .3rem .5rem !important;
  color: #1a1d23 !important;
  background: #fff !important;
  min-width: 160px;
}
.nbi-search-filters-inner label {
  font-size: .8125rem !important;
  font-weight: 600 !important;
  color: #6b7280 !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
  margin-bottom: .25rem !important;
  display: block;
}
.nbi-search-filters-inner .finder-filter-window,
.nbi-search-filters-inner #finder-filter-window {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: .75rem 1.25rem;
}
/* Joomla standard com-finder Styles überschreiben */
.nbi-search-view .com-finder__tips,
.nbi-search-view .com-finder__tips.card { display: none !important; }
.nbi-search-view .com-finder__search .form-inline { display: contents; }

/* Ergebnis-Zähler (aus default_results.php) */
.nbi-cat-title-row { display: flex; align-items: center; }
.nbi-cat-count {
  font-size: .8125rem;
  font-weight: 600;
  color: #6b7280;
}

/* ═══════════════════════════════════════════════════════════════
   11) TAG-SEITE — verbesserter Header + gestalteter Einleitungstext
   ═══════════════════════════════════════════════════════════════ */
.nbi-tag-view { padding-top: .25rem; }

/* Kopfbereich Tag */
.nbi-tag-header {
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid #e4e8ef;
}
.nbi-tag-kicker {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .75rem;
}
.nbi-tag-label {
  font-size: .6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #fff;
  background: #1a5fa8;
  border-radius: 99px;
  padding: .2rem .7rem;
}
.nbi-tag-title {
  font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem) !important;
  font-weight: 800 !important;
  color: #0a3d6b !important;
  margin: 0 0 .75rem !important;
  line-height: 1.15 !important;
  letter-spacing: -.02em !important;
}
.nbi-tag-rule {
  height: 3px;
  width: 3rem;
  background: linear-gradient(90deg, #1a5fa8, #d94f1e);
  border-radius: 2px;
  margin-bottom: 1.25rem;
}
/* Einleitungstext: wie Artikel-Lead-Text */
.nbi-tag-intro {
  font-size: 1.0625rem;
  line-height: 1.7;
  color: #334155;
  margin-bottom: 1rem;
  padding-left: 1rem;
  border-left: 3px solid #1a5fa8;
}
.nbi-tag-intro p { margin-bottom: .75rem; }
.nbi-tag-intro p:last-child { margin-bottom: 0; }
/* Artikel-Zähler */
.nbi-tag-meta {
  font-size: .8125rem;
  color: #6b7280;
  font-weight: 500;
  margin-top: .75rem;
}
/* Leer-Meldung */
.nbi-tag-empty {
  color: #6b7280;
  padding: 2rem 0;
  text-align: center;
}

/* ═══════════════════════════════════════════════════════════════
   12) MOBILE — Breadcrumb kompakt + Blog-Liste horizontal
   ═══════════════════════════════════════════════════════════════ */

/* ── Breadcrumb: Override-Output (nbi-bc-nav) ── */
/* Gilt auch auf Desktop: kompaktes NBI-Design */
.nbi-bc-nav .breadcrumb {
  font-size: 11.5px !important;
  color: #9ca3af !important;
  flex-wrap: nowrap !important;
  overflow: hidden !important;
  gap: 0 !important;
  align-items: baseline !important;
}
.nbi-bc-nav .breadcrumb-item + .breadcrumb-item::before {
  content: "/" !important;
  padding: 0 .35rem !important;
  color: #c5ccd6 !important;
}
.nbi-bc-nav .breadcrumb-item a {
  color: #6b7280 !important;
  text-decoration: none !important;
}
.nbi-bc-nav .breadcrumb-item a:hover { color: #1a5fa8 !important; }
.nbi-bc-nav .breadcrumb-item.active {
  color: #374151 !important;
  font-weight: 500 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  max-width: 55vw !important;
}
/* "…" Ellipsis-Item vor dem ersten sichtbaren Item */
.nbi-bc-nav .nbi-bc-more {
  color: #9ca3af !important;
  list-style: none !important;
  padding: 0 !important;
}
.nbi-bc-nav .nbi-bc-more::before { display: none !important; }

/* Fallback: falls override nicht greift, alten Joomla-Output zähmen */
@media (max-width: 768px) {
  .nbi-breadcrumb-wrap {
    margin-bottom: .75rem !important;
    padding-top: .25rem !important;
  }
  /* "Aktuelle Seite:" als p-Element ausblenden */
  .nbi-breadcrumb-wrap p.pathway,
  .nbi-breadcrumb-wrap .breadcrumb-label { display: none !important; }
  .nbi-breadcrumb-wrap .breadcrumb,
  .nbi-breadcrumb-wrap .pathway {
    font-size: 11px !important;
    flex-wrap: nowrap !important;
    overflow: hidden !important;
  }
}

/* ── Blog-Liste Mobile: horizontal statt gestapelt ── */
@media (max-width: 640px) {

  /* Bleibt 2-spaltig: kleines Bild links, Text rechts */
  .nbi-cat-list-card {
    grid-template-columns: 92px 1fr !important;
    gap: 10px !important;
    padding: 12px 0 !important;
  }

  /* Bild: kleines quadratisches Thumbnail */
  .nbi-cat-list-img {
    width: 92px !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 6px !important;
  }

  /* Excerpt auf Mobile weglassen: spart Platz, Titel reicht */
  .nbi-cat-list-excerpt {
    display: none !important;
  }

  /* Titel: 2 Zeilen, dann abschneiden */
  .nbi-cat-list-title {
    font-size: 13.5px !important;
    line-height: 1.35 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    margin-bottom: 5px !important;
  }

  /* Kategorie-Label kleiner */
  .nbi-cat-list-cat {
    font-size: 10px !important;
    margin-bottom: 3px !important;
  }

  /* Meta-Zeile: Date + Readtime kompakt */
  .nbi-cat-list-meta {
    font-size: 10.5px !important;
    flex-wrap: nowrap !important;
    gap: 3px !important;
  }

  /* "Weiterlesen" auf Mobile ausblenden — Klick aufs gesamte Element */
  .nbi-readmore-link {
    display: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   13) SECTIONS — Container immer auf Standard-Breite begrenzen
   Verhindert dass "Vollbreite" im Backend die Section breiter macht
   als die anderen Boxed-Sections auf der Seite.
   ═══════════════════════════════════════════════════════════════ */
.nbi-section .nbi-container {
  max-width: var(--nbi-max-width, 1260px) !important;
  margin-inline: auto !important;
}

/* ═══════════════════════════════════════════════════════════════
   14) SECTION GRID — auf Mobile immer einspaltig
   Sections s1–s4 sind Desktop-Mehrspaltenlayouts; auf Mobile
   übereinander (1 Spalte) anzeigen.
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .nbi-section-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   15) MOBILE HEADER — Logo-Höhe, Suche als Icon, gleichm. Verteilung
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {

  /* Header: exakte Höhe, kein Overflow */
  .nbi-header {
    --nbi-header-height: 72px;
    height: 72px !important;
    overflow: hidden !important;
  }

  /* Logo: passt sich exakt der Header-Höhe an (descendant selector — Logo ist im Container) */
  .nbi-header .nbi-logo {
    height: 72px !important;
    display: flex !important;
    align-items: center !important;
    padding-inline: 0 !important;
    width: auto !important;
  }
  .nbi-header .nbi-logo img {
    height: 52px !important;
    width: auto !important;
    max-width: 160px !important;
    object-fit: contain !important;
  }

  /* Container: Rest der Breite, Padding-Ende klein */
  .nbi-header > .nbi-container {
    padding-inline-end: 10px !important;
  }

  /* Inner: gleichmässige Verteilung mit justify-content */
  .nbi-header__inner {
    justify-content: flex-end !important;
    gap: 4px !important;
    overflow: visible !important;
  }

  /* ── Actions-Bereich: füllt den Platz zwischen Logo und Hamburger ── */
  .nbi-header-actions {
    flex: 1 !important;
    min-width: 0 !important;
    justify-content: flex-end !important;
    gap: 6px !important;
  }

  /* ── Suchleiste auf Mobile: funktionales Input-Feld ── */
  /* Layout.css versteckt .nbi-header-search — hier als kompakte Leiste zeigen */
  .nbi-header-search {
    display: flex !important;
    align-items: center !important;
    flex: 1 !important;
    max-width: 220px !important;
    height: 34px !important;
    padding: 0 .375rem 0 .625rem !important;
    background: #f4f6fb !important;
    border: 1px solid #e4e8ef !important;
    border-radius: 6px !important;
    gap: .25rem !important;
  }
  .nbi-header-search:focus-within {
    border-color: #1a5fa8 !important;
    background: #fff !important;
  }
  /* Emoji-Icon ausblenden */
  .nbi-header-search .nbi-search-icon { display: none !important; }
  /* Input-Feld einblenden */
  .nbi-header-search .nbi-search-input {
    display: block !important;
    flex: 1 !important;
    min-width: 0 !important;
    font-size: .8125rem !important;
    color: #1a1d23 !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    width: auto !important;
  }
  .nbi-header-search .nbi-search-input::placeholder { color: #9ca3af; }
  /* Senden-Button als kleines Pfeil-Icon */
  .nbi-header-search .nbi-search-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    width: 24px !important;
    height: 24px !important;
    background: #0a3d6b !important;
    color: #fff !important;
    border-radius: 4px !important;
    border: none !important;
    font-size: .8125rem !important;
    cursor: pointer !important;
    padding: 0 !important;
  }

  /* ── Newsletter CTA auf Mobile: kompaktes NL-Badge ── */
  .nbi-header-cta {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 30px !important;
    padding: 0 !important;
    border-radius: 6px !important;
    flex-shrink: 0 !important;
    font-size: 0 !important;         /* Volltext ausblenden */
    line-height: 1 !important;
    text-decoration: none !important;
  }
  .nbi-header-cta::after {
    content: "NL" !important;
    font-size: .625rem !important;
    font-weight: 800 !important;
    color: #fff !important;
    letter-spacing: .01em !important;
    line-height: 1 !important;
    font-family: inherit !important;
  }

  /* ── Hamburger ── */
  .nbi-nav-toggle {
    flex-shrink: 0 !important;
    margin-left: 2px !important;
  }
}

/* ── CLS-Schutz: Externe Chart-Embeds und iframes ───────────────────────────────── */
/* Reserviert Platz für Drittanbieter-Widgets (energy-charts.info, iframes) bevor   */
/* deren JS/Inhalt geladen ist. Verhindert Layout-Shifts wenn Inhalte erscheinen.   */
[class*="energy-chart"],
[id*="energy-chart"],
[class*="energycharts"],
[id*="energycharts"] {
  min-height: 350px;
  display: block;
  width: 100%;
}
.nbi-section iframe,
.nbi-main iframe {
  display: block;
  width: 100%;
  min-height: 350px;
}
iframe[src*="energy-charts.info"] {
  aspect-ratio: 16/9;
  width: 100%;
  display: block;
  min-height: 0;
}

/* ── CLS-Schutz: Debug-Panel immer aus dem Dokumentfluss nehmen ─────────────────── */
/* Verhindert dass JS-Injected Debug-Overlays (#nbi-cls-panel o.ä.) den Seiteninhalt  */
/* nach unten schieben und CLS=1.0 verursachen.                                        */
#nbi-cls-panel,
[id$="-cls-panel"],
[id$="-debug-panel"],
[class*="cls-panel"],
[class*="debug-panel"] {
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  z-index: 99999 !important;
  max-height: 40vh !important;
  overflow-y: auto !important;
  max-width: 100vw !important;
}

/* ═══════════════════════════════════════════════════════════════
   16) MOD_TAGSPOPULAR — Tag-Cloud Widget
   ═══════════════════════════════════════════════════════════════ */
.mod-tagspopular ul {
  display: flex; flex-wrap: wrap; gap: .5rem;
  padding: 0; margin: 0; list-style: none;
}
.mod-tagspopular li { margin: 0; }
.mod-tagspopular a {
  display: inline-block; padding: .4rem .75rem;
  border-radius: 999px; background: #f3f4f6; border: 1px solid #e5e7eb;
  font-size: .82rem; font-weight: 500; color: #374151;
  text-decoration: none; transition: all .2s ease;
}
.mod-tagspopular a:hover {
  background: #e8f3ff; border-color: #cce5ff; color: #1d4ed8;
}

/* ═══════════════════════════════════════════════════════════════
   17) ACYMAILING — Newsletter-Anmeldeseite (#acym_wrapper)
   ═══════════════════════════════════════════════════════════════ */
#acym_wrapper {
  max-width: 760px; margin: 3rem auto; padding: 0 1.25rem;
}
.acym_introtext,
.acym_posttext {
  display: block; font-size: 1.05rem; line-height: 1.65;
  color: #374151; margin-bottom: 2.25rem;
}
.acym_posttext {
  margin-top: 2.5rem; padding-top: 1.5rem;
  border-top: 1px solid #e5e7eb; color: #4b5563;
}
#acym_wrapper fieldset { border: none; padding: 0; margin-bottom: 2.25rem; }
#acym_wrapper legend {
  font-size: .75rem; text-transform: uppercase; letter-spacing: .08em;
  color: #6b7280; margin-bottom: 1rem;
}
#acyuserinfo { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
#acyuserinfo label { display: block; }
.acym__users__creation__fields__title {
  display: block; font-size: .8rem; color: #6b7280; margin-bottom: .35rem;
}
#acyuserinfo input[type="text"],
#acyuserinfo input[type="email"] {
  width: 100%; padding: .7rem .75rem; font-size: .95rem;
  border: 1px solid #d1d5db; border-radius: 4px; background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease;
}
#acyuserinfo input:focus {
  outline: none; border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37,99,235,.08);
}
.acy_subscription_list .acym_list {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1rem 1.1rem; border: 1px solid #e5e7eb;
  border-radius: 6px; background: #f9fafb;
}
.acy_subscription_list .list_name { font-size: .95rem; font-weight: 500; color: #111827; }
.acym_radio_group { display: flex; gap: .75rem; }
.acym_radio_group input { display: none; }
.acym_radio_group label {
  padding: .35rem .7rem; font-size: .8rem; border-radius: 999px;
  border: 1px solid #d1d5db; color: #374151; cursor: pointer; transition: all .15s ease;
}
.acym_radio_group input:checked + label { background: #2563eb; color: #fff; border-color: #2563eb; }
.acymodifybutton { margin-top: 2rem; }
.acymodifybutton .btn-primary {
  background: #111827; border: none; padding: .75rem 1.6rem;
  font-size: .85rem; letter-spacing: .08em; text-transform: uppercase;
  border-radius: 999px; transition: background .15s ease, transform .1s ease;
}
.acymodifybutton .btn-primary:hover { background: #2563eb; transform: translateY(-1px); }
.acym__field__error__block { font-size: .75rem; color: #b91c1c; margin-top: .25rem; }
@media (min-width: 640px) { #acyuserinfo { grid-template-columns: 1fr 1fr; } }

/* ═══════════════════════════════════════════════════════════════
   18) ACYMAILING — Modul-Widget (.acym_module)
   ═══════════════════════════════════════════════════════════════ */
.acym_module { margin-top: 2.5rem; margin-bottom: 2rem; }
.acym_module .acym_module_form {
  position: relative !important; display: block !important;
  width: 100% !important; background: #f8fafc !important;
  border: 1px solid #e5e7eb !important; border-radius: 18px !important;
  padding: 28px 28px 24px 110px !important;
  box-shadow: 0 8px 24px rgba(15,23,42,.05) !important;
  box-sizing: border-box !important; overflow: hidden !important;
}
.acym_module .acym_module_form::before {
  content: "" !important; position: absolute !important;
  top: 28px !important; left: 28px !important;
  width: 56px !important; height: 56px !important;
  border-radius: 14px !important; background-color: #eaf2ff !important;
  background-repeat: no-repeat !important; background-position: center !important;
  background-size: 28px 28px !important;
}
.acym_module .acym_introtext {
  margin: 0 0 20px 0 !important; color: #4b5563 !important;
  font-size: 1rem !important; line-height: 1.6 !important;
}
.acym_module .acym_introtext h2 {
  margin: 0 0 8px 0 !important; color: #1f2937 !important;
  font-size: 2rem !important; line-height: 1.15 !important; font-weight: 700 !important;
}
.acym_module table.acym_form,
.acym_module table.acym_form tbody,
.acym_module table.acym_form tr { display: block !important; width: 100% !important; max-width: 100% !important; }
.acym_module table.acym_form { margin: 0 !important; border-collapse: separate !important; }
.acym_module table.acym_form tr {
  display: grid !important;
  grid-template-columns: minmax(180px,1fr) minmax(220px,1.2fr) auto !important;
  gap: 14px 16px !important; align-items: end !important;
}
.acym_module table.acym_form td {
  display: block !important; width: 100% !important; max-width: 100% !important;
  padding: 0 !important; margin: 0 !important; border: 0 !important;
  background: transparent !important; box-sizing: border-box !important;
}
.acym_module .onefield label { display: block !important; margin: 0 !important; }
.acym_module .acym__users__creation__fields__title {
  display: block !important; margin: 0 0 7px 0 !important;
  color: #6b7280 !important; font-size: .82rem !important;
  font-weight: 600 !important; letter-spacing: .01em !important;
}
.acym_module input[type="text"],
.acym_module input[type="email"] {
  display: block !important; width: 100% !important; height: 48px !important;
  padding: 0 14px !important; border: 1px solid #d1d5db !important;
  border-radius: 12px !important; background: #fff !important;
  color: #111827 !important; font-size: .96rem !important;
  box-sizing: border-box !important; transition: border-color .2s, box-shadow .2s !important;
}
.acym_module input[type="text"]:focus,
.acym_module input[type="email"]:focus {
  outline: none !important; border-color: #2563eb !important;
  box-shadow: 0 0 0 3px rgba(37,99,235,.12) !important;
}
.acym_module td.acyterms {
  grid-column: 1 / -1 !important; display: flex !important;
  align-items: flex-start !important; gap: 10px !important;
  color: #4b5563 !important; font-size: .92rem !important; line-height: 1.5 !important;
}
.acym_module td.acyterms input.checkbox { margin: 4px 0 0 0 !important; flex: 0 0 auto !important; }
.acym_module td.acyterms a { color: #2563eb !important; text-decoration: none !important; font-weight: 600 !important; }
.acym_module td.captchakeymodule { display: none !important; }
.acym_module .subbutton,
.acym_module .btn.btn-primary.button.subbutton {
  display: inline-flex !important; align-items: center !important;
  justify-content: center !important; min-width: 150px !important;
  height: 48px !important; padding: 0 22px !important;
  border: 0 !important; border-radius: 12px !important;
  background: #2563eb !important; color: #fff !important;
  font-size: .95rem !important; font-weight: 700 !important;
  transition: background .2s, transform .15s !important;
}
.acym_module .subbutton:hover,
.acym_module .btn.btn-primary.button.subbutton:hover {
  background: #1d4ed8 !important;
  box-shadow: 0 10px 22px rgba(37,99,235,.22) !important;
  transform: translateY(-1px) !important;
}
.acym_module .acym__field__error__block { margin-top: 6px !important; color: #b91c1c !important; font-size: .8rem !important; }
@media (max-width: 991px) {
  .acym_module .acym_module_form { padding: 24px 24px 22px 24px !important; }
  .acym_module .acym_module_form::before {
    position: relative !important; top: 0 !important; left: 0 !important;
    display: block !important; margin-bottom: 16px !important;
  }
  .acym_module table.acym_form tr { grid-template-columns: 1fr !important; }
  .acym_module td.acysubbuttons .subbutton,
  .acym_module td.acysubbuttons .btn.btn-primary.button.subbutton { width: 100% !important; }
}
@media (max-width: 640px) {
  .acym_module .acym_module_form { border-radius: 16px !important; padding: 20px 18px 18px 18px !important; }
  .acym_module .acym_introtext h2 { font-size: 1.55rem !important; }
}

/* ═══════════════════════════════════════════════════════════════
   19) NEWSLETTER SECTION — .nb-newsletter (Artikel / Seiten)
   ═══════════════════════════════════════════════════════════════ */
.nb-newsletter {
  background: linear-gradient(135deg, #f4f8fc 0%, #e9f3ff 100%);
  padding: 70px 20px; margin: 80px 0; border-radius: 12px;
}
.nb-newsletter-inner { max-width: 720px; margin: 0 auto; text-align: center; }
.nb-newsletter h3 { font-size: 28px; font-weight: 600; color: #0b3a67; margin-bottom: 15px; }
.nb-newsletter-lead { font-size: 17px; color: #333; margin-bottom: 35px; line-height: 1.6; }
.nb-newsletter-form { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
.nb-newsletter-form input {
  padding: 14px 18px; font-size: 15px; border: 1px solid #cfd8e3;
  border-radius: 6px; min-width: 260px; transition: all .2s ease;
}
.nb-newsletter-form input:focus {
  outline: none; border-color: #0b3a67;
  box-shadow: 0 0 0 3px rgba(11,58,103,.08);
}
.nb-newsletter-form button {
  padding: 14px 28px; font-size: 15px; font-weight: 600;
  background: #0b3a67; color: #fff; border: none;
  border-radius: 6px; cursor: pointer; transition: all .25s ease;
}
.nb-newsletter-form button:hover { background: #072744; transform: translateY(-2px); }
.nb-newsletter-note { font-size: 13px; color: #666; margin-top: 18px; }

/* ── AUTOREN — Social Links (v2.0) ─────────────────────────────────────── */
.nb-author-card { position: relative; }
.nb-author-card__inner { display: flex; gap: 20px; padding: 24px; text-decoration: none;
  color: inherit; background: #fff; border-radius: 8px;
  border: 1px solid #e4e8ef; transition: box-shadow .2s ease, border-color .2s ease; }
.nb-author-card__inner:hover { box-shadow: 0 4px 16px rgba(10,61,107,.1); border-color: #1a5fa8; }
.nb-author-card__social { display: flex; gap: 10px; padding: 0 24px 20px;
  background: #fff; border-radius: 0 0 8px 8px; border: 1px solid #e4e8ef;
  border-top: none; margin-top: -8px; }
.nb-author-card__social-link { display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 6px; color: #6b7280;
  background: #f4f6fb; transition: color .2s, background .2s; text-decoration: none; }
.nb-author-card__social-link:hover { background: #0a3d6b; color: #fff; }
.nb-author-card__social-link--linkedin:hover { background: #0077b5; }
.nb-author-card__social-link--twitter:hover  { background: #000; }
.nb-author-card__social-link--email:hover    { background: #d94f1e; }

/* ── AUTOREN-BOX (automatisch, Artikelende) ─────────────────────────────── */
.nbi-author-box {
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 2px solid var(--nbi-color-border, #e4e8ef);
}
.nbi-author-box__inner {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    background: var(--nbi-color-primary-light, #e8f0fb);
    border: 1px solid var(--nbi-color-border, #e4e8ef);
    border-radius: var(--nbi-radius, 8px);
    padding: 1.5rem;
}
.nbi-author-box__avatar-link { flex-shrink: 0; text-decoration: none; }
.nbi-author-box__avatar {
    width: 56px; height: 56px;
    border-radius: 50%;
    background: var(--nbi-color-primary, #0a3d6b);
    display: flex; align-items: center; justify-content: center;
    overflow: hidden; flex-shrink: 0;
}
.nbi-author-box__initials {
    font-size: 1.125rem; font-weight: 700;
    color: #fff; letter-spacing: .03em;
    line-height: 1;
}
.nbi-author-box__body { flex: 1; min-width: 0; }
.nbi-author-box__label {
    display: block;
    font-size: .6875rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .08em; color: var(--nbi-color-muted, #6b7280);
    margin-bottom: .375rem;
}
.nbi-author-box__name-row {
    display: flex; align-items: center; flex-wrap: wrap; gap: .375rem .625rem;
    margin-bottom: .5rem;
}
.nbi-author-box__name {
    font-size: 1rem; font-weight: 700;
    color: var(--nbi-color-primary, #0a3d6b);
    text-decoration: none;
}
.nbi-author-box__name:hover { text-decoration: underline; }
.nbi-author-box__role {
    font-size: .8125rem; color: var(--nbi-color-muted, #6b7280);
}
.nbi-author-box__role::before { content: '·'; margin-right: .375rem; opacity: .5; }
.nbi-author-box__social-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 24px; height: 24px; border-radius: 4px;
    color: var(--nbi-color-muted, #6b7280);
    transition: color var(--nbi-transition, 180ms);
    text-decoration: none;
}
.nbi-author-box__social-btn:hover { color: var(--nbi-color-primary, #0a3d6b); }
.nbi-author-box__bio {
    font-size: .9375rem; line-height: 1.6;
    color: var(--nbi-color-text, #1a1d23);
    margin: 0 0 .75rem;
}
.nbi-author-box__all-link {
    display: inline-flex; align-items: center; gap: .25rem;
    font-size: .8125rem; font-weight: 600;
    color: var(--nbi-color-primary-mid, #1a5fa8);
    text-decoration: none;
}
.nbi-author-box__all-link:hover { text-decoration: underline; }

/* Autorname im Artikel-Kicker */
.nbi-art-author-link { color: inherit; text-decoration: none; font-weight: 600; }
.nbi-art-author-link:hover { color: var(--nbi-color-primary-mid, #1a5fa8); text-decoration: underline; }

@media (max-width: 480px) {
    .nbi-author-box__inner { flex-direction: column; gap: 1rem; }
    .nbi-author-box__avatar { width: 44px; height: 44px; }
}

/* ── AUTOREN-ARCHIV-HEADER (Zielseite nach Klick auf Autorname) ─────────── */
.nbi-author-archive-header {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
    padding: 2rem 0 2.25rem;
    border-bottom: 2px solid var(--nbi-color-border, #e4e8ef);
    margin-bottom: 2.5rem;
}
.nbi-author-archive-header__avatar {
    flex-shrink: 0;
    width: 80px; height: 80px;
    border-radius: 50%;
    background: var(--nbi-color-primary, #0a3d6b);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.75rem; font-weight: 700;
    color: #fff; letter-spacing: .02em;
}
.nbi-author-archive-header__body { flex: 1; min-width: 0; }
.nbi-author-archive-header__label {
    font-size: .6875rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .1em; color: var(--nbi-color-muted, #6b7280);
    margin: 0 0 .25rem;
}
.nbi-author-archive-header__name {
    font-size: 1.75rem; font-weight: 800; line-height: 1.15;
    color: var(--nbi-color-primary, #0a3d6b);
    margin: 0 0 .25rem;
}
.nbi-author-archive-header__role {
    font-size: .9375rem; color: var(--nbi-color-muted, #6b7280);
    margin: 0 0 .75rem;
}
.nbi-author-archive-header__bio {
    font-size: 1rem; line-height: 1.65;
    color: var(--nbi-color-text, #1a1d23);
    max-width: 60ch;
    margin: 0 0 .75rem;
}
.nbi-author-archive-header__count {
    font-size: .8125rem; color: var(--nbi-color-muted, #6b7280);
    margin: 0;
}
@media (max-width: 480px) {
    .nbi-author-archive-header { flex-direction: column; gap: 1rem; }
    .nbi-author-archive-header__avatar { width: 60px; height: 60px; font-size: 1.375rem; }
    .nbi-author-archive-header__name { font-size: 1.375rem; }
}
