body,form,figure{margin:0;padding:0}img{border:0}header,footer,nav,section,aside,article,figure,figcaption{display:block}body{font-size:100.01%}select,input,textarea{font-size:99%}#container,.inside{position:relative}#main,#left,#right{float:left;position:relative}#main{width:100%}#left{margin-left:-100%}#right{margin-right:-100%}#footer{clear:both}#main .inside{min-height:1px}.ce_gallery>ul,.content-gallery>ul{margin:0;padding:0;overflow:hidden;list-style:none}.ce_gallery>ul li,.content-gallery>ul li{float:left}.ce_gallery>ul li.col_first,.content-gallery>ul li.col_first{clear:left}.float_left,.media--left>figure{float:left}.float_right,.media--right>figure{float:right}.block{overflow:hidden}.media{display:flow-root}.clear,#clear{height:.1px;font-size:.1px;line-height:.1px;clear:both}.invisible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.custom{display:block}#container:after,.custom:after{content:"";display:table;clear:both}
@media (max-width:767px){#wrapper{margin:0;width:auto}#container{padding-left:0;padding-right:0}#main,#left,#right{float:none;width:auto}#left{right:0;margin-left:0}#right{margin-right:0}}img{max-width:100%;height:auto}.audio_container audio{max-width:100%}.video_container video{max-width:100%;height:auto}.aspect,.responsive{position:relative;height:0}.aspect iframe,.responsive iframe{position:absolute;top:0;left:0;width:100%;height:100%}.aspect--16\:9,.responsive.ratio-169{padding-bottom:56.25%}.aspect--16\:10,.responsive.ratio-1610{padding-bottom:62.5%}.aspect--21\:9,.responsive.ratio-219{padding-bottom:42.8571%}.aspect--4\:3,.responsive.ratio-43{padding-bottom:75%}.aspect--3\:2,.responsive.ratio-32{padding-bottom:66.6666%}.aspect--9\:16,.responsive.ratio-916{padding-bottom:177.7777%}.aspect--1\:1,.responsive.ratio-11{padding-bottom:100%}
/* Schrift lokal (DSGVO): keine Verbindung zu Google.
   InterVariable.woff2 und InterVariable-Italic.woff2 von https://rsms.me/inter/
   nach files/Burow IT/Theme/fonts/ hochladen, Ordner oeffentlich schalten. */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/files/Burow IT/Theme/fonts/InterVariable.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("/files/Burow IT/Theme/fonts/InterVariable-Italic.woff2") format("woff2");
}

/* ==========================================================================
   Burow IT — Website-Stylesheet
   Ein einzelnes Stylesheet, kein Build-Schritt, keine Abhängigkeiten.
   Es wirkt direkt auf Contaos Standardausgabe: body, die Layout-Bereiche
   (#header, #main, #footer, .inside) und die Inhaltsklassen (.ce_*, .mod_*,
   .widget, .pagination). Einbinden genuegt - es ist keine CSS-Klasse an der
   Seite oder am Artikel noetig.

   Die zusaetzlichen bi-Klassen gehoeren zu den fertigen Abschnitten aus
   inhalt/ (Hero, Zahlenband, Paketkarten). Wer die nicht nutzt, kann sie
   ignorieren - sie greifen nur, wo sie im HTML stehen.
   ========================================================================== */

/* --- Tokens -------------------------------------------------------------- */
:root {
  --bi-bg: #161826;
  --bi-surface: #232532;
  --bi-text: #e9e9ed;
  --bi-line: #2b2e3d;
  --bi-line-strong: #33364a;

  --bi-accent: #4a7fd6;
  --bi-accent-100: #dce8f9;
  --bi-accent-300: #9dbcec;
  --bi-accent-400: #6a99e0;
  --bi-accent-800: #1b3a6b;

  --bi-neutral-100: #f3f5fe;
  --bi-neutral-200: #e4e7f5;
  --bi-neutral-300: #cfd3e5;
  --bi-neutral-400: #b2b6ca;
  --bi-neutral-500: #9397ab;
  --bi-neutral-800: #3f424d;

  --bi-section: #14295c;
  --bi-section-glow: #1e3d85;
  --bi-section-text: #ccd8f0;

  --bi-font: "Inter", system-ui, sans-serif;
  --bi-radius: 8px;
  --bi-radius-sm: 4px;
  --bi-shell: 1180px;

  --bi-shadow-sm: 0 0 0 1px #3f424d;
  --bi-shadow-md: 0 0 0 1px #595d6c, 0 6px 18px rgba(0, 0, 0, 0.55);
}

/* --- Grundlagen ---------------------------------------------------------- */
html,
body,
body *,
body *::before,
body *::after { box-sizing: border-box; }

html {
  background: var(--bi-bg);
  -webkit-text-size-adjust: 100%;
}
body {
  background: var(--bi-bg);
  color: var(--bi-text);
  font-family: var(--bi-font);
  font-size: 16px;
  line-height: 1.65;
  margin: 0;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
h1,
h2,
h3 { font-family: var(--bi-font); font-weight: 500; margin: 0; }
p { margin: 0; }
a { color: var(--bi-accent); text-decoration: none; }
a:hover { color: var(--bi-accent-300); }
:focus-visible { outline: 2px solid var(--bi-accent); outline-offset: 2px; }
::selection { background: rgba(74, 127, 214, 0.3); }

.bi-shell {
  max-width: var(--bi-shell);
  margin: 0 auto;
  padding: 0 32px;
  width: 100%;
}

/* --- Buttons ------------------------------------------------------------- */
.bi-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: var(--bi-font);
  font-weight: 500;
  font-size: 14px;
  line-height: 1.2;
  color: var(--bi-text);
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--bi-radius);
  padding: 5.6px 10px;
  cursor: pointer;
}
.bi-btn--primary { color: var(--bi-accent); border-color: var(--bi-accent); }
.bi-btn--primary:hover { background: rgba(74, 127, 214, 0.12); color: var(--bi-accent); }
.bi-btn--primary:active { background: rgba(74, 127, 214, 0.22); }
.bi-btn--secondary { border-color: rgba(233, 233, 237, 0.16); }
.bi-btn--secondary:hover { background: rgba(233, 233, 237, 0.07); color: var(--bi-text); }
.bi-btn--secondary:active { background: rgba(233, 233, 237, 0.14); }
.bi-btn--ghost { color: var(--bi-accent); }
.bi-btn--ghost:hover { background: rgba(74, 127, 214, 0.1); color: var(--bi-accent); }
.bi-btn--lg { font-size: 15px; padding: 12px 22px; }
.bi-btn--block { width: 100%; }

/* --- Karten, Tags, Linien ------------------------------------------------ */
.bi-card { background: var(--bi-surface); border-radius: var(--bi-radius); }
.bi-card--sm { box-shadow: var(--bi-shadow-sm); }
.bi-card--md { box-shadow: var(--bi-shadow-md); }

.bi-tag {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  letter-spacing: 0.02em;
  padding: 3px 10px;
  border-radius: 6px;
}
.bi-tag--accent { background: var(--bi-accent-800); color: var(--bi-accent-100); }
.bi-tag--neutral { background: var(--bi-neutral-800); color: var(--bi-neutral-100); }
.bi-tag--outline { border: 1px solid var(--bi-accent); color: var(--bi-accent); }
.bi-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }

/* Nocturne-Signatur: freistehende Linien laufen an den Enden aus. */
.bi-rule {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--bi-line-strong) 48px,
    var(--bi-line-strong) calc(100% - 48px), transparent);
}
.bi-rule--solid { height: 1px; background: var(--bi-line-strong); }

.bi-lighten { mix-blend-mode: lighten; background-color: transparent; }

/* nur fuer Screenreader (entspricht Contaos .invisible) */
.bi-sr,
.invisible {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* --- Abschnittsköpfe ----------------------------------------------------- */
.bi-kicker { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; }
.bi-kicker::before {
  content: "";
  display: block;
  width: 34px;
  height: 1px;
  background: var(--bi-accent);
  flex: none;
}
.bi-kicker span {
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bi-accent-300);
}
.bi-h2 {
  font-size: clamp(30px, 3.4vw, 46px);
  letter-spacing: -0.02em;
  line-height: 1.1;
  max-width: 24ch;
}
.bi-h2--big { font-size: clamp(34px, 4vw, 54px); letter-spacing: -0.025em; line-height: 1.05; }
.bi-lead {
  margin-top: 20px;
  font-size: 17px;
  line-height: 1.65;
  color: var(--bi-neutral-400);
  max-width: 58ch;
  text-wrap: pretty;
}
.bi-section { padding-top: 110px; }
.bi-section--services { padding: 120px 32px 40px; }

/* --- Kopfzeile ----------------------------------------------------------- */
.bi-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(22, 24, 38, 0.82);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--bi-line);
}
.bi-header__inner {
  max-width: var(--bi-shell);
  margin: 0 auto;
  padding: 14px 32px;
  display: flex;
  align-items: center;
  gap: 32px;
}
.bi-brand { display: flex; align-items: center; gap: 10px; flex: none; }
.bi-brand img { width: 26px; height: 26px; }
.bi-brand__name { font-weight: 500; font-size: 17px; letter-spacing: 0.01em; color: var(--bi-text); }
.bi-brand__tag {
  font-size: 11px;
  color: var(--bi-neutral-500);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding-top: 3px;
}
.bi-nav {
  display: flex;
  gap: 26px;
  margin-left: auto;
  font-size: 14px;
  white-space: nowrap;
}
.bi-nav a { color: var(--bi-neutral-300); }
.bi-nav a:hover { color: var(--bi-text); }

/* --- Hero ---------------------------------------------------------------- */
.bi-hero {
  position: relative;
  min-height: 86vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.bi-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.5;
}
.bi-hero__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, #161826 12%, rgba(22, 24, 38, 0.86) 46%, rgba(22, 24, 38, 0.35) 100%);
}
.bi-hero__glow {
  position: absolute;
  inset: 0;
  background: radial-gradient(60% 70% at 8% 90%, rgba(74, 127, 214, 0.22), transparent 70%);
}
.bi-hero__inner {
  position: relative;
  max-width: var(--bi-shell);
  margin: 0 auto;
  padding: 140px 32px 84px;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 56px;
  align-items: center;
}
.bi-hero__title {
  font-size: clamp(40px, 5.6vw, 76px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  max-width: 15ch;
  text-wrap: balance;
}
.bi-hero__lead {
  margin-top: 28px;
  font-size: 19px;
  line-height: 1.6;
  color: var(--bi-neutral-300);
  max-width: 52ch;
  text-wrap: pretty;
}
.bi-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 40px; }

/* --- Monitoring-Panel ---------------------------------------------------- */
.bi-mon {
  padding: 20px;
  border-radius: var(--bi-radius);
  background: rgba(35, 37, 50, 0.86);
  box-shadow: var(--bi-shadow-md);
  backdrop-filter: blur(6px);
  animation: bi-float 9s ease-in-out infinite;
}
/* Einzeln eingesetzt (Inhaltselement HTML), nicht im Hero. */
.bi-mon--solo { max-width: 420px; }
/* Als eigenes Element im Artikel fuellt das Panel seine Rasterspalte. */
.mod_article > .bi-mon { max-width: none; }

.bi-mon__head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--bi-line-strong);
}
.bi-mon__dot { position: relative; width: 8px; height: 8px; flex: none; }
.bi-mon__dot i,
.bi-mon__dot b { position: absolute; inset: 0; border-radius: 50%; }
.bi-mon__dot i { background: var(--bi-accent); animation: bi-pulse 2.4s ease-in-out infinite; }
.bi-mon__dot b { border: 1px solid var(--bi-accent); animation: bi-ring 2.4s ease-out infinite; }
.bi-mon__label {
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bi-neutral-300);
}
.bi-mon__meta { margin-left: auto; font-size: 12px; color: var(--bi-neutral-500); }
.bi-mon__chart {
  position: relative;
  margin-top: 16px;
  overflow: hidden;
  border-radius: var(--bi-radius-sm);
}
.bi-mon__chart svg { display: block; width: 100%; height: 78px; }
.bi-mon__chart path {
  fill: none;
  stroke: var(--bi-accent);
  stroke-width: 1.6;
  stroke-linejoin: round;
  stroke-dasharray: 620;
  animation: bi-draw 7s ease-in-out infinite;
}
.bi-mon__chart line { stroke: var(--bi-line); stroke-width: 1; }
.bi-mon__scan {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 60px;
  background: linear-gradient(90deg, transparent, rgba(74, 127, 214, 0.16), transparent);
  animation: bi-scan 7s linear infinite;
}
.bi-mon__rows { display: flex; flex-direction: column; gap: 12px; margin-top: 18px; }
.bi-mon__row {
  display: grid;
  grid-template-columns: 96px 1fr 40px;
  gap: 10px;
  align-items: center;
  font-size: 12px;
  color: var(--bi-neutral-300);
}
.bi-mon__bar { height: 4px; border-radius: 2px; background: var(--bi-line); overflow: hidden; }
.bi-mon__bar i { display: block; height: 100%; background: var(--bi-accent-400); }
.bi-mon__row:nth-child(1) .bi-mon__bar i { animation: bi-load-b 6.5s ease-in-out infinite; }
.bi-mon__row:nth-child(2) .bi-mon__bar i { animation: bi-load-a 8s ease-in-out infinite; }
.bi-mon__row:nth-child(3) .bi-mon__bar i { animation: bi-load-c 9.5s ease-in-out infinite; }
.bi-mon__unit { text-align: right; color: var(--bi-neutral-500); }
.bi-mon__log {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--bi-line-strong);
  display: flex;
  flex-direction: column;
  gap: 9px;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}
.bi-mon__line {
  display: flex;
  gap: 10px;
  color: var(--bi-neutral-300);
  animation: bi-log 12s linear infinite;
}
.bi-mon__line:nth-child(2) { animation-delay: 4s; }
.bi-mon__line:nth-child(3) { animation-delay: 8s; }
.bi-mon__time { color: var(--bi-neutral-500); }
.bi-mon__alert {
  display: flex;
  gap: 10px;
  align-items: center;
  color: var(--bi-accent-300);
  animation: bi-alert 12s ease-in-out infinite;
}
.bi-mon__alert::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--bi-accent);
  flex: none;
}

@keyframes bi-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.35; transform: scale(0.82); } }
@keyframes bi-ring { 0% { opacity: 0.5; transform: scale(0.6); } 70%, 100% { opacity: 0; transform: scale(2.4); } }
@keyframes bi-draw { 0% { stroke-dashoffset: 620; } 55%, 100% { stroke-dashoffset: 0; } }
@keyframes bi-scan { 0% { transform: translateX(-8%); } 100% { transform: translateX(108%); } }
@keyframes bi-load-a { 0%, 100% { width: 34%; } 30% { width: 61%; } 65% { width: 44%; } }
@keyframes bi-load-b { 0%, 100% { width: 72%; } 40% { width: 52%; } 80% { width: 83%; } }
@keyframes bi-load-c { 0%, 100% { width: 21%; } 50% { width: 39%; } 85% { width: 27%; } }
@keyframes bi-log { 0% { opacity: 0; transform: translateY(6px); } 8%, 30% { opacity: 1; transform: none; } 42%, 100% { opacity: 0.18; transform: none; } }
@keyframes bi-alert { 0%, 44% { opacity: 0; transform: translateY(4px); } 52%, 86% { opacity: 1; transform: none; } 96%, 100% { opacity: 0; } }
@keyframes bi-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }

/* --- Zahlenband ---------------------------------------------------------- */
.bi-stats { background: var(--bi-section); position: relative; overflow: hidden; }
.bi-stats::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(70% 120% at 15% 0%, var(--bi-section-glow), transparent 70%);
}
.bi-stats__grid {
  position: relative;
  max-width: var(--bi-shell);
  margin: 0 auto;
  padding: 56px 32px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.bi-stat__num { font-weight: 500; font-size: 44px; line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.bi-stat__txt { margin-top: 10px; font-size: 14px; color: var(--bi-section-text); }

/* --- Pakete -------------------------------------------------------------- */
.bi-plans {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 48px;
}
.bi-plan { padding: 28px; display: flex; flex-direction: column; gap: 18px; }
.bi-plan__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.bi-plan__head h3 { font-size: 22px; }
.bi-plan__hint {
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bi-neutral-500);
}
.bi-plan__desc { font-size: 15px; line-height: 1.65; color: var(--bi-neutral-400); }
.bi-plan__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 15px;
  color: var(--bi-neutral-200);
}
.bi-plan__list li { display: flex; gap: 10px; }
.bi-plan__list li::before { content: "—"; color: var(--bi-accent); flex: none; }
.bi-plan .bi-btn { margin-top: auto; }

/* --- Leistungen ---------------------------------------------------------- */
.bi-rows {
  max-width: var(--bi-shell);
  margin: 0 auto;
  padding: 0 32px 40px;
  display: flex;
  flex-direction: column;
}
.bi-row {
  display: grid;
  grid-template-columns: 86px 1.05fr 0.95fr;
  gap: 40px;
  align-items: center;
  padding: 44px 0;
}
.bi-row__num { font-weight: 500; font-size: 15px; color: var(--bi-accent); letter-spacing: 0.1em; }
.bi-row__title { font-size: 27px; letter-spacing: -0.015em; }
.bi-row__text {
  margin-top: 14px;
  font-size: 16px;
  line-height: 1.7;
  color: var(--bi-neutral-400);
  text-wrap: pretty;
}
.bi-row__quote {
  margin-top: 18px;
  padding-left: 16px;
  border-left: 2px solid var(--bi-accent);
  font-size: 16px;
  line-height: 1.6;
  color: var(--bi-text);
  max-width: 46ch;
  text-wrap: pretty;
}
.bi-row__media {
  border-radius: var(--bi-radius);
  overflow: hidden;
  aspect-ratio: 16 / 10;
}
.bi-row__media img { width: 100%; height: 100%; object-fit: cover; }

/* --- Vergleichstabelle --------------------------------------------------- */
.bi-table { width: 100%; border-collapse: collapse; font-size: 14px; margin-top: 44px; }
.bi-table th {
  text-align: left;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(233, 233, 237, 0.6);
  padding: 5.6px;
}
.bi-table td { padding: 5.6px; }
.bi-table th:first-child { width: 52%; }
.bi-table th.bi-is-us { color: var(--bi-text); }
.bi-table th.bi-is-them,
.bi-table td.bi-is-them { color: var(--bi-neutral-500); }
.bi-table thead tr {
  background: linear-gradient(90deg, transparent, rgba(233, 233, 237, 0.16) 48px,
    rgba(233, 233, 237, 0.16) calc(100% - 48px), transparent) no-repeat bottom / 100% 1px;
}
.bi-table tbody tr {
  background: linear-gradient(90deg, transparent, rgba(233, 233, 237, 0.08) 48px,
    rgba(233, 233, 237, 0.08) calc(100% - 48px), transparent) no-repeat bottom / 100% 1px;
}

/* --- Notdienst ----------------------------------------------------------- */
.bi-emergency {
  padding: 0;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  align-items: stretch;
}
.bi-emergency__body {
  padding: 48px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  justify-content: center;
}
.bi-emergency__body h2 {
  font-size: clamp(26px, 2.6vw, 36px);
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.bi-emergency__body p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--bi-neutral-400);
  max-width: 46ch;
  text-wrap: pretty;
}
.bi-emergency__body .bi-tag { align-self: flex-start; }
.bi-facts { display: flex; flex-wrap: wrap; gap: 28px; margin-top: 10px; }
.bi-fact__label {
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bi-neutral-500);
}
.bi-fact__value { font-weight: 500; font-size: 22px; letter-spacing: -0.01em; }
.bi-emergency__media { min-height: 340px; }
.bi-emergency__media img { width: 100%; height: 100%; object-fit: cover; }

/* --- Kontakt ------------------------------------------------------------- */
.bi-contact {
  position: relative;
  margin-top: 110px;
  overflow: hidden;
  border-top: 1px solid var(--bi-line);
}
.bi-contact__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.28;
}
.bi-contact__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #161826 20%, rgba(22, 24, 38, 0.9) 55%, rgba(22, 24, 38, 0.6));
}
.bi-contact__inner {
  position: relative;
  max-width: var(--bi-shell);
  margin: 0 auto;
  padding: 96px 32px;
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 64px;
  align-items: start;
}
.bi-contact__inner .bi-h2 { max-width: 20ch; }
.bi-contact__inner .bi-lead { color: var(--bi-neutral-300); max-width: 46ch; }
.bi-contact__meta { display: flex; flex-wrap: wrap; gap: 40px; margin-top: 44px; }
.bi-contact__meta .bi-fact__label { margin-bottom: 8px; }
.bi-contact__meta p { font-size: 15px; line-height: 1.7; color: var(--bi-neutral-200); }
.bi-contact__box { padding: 28px; display: flex; flex-direction: column; gap: 22px; }
.bi-contact__ways { display: flex; flex-direction: column; gap: 14px; font-size: 15px; line-height: 1.6; }
.bi-contact__ways .bi-fact__label { margin-bottom: 4px; }
.bi-contact__ways span { color: var(--bi-neutral-200); }
.bi-contact__note { font-size: 13px; line-height: 1.6; color: var(--bi-neutral-500); }

/* --- Fusszeile ----------------------------------------------------------- */
.bi-footer { border-top: 1px solid var(--bi-line); }
.bi-footer__inner {
  max-width: var(--bi-shell);
  margin: 0 auto;
  padding: 40px 32px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
}
.bi-footer__brand { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--bi-neutral-400); }
.bi-footer__brand img { width: 22px; height: 22px; }
.bi-footer__links { display: flex; gap: 22px; margin-left: auto; font-size: 14px; }
.bi-footer__links a { color: var(--bi-neutral-400); }
.bi-footer__links a:hover { color: var(--bi-text); }

/* --- Umbrueche ----------------------------------------------------------- */
@media (max-width: 1040px) {
  .bi-brand__tag { display: none; }
  .bi-stats__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .bi-nav { display: none; }
  .bi-hero__inner { grid-template-columns: 1fr; padding-top: 120px; }
  .bi-mon { display: none; }
  .bi-plans { grid-template-columns: 1fr; }
  .bi-row { grid-template-columns: 40px 1fr; }
  .bi-row__media { grid-column: 2; }
  .bi-emergency,
  .bi-contact__inner { grid-template-columns: 1fr; }
  .bi-emergency__body { padding: 32px; }
  .bi-emergency__media { min-height: 240px; }
}
@media (max-width: 640px) {
  .bi-shell,
  .bi-header__inner,
  .bi-hero__inner,
  .bi-stats__grid,
  .bi-rows,
  .bi-contact__inner,
  .bi-footer__inner { padding-left: 20px; padding-right: 20px; }
  .bi-stats__grid { grid-template-columns: 1fr; }
  .bi-row { grid-template-columns: 1fr; gap: 20px; }
  .bi-row__media { grid-column: 1; }
  .bi-table { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .bi-mon,
  .bi-mon *,
  .bi-mon *::before { animation: none !important; }
}

/* ==========================================================================
   Contao-Standardklassen
   Gestaltet Contaos normale Ausgabe: Inhaltselemente (.ce_*), Frontend-Module
   (.mod_*), Navigation, Formulare, Tabellen, Bilder, Akkordeon, Downloads,
   Blaetterfunktion. Wer nur normale Inhaltselemente im Backend anlegt, erhaelt
   damit bereits das komplette Design - ohne HTML-Elemente, ohne bi-Klassen.

   Wichtig: Jede Regel hier ist auf eine Contao-Klasse gescopt (.ce_*, .mod_*,
   .widget, .pagination). Nackte Selektoren wie "p" wuerden sonst in
   die Abschnitte aus inhalt/ hineinwirken und deren Feinabstimmung ueber-
   schreiben. Beide Ebenen muessen nebeneinander funktionieren.
   ========================================================================== */

/* --- Grundlage: Seite, Wrapper, Bereiche -------------------------------- */
/* Die Wrapper-Regeln gelten nur, wenn im Bereich KEIN randloser Abschnitt
   aus inhalt/ liegt - sonst muesste dieser Abschnitt aus dem Container
   ausbrechen. Siehe Block "Contao-Integration" am Ende. */
#header:not(:has(.bi-header)),
#footer:not(:has(.bi-footer)) { background: rgba(35, 37, 50, 0.4); }
#header:not(:has(.bi-header)) { border-bottom: 1px solid var(--bi-line); }
#footer:not(:has(.bi-footer)) { border-top: 1px solid var(--bi-line); margin-top: 96px; }

#header:not(:has(.bi-header)) .inside,
#footer:not(:has(.bi-footer)) .inside {
  max-width: var(--bi-shell);
  margin: 0 auto;
  padding: 20px 32px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
}

#main:not(:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows)) .inside {
  max-width: none;
  margin: 0;
  padding: 72px 0;
}
#left .inside,
#right .inside {
  max-width: var(--bi-shell);
  margin: 0 auto;
  padding: 72px 32px;
}
/* Module neben dem Artikel (Breadcrumb, Suche) behalten die Innenbreite. */
#main .inside > *:not(.mod_article) {
  max-width: var(--bi-shell);
  margin-left: auto;
  margin-right: auto;
  padding-left: 32px;
  padding-right: 32px;
}

/* Der Artikel ist ein Raster: eine Inhaltsspur in Innenbreite, aussen zwei
   freie Spuren fuer randlose Abschnitte. Die Inhaltsspur ist in drei
   Kartenspalten geteilt, damit Paketkarten ohne Wrapper in einer Reihe
   stehen und gleich hoch werden. Kein vw, also auch kein Scrollbalken-
   Versatz. */
.mod_article {
  display: grid;
  column-gap: 20px;
  /* Der senkrechte Rhythmus liegt am Raster, nicht an den Elementen: ein
     margin-top je Element haengt vom Vorgaenger ab und verschiebt Spalten
     einer gemeinsamen Zeile gegeneinander. */
  row-gap: 40px;
  grid-template-columns:
    [full-start] minmax(12px, 1fr)
    [content-start] repeat(6, minmax(0, 169.33px)) [content-end]
    minmax(12px, 1fr) [full-end];
}
.mod_article > * { grid-column: content; min-width: 0; }

/* --- Breitenklassen ------------------------------------------------------
   Im Feld "CSS-ID/Klasse" des Elements eintragen. Mehrere Elemente
   nebeneinander ergeben sich von allein: passt das naechste Element in die
   restliche Zeile, rueckt es daneben. Gleiche Hoehe kommt vom Raster.

     w-1-2   Haelfte          w-1-3   Drittel
     w-2-3   zwei Drittel     w-1-6   Sechstel
     w-5-6   fuenf Sechstel   w-full  randlos ueber die ganze Breite

   Senkrechte Ausrichtung: v-center oder v-end am Element.
   ----------------------------------------------------------------------- */
.mod_article > .w-1-6 { grid-column: content-start / span 1; }
.mod_article > .w-1-3 { grid-column: content-start / span 2; }
.mod_article > .w-1-2 { grid-column: content-start / span 3; }
.mod_article > .w-2-3 { grid-column: content-start / span 4; }
.mod_article > .w-5-6 { grid-column: content-start / span 5; }
.mod_article > .w-full { grid-column: full; }
/* Folgt ein weiteres Element mit Breitenklasse, fliesst es in derselben
   Zeile weiter. Ohne diese Regel wuerde es wieder an der Inhaltskante
   beginnen und eine neue Zeile eroeffnen. */
.mod_article > :is(.w-1-6, .w-1-3, .w-1-2, .w-2-3, .w-5-6, .plan, .bi-mon) + :is(.w-1-6, .w-1-3, .w-1-2, .w-2-3, .w-5-6, .plan, .bi-mon) { grid-column-start: auto; }
.mod_article > .v-center { align-self: center; }
.mod_article > .v-end { align-self: end; }
/* Ebene 2 (fertige Abschnitte aus inhalt/) bringt ihr Layout selbst mit. */
.mod_article:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows) { display: block; }

/* --- Kopfzeile: Marke links, Navigation rechts -------------------------- */
#header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(22, 24, 38, 0.86);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--bi-line);
}
#header:not(:has(.bi-header)) .inside {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 32px;
  padding: 14px 32px;
}
/* Das Markenmodul steht zuerst, die Navigation wird nach rechts geschoben. */
#header .mod_navigation,
#header .mod_customnav,
#header .mod_changelanguage { margin-left: auto; }
#header .mod_navigation + .mod_changelanguage,
#header .mod_navigation + .mod_customnav { margin-left: 0; }

/* Marke (HTML-Modul im Kopfbereich) */
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: none;
}
/* Sobald eine helle Logofassung vorliegt, wird sie hier eingesetzt:
   <img src="files/burow/img/logo-hell.svg" class="brand__logo" alt="Burow IT">
   Die dunkle Fassung (#002a7f) erreicht auf dem Grund #161826 nur 1,4:1
   Kontrast und ist deshalb vorerst nicht eingebaut. */
.brand__logo { height: 26px; width: auto; display: block; flex: none; }
.brand__name {
  font-weight: 500;
  font-size: 17px;
  letter-spacing: 0.01em;
  color: var(--bi-text);
}
.brand__tag {
  font-size: 11px;
  color: var(--bi-neutral-500);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding-top: 3px;
}
a.brand:hover .brand__name { color: var(--bi-accent-300); }

@media (max-width: 720px) {
  #header:not(:has(.bi-header)) .inside { gap: 16px; padding: 12px 20px; }
  .brand__tag { display: none; }
  #header .mod_navigation ul { gap: 18px; }
  #header .mod_navigation a,
  #header .mod_navigation strong { font-size: 14px; }
}

/* Rhythmus zwischen Inhaltselementen */
/* Ueberschriften: mehr Luft darueber, weniger darunter. Sie sind immer
   volle Inhaltsbreite und teilen deshalb nie eine Zeile - hier sind
   Raender unbedenklich. */
.mod_article > .ce_headline { margin-top: 48px; margin-bottom: -16px; }
.mod_article > .ce_headline:first-child,
.mod_article > .ce_headline.first { margin-top: 0; }

/* --- Ueberschriften ------------------------------------------------------ */
.ce_headline,
.ce_text h1,
.ce_list h1,
.ce_accordion .accordion h1,
.ce_downloads h1,
.ce_table h1,
.ce_form h1,
.mod_search h1,
.layout_short h1,
.layout_full h1,
.ce_text h2,
.ce_list h2,
.ce_accordion .accordion h2,
.ce_downloads h2,
.ce_table h2,
.ce_form h2,
.mod_search h2,
.layout_short h2,
.layout_full h2,
.ce_text h3,
.ce_list h3,
.ce_accordion .accordion h3,
.ce_downloads h3,
.ce_table h3,
.ce_form h3,
.mod_search h3,
.layout_short h3,
.layout_full h3,
.ce_text h4,
.ce_list h4,
.ce_accordion .accordion h4,
.ce_downloads h4,
.ce_table h4,
.ce_form h4,
.mod_search h4,
.layout_short h4,
.layout_full h4,
.ce_text h5,
.ce_list h5,
.ce_accordion .accordion h5,
.ce_downloads h5,
.ce_table h5,
.ce_form h5,
.mod_search h5,
.layout_short h5,
.layout_full h5,
.ce_text h6,
.ce_list h6,
.ce_accordion .accordion h6,
.ce_downloads h6,
.ce_table h6,
.ce_form h6,
.mod_search h6,
.layout_short h6,
.layout_full h6 {
  font-family: var(--bi-font);
  font-weight: 500;
  color: var(--bi-text);
  letter-spacing: -0.02em;
  line-height: 1.12;
  margin: 0 0 16px;
  text-wrap: balance;
}

h1.ce_headline,
.ce_text h1 { font-size: clamp(38px, 5vw, 64px); line-height: 1.04; letter-spacing: -0.025em; max-width: 18ch; }
h2.ce_headline,
.ce_text h2 { font-size: clamp(28px, 3.4vw, 44px); max-width: 24ch; }
h3.ce_headline,
.ce_text h3 { font-size: 26px; letter-spacing: -0.015em; }
h4.ce_headline,
.ce_text h4 { font-size: 20px; letter-spacing: -0.01em; }
h5.ce_headline,
.ce_text h5 { font-size: 17px; }
h6.ce_headline,
.ce_text h6 {
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bi-accent-300);
  font-weight: 400;
}

/* Nocturne-Signatur: kurzer Akzentstrich vor dem Ueberschriften-Element. */
.ce_headline::before {
  content: "";
  display: block;
  width: 34px;
  height: 1px;
  background: var(--bi-accent);
  margin-bottom: 20px;
}

/* --- Fliesstext ---------------------------------------------------------- */
.ce_text p,
.ce_list p,
.ce_accordion .accordion p,
.ce_downloads p,
.ce_table p,
.ce_form p,
.mod_search p,
.layout_short p,
.layout_full p {
  margin: 0 0 16px;
  max-width: 68ch;
  color: var(--bi-neutral-300);
  line-height: 1.65;
  text-wrap: pretty;
}
.ce_text p:last-child,
.ce_list p:last-child,
.ce_accordion .accordion p:last-child,
.ce_downloads p:last-child,
.ce_table p:last-child,
.ce_form p:last-child,
.mod_search p:last-child,
.layout_short p:last-child,
.layout_full p:last-child { margin-bottom: 0; }
.ce_text > p:first-of-type { font-size: 17px; color: var(--bi-neutral-200); }

.ce_text strong,
.ce_list strong,
.ce_accordion .accordion strong,
.ce_downloads strong,
.ce_table strong,
.ce_form strong,
.mod_search strong,
.layout_short strong,
.layout_full strong,
.ce_text b,
.ce_list b,
.ce_accordion .accordion b,
.ce_downloads b,
.ce_table b,
.ce_form b,
.mod_search b,
.layout_short b,
.layout_full b { font-weight: 500; color: var(--bi-text); }
.ce_text small,
.ce_list small,
.ce_accordion .accordion small,
.ce_downloads small,
.ce_table small,
.ce_form small,
.mod_search small,
.layout_short small,
.layout_full small { font-size: 13px; color: var(--bi-neutral-500); }
.ce_text code,
.ce_list code,
.ce_accordion .accordion code,
.ce_downloads code,
.ce_table code,
.ce_form code,
.mod_search code,
.layout_short code,
.layout_full code {
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-size: 0.9em;
  background: var(--bi-surface);
  border-radius: var(--bi-radius-sm);
  padding: 2px 6px;
}
.ce_hr hr,
.ce_text hr {
  border: 0;
  height: 1px;
  margin: 48px 0;
  background: linear-gradient(90deg, transparent, var(--bi-line-strong) 48px,
    var(--bi-line-strong) calc(100% - 48px), transparent);
}
.ce_text blockquote,
.ce_quote blockquote {
  margin: 0;
  padding-left: 20px;
  border-left: 2px solid var(--bi-accent);
  font-size: 19px;
  line-height: 1.55;
  color: var(--bi-text);
  max-width: 52ch;
}
.ce_text blockquote p,
.ce_quote blockquote p { color: inherit; font-size: inherit; max-width: none; }

.ce_text a,
.ce_list a,
.mod_search a { color: var(--bi-accent); border-bottom: 1px solid rgba(74, 127, 214, 0.4); }
.ce_text a:hover,
.ce_list a:hover,
.mod_search a:hover { color: var(--bi-accent-300); border-bottom-color: var(--bi-accent-300); }

/* --- Listen (.ce_list, Listen im Text) ---------------------------------- */
.ce_text ul,
.ce_text ol,
.ce_list ul,
.ce_list ol {
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
  max-width: 68ch;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ce_text li,
.ce_list li {
  display: flex;
  gap: 12px;
  color: var(--bi-neutral-200);
  line-height: 1.6;
}
.ce_text ul > li::before,
.ce_list ul > li::before {
  content: "—";
  color: var(--bi-accent);
  flex: none;
}
.ce_list ol { counter-reset: bi-li; }
.ce_list ol > li { counter-increment: bi-li; }
.ce_list ol > li::before {
  content: counter(bi-li, decimal-leading-zero);
  color: var(--bi-accent);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.1em;
  flex: none;
  min-width: 2.4em;
}

/* --- Bilder (.ce_image, .ce_gallery) ----------------------------------- */
.ce_image figure,
.ce_gallery figure { margin: 0; }
.ce_image img,
.ce_gallery img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--bi-radius);
}
/* Nocturne: Fotos werden in den Grund eingeblendet. */
.ce_image .image_container,
.ce_gallery .image_container { mix-blend-mode: lighten; background-color: transparent; }
.ce_image figcaption,
.ce_image .caption,
.ce_gallery figcaption {
  margin-top: 12px;
  font-size: 13px;
  color: var(--bi-neutral-500);
  max-width: 60ch;
}
.ce_image.float_left { float: left; margin: 0 32px 24px 0; max-width: 46%; }
.ce_image.float_right { float: right; margin: 0 0 24px 32px; max-width: 46%; }

.ce_gallery ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 20px;
}
.ce_gallery ul.cols_2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ce_gallery ul.cols_3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ce_gallery ul.cols_4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ce_gallery ul.cols_6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.ce_gallery li::before { content: none; }

/* --- Hyperlink-Element und Buttons ------------------------------------- */
.ce_hyperlink a,
a.hyperlink_txt,
.ce_form .submit,
.ce_form button,
.ce_form input[type="submit"],
.mod_search button,
.mod_search input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--bi-font);
  font-weight: 500;
  font-size: 15px;
  line-height: 1.2;
  color: var(--bi-accent);
  background: transparent;
  border: 1px solid var(--bi-accent);
  border-radius: var(--bi-radius);
  padding: 12px 22px;
  cursor: pointer;
  width: auto;
}
.ce_hyperlink a:hover,
.ce_form .submit:hover,
.ce_form button:hover,
.mod_search button:hover { background: rgba(74, 127, 214, 0.12); color: var(--bi-accent); }
.ce_hyperlink a:active,
.ce_form .submit:active,
.ce_form button:active { background: rgba(74, 127, 214, 0.22); }

/* --- Tabelle (.ce_table) ------------------------------------------------ */
.ce_table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.ce_table th {
  text-align: left;
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(233, 233, 237, 0.6);
  padding: 12px 8px;
  background: linear-gradient(90deg, transparent, rgba(233, 233, 237, 0.16) 48px,
    rgba(233, 233, 237, 0.16) calc(100% - 48px), transparent) no-repeat bottom / 100% 1px;
}
.ce_table td {
  padding: 12px 8px;
  color: var(--bi-neutral-200);
  background: linear-gradient(90deg, transparent, rgba(233, 233, 237, 0.08) 48px,
    rgba(233, 233, 237, 0.08) calc(100% - 48px), transparent) no-repeat bottom / 100% 1px;
}
.ce_table caption {
  text-align: left;
  font-size: 13px;
  color: var(--bi-neutral-500);
  padding-bottom: 12px;
}

/* --- Akkordeon (.ce_accordion) ----------------------------------------- */
.ce_accordion { border-bottom: 1px solid var(--bi-line-strong); }
.ce_accordion .toggler {
  cursor: pointer;
  padding: 20px 40px 20px 0;
  position: relative;
  font-size: 19px;
  font-weight: 500;
  color: var(--bi-text);
}
.ce_accordion .toggler::after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--bi-accent);
  font-size: 22px;
  line-height: 1;
}
.ce_accordion .toggler.active::after { content: "–"; }
.ce_accordion .toggler:hover { color: var(--bi-accent-300); }
.ce_accordion .accordion { padding: 0 0 24px; }

/* --- Downloads --------------------------------------------------------- */
.ce_downloads ul,
.ce_download ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ce_downloads li { display: block; }
.ce_downloads li::before { content: none; }
.ce_downloads a,
.ce_download a {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 14px 16px;
  background: var(--bi-surface);
  box-shadow: var(--bi-shadow-sm);
  border-radius: var(--bi-radius);
  color: var(--bi-text);
  border: 0;
}
.ce_downloads a:hover { box-shadow: var(--bi-shadow-md); color: var(--bi-text); }
.ce_downloads .size { color: var(--bi-neutral-500); font-size: 13px; }

/* --- Formulare (.ce_form, Widgets) ------------------------------------- */
.ce_form,
.mod_search .formbody {
  background: var(--bi-surface);
  box-shadow: var(--bi-shadow-sm);
  border-radius: var(--bi-radius);
  padding: 28px;
  max-width: 560px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.widget { display: flex; flex-direction: column; gap: 6px; }
.widget label {
  font-size: 13px;
  color: var(--bi-neutral-400);
  letter-spacing: 0.02em;
}
.widget label .mandatory { color: var(--bi-accent); }
.widget .text,
.widget .textarea,
.widget .select,
.widget input[type="text"],
.widget input[type="email"],
.widget input[type="tel"],
.widget input[type="url"],
.widget input[type="number"],
.widget input[type="password"],
.widget input[type="search"],
.widget textarea,
.widget select {
  font-family: var(--bi-font);
  font-size: 15px;
  color: var(--bi-text);
  background: var(--bi-bg);
  border: 1px solid var(--bi-line-strong);
  border-radius: var(--bi-radius);
  padding: 10px 12px;
  width: 100%;
}
.widget textarea { min-height: 120px; resize: vertical; }
.widget .text:hover,
.widget textarea:hover,
.widget select:hover { border-color: var(--bi-neutral-500); }
.widget ::placeholder { color: var(--bi-neutral-500); }
.widget-radio .radio_container,
.widget-checkbox .checkbox_container {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.radio_container label,
.checkbox_container label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  color: var(--bi-neutral-200);
}
.widget input[type="radio"],
.widget input[type="checkbox"] { accent-color: var(--bi-accent); width: auto; }
.widget .error,
.ce_form p.error { color: var(--bi-accent-300); font-size: 13px; }
.ce_form .confirmation {
  color: var(--bi-accent-300);
  border-left: 2px solid var(--bi-accent);
  padding-left: 16px;
}
.ce_form .submit_container { margin-top: 4px; }

/* --- Navigation (.mod_navigation, .mod_customnav) ---------------------- */
.mod_navigation ul,
.mod_customnav ul,
.mod_breadcrumb ul,
.mod_changelanguage ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 26px;
  align-items: center;
}
.mod_navigation li::before,
.mod_customnav li::before,
.mod_breadcrumb li::before,
.mod_changelanguage li::before { content: none; }
.mod_navigation a,
.mod_navigation strong,
.mod_customnav a,
.mod_customnav strong {
  font-size: 15px;
  font-weight: 400;
  color: var(--bi-neutral-300);
  padding: 4px 0;
  border-bottom: 1px solid transparent;
}
.mod_navigation a:hover,
.mod_customnav a:hover { color: var(--bi-text); }
.mod_navigation a.trail,
.mod_navigation strong.active,
.mod_customnav strong.active {
  color: var(--bi-text);
  border-bottom-color: var(--bi-accent);
}
.mod_navigation ul.level_2 {
  gap: 14px;
  flex-direction: column;
  align-items: flex-start;
  padding: 12px 0 0;
}
.mod_navigation ul.level_2 a { font-size: 14px; }

/* --- Breadcrumb, Sprachwechsler, Blaetterfunktion --------------------- */
.mod_breadcrumb { font-size: 13px; color: var(--bi-neutral-500); }
.mod_breadcrumb ul { gap: 10px; }
.mod_breadcrumb li + li::before {
  content: "/";
  color: var(--bi-neutral-500);
  margin-right: 10px;
}
.mod_breadcrumb a { color: var(--bi-neutral-400); border: 0; }
.mod_breadcrumb .active { color: var(--bi-neutral-200); }

.mod_changelanguage a { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
.mod_changelanguage img { width: 16px; height: auto; display: inline-block; vertical-align: -2px; }

.pagination { margin-top: 40px; font-size: 14px; }
.pagination p { color: var(--bi-neutral-500); margin: 0 0 12px; }
.pagination ul { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; }
.pagination li::before { content: none; }
.pagination a,
.pagination .current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  border-radius: var(--bi-radius-sm);
  border: 1px solid var(--bi-line-strong);
  color: var(--bi-neutral-300);
}
.pagination a:hover { border-color: var(--bi-accent); color: var(--bi-accent); }
.pagination .current { border-color: var(--bi-accent); color: var(--bi-accent); }

/* --- Suche und Listen-Module ------------------------------------------ */
.mod_search .header { color: var(--bi-neutral-500); font-size: 14px; margin: 24px 0; }
.mod_search .value { color: var(--bi-text); }
.mod_search .even,
.mod_search .odd { padding: 24px 0; border-bottom: 1px solid var(--bi-line); }
.mod_search .url,
.mod_search .relevance { font-size: 13px; color: var(--bi-neutral-500); }
.highlight { background: rgba(74, 127, 214, 0.22); color: var(--bi-text); }

.layout_short,
.layout_latest,
.layout_full { padding: 28px 0; border-bottom: 1px solid var(--bi-line); }
.layout_short .info,
.layout_full .info { font-size: 13px; color: var(--bi-neutral-500); margin-bottom: 8px; }
.more a { font-size: 14px; }

/* --- Video / Player ---------------------------------------------------- */
.ce_youtube .responsive,
.ce_vimeo .responsive,
.ce_player video {
  border-radius: var(--bi-radius);
  overflow: hidden;
  width: 100%;
}

/* --- Zustaende und Hilfsklassen --------------------------------------- */
:focus-visible { outline: 2px solid var(--bi-accent); outline-offset: 2px; }
::selection { background: rgba(74, 127, 214, 0.3); }
.clear { display: block; clear: both; }
.ce_text::after { content: ""; display: block; clear: both; }

@media (max-width: 900px) {
  #main:not(:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows)) .inside,
  #left .inside,
  #right .inside { padding: 48px 24px; }
  #header:not(:has(.bi-header)) .inside,
  #footer:not(:has(.bi-footer)) .inside { padding: 16px 24px; }
  .ce_gallery ul.cols_3,
  .ce_gallery ul.cols_4,
  .ce_gallery ul.cols_6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ce_image.float_left,
  .ce_image.float_right { float: none; max-width: 100%; margin: 0 0 24px; }
}
@media (max-width: 640px) {
  #main:not(:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows)) .inside { padding: 36px 20px; }
  .ce_gallery ul { grid-template-columns: 1fr; }
  .ce_form { padding: 20px; }
}

/* ==========================================================================
   Contao-Integration
   Contao 5.3 liefert kein eigenes Frontend-Stylesheet, aber es erzeugt eine
   feste Wrapper-Struktur:

     body
       #wrapper
         header#header > .inside          -> Frontend-Modul (mod_html)
         #container
           main#main > .inside            -> Artikel (mod_article) mit .ce_html
         footer#footer > .inside          -> Frontend-Modul (mod_html)

   Die Abschnitte dieses Pakets bringen ihre Breite (1180 px) und ihre
   Innenabstaende selbst mit. Damit Hero, Zahlenband und Kontakt randlos ueber
   die volle Fensterbreite laufen, werden die Contao-Wrapper hier neutralisiert.
   Dieser Block ist der einzige Ort, der Contao-Klassen anfasst.
   ========================================================================== */

#contentwrapper,
#fix-wrapper,
#top-wrapper,
#wrapper:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows),
#container:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows),
#main:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows),
#header:has(.bi-header),
#footer:has(.bi-footer),
#left:has(.bi-rows),
#right:has(.bi-rows) {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  float: none;
  background: none;
  border: 0;
}

/* Contaos Innencontainer begrenzt sonst die Breite bzw. setzt Abstaende. */
#header:has(.bi-header) .inside,
#container:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows) .inside,
#footer:has(.bi-footer) .inside {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  display: block;
  gap: 0;
}

/* Artikel und Inhaltselemente: keine Eigenabstaende, volle Breite.
   .block ergaenzt Contao automatisch, .first/.last auf dem ersten und
   letzten Element eines Artikels. */
.mod_article:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows),
.mod_html:has(.bi-header, .bi-footer),
.ce_html:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows, .bi-section, .bi-card) {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  overflow: visible;
  display: block;
  color: var(--bi-text);
}

/* Contao setzt bei leerer Ueberschrift gelegentlich ein leeres h1/h2 – ausblenden. */
.ce_html > h1:empty,
.ce_html > h2:empty,
.ce_html > h3:empty { display: none; }

/* Der Backend-Rahmen ("Vorschaumodus") soll das Layout nicht verschieben. */
#tl_preview_toggle,
.fe_preview_bar { z-index: 30; }

/* Falls das Seitenlayout zusaetzlich einen Theme-Reset mitbringt, der
   box-sizing anders setzt: unsere Abschnitte bestehen auf border-box. */
section,
article,
aside,
header,
footer,
figure { margin: 0; }

/* Contaos Sprungmarken-Ziele (id="pakete" usw.) sollen nicht unter der
   klebenden Kopfzeile verschwinden. */
[id] { scroll-margin-top: 84px; }


/* ==========================================================================
   Abschnitte aus Standard-Inhaltselementen
   Kein HTML-Element, keine eigene Vorlage: ein normales Inhaltselement plus
   eine CSS-Klasse im Feld "CSS-ID/Klasse". Welche Klasse zu welchem
   Elementtyp gehoert, steht in der README.

     hero        Text-Element mit Bild      -> Bildheader
     stats       Tabellen-Element, 2 Zeilen -> Zahlenband
     plan        Text-Element, dreimal      -> Paketkarte
     plan--rec   zusaetzlich am Mittleren   -> "Empfohlen"
   ========================================================================== */

/* Randlos: die Abschnitte nehmen die aeussere Rasterspur ein. */
.mod_article > .hero,
.mod_article > .stats { grid-column: full; }

/* --- Hero: Text-Element mit eingefuegtem Bild --------------------------- */
.ce_text.hero,
.content-text.hero {
  position: relative;
  overflow: hidden;
  display: block;
  /* Der Rand traegt die Innenbreite: aussen mindestens 32px, sonst so viel,
     dass der Inhalt in der Innenbreite steht. Dadurch sitzen schmale
     Textspalten (15ch, 52ch) linksbuendig an der Innenkante. */
  padding: 140px max(32px, calc((100% - (var(--bi-shell) - 64px)) / 2)) 84px;
}
.ce_text.hero .image_container,
.ce_text.hero figure,
.content-text.hero > figure {
  position: absolute;
  inset: 0;
  margin: 0;
  z-index: 0;
  mix-blend-mode: normal;
}
.ce_text.hero .image_container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.5;
  border-radius: 0;
}
.ce_text.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(60% 70% at 8% 90%, rgba(74, 127, 214, 0.22), transparent 70%),
    linear-gradient(100deg, #161826 12%, rgba(22, 24, 38, 0.86) 46%, rgba(22, 24, 38, 0.35) 100%);
}
/* Die redaktionellen Inhalte liegen ueber dem Bild und in der Innenbreite.
   :where() hat Spezifitaet 0, damit die Regeln darunter greifen. */
.ce_text.hero > :where(h1, h2, h3, p, ul, ol, div),
.content-text.hero > :where(h1, h2, h3, p, ul, ol, div) {
  position: relative;
  z-index: 2;
  max-width: calc(var(--bi-shell) - 64px);
  margin-left: 0;
  margin-right: 0;
  padding: 0;
}
.ce_text.hero > h1,
.ce_text.hero > h2 {
  font-size: clamp(40px, 5.6vw, 76px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  max-width: calc(15ch + 64px);
  margin-bottom: 28px;
}
.ce_text.hero > p {
  font-size: 19px;
  line-height: 1.6;
  color: var(--bi-neutral-300);
  max-width: 52ch;
  margin-bottom: 16px;
}
/* Links im letzten Absatz werden zu Schaltflaechen. */
.ce_text.hero > p:last-of-type { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 12px; }
.ce_text.hero > p:last-of-type a {
  display: inline-flex;
  align-items: center;
  font-weight: 500;
  font-size: 15px;
  color: var(--bi-accent);
  border: 1px solid var(--bi-accent);
  border-radius: var(--bi-radius);
  padding: 12px 22px;
}
.ce_text.hero > p:last-of-type a:hover { background: rgba(74, 127, 214, 0.12); }
.ce_text.hero > p:last-of-type a:nth-child(n+2) { border-color: transparent; }
.ce_text.hero > p:last-of-type a:nth-child(n+2):hover { background: rgba(74, 127, 214, 0.1); }

/* --- Zahlenband: Tabellen-Element, zwei Zeilen -------------------------- */
.ce_table.stats {
  background: var(--bi-section);
  position: relative;
  overflow: hidden;
}
.ce_table.stats::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(70% 120% at 15% 0%, var(--bi-section-glow), transparent 70%);
}
.ce_table.stats {
  padding: 56px max(32px, calc((100% - (var(--bi-shell) - 64px)) / 2));
}
.ce_table.stats table {
  position: relative;
  max-width: none;
  margin: 0;
  padding: 0;
  table-layout: fixed;
  font-size: inherit;
}
.ce_table.stats td,
.ce_table.stats th {
  background: none;
  padding: 0 16px 0 0;
  vertical-align: top;
  text-transform: none;
  letter-spacing: normal;
}
.ce_table.stats tr:first-child td,
.ce_table.stats tr:first-child th {
  font-weight: 500;
  font-size: 44px;
  /* Feste Ziffernbreite, damit beim Hochzaehlen nichts springt. */
  font-variant-numeric: tabular-nums;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--bi-text);
  padding-bottom: 10px;
}
.ce_table.stats tr:last-child td {
  font-size: 14px;
  line-height: 1.5;
  color: var(--bi-section-text);
}

/* --- Paketkarten: drei Text-Elemente ------------------------------------ */
/* Eine Paketkarte ist ein Drittel breit; drei hintereinander bilden die
   Reihe von allein. */
.mod_article > .plan { grid-column: content-start / span 2; }

.ce_text.plan {
  display: flex;
  flex-direction: column;
  padding: 28px;
  position: relative;
  background: var(--bi-surface);
  border-radius: var(--bi-radius);
  box-shadow: var(--bi-shadow-sm);
}
.ce_text.plan--rec,
.ce_text.plan-rec { box-shadow: var(--bi-shadow-md); }
.ce_text.plan--rec::before,
.ce_text.plan-rec::before {
  content: "Empfohlen";
  /* In der Flex-Karte greift float nicht, die Marke wuerde sonst als eigene
     Zeile ueber die ganze Breite laufen. */
  position: absolute;
  top: 24px;
  left: 28px;
  font-size: 11px;
  line-height: 1.5;
  padding: 3px 10px;
  border-radius: 6px;
  background: var(--bi-accent-800);
  color: var(--bi-accent-100);
}

.ce_text.plan h2,
.ce_text.plan h3 { font-size: 22px; max-width: none; margin-bottom: 14px; }
.ce_text.plan p { font-size: 15px; max-width: none; }
.ce_text.plan > p:first-of-type { font-size: 15px; color: var(--bi-neutral-400); }
.ce_text.plan ul { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--bi-line-strong); }
.ce_text.plan > p:last-child { margin-top: auto; }
.ce_text.plan p:last-child a {
  display: inline-flex;
  justify-content: center;
  width: 100%;
  margin-top: 18px;
  font-weight: 500;
  color: var(--bi-accent);
  border: 1px solid var(--bi-accent);
  border-radius: var(--bi-radius);
  padding: 10px 18px;
}
.ce_text.plan p:last-child a:hover { background: rgba(74, 127, 214, 0.12); }


@media (max-width: 900px) {
  .ce_text.hero { padding: 100px max(20px, calc((100% - (var(--bi-shell) - 64px)) / 2)) 64px; }
  /* Alles untereinander in der vollen Inhaltsspur. */
  .mod_article > :is(.w-1-6, .w-1-3, .w-1-2, .w-2-3, .w-5-6, .plan, .bi-mon),
  .mod_article > :is(.w-1-6, .w-1-3, .w-1-2, .w-2-3, .w-5-6, .plan, .bi-mon) + :is(.w-1-6, .w-1-3, .w-1-2, .w-2-3, .w-5-6, .plan, .bi-mon) { grid-column: content; }
  .ce_text.plan { margin-bottom: 20px; }
  .ce_table.stats { padding: 40px max(20px, calc((100% - (var(--bi-shell) - 64px)) / 2)); }
  /* Die Tabelle bleibt vierspaltig, damit Zahl und Text beieinanderstehen. */
  .ce_table.stats tr:first-child td,
  .ce_table.stats tr:first-child th { font-size: 32px; }
  .ce_table.stats tr:last-child td { font-size: 13px; }
}
@media (max-width: 560px) {
  .ce_table.stats { padding: 32px 20px; }
  .ce_table.stats tr:first-child td,
  .ce_table.stats tr:first-child th { font-size: 24px; }
  .ce_table.stats td { padding-right: 10px; }
}

/* ==========================================================================
   Contao 5.3: neue Twig-Klassen
   Seit Contao 5 heissen die Inhaltselemente .content-text, .content-headline,
   .content-list usw. statt .ce_text, .ce_headline, .ce_list; der Fliesstext
   steckt zusaetzlich in einem <div class="rte">. Dieser Block wiederholt die
   Regeln von oben fuer die neuen Namen, damit beide Ausgaben gestaltet sind.
   ========================================================================== */

/* --- Grundlage: Seite, Wrapper, Bereiche -------------------------------- */
/* Die Wrapper-Regeln gelten nur, wenn im Bereich KEIN randloser Abschnitt
   aus inhalt/ liegt - sonst muesste dieser Abschnitt aus dem Container
   ausbrechen. Siehe Block "Contao-Integration" am Ende. */
#header:not(:has(.bi-header)),
#footer:not(:has(.bi-footer)) { background: rgba(35, 37, 50, 0.4); }
#header:not(:has(.bi-header)) { border-bottom: 1px solid var(--bi-line); }
#footer:not(:has(.bi-footer)) { border-top: 1px solid var(--bi-line); margin-top: 96px; }

#header:not(:has(.bi-header)) .inside,
#footer:not(:has(.bi-footer)) .inside {
  max-width: var(--bi-shell);
  margin: 0 auto;
  padding: 20px 32px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
}


/* --- Kopfzeile: Marke links, Navigation rechts -------------------------- */
#header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(22, 24, 38, 0.86);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--bi-line);
}
#header:not(:has(.bi-header)) .inside {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 32px;
  padding: 14px 32px;
}
/* Das Markenmodul steht zuerst, die Navigation wird nach rechts geschoben. */
#header .mod_navigation,
#header .mod_customnav,
#header .mod_changelanguage { margin-left: auto; }
#header .mod_navigation + .mod_changelanguage,
#header .mod_navigation + .mod_customnav { margin-left: 0; }

/* Marke (HTML-Modul im Kopfbereich) */
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: none;
}
/* Sobald eine helle Logofassung vorliegt, wird sie hier eingesetzt:
   <img src="files/burow/img/logo-hell.svg" class="brand__logo" alt="Burow IT">
   Die dunkle Fassung (#002a7f) erreicht auf dem Grund #161826 nur 1,4:1
   Kontrast und ist deshalb vorerst nicht eingebaut. */
.brand__logo { height: 26px; width: auto; display: block; flex: none; }
.brand__name {
  font-weight: 500;
  font-size: 17px;
  letter-spacing: 0.01em;
  color: var(--bi-text);
}
.brand__tag {
  font-size: 11px;
  color: var(--bi-neutral-500);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding-top: 3px;
}
a.brand:hover .brand__name { color: var(--bi-accent-300); }

@media (max-width: 720px) {
  #header:not(:has(.bi-header)) .inside { gap: 16px; padding: 12px 20px; }
  .brand__tag { display: none; }
  #header .mod_navigation ul { gap: 18px; }
  #header .mod_navigation a,
  #header .mod_navigation strong { font-size: 14px; }
}

/* Rhythmus zwischen Inhaltselementen */
.mod_article > .content-headline { margin-top: 48px; margin-bottom: -16px; }
.mod_article > .content-headline:first-child,
.mod_article > .content-headline.first { margin-top: 0; }

/* --- Ueberschriften ------------------------------------------------------ */
.content-headline,
.content-text h1,
.content-list h1,
.content-accordion .accordion h1,
.content-downloads h1,
.content-table h1,
.content-form h1,
.mod_search h1,
.layout_short h1,
.layout_full h1,
.content-text h2,
.content-list h2,
.content-accordion .accordion h2,
.content-downloads h2,
.content-table h2,
.content-form h2,
.mod_search h2,
.layout_short h2,
.layout_full h2,
.content-text h3,
.content-list h3,
.content-accordion .accordion h3,
.content-downloads h3,
.content-table h3,
.content-form h3,
.mod_search h3,
.layout_short h3,
.layout_full h3,
.content-text h4,
.content-list h4,
.content-accordion .accordion h4,
.content-downloads h4,
.content-table h4,
.content-form h4,
.mod_search h4,
.layout_short h4,
.layout_full h4,
.content-text h5,
.content-list h5,
.content-accordion .accordion h5,
.content-downloads h5,
.content-table h5,
.content-form h5,
.mod_search h5,
.layout_short h5,
.layout_full h5,
.content-text h6,
.content-list h6,
.content-accordion .accordion h6,
.content-downloads h6,
.content-table h6,
.content-form h6,
.mod_search h6,
.layout_short h6,
.layout_full h6 {
  font-family: var(--bi-font);
  font-weight: 500;
  color: var(--bi-text);
  letter-spacing: -0.02em;
  line-height: 1.12;
  margin: 0 0 16px;
  text-wrap: balance;
}

h1.content-headline,
.content-text h1 { font-size: clamp(38px, 5vw, 64px); line-height: 1.04; letter-spacing: -0.025em; max-width: 18ch; }
h2.content-headline,
.content-text h2 { font-size: clamp(28px, 3.4vw, 44px); max-width: 24ch; }
h3.content-headline,
.content-text h3 { font-size: 26px; letter-spacing: -0.015em; }
h4.content-headline,
.content-text h4 { font-size: 20px; letter-spacing: -0.01em; }
h5.content-headline,
.content-text h5 { font-size: 17px; }
h6.content-headline,
.content-text h6 {
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bi-accent-300);
  font-weight: 400;
}

/* Nocturne-Signatur: kurzer Akzentstrich vor dem Ueberschriften-Element. */
.content-headline::before {
  content: "";
  display: block;
  width: 34px;
  height: 1px;
  background: var(--bi-accent);
  margin-bottom: 20px;
}

/* --- Fliesstext ---------------------------------------------------------- */
.content-text p,
.content-list p,
.content-accordion .accordion p,
.content-downloads p,
.content-table p,
.content-form p,
.mod_search p,
.layout_short p,
.layout_full p {
  margin: 0 0 16px;
  max-width: 68ch;
  color: var(--bi-neutral-300);
  line-height: 1.65;
  text-wrap: pretty;
}
.content-text p:last-child,
.content-list p:last-child,
.content-accordion .accordion p:last-child,
.content-downloads p:last-child,
.content-table p:last-child,
.content-form p:last-child,
.mod_search p:last-child,
.layout_short p:last-child,
.layout_full p:last-child { margin-bottom: 0; }
.content-text > p:first-of-type { font-size: 17px; color: var(--bi-neutral-200); }

.content-text strong,
.content-list strong,
.content-accordion .accordion strong,
.content-downloads strong,
.content-table strong,
.content-form strong,
.mod_search strong,
.layout_short strong,
.layout_full strong,
.content-text b,
.content-list b,
.content-accordion .accordion b,
.content-downloads b,
.content-table b,
.content-form b,
.mod_search b,
.layout_short b,
.layout_full b { font-weight: 500; color: var(--bi-text); }
.content-text small,
.content-list small,
.content-accordion .accordion small,
.content-downloads small,
.content-table small,
.content-form small,
.mod_search small,
.layout_short small,
.layout_full small { font-size: 13px; color: var(--bi-neutral-500); }
.content-text code,
.content-list code,
.content-accordion .accordion code,
.content-downloads code,
.content-table code,
.content-form code,
.mod_search code,
.layout_short code,
.layout_full code {
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-size: 0.9em;
  background: var(--bi-surface);
  border-radius: var(--bi-radius-sm);
  padding: 2px 6px;
}
.content-hr hr,
.content-text hr {
  border: 0;
  height: 1px;
  margin: 48px 0;
  background: linear-gradient(90deg, transparent, var(--bi-line-strong) 48px,
    var(--bi-line-strong) calc(100% - 48px), transparent);
}
.content-text blockquote,
.content-quote blockquote {
  margin: 0;
  padding-left: 20px;
  border-left: 2px solid var(--bi-accent);
  font-size: 19px;
  line-height: 1.55;
  color: var(--bi-text);
  max-width: 52ch;
}
.content-text blockquote p,
.content-quote blockquote p { color: inherit; font-size: inherit; max-width: none; }

.content-text a,
.content-list a,
.mod_search a { color: var(--bi-accent); border-bottom: 1px solid rgba(74, 127, 214, 0.4); }
.content-text a:hover,
.content-list a:hover,
.mod_search a:hover { color: var(--bi-accent-300); border-bottom-color: var(--bi-accent-300); }

/* --- Listen (.content-list, Listen im Text) ---------------------------------- */
.content-text ul,
.content-text ol,
.content-list ul,
.content-list ol {
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
  max-width: 68ch;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.content-text li,
.content-list li {
  display: flex;
  gap: 12px;
  color: var(--bi-neutral-200);
  line-height: 1.6;
}
.content-text ul > li::before,
.content-list ul > li::before {
  content: "—";
  color: var(--bi-accent);
  flex: none;
}
.content-list ol { counter-reset: bi-li; }
.content-list ol > li { counter-increment: bi-li; }
.content-list ol > li::before {
  content: counter(bi-li, decimal-leading-zero);
  color: var(--bi-accent);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.1em;
  flex: none;
  min-width: 2.4em;
}

/* --- Bilder (.content-image, .content-gallery) ----------------------------------- */
.content-image figure,
.content-gallery figure { margin: 0; }
.content-image img,
.content-gallery img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--bi-radius);
}
/* Nocturne: Fotos werden in den Grund eingeblendet. */
.content-image .image_container,
.content-gallery .image_container { mix-blend-mode: lighten; background-color: transparent; }
.content-image figcaption,
.content-image .caption,
.content-gallery figcaption {
  margin-top: 12px;
  font-size: 13px;
  color: var(--bi-neutral-500);
  max-width: 60ch;
}
.content-image.float_left { float: left; margin: 0 32px 24px 0; max-width: 46%; }
.content-image.float_right { float: right; margin: 0 0 24px 32px; max-width: 46%; }

.content-gallery ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 20px;
}
.content-gallery ul.cols_2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.content-gallery ul.cols_3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.content-gallery ul.cols_4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.content-gallery ul.cols_6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.content-gallery li::before { content: none; }

/* --- Hyperlink-Element und Buttons ------------------------------------- */
.content-hyperlink a,
a.hyperlink_txt,
.content-form .submit,
.content-form button,
.content-form input[type="submit"],
.mod_search button,
.mod_search input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--bi-font);
  font-weight: 500;
  font-size: 15px;
  line-height: 1.2;
  color: var(--bi-accent);
  background: transparent;
  border: 1px solid var(--bi-accent);
  border-radius: var(--bi-radius);
  padding: 12px 22px;
  cursor: pointer;
  width: auto;
}
.content-hyperlink a:hover,
.content-form .submit:hover,
.content-form button:hover,
.mod_search button:hover { background: rgba(74, 127, 214, 0.12); color: var(--bi-accent); }
.content-hyperlink a:active,
.content-form .submit:active,
.content-form button:active { background: rgba(74, 127, 214, 0.22); }

/* --- Tabelle (.content-table) ------------------------------------------------ */
.content-table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.content-table th {
  text-align: left;
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(233, 233, 237, 0.6);
  padding: 12px 8px;
  background: linear-gradient(90deg, transparent, rgba(233, 233, 237, 0.16) 48px,
    rgba(233, 233, 237, 0.16) calc(100% - 48px), transparent) no-repeat bottom / 100% 1px;
}
.content-table td {
  padding: 12px 8px;
  color: var(--bi-neutral-200);
  background: linear-gradient(90deg, transparent, rgba(233, 233, 237, 0.08) 48px,
    rgba(233, 233, 237, 0.08) calc(100% - 48px), transparent) no-repeat bottom / 100% 1px;
}
.content-table caption {
  text-align: left;
  font-size: 13px;
  color: var(--bi-neutral-500);
  padding-bottom: 12px;
}

/* --- Akkordeon (.content-accordion) ----------------------------------------- */
.content-accordion { border-bottom: 1px solid var(--bi-line-strong); }
.content-accordion .toggler {
  cursor: pointer;
  padding: 20px 40px 20px 0;
  position: relative;
  font-size: 19px;
  font-weight: 500;
  color: var(--bi-text);
}
.content-accordion .toggler::after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--bi-accent);
  font-size: 22px;
  line-height: 1;
}
.content-accordion .toggler.active::after { content: "–"; }
.content-accordion .toggler:hover { color: var(--bi-accent-300); }
.content-accordion .accordion { padding: 0 0 24px; }

/* --- Downloads --------------------------------------------------------- */
.content-downloads ul,
.content-download ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.content-downloads li { display: block; }
.content-downloads li::before { content: none; }
.content-downloads a,
.content-download a {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 14px 16px;
  background: var(--bi-surface);
  box-shadow: var(--bi-shadow-sm);
  border-radius: var(--bi-radius);
  color: var(--bi-text);
  border: 0;
}
.content-downloads a:hover { box-shadow: var(--bi-shadow-md); color: var(--bi-text); }
.content-downloads .size { color: var(--bi-neutral-500); font-size: 13px; }

/* --- Formulare (.content-form, Widgets) ------------------------------------- */
.content-form,
.mod_search .formbody {
  background: var(--bi-surface);
  box-shadow: var(--bi-shadow-sm);
  border-radius: var(--bi-radius);
  padding: 28px;
  max-width: 560px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.widget { display: flex; flex-direction: column; gap: 6px; }
.widget label {
  font-size: 13px;
  color: var(--bi-neutral-400);
  letter-spacing: 0.02em;
}
.widget label .mandatory { color: var(--bi-accent); }
.widget .text,
.widget .textarea,
.widget .select,
.widget input[type="text"],
.widget input[type="email"],
.widget input[type="tel"],
.widget input[type="url"],
.widget input[type="number"],
.widget input[type="password"],
.widget input[type="search"],
.widget textarea,
.widget select {
  font-family: var(--bi-font);
  font-size: 15px;
  color: var(--bi-text);
  background: var(--bi-bg);
  border: 1px solid var(--bi-line-strong);
  border-radius: var(--bi-radius);
  padding: 10px 12px;
  width: 100%;
}
.widget textarea { min-height: 120px; resize: vertical; }
.widget .text:hover,
.widget textarea:hover,
.widget select:hover { border-color: var(--bi-neutral-500); }
.widget ::placeholder { color: var(--bi-neutral-500); }
.widget-radio .radio_container,
.widget-checkbox .checkbox_container {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.radio_container label,
.checkbox_container label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  color: var(--bi-neutral-200);
}
.widget input[type="radio"],
.widget input[type="checkbox"] { accent-color: var(--bi-accent); width: auto; }
.widget .error,
.content-form p.error { color: var(--bi-accent-300); font-size: 13px; }
.content-form .confirmation {
  color: var(--bi-accent-300);
  border-left: 2px solid var(--bi-accent);
  padding-left: 16px;
}
.content-form .submit_container { margin-top: 4px; }

/* --- Navigation (.mod_navigation, .mod_customnav) ---------------------- */
.mod_navigation ul,
.mod_customnav ul,
.mod_breadcrumb ul,
.mod_changelanguage ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 26px;
  align-items: center;
}
.mod_navigation li::before,
.mod_customnav li::before,
.mod_breadcrumb li::before,
.mod_changelanguage li::before { content: none; }
.mod_navigation a,
.mod_navigation strong,
.mod_customnav a,
.mod_customnav strong {
  font-size: 15px;
  font-weight: 400;
  color: var(--bi-neutral-300);
  padding: 4px 0;
  border-bottom: 1px solid transparent;
}
.mod_navigation a:hover,
.mod_customnav a:hover { color: var(--bi-text); }
.mod_navigation a.trail,
.mod_navigation strong.active,
.mod_customnav strong.active {
  color: var(--bi-text);
  border-bottom-color: var(--bi-accent);
}
.mod_navigation ul.level_2 {
  gap: 14px;
  flex-direction: column;
  align-items: flex-start;
  padding: 12px 0 0;
}
.mod_navigation ul.level_2 a { font-size: 14px; }

/* --- Breadcrumb, Sprachwechsler, Blaetterfunktion --------------------- */
.mod_breadcrumb { font-size: 13px; color: var(--bi-neutral-500); }
.mod_breadcrumb ul { gap: 10px; }
.mod_breadcrumb li + li::before {
  content: "/";
  color: var(--bi-neutral-500);
  margin-right: 10px;
}
.mod_breadcrumb a { color: var(--bi-neutral-400); border: 0; }
.mod_breadcrumb .active { color: var(--bi-neutral-200); }

.mod_changelanguage a { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
.mod_changelanguage img { width: 16px; height: auto; display: inline-block; vertical-align: -2px; }

.pagination { margin-top: 40px; font-size: 14px; }
.pagination p { color: var(--bi-neutral-500); margin: 0 0 12px; }
.pagination ul { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; }
.pagination li::before { content: none; }
.pagination a,
.pagination .current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  border-radius: var(--bi-radius-sm);
  border: 1px solid var(--bi-line-strong);
  color: var(--bi-neutral-300);
}
.pagination a:hover { border-color: var(--bi-accent); color: var(--bi-accent); }
.pagination .current { border-color: var(--bi-accent); color: var(--bi-accent); }

/* --- Suche und Listen-Module ------------------------------------------ */
.mod_search .header { color: var(--bi-neutral-500); font-size: 14px; margin: 24px 0; }
.mod_search .value { color: var(--bi-text); }
.mod_search .even,
.mod_search .odd { padding: 24px 0; border-bottom: 1px solid var(--bi-line); }
.mod_search .url,
.mod_search .relevance { font-size: 13px; color: var(--bi-neutral-500); }
.highlight { background: rgba(74, 127, 214, 0.22); color: var(--bi-text); }

.layout_short,
.layout_latest,
.layout_full { padding: 28px 0; border-bottom: 1px solid var(--bi-line); }
.layout_short .info,
.layout_full .info { font-size: 13px; color: var(--bi-neutral-500); margin-bottom: 8px; }
.more a { font-size: 14px; }

/* --- Video / Player ---------------------------------------------------- */
.content-youtube .responsive,
.content-vimeo .responsive,
.content-player video {
  border-radius: var(--bi-radius);
  overflow: hidden;
  width: 100%;
}

/* --- Zustaende und Hilfsklassen --------------------------------------- */
:focus-visible { outline: 2px solid var(--bi-accent); outline-offset: 2px; }
::selection { background: rgba(74, 127, 214, 0.3); }
.clear { display: block; clear: both; }
.content-text::after { content: ""; display: block; clear: both; }

@media (max-width: 900px) {
  #main:not(:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows)) .inside,
  #left .inside,
  #right .inside { padding: 48px 24px; }
  #header:not(:has(.bi-header)) .inside,
  #footer:not(:has(.bi-footer)) .inside { padding: 16px 24px; }
  .content-gallery ul.cols_3,
  .content-gallery ul.cols_4,
  .content-gallery ul.cols_6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .content-image.float_left,
  .content-image.float_right { float: none; max-width: 100%; margin: 0 0 24px; }
}
@media (max-width: 640px) {
  #main:not(:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows)) .inside { padding: 36px 20px; }
  .content-gallery ul { grid-template-columns: 1fr; }
  .content-form { padding: 20px; }
}

/* ==========================================================================
   Contao-Integration
   Contao 5.3 liefert kein eigenes Frontend-Stylesheet, aber es erzeugt eine
   feste Wrapper-Struktur:

     body
       #wrapper
         header#header > .inside          -> Frontend-Modul (mod_html)
         #container
           main#main > .inside            -> Artikel (mod_article) mit .content-html
         footer#footer > .inside          -> Frontend-Modul (mod_html)

   Die Abschnitte dieses Pakets bringen ihre Breite (1180 px) und ihre
   Innenabstaende selbst mit. Damit Hero, Zahlenband und Kontakt randlos ueber
   die volle Fensterbreite laufen, werden die Contao-Wrapper hier neutralisiert.
   Dieser Block ist der einzige Ort, der Contao-Klassen anfasst.
   ========================================================================== */

#contentwrapper,
#fix-wrapper,
#top-wrapper,
#wrapper:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows),
#container:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows),
#main:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows),
#header:has(.bi-header),
#footer:has(.bi-footer),
#left:has(.bi-rows),
#right:has(.bi-rows) {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  float: none;
  background: none;
  border: 0;
}

/* Contaos Innencontainer begrenzt sonst die Breite bzw. setzt Abstaende. */
#header:has(.bi-header) .inside,
#container:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows) .inside,
#footer:has(.bi-footer) .inside {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  display: block;
  gap: 0;
}

/* Artikel und Inhaltselemente: keine Eigenabstaende, volle Breite.
   .block ergaenzt Contao automatisch, .first/.last auf dem ersten und
   letzten Element eines Artikels. */
.mod_article:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows),
.mod_html:has(.bi-header, .bi-footer),
.content-html:has(.bi-hero, .bi-stats, .bi-contact, .bi-rows, .bi-section, .bi-card) {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  overflow: visible;
  display: block;
  color: var(--bi-text);
}

/* Contao setzt bei leerer Ueberschrift gelegentlich ein leeres h1/h2 – ausblenden. */
.content-html > h1:empty,
.content-html > h2:empty,
.content-html > h3:empty { display: none; }

/* Der Backend-Rahmen ("Vorschaumodus") soll das Layout nicht verschieben. */
#tl_preview_toggle,
.fe_preview_bar { z-index: 30; }

/* Falls das Seitenlayout zusaetzlich einen Theme-Reset mitbringt, der
   box-sizing anders setzt: unsere Abschnitte bestehen auf border-box. */
section,
article,
aside,
header,
footer,
figure { margin: 0; }

/* Contaos Sprungmarken-Ziele (id="pakete" usw.) sollen nicht unter der
   klebenden Kopfzeile verschwinden. */
[id] { scroll-margin-top: 84px; }


/* ==========================================================================
   Abschnitte aus Standard-Inhaltselementen
   Kein HTML-Element, keine eigene Vorlage: ein normales Inhaltselement plus
   eine CSS-Klasse im Feld "CSS-ID/Klasse". Welche Klasse zu welchem
   Elementtyp gehoert, steht in der README.

     hero        Text-Element mit Bild      -> Bildheader
     stats       Tabellen-Element, 2 Zeilen -> Zahlenband
     plan        Text-Element, dreimal      -> Paketkarte
     plan--rec   zusaetzlich am Mittleren   -> "Empfohlen"
   ========================================================================== */

/* Randlos: die Abschnitte nehmen die aeussere Rasterspur ein. */
.mod_article > .hero,
.mod_article > .stats { grid-column: full; }

/* --- Hero: Text-Element mit eingefuegtem Bild --------------------------- */
.content-text.hero {
  position: relative;
  overflow: hidden;
  padding: 140px max(32px, calc((100% - (var(--bi-shell) - 64px)) / 2)) 84px;
  display: block;
}
.content-text.hero .image_container,
.content-text.hero figure {
  position: absolute;
  inset: 0;
  margin: 0;
  z-index: 0;
  mix-blend-mode: normal;
}
.content-text.hero .image_container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.5;
  border-radius: 0;
}
.content-text.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(60% 70% at 8% 90%, rgba(74, 127, 214, 0.22), transparent 70%),
    linear-gradient(100deg, #161826 12%, rgba(22, 24, 38, 0.86) 46%, rgba(22, 24, 38, 0.35) 100%);
}
/* Die redaktionellen Inhalte liegen ueber dem Bild und in der Innenbreite.
   :where() hat Spezifitaet 0, damit die Regeln darunter greifen. */

.content-text.hero > h1,
.content-text.hero > h2 {
  font-size: clamp(40px, 5.6vw, 76px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  max-width: calc(15ch + 64px);
  margin-bottom: 28px;
}
.content-text.hero > p {
  font-size: 19px;
  line-height: 1.6;
  color: var(--bi-neutral-300);
  max-width: 52ch;
  margin-bottom: 16px;
}
/* Links im letzten Absatz werden zu Schaltflaechen. */
.content-text.hero > p:last-of-type { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 12px; }
.content-text.hero > p:last-of-type a {
  display: inline-flex;
  align-items: center;
  font-weight: 500;
  font-size: 15px;
  color: var(--bi-accent);
  border: 1px solid var(--bi-accent);
  border-radius: var(--bi-radius);
  padding: 12px 22px;
}
.content-text.hero > p:last-of-type a:hover { background: rgba(74, 127, 214, 0.12); }
.content-text.hero > p:last-of-type a:nth-child(n+2) { border-color: transparent; }
.content-text.hero > p:last-of-type a:nth-child(n+2):hover { background: rgba(74, 127, 214, 0.1); }

/* --- Zahlenband: Tabellen-Element, zwei Zeilen -------------------------- */
.content-table.stats {
  background: var(--bi-section);
  position: relative;
  overflow: hidden;
}
.content-table.stats::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(70% 120% at 15% 0%, var(--bi-section-glow), transparent 70%);
}
.content-table.stats {
  padding: 56px max(32px, calc((100% - (var(--bi-shell) - 64px)) / 2));
}
.content-table.stats table {
  position: relative;
  max-width: none;
  margin: 0;
  padding: 0;
  table-layout: fixed;
  font-size: inherit;
}
.content-table.stats td,
.content-table.stats th {
  background: none;
  padding: 0 16px 0 0;
  vertical-align: top;
  text-transform: none;
  letter-spacing: normal;
}
.content-table.stats tr:first-child td,
.content-table.stats tr:first-child th {
  font-weight: 500;
  font-size: 44px;
  /* Feste Ziffernbreite, damit beim Hochzaehlen nichts springt. */
  font-variant-numeric: tabular-nums;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--bi-text);
  padding-bottom: 10px;
}
.content-table.stats tr:last-child td {
  font-size: 14px;
  line-height: 1.5;
  color: var(--bi-section-text);
}

/* --- Paketkarten: drei Text-Elemente ------------------------------------ */
.content-text.plan {
  display: flex;
  flex-direction: column;
  padding: 28px;
  position: relative;
  background: var(--bi-surface);
  border-radius: var(--bi-radius);
  box-shadow: var(--bi-shadow-sm);
}
.content-text.plan--rec,
.content-text.plan-rec { box-shadow: var(--bi-shadow-md); }
.content-text.plan--rec::before,
.content-text.plan-rec::before {
  content: "Empfohlen";
  /* In der Flex-Karte greift float nicht, die Marke wuerde sonst als eigene
     Zeile ueber die ganze Breite laufen. */
  position: absolute;
  top: 24px;
  left: 28px;
  font-size: 11px;
  line-height: 1.5;
  padding: 3px 10px;
  border-radius: 6px;
  background: var(--bi-accent-800);
  color: var(--bi-accent-100);
}

.content-text.plan h2,
.content-text.plan h3 { font-size: 22px; max-width: none; margin-bottom: 14px; }
.content-text.plan p { font-size: 15px; max-width: none; }
.content-text.plan > p:first-of-type { font-size: 15px; color: var(--bi-neutral-400); }
.content-text.plan ul { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--bi-line-strong); }
.content-text.plan > p:last-child { margin-top: auto; }
.content-text.plan p:last-child a {
  display: inline-flex;
  justify-content: center;
  width: 100%;
  margin-top: 18px;
  font-weight: 500;
  color: var(--bi-accent);
  border: 1px solid var(--bi-accent);
  border-radius: var(--bi-radius);
  padding: 10px 18px;
}
.content-text.plan p:last-child a:hover { background: rgba(74, 127, 214, 0.12); }


@media (max-width: 900px) {
  .content-text.hero { padding: 100px max(20px, calc((100% - (var(--bi-shell) - 64px)) / 2)) 64px; }
  /* Alles untereinander in der vollen Inhaltsspur. */
  .mod_article > :is(.w-1-6, .w-1-3, .w-1-2, .w-2-3, .w-5-6, .plan, .bi-mon),
  .mod_article > :is(.w-1-6, .w-1-3, .w-1-2, .w-2-3, .w-5-6, .plan, .bi-mon) + :is(.w-1-6, .w-1-3, .w-1-2, .w-2-3, .w-5-6, .plan, .bi-mon) { grid-column: content; }
  .content-text.plan { margin-bottom: 20px; }
  .content-table.stats { padding: 40px max(20px, calc((100% - (var(--bi-shell) - 64px)) / 2)); }
  /* Die Tabelle bleibt vierspaltig, damit Zahl und Text beieinanderstehen. */
  .content-table.stats tr:first-child td,
  .content-table.stats tr:first-child th { font-size: 32px; }
  .content-table.stats tr:last-child td { font-size: 13px; }
}
@media (max-width: 560px) {
  .content-table.stats { padding: 32px 20px; }
  .content-table.stats tr:first-child td,
  .content-table.stats tr:first-child th { font-size: 24px; }
  .content-table.stats td { padding-right: 10px; }
}

/* --- Anpassungen an die neue Struktur ---------------------------------- */

/* Rhythmus: die neuen Elemente tragen kein .block mehr. Abstaende kommen
   ausschliesslich aus row-gap des Artikelrasters. */
.mod_article > * + * { margin-top: 0; }
.mod_article > .content-headline { margin-top: 48px; margin-bottom: -16px; }
.mod_article > .content-headline:first-child { margin-top: 0; }

/* Der Fliesstext liegt in .rte - der Wrapper selbst bleibt unsichtbar. */
.content-text > .rte > p:first-of-type { font-size: 17px; color: var(--bi-neutral-200); }
.content-text > .rte > p { max-width: 68ch; }

/* Hero: Bild ohne .image_container, Text in .rte ------------------------ */
.content-text.hero > figure {
  position: absolute;
  inset: 0;
  margin: 0;
  z-index: 0;
  mix-blend-mode: normal;
}
.content-text.hero > figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.5;
  border-radius: 0;
}
.content-text.hero > h1,
.content-text.hero > h2 { max-width: 15ch; }
.content-text.hero > .rte > p {
  font-size: 19px;
  line-height: 1.6;
  color: var(--bi-neutral-300);
  max-width: 52ch;
  margin-bottom: 16px;
}
.content-text.hero > .rte > p:first-of-type { font-size: 19px; color: var(--bi-neutral-300); }
/* Der letzte Absatz wird zur Schaltflaechenreihe. */
.content-text.hero > .rte > p:last-of-type {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  max-width: none;
}
.content-text.hero > .rte > p:last-of-type a {
  display: inline-flex;
  align-items: center;
  font-weight: 500;
  font-size: 15px;
  color: var(--bi-accent);
  border: 1px solid var(--bi-accent);
  border-radius: var(--bi-radius);
  padding: 12px 22px;
}
.content-text.hero > .rte > p:last-of-type a:hover { background: rgba(74, 127, 214, 0.12); }
.content-text.hero > .rte > p:last-of-type a:nth-child(n+2) { border-color: transparent; }

/* Paketkarten: der .rte-Wrapper traegt die Spalte ---------------------- */
.content-text.plan > .rte {
  display: flex;
  flex-direction: column;
  flex: 1;
  max-width: none;
}
.content-text.plan > .rte > p { max-width: none; }
.content-text.plan > .rte > p:first-of-type { font-size: 15px; color: var(--bi-neutral-400); }
.content-text.plan > .rte > ul,
.content-text.plan > .rte > ol {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--bi-line-strong);
}
.content-text.plan > .rte > p:last-child { margin-top: auto; margin-bottom: 0; }
.content-text.plan > .rte > p:last-child a {
  display: inline-flex;
  justify-content: center;
  width: 100%;
  margin-top: 18px;
  font-weight: 500;
  color: var(--bi-accent);
  border: 1px solid var(--bi-accent);
  border-radius: var(--bi-radius);
  padding: 10px 18px;
  border-bottom-width: 1px;
}
.content-text.plan > .rte > p:last-child a:hover { background: rgba(74, 127, 214, 0.12); }

/* Die Bildvarianten media--above/below/left/right heben die absolute
   Positionierung im Hero nicht auf. */
.hero.media--above > figure,
.hero.media--below > figure,
.hero.media--left > figure,
.hero.media--right > figure { float: none; }

/* --- Hero als ganzer Artikel -------------------------------------------
   Eleganter als ein einzelnes Text-Element: der Artikel selbst traegt die
   Klasse "hero" (Artikel > Experten-Einstellungen > CSS-ID/Klasse), das
   Hintergrundbild ist ein Bild-Element mit der Klasse "bg", und darin
   stehen beliebige Elemente mit Breitenklassen.

     Artikel            CSS-Klasse  hero
       Bild-Element     CSS-Klasse  bg          (das Hintergrundbild)
       Text-Element     CSS-Klasse  w-1-2 v-center
       HTML-Element     <aside class="bi-mon w-1-2 v-center">

   Das Bild bleibt damit in der Dateiverwaltung austauschbar.
   ----------------------------------------------------------------------- */
.mod_article.hero {
  position: relative;
  overflow: hidden;
  padding-top: 140px;
  padding-bottom: 96px;
  row-gap: 32px;
  align-items: center;
}
/* Das Bild-Element legt sich formatfuellend hinter den Inhalt. */
.mod_article.hero > .bg {
  /* Ausdruecklich aus dem Raster nehmen: mit Rasterplatzierung waere die
     Rasterzelle der Bezugsrahmen, und das Bild endete an der Inhaltskante. */
  grid-column: auto;
  grid-row: auto;
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  z-index: 0;
  max-width: none;
}
.mod_article.hero > .bg figure,
.mod_article.hero > .bg .image_container { margin: 0; height: 100%; mix-blend-mode: normal; }
.mod_article.hero > .bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.5;
  border-radius: 0;
}
/* Verlauf darueber, damit der Text auf jedem Foto lesbar bleibt. */
.mod_article.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(60% 70% at 8% 90%, rgba(74, 127, 214, 0.22), transparent 70%),
    linear-gradient(100deg, #161826 12%, rgba(22, 24, 38, 0.86) 46%, rgba(22, 24, 38, 0.35) 100%);
}
.mod_article.hero > *:not(.bg) { position: relative; z-index: 2; }
/* Im Hero-Artikel nimmt das Monitoring-Panel von sich aus die halbe Spalte
   und steht auf der Mittelachse - auch ohne Breitenklasse im HTML. */
.mod_article.hero > .bi-mon {
  grid-column: content-start / span 3;
  align-self: center;
  max-width: none;
}
.mod_article.hero > :is(.w-1-6, .w-1-3, .w-1-2, .w-2-3, .w-5-6, .plan, .bi-mon) + .bi-mon {
  grid-column-start: auto;
}
/* Innerhalb des Heros regelt row-gap die Abstaende. */
.mod_article.hero > * + * { margin-top: 0; }
.mod_article.hero > .content-headline,
.mod_article.hero > .ce_headline { margin-top: 0; margin-bottom: 0; }

/* Der Claim im Hero-Artikel */
.mod_article.hero h1,
.mod_article.hero > .content-text > h2,
.mod_article.hero > .ce_text > h2 {
  font-size: clamp(36px, 4.6vw, 64px);
  line-height: 1.04;
  letter-spacing: -0.025em;
  max-width: 18ch;
  margin-bottom: 24px;
}
.mod_article.hero .rte > p,
.mod_article.hero .content-text p {
  font-size: 18px;
  line-height: 1.6;
  color: var(--bi-neutral-300);
  max-width: 46ch;
}
/* Links im letzten Absatz werden zu Schaltflaechen. */
.mod_article.hero .rte > p:last-of-type:has(a) {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  max-width: none;
}
.mod_article.hero .rte > p:last-of-type:has(a) a {
  display: inline-flex;
  align-items: center;
  font-weight: 500;
  font-size: 15px;
  color: var(--bi-accent);
  border: 1px solid var(--bi-accent);
  border-radius: var(--bi-radius);
  padding: 12px 22px;
}
.mod_article.hero .rte > p:last-of-type:has(a) a:hover { background: rgba(74, 127, 214, 0.12); }
.mod_article.hero .rte > p:last-of-type:has(a) a:nth-child(n+2) { border-color: transparent; }

/* Steht der Hero-Artikel oben, entfaellt der Abstand des Inhaltsbereichs. */
#main .inside:has(> .mod_article.hero:first-of-type) { padding-top: 0; }
/* Der Breadcrumb steht dann ueber dem Hero und braucht eigenen Abstand. */
#main .inside:has(> .mod_article.hero:first-of-type) > .mod_breadcrumb { padding-top: 20px; }

@media (max-width: 900px) {
  .mod_article.hero { padding-top: 96px; padding-bottom: 64px; }
}

/* Platz fuer die "Empfohlen"-Marke wird nur reserviert, wenn im Artikel
   ueberhaupt eine hervorgehobene Karte steht - dann in allen Karten gleich,
   damit die Titel auf einer Linie beginnen. */
.mod_article:has(.plan--rec, .plan-rec) > .plan { padding-top: 60px; }

/* Abstand zwischen aufeinanderfolgenden Artikeln. Eine Regel, eine
   Ausnahme: an den Hero schliesst der naechste Artikel direkt an, damit
   Zahlenband oder Inhalt ohne Fuge folgen. */
#main .inside > .mod_article + .mod_article { margin-top: 72px; }
#main .inside > .mod_article.hero + .mod_article { margin-top: 0; }

/* --- Schwebendes Logo ---------------------------------------------------
   Klasse "brand--float" zusaetzlich am Marken-Link im Kopfbereich:
     <a class="brand brand--float" href="...">
   Das Logo waechst auf 56px und haengt unter die Kopfleiste hinaus. Es sitzt
   auf einer eigenen Flaeche in Grundfarbe, damit die Kante der Kopfleiste
   dahinter sauber durchlaeuft, und tragt einen weichen Akzentschein.
   Die Hoehe der Kopfleiste bleibt unveraendert. */
#header:has(.brand--float),
#header:has(.brand--float) .inside { overflow: visible; }

.brand--float { position: relative; z-index: 2; gap: 16px; }
.brand--float .brand__logo {
  height: 56px;
  margin-bottom: -26px;          /* der Ueberhang unter die Kante */
  transition: transform 0.25s ease;
}
/* Der Schein liegt hinter der Flaeche, nicht auf dem Logo. */
.brand--float::before {
  content: "";
  position: absolute;
  left: -10px;
  top: 50%;
  width: 96px;
  height: 96px;
  margin-top: -34px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(74, 127, 214, 0.28), transparent 68%);
  pointer-events: none;
  z-index: -1;
}
.brand--float:hover .brand__logo { transform: translateY(-2px); }

/* Beim Scrollen zieht sich das Logo zusammen, sobald die Kopfleiste
   kompakt wird - dieselbe Mechanik wie bei der Navigation. */
#header.is-scrolled .brand--float .brand__logo {
  height: 44px;
  margin-bottom: -14px;
}

@media (max-width: 720px) {
  .brand--float .brand__logo { height: 44px; margin-bottom: -16px; }
  .brand--float::before { width: 72px; height: 72px; margin-top: -26px; }
}

/* --- Helle Logofassung --------------------------------------------------
   files/burow/img/logo-hell.svg ist die Wortmarke in Weiss, Seitenverhaeltnis
   3301:904. Das SVG traegt width="100%" im Quelltext, deshalb wird das
   Verhaeltnis hier gesetzt, sonst rechnen manche Browser die Breite falsch. */
.brand__logo { aspect-ratio: 3301 / 904; }

/* Steht die Wortmarke als Bild im Kopf, entfaellt der gesetzte Schriftzug -
   sonst stuende der Name zweimal da. Das Zusatzwort bleibt. */
/* Die Wortmarke traegt Name und Zusatz bereits - der gesetzte Schriftzug
   daneben entfaellt vollstaendig. */
.brand:has(.brand__logo) .brand__name,
.brand:has(.brand__logo) .brand__tag { display: none; }

/* Die schwebende Fassung: das Logo steht frei, ohne Flaeche und ohne
   Rahmen. Der Ueberhang und der weiche Schein dahinter tragen es. */
.brand--float .brand__logo {
  height: 64px;
  margin-bottom: -28px;
  filter: drop-shadow(0 10px 22px rgba(0, 0, 0, 0.55));
}
.brand--float::before {
  left: -16px;
  width: 260px;
  height: 110px;
  margin-top: -40px;
  border-radius: 999px;
  background: radial-gradient(ellipse at center, rgba(74, 127, 214, 0.24), transparent 70%);
}
#header.is-scrolled .brand--float .brand__logo {
  height: 48px;
  margin-bottom: -16px;
}
@media (max-width: 720px) {
  .brand--float .brand__logo { height: 46px; margin-bottom: -16px; }
  .brand--float::before { width: 190px; height: 80px; margin-top: -30px; }
}

/* --- Breadcrumb: nur wo er etwas leistet -------------------------------
   Das Modul steht im Layout und erscheint damit auf jeder Seite. Auf der
   ersten Ebene nennt es nur Wurzel und aktuelle Seite - das weiss der
   Besucher schon, und es draengt sich zwischen Kopf und Bildheader.
   Die Regel blendet es aus, solange es kein drittes Glied hat. */
.mod_breadcrumb:not(:has(li:nth-child(3))) { display: none; }

/* Faellt der Breadcrumb weg, schliesst der Bildheader direkt an den Kopf an. */
#main .inside > .mod_breadcrumb + .mod_article.hero { margin-top: 0; }

/* --- Karten ----------------------------------------------------------
   Text-Element mit Klasse "plan". Ruhige Flaeche, 8px Radius, oben eine
   laufende Nummer in Akzentfarbe, darunter Titel, Text und ein Textlink.
   "plans--hud" am Artikel ist noch erlaubt, aendert aber nichts mehr.
   ======================================================================= */
#container .mod_article { counter-reset: bi-card; }
#container .mod_article > .plan {
  counter-increment: bi-card;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 24px 24px 26px;
  background: var(--bi-surface);
  border: 0;
  border-radius: var(--bi-radius);
  box-shadow: none;
  clip-path: none;
}
#container .mod_article > .plan::before {
  content: counter(bi-card, decimal-leading-zero);
  position: static;
  display: block;
  margin: 0 0 4px;
  padding: 0;
  background: none;
  font-size: 13px;
  letter-spacing: 0.1em;
  color: var(--bi-accent-400);
}
#container .mod_article > .plan > h3,
#container .mod_article > .plan > h2 {
  margin: 0;
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--bi-text);
}
#container .mod_article > .plan > h3::before,
#container .mod_article > .plan > h2::before { content: none; }
#container .mod_article > .plan p,
#container .mod_article > .plan li { font-size: 14.5px; line-height: 1.65; color: var(--bi-neutral-400); }
#container .mod_article > .plan ul { margin: 6px 0 0; padding-top: 0; border-top: 0; }
#container .mod_article > .plan .rte { display: flex; flex-direction: column; gap: 10px; flex: 1; }
/* Der letzte Absatz mit nur einem Link wird ein schlichter Textlink unten. */
#container .mod_article > .plan p:last-child:has(> a:only-child) { margin-top: auto; padding-top: 8px; }
#container .mod_article > .plan p:last-child > a:only-child {
  display: inline-flex;
  width: auto;
  padding: 0;
  border: 0;
  background: none;
  font-weight: 500;
  font-size: 14.5px;
  color: var(--bi-accent-300);
}
#container .mod_article > .plan p:last-child > a:only-child::after { content: "\00a0→"; }
#container .mod_article > .plan p:last-child > a:only-child:hover { color: var(--bi-text); background: none; }
#container .mod_article > .plan--rec,
#container .mod_article > .plan-rec { box-shadow: 0 0 0 1px var(--bi-accent); }

/* Aeltere Regeln (Paketkarten) setzten Linien und Abstaende, die hier
   nicht mehr gelten. */
#container .mod_article > .plan ul,
#container .mod_article > .plan .rte ul { margin: 4px 0 0; padding: 0; border: 0; }
#container .mod_article > .plan li { padding-left: 0; }

/* --- Kopfnavigation: Unterseiten als Ausklappmenue ----------------------
   Die zweite Ebene liegt als Flaeche unter ihrem Eintrag und erscheint bei
   Mauszeiger oder Tastaturfokus. Bewusst mit display statt mit Deckkraft:
   ein verstecktes Menue ist dann wirklich weg und faengt keine Klicks ab. */
/* Contao bzw. ein Basis-Stylesheet setzt overflow: hidden auf das
   Navigationsmodul. Das schnitt das Ausklappmenue unter 26px Hoehe ab. */
#header .mod_navigation,
#header .mod_navigation ul.level_1 { overflow: visible; }
#header .mod_navigation .level_1 > li { position: relative; }
#header .mod_navigation ul.level_2 {
  display: none;
  position: absolute;
  top: 100%;
  left: -18px;
  z-index: 30;
  min-width: 240px;
  margin: 0;
  padding: 10px 0;
  gap: 0;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  background: var(--bi-surface);
  border-radius: var(--bi-radius);
  box-shadow: var(--bi-shadow-lg);
}
#header .mod_navigation .level_1 > li:hover > ul.level_2,
#header .mod_navigation .level_1 > li:focus-within > ul.level_2 { display: flex; }
#header .mod_navigation ul.level_2 li { display: block; }
#header .mod_navigation ul.level_2 a,
#header .mod_navigation ul.level_2 strong {
  display: block;
  padding: 8px 18px;
  font-size: 14px;
  white-space: nowrap;
  border-bottom: 0;
  color: var(--bi-neutral-300);
}
#header .mod_navigation ul.level_2 a:hover {
  color: var(--bi-text);
  background: rgba(74, 127, 214, 0.1);
}
#header .mod_navigation ul.level_2 strong.active,
#header .mod_navigation ul.level_2 .trail { color: var(--bi-text); }
@media (max-width: 900px) {
  #header .mod_navigation .level_1 > li:hover > ul.level_2,
  #header .mod_navigation .level_1 > li:focus-within > ul.level_2 { display: none; }
}

/* --- Karten ueber mehrere Reihen ---------------------------------------
   Nach drei Karten bricht die Reihe um. Ohne Vorgabe setzt das Raster die
   vierte Karte in die erste freie Spur, und das ist der aeussere Rand.
   Jede Karte, die eine neue Reihe beginnt, startet deshalb an der
   Inhaltskante. */
.mod_article > .plan:nth-child(3n + 1 of .plan) { grid-column-start: content-start; }
@media (max-width: 900px) {
  .mod_article > .plan:nth-child(3n + 1 of .plan) { grid-column: content; }
}

/* --- Kopf ueber dem Inhalt --------------------------------------------
   Der Bildheader lag in der Klickebene ueber dem Ausklappmenue: Die Menues
   waren da, aber Maus und Klicks kamen beim Hero an. Der Inhaltsbereich
   bekommt eine eigene, niedrigere Ebene, der Kopf bleibt immer darueber. */
#wrapper > #header,
#header {
  position: sticky;
  top: 0;
  z-index: 1000;
}
#container {
  position: relative;
  z-index: 0;
}

/* --- Footer mit eingefuegtem Artikel -----------------------------------
   Der Fussbereich reiht seine Module nebeneinander (flex). Ein Artikel darin
   wurde dadurch nur so breit wie sein Inhalt, und das Raster fiel auf eine
   Spalte zusammen. Er nimmt jetzt die volle Breite, die Module darunter
   (Navigation, Copyright) bilden die Schlusszeile. */
#footer .inside > .mod_article,
#footer .inside > .mod_html:has(> .mod_article),
#footer .inside > .mod_html:has(.mod_article) { flex: 1 1 100%; min-width: 0; }
#footer .mod_article {
  padding: 72px 0 48px;
  row-gap: 24px;
}
#footer .mod_article > * { margin: 0; }
#footer .mod_article h2 { font-size: clamp(28px, 3vw, 40px); margin-bottom: 14px; }
#footer .mod_article p { color: var(--bi-neutral-300); }
#footer .mod_article strong {
  display: inline-block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bi-neutral-500);
}
#footer .mod_article p + p { margin-top: 16px; }
/* Schlusszeile unter dem Kontakt: Navigation und Copyright, mit Haarlinie. */
#footer .inside > :not(.mod_article):not(:has(.mod_article)) {
  font-size: 14px;
  color: var(--bi-neutral-500);
}
#footer .inside > .mod_article + *,
#footer .inside > .mod_html:has(.mod_article) + * {
  border-top: 1px solid var(--bi-line);
  padding-top: 20px;
  margin-right: auto;
}
@media (max-width: 900px) {
  #footer .mod_article { padding: 48px 0 32px; }
}

/* --- Heller Inhaltsbereich --------------------------------------------
   Kopf, Bildheader und Fuss bleiben dunkel. Der Inhalt dazwischen steht
   auf hellem Grund; Karten, Zahlenband und Monitoring bleiben als dunkle
   Inseln darin. Umgesetzt ueber die Farbvariablen: im Inhaltsbereich
   gelten helle Werte, in den Inseln wieder die dunklen. */
#container {
  --bi-bg: #f4f5f8;
  --bi-surface: #ffffff;
  --bi-text: #161826;
  --bi-line: #e2e4eb;
  --bi-line-strong: #d4d7e1;
  --bi-accent: #2c5fb8;
  --bi-accent-300: #2c5fb8;
  --bi-accent-400: #2c5fb8;
  --bi-neutral-100: #161826;
  --bi-neutral-200: #232532;
  --bi-neutral-300: #3a3d4b;
  --bi-neutral-400: #4f5262;
  --bi-neutral-500: #686c7d;
  --bi-shadow-sm: 0 0 0 1px #e2e4eb;
  --bi-shadow-md: 0 0 0 1px #d4d7e1, 0 8px 24px rgba(22, 24, 38, 0.08);
  background: var(--bi-bg);
  color: var(--bi-text);
}
#container a { color: var(--bi-accent); }
#container a:hover { color: var(--bi-text); }
/* Fotos nicht mehr in den Grund aufhellen: auf Hell wuerden sie verschwinden. */
#container .content-image .image_container,
#container .ce_image .image_container { mix-blend-mode: normal; }
#container .content-image img,
#container .ce_image img { border-radius: var(--bi-radius); }

/* Dunkle Inseln */
#container .mod_article.hero,
#container #main .inside > .mod_article:first-of-type,
#container #main .inside > .mod_breadcrumb,
#container .site-footer,
#container .stats,
#container .bi-mon {
  --bi-bg: #161826;
  --bi-surface: #232532;
  --bi-text: #e9e9ed;
  --bi-line: #2b2e3d;
  --bi-line-strong: #33364a;
  --bi-accent: #4a7fd6;
  --bi-accent-300: #9dbcec;
  --bi-accent-400: #6a99e0;
  --bi-neutral-100: #f3f5fe;
  --bi-neutral-200: #e4e7f5;
  --bi-neutral-300: #cfd3e5;
  --bi-neutral-400: #b2b6ca;
  --bi-neutral-500: #9397ab;
  --bi-shadow-sm: 0 0 0 1px #3f424d;
  --bi-shadow-md: 0 0 0 1px #595d6c, 0 6px 18px rgba(0, 0, 0, 0.55);
  color: var(--bi-text);
}
#container .mod_article.hero { background: #161826; }
#container .mod_article.hero a { color: var(--bi-accent-300); }
#container .mod_article.hero a:hover { color: var(--bi-text); }
/* Innerhalb des Heros bleiben Bilder eingeblendet und ohne Radius. */
#container .mod_article.hero .image_container { mix-blend-mode: normal; }
#container .mod_article.hero img { border-radius: 0; }

/* Luft zwischen hellem Inhalt und Fuss */
#container { padding-bottom: 96px; }
#footer:not(:has(.bi-footer)) { margin-top: 0; }

/* --- Logo im Footer -----------------------------------------------------
   Bild-Element im Footer-Artikel, Klasse "footer-logo". */
#footer .footer-logo { grid-column: content; }
#footer .footer-logo .image_container,
#footer .footer-logo figure { margin: 0; mix-blend-mode: normal; }
#footer .footer-logo img { height: 44px; width: auto; border-radius: 0; }

/* --- Feinschliff heller Bereich ---------------------------------------
   Weniger Kontrast, mehr Luft: Ueberschriften in tiefem Blau statt Schwarz,
   Fliesstext in gedaempftem Grau, Abschnitte im Wechsel Weiss und
   Hellgrau, Karten als weisse Flaechen mit Haarlinie und weichem Schatten. */
#container {
  --bi-bg: #f6f7fb;
  --bi-surface: #ffffff;
  --bi-text: #1b2140;
  --bi-neutral-300: #4a5170;
  --bi-neutral-400: #5d6480;
  --bi-neutral-500: #8a90a8;
  --bi-line: #e7e9f1;
  --bi-line-strong: #dde0ea;
  --bi-accent: #2f66c4;
  --bi-accent-300: #2f66c4;
  --bi-accent-400: #2f66c4;
  --bi-radius-lg: 16px;
}
/* Abschnitte: jeder Artikel ist ein Band ueber die volle Breite. */
#container #main .inside > .mod_article:not(.hero) {
  padding-top: 104px;
  padding-bottom: 104px;
}
#container #main .inside > .mod_article + .mod_article { margin-top: 0; }
#container #main .inside > .mod_article:not(.hero):nth-of-type(even) { background: #ffffff; }
#container #main .inside > .mod_article:not(.hero):has(> .stats) { padding: 0; background: none; }
#container { padding-bottom: 0; }

/* Typografie */
#container h1 {
  font-size: clamp(40px, 5vw, 64px);
  font-weight: 600;
  letter-spacing: -0.032em;
  line-height: 1.04;
  color: var(--bi-text);
}
#container h2 {
  font-size: clamp(30px, 3.4vw, 46px);
  font-weight: 600;
  letter-spacing: -0.028em;
  line-height: 1.08;
  color: var(--bi-text);
}
#container .mod_article:not(.hero) p,
#container .mod_article:not(.hero) li { color: var(--bi-neutral-400); font-size: 17px; line-height: 1.7; }
#container .mod_article:not(.hero) h6 { color: var(--bi-accent); }
#container .mod_article.hero h1 { color: var(--bi-text); }

/* Bilder */
#container .mod_article:not(.hero) img { border-radius: var(--bi-radius-lg); }

/* Karten hell */
#container .mod_article > .plan {
  background: #ffffff;
  border-radius: var(--bi-radius-lg);
  box-shadow: 0 0 0 1px var(--bi-line), 0 1px 2px rgba(27, 33, 64, 0.04), 0 12px 32px -12px rgba(27, 33, 64, 0.12);
  padding: 28px 28px 30px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
#container .mod_article:nth-of-type(even) > .plan { background: var(--bi-bg); box-shadow: 0 0 0 1px var(--bi-line); }
#container .mod_article > .plan:hover {
  transform: translateY(-3px);
  box-shadow: 0 0 0 1px var(--bi-line-strong), 0 2px 4px rgba(27, 33, 64, 0.05), 0 20px 40px -16px rgba(27, 33, 64, 0.2);
}
#container .mod_article > .plan::before { color: var(--bi-accent); }
#container .mod_article > .plan > h3,
#container .mod_article > .plan > h2 { font-size: 19px; font-weight: 600; letter-spacing: -0.01em; color: var(--bi-text); }
#container .mod_article > .plan p,
#container .mod_article > .plan li { font-size: 15px; color: var(--bi-neutral-400); }
#container .mod_article > .plan p:last-child > a:only-child { color: var(--bi-accent); }
#container .mod_article > .plan p:last-child > a:only-child:hover { color: var(--bi-text); }
#container .mod_article > .plan--rec,
#container .mod_article > .plan-rec { box-shadow: 0 0 0 2px var(--bi-accent), 0 12px 32px -12px rgba(47, 102, 196, 0.3); }

@media (max-width: 900px) {
  #container #main .inside > .mod_article:not(.hero) { padding-top: 64px; padding-bottom: 64px; }
}

/* --- Jede Seite beginnt dunkel ----------------------------------------
   Der erste Artikel jeder Seite ist ihr Kopfbereich: dunkel wie der Hero
   der Startseite, mit leichtem Akzentschein. Ein sichtbarer Breadcrumb
   davor gehoert dazu. Danach beginnt der helle Inhalt. */
#container #main > .inside { padding-top: 0; }
#container #main .inside > .mod_breadcrumb {
  /* Ueber die volle Breite; die Innenbreite kommt vom seitlichen Abstand.
     Die allgemeine Modulregel (max-width 1180px) hatte das Band begrenzt
     und den Inhalt zwischen zwei grossen Abstaenden zusammengedrueckt. */
  max-width: none;
  width: auto;
  margin: 0;
  padding: 28px max(32px, calc((100% - (var(--bi-shell) - 64px)) / 2)) 0;
  background: #161826;
}
#container #main .inside > .mod_article:first-of-type:not(.hero) {
  background:
    radial-gradient(60% 90% at 0% 100%, rgba(74, 127, 214, 0.18), transparent 70%),
    #161826;
  padding-top: 96px;
  padding-bottom: 104px;
}
#container #main .inside > .mod_breadcrumb + .mod_article:first-of-type:not(.hero) { padding-top: 56px; }
#container #main .inside > .mod_article:first-of-type h6 { color: var(--bi-accent-300); }
#container #main .inside > .mod_article:first-of-type p { color: var(--bi-neutral-300); }

/* --- Footer-Artikel immer dunkel ---------------------------------------
   Im Footer-Modul: <div class="mod_article site-footer">{{insert_article::site-footer}}</div>
   Die Klasse haelt ihn dunkel, auch wenn das Modul in der Hauptspalte steht. */
.site-footer { background: #1b1d2b; }
#container .site-footer {
  padding-top: 88px;
  padding-bottom: 72px;
  border-top: 1px solid #2b2e3d;
}
.site-footer h2 { color: var(--bi-text); }
.site-footer p { color: var(--bi-neutral-300); }
.site-footer h6 { color: var(--bi-accent-300); }
.site-footer a { color: var(--bi-accent-300); }

/* Footer-Artikel gewinnt gegen den Weiss/Grau-Wechsel der Baender. */
#container #main .inside > .mod_article.site-footer,
#container #main .inside > .mod_article.site-footer:nth-of-type(even),
#container .site-footer { background: #1b1d2b; }

/* Kopf deckend: halbtransparent wirkte er ueber hellem Inhalt grau. */
#header { background: rgba(22, 24, 38, 0.97); }

#container #main .inside > .mod_breadcrumb ul { flex-wrap: wrap; flex-direction: row; }
/* Kopf komplett deckend. Eine aeltere Regel (#header:not(:has(...)), 40 %
   Deckkraft) war spezifischer und hat jede einfache #header-Regel
   ueberstimmt. */
#header,
#header:not(:has(.bi-header)) { background: #161826; backdrop-filter: none; -webkit-backdrop-filter: none; }

/* --- Dunkle Baender im hellen Inhalt -----------------------------------
   Klasse "dunkel" am Artikel (Feld CSS-ID/Klasse des Artikels). Der Artikel
   wird ein dunkles Band mit leichtem Akzentschein; Karten darin werden
   dunkle Flaechen. Sparsam einsetzen: etwa jedes dritte bis vierte Band. */
#container #main .inside > .mod_article.dunkel,
#container #main .inside > .mod_article.dunkel:nth-of-type(even) {
  --bi-bg: #161826;
  --bi-surface: #232532;
  --bi-text: #e9e9ed;
  --bi-line: #2b2e3d;
  --bi-line-strong: #33364a;
  --bi-accent: #4a7fd6;
  --bi-accent-300: #9dbcec;
  --bi-accent-400: #6a99e0;
  --bi-neutral-300: #cfd3e5;
  --bi-neutral-400: #b2b6ca;
  --bi-neutral-500: #9397ab;
  color: var(--bi-text);
  background:
    radial-gradient(55% 80% at 100% 0%, rgba(74, 127, 214, 0.16), transparent 70%),
    #161826;
}
#container .mod_article.dunkel h6,
#container .mod_article.dunkel a { color: var(--bi-accent-300); }
#container .mod_article.dunkel a:hover { color: var(--bi-text); }
#container .mod_article.dunkel > .plan,
#container .mod_article.dunkel:nth-of-type(even) > .plan {
  background: #1f2130;
  box-shadow: 0 0 0 1px #2b2e3d;
}
#container .mod_article.dunkel > .plan:hover { box-shadow: 0 0 0 1px #3a3e55, 0 20px 40px -16px rgba(0, 0, 0, 0.6); }
#container .mod_article.dunkel > .plan > h3,
#container .mod_article.dunkel > .plan > h2 { color: var(--bi-text); }
#container .mod_article.dunkel > .plan p,
#container .mod_article.dunkel > .plan li { color: var(--bi-neutral-400); }
#container .mod_article.dunkel > .plan p:last-child > a:only-child { color: var(--bi-accent-300); }

/* --- Telefonnummer im Kopf -----------------------------------------------
   Eigenes HTML-Modul im Kopfbereich, nach dem Navigationsmenue:
   <a class="header-phone" href="tel:+4943155684845">0431 556 84 84 5</a> */
#header .header-phone {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px;
  border: 1px solid var(--bi-accent);
  border-radius: 999px;
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  color: var(--bi-text);
  transition: background 0.15s ease;
}
#header .header-phone::before {
  content: "";
  width: 15px;
  height: 15px;
  flex: none;
  background: var(--bi-accent-300);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1l-2.3 2.2z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1l-2.3 2.2z'/%3E%3C/svg%3E") center / contain no-repeat;
}
#header .header-phone:hover { background: rgba(74, 127, 214, 0.14); color: var(--bi-text); }
/* Die Nummer steht hinter der Navigation, mit etwas Abstand. */
#header .mod_navigation + .mod_html:has(.header-phone),
#header .mod_html:has(.header-phone) { margin-left: 8px; }
@media (max-width: 720px) {
  #header .header-phone { font-size: 0; gap: 0; padding: 0; width: 44px; height: 44px; justify-content: center; }
  #header .header-phone::before { width: 18px; height: 18px; }
}

/* --- Dunkle Baender: eigener Mittelton ---------------------------------
   Nicht das Schwarzblau von Kopf und Fuss, sondern ein helleres Schiefer-
   blau. Klar dunkler als der helle Grund, aber als eigene Ebene erkennbar. */
#container #main .inside > .mod_article.dunkel,
#container #main .inside > .mod_article.dunkel:nth-of-type(even) {
  --bi-surface: #343f63;
  --bi-line: #3d4870;
  --bi-line-strong: #4a5682;
  --bi-neutral-400: #c3c9de;
  --bi-neutral-500: #a3aac4;
  background:
    radial-gradient(60% 90% at 100% 0%, rgba(120, 160, 230, 0.20), transparent 70%),
    #2a3352;
}
#container .mod_article.dunkel > .plan,
#container .mod_article.dunkel:nth-of-type(even) > .plan {
  background: #313c5e;
  box-shadow: 0 0 0 1px #3d4870;
}
#container .mod_article.dunkel > .plan:hover { box-shadow: 0 0 0 1px #56639a, 0 20px 40px -16px rgba(10, 14, 30, 0.5); }

/* --- Logo ganz in der Kopfleiste ---------------------------------------
   Kein Ueberhang mehr, kein Schein: das Logo sitzt vollstaendig in der
   Leiste und bleibt ueber hellem Inhalt scharf. */
.brand--float::before { content: none; }
.brand--float .brand__logo,
#header.is-scrolled .brand--float .brand__logo {
  height: 44px;
  margin-bottom: 0;
  filter: none;
  transform: none;
}
#header:not(:has(.bi-header)) .inside { padding-top: 10px; padding-bottom: 10px; }
@media (max-width: 720px) {
  .brand--float .brand__logo { height: 36px; }
}

/* Dunkle Baender deutlich heller als Kopf und Fuss: kraeftiges Mittelblau. */
#container #main .inside > .mod_article.dunkel,
#container #main .inside > .mod_article.dunkel:nth-of-type(even) {
  --bi-surface: #3d5a96;
  --bi-line: #4a68a6;
  --bi-neutral-400: #dbe3f4;
  --bi-neutral-500: #b9c6e3;
  --bi-accent-300: #cfe0ff;
  background:
    radial-gradient(60% 90% at 100% 0%, rgba(160, 195, 255, 0.28), transparent 70%),
    #2f4a80;
}
#container .mod_article.dunkel > .plan,
#container .mod_article.dunkel:nth-of-type(even) > .plan {
  background: #375592;
  box-shadow: 0 0 0 1px #4a68a6;
}

/* --- Drittes Band: Grau ------------------------------------------------
   Klasse "grau" am Artikel. Ein spuerbar dunkleres Hellgrau zwischen Weiss
   und Blau, Karten darin bleiben weiss. Rhythmus etwa:
   Weiss – Grau – Weiss – Blau – Grau … */
#container #main .inside > .mod_article.grau,
#container #main .inside > .mod_article.grau:nth-of-type(even) {
  background: #e6e9f1;
  --bi-line: #d6dae6;
}
#container .mod_article.grau > .plan,
#container .mod_article.grau:nth-of-type(even) > .plan {
  background: #ffffff;
  box-shadow: 0 0 0 1px #d6dae6, 0 12px 32px -14px rgba(27, 33, 64, 0.18);
}

/* =========================================================================
   2026-Feinschliff
   ========================================================================= */

/* 1. Geteilter Abschnitt: Ueberschrift links, Text rechts.
   Automatisch fuer jeden Artikel aus "Kicker (H6) + ein Text-Element",
   ausser dem Seitenkopf. Manuell auch mit Klasse "split" am Artikel. */
#container #main .inside > .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child),
#container #main .inside > .mod_article.split {
  row-gap: 0;
  align-items: start;
}
#container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-text,
#container .mod_article.split > .content-text { display: contents; }
#container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-headline,
#container .mod_article.split > .content-headline { grid-column: content-start / span 3; grid-row: 1; margin: 0 0 18px; }
#container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-text > :is(h2, h3),
#container .mod_article.split > .content-text > :is(h2, h3) {
  grid-column: content-start / span 3;
  grid-row: 2;
  margin: 0;
  padding-right: 32px;
  font-size: clamp(36px, 4.4vw, 64px);
  font-weight: 700;
  letter-spacing: -0.045em;
  line-height: 1.02;
  position: sticky;
  top: 120px;
}
#container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-text > .rte,
#container .mod_article.split > .content-text > .rte {
  grid-column: span 3 / content-end;
  grid-row: 1 / span 3;
  max-width: none;
}
#container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-text > .rte p + p,
#container .mod_article.split > .content-text > .rte p + p { margin-top: 22px; }
@media (max-width: 900px) {
  #container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-text > *,
  #container .mod_article.split > .content-text > * { grid-column: content !important; grid-row: auto !important; position: static !important; padding-right: 0 !important; }
  #container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-text > :is(h2, h3) { margin-bottom: 24px; }
}

/* 2. Display-Typografie: alle Abschnittsueberschriften kraeftiger und enger. */
#container h1 { font-weight: 700; letter-spacing: -0.045em; line-height: 1; }
#container h2 { font-weight: 700; letter-spacing: -0.04em; line-height: 1.04; }
/* Kicker ohne Strich, dafuer kraeftiger. */
#container .mod_article h6,
#container .mod_article .content-headline h6 { font-weight: 600; letter-spacing: 0.16em; }
#container .mod_article > .content-headline:has(> h6)::before,
#container .mod_article h6::before { display: none; }

/* 4. Sanftes Einblenden beim Scrollen, ohne JavaScript.
   Browser ohne Unterstuetzung zeigen alles sofort. */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    #container .mod_article:not(:first-of-type) > *,
    #container .mod_article:not(:first-of-type) > .content-text > * {
      animation: bi-rise linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 40%;
    }
    @keyframes bi-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
  }
}

/* --- Fernwartung im Kopf ------------------------------------------------
   Gefuellter Knopf in Akzentfarbe, damit er sich klar vom umrandeten
   Telefonknopf abhebt. Im selben HTML-Modul wie die Telefonnummer:
   <a class="header-remote" href="files/Burow IT/Download/Fernwartung.exe" download>Fernwartung</a> */
#header .mod_html:has(.header-phone, .header-remote) { display: flex; align-items: center; gap: 10px; }
#header .header-remote {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 999px;
  background: linear-gradient(135deg, #4a7fd6, #2f5fb8);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.08) inset, 0 6px 18px -6px rgba(74, 127, 214, 0.7);
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  color: #ffffff;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
#header .header-remote::before {
  content: "";
  width: 15px;
  height: 15px;
  flex: none;
  background: #ffffff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12M7 10l5 5 5-5M5 21h14'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12M7 10l5 5 5-5M5 21h14'/%3E%3C/svg%3E") center / contain no-repeat;
}
#header .header-remote:hover {
  color: #ffffff;
  transform: translateY(-1px);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12) inset, 0 10px 24px -6px rgba(74, 127, 214, 0.9);
}
@media (max-width: 720px) {
  #header .header-remote { font-size: 0; gap: 0; padding: 0; width: 44px; height: 44px; justify-content: center; }
  #header .header-remote::before { width: 18px; height: 18px; }
}

/* --- Eigene Handschrift fuer den geteilten Abschnitt --------------------
   Bildsprache aus dem Monitoring: Der Vorspann wird ein Status-Chip mit
   pulsierendem Punkt, eine Fortschrittslinie zwischen Ueberschrift und
   Text fuellt sich beim Lesen, der erste Absatz ist ein grosser Einstieg. */
#container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-headline > h6,
#container .mod_article.split > .content-headline > h6 {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 14px 7px 12px;
  border: 1px solid var(--bi-line-strong);
  border-radius: 999px;
  font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bi-text);
  background: color-mix(in srgb, var(--bi-surface) 70%, transparent);
}
#container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-headline > h6::after,
#container .mod_article.split > .content-headline > h6::after { content: none; }
#container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-headline > h6::before,
#container .mod_article.split > .content-headline > h6::before {
  content: "";
  display: block;
  order: -1;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #3fbf7f;
  box-shadow: 0 0 0 0 rgba(63, 191, 127, 0.5);
  animation: bi-chip 2.4s ease-out infinite;
}
@keyframes bi-chip { 0% { box-shadow: 0 0 0 0 rgba(63, 191, 127, 0.55); } 70%, 100% { box-shadow: 0 0 0 9px rgba(63, 191, 127, 0); } }

/* Fortschrittslinie links vom Text */
#container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-text > .rte,
#container .mod_article.split > .content-text > .rte {
  position: relative;
  padding-left: 40px;
}
#container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-text > .rte::before,
#container .mod_article.split > .content-text > .rte::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  bottom: 6px;
  width: 2px;
  border-radius: 2px;
  background: linear-gradient(var(--bi-accent), var(--bi-accent)) 0 0 / 100% 0% no-repeat, var(--bi-line);
}
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    #container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-text > .rte::before,
    #container .mod_article.split > .content-text > .rte::before {
      animation: bi-fill linear both;
      animation-timeline: view();
      animation-range: cover 15% cover 70%;
    }
    @keyframes bi-fill { to { background-size: 100% 100%, auto; } }
  }
}
@supports not (animation-timeline: view()) {
  #container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-text > .rte::before,
  #container .mod_article.split > .content-text > .rte::before { background-size: 100% 35%, auto; }
}

/* Erster Absatz als Einstieg */
#container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-text > .rte > p:first-child,
#container .mod_article.split > .content-text > .rte > p:first-child {
  font-size: clamp(19px, 1.6vw, 23px);
  line-height: 1.55;
  letter-spacing: -0.01em;
  color: var(--bi-text);
}
@media (max-width: 900px) {
  #container .mod_article:not(:first-of-type):has(> .content-headline:first-child + .content-text:last-child) > .content-text > .rte,
  #container .mod_article.split > .content-text > .rte { padding-left: 22px; }
}

/* --- Grosses Menue (Mega-Menue) ----------------------------------------
   Die neue Struktur hat drei Ebenen. Die dritte Ebene lag bisher ungestaltet
   im Ausklappmenue. Jetzt wird jede Gruppe (IT-Betreuung, IT-Sicherheit …)
   eine Spalte mit ihren Themen darunter; Einzelseiten ohne Unterthemen
   stehen als eigene Spalte am Ende. */
#header .mod_navigation .level_1 > li:hover > ul.level_2,
#header .mod_navigation .level_1 > li:focus-within > ul.level_2 {
  display: grid;
}
#header .mod_navigation ul.level_2 {
  grid-template-columns: repeat(3, minmax(190px, 1fr));
  gap: 22px 36px;
  width: max-content;
  max-width: min(820px, calc(100vw - 48px));
  left: -28px;
  padding: 26px 30px 28px;
  border-radius: 14px;
  background: #1f2232;
  box-shadow: 0 0 0 1px #2e3246, 0 24px 60px -12px rgba(0, 0, 0, 0.6);
}
#header .mod_navigation ul.level_2 > li { display: flex; flex-direction: column; min-width: 0; }
#header .mod_navigation ul.level_2 > li.submenu { order: -1; }
#header .mod_navigation ul.level_2 > li > a,
#header .mod_navigation ul.level_2 > li > strong {
  padding: 0 0 8px;
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 600;
  color: var(--bi-text);
  border-bottom: 1px solid #2e3246;
  background: none;
}
#header .mod_navigation ul.level_2 > li > a:hover { color: var(--bi-accent-300); background: none; }
/* Einzelseiten ohne Unterthemen: als schlichte Liste in der letzten Spalte */
#header .mod_navigation ul.level_2 > li:not(.submenu) > a,
#header .mod_navigation ul.level_2 > li:not(.submenu) > strong {
  border-bottom: 0;
  margin: 0;
  padding: 6px 0;
}
#header .mod_navigation ul.level_3 {
  position: static;
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
  background: none;
  box-shadow: none;
  border: 0;
}
#header .mod_navigation ul.level_3 li { display: block; }
#header .mod_navigation ul.level_3 a,
#header .mod_navigation ul.level_3 strong {
  display: block;
  padding: 6px 0;
  font-size: 14px;
  font-weight: 400;
  color: var(--bi-neutral-400);
  border: 0;
  background: none;
  white-space: nowrap;
}
#header .mod_navigation ul.level_3 a:hover { color: var(--bi-text); background: none; }
#header .mod_navigation ul.level_3 strong.active { color: var(--bi-accent-300); }
/* Privatkunden hat nur drei Einzelseiten: schmale Liste statt Raster. */
#header .mod_navigation ul.level_2:not(:has(> li.submenu)) {
  grid-template-columns: 1fr;
  gap: 0;
  min-width: 240px;
}

/* --- Mobile Navigation ------------------------------------------------- */
.nav-toggle { display: none; }
@media (max-width: 900px) {
  /* Fernwartung ist auf dem Handy nicht nutzbar. */
  #header .header-remote { display: none; }

  .nav-toggle {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 0 11px;
    margin-left: 4px;
    border: 1px solid #2e3246;
    border-radius: 12px;
    background: #1f2232;
    cursor: pointer;
    order: 10;
  }
  .nav-toggle span {
    display: block;
    height: 2px;
    border-radius: 2px;
    background: var(--bi-text);
    transition: transform 0.2s ease, opacity 0.2s ease;
  }
  #header.nav-open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  #header.nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
  #header.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  #header .inside { flex-wrap: nowrap; }
  #header .mod_html:has(.header-phone) { margin-left: auto; }

  /* Navigation als Vollbild-Panel unter dem Kopf */
  #header .mod_navigation {
    position: fixed;
    inset: var(--bi-header-h, 64px) 0 0 0;
    z-index: 999;
    margin: 0;
    padding: 24px 24px 48px;
    overflow-y: auto;
    background: #161826;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
  }
  #header.nav-open .mod_navigation {
    visibility: visible;
    opacity: 1;
    transform: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
  }
  html.nav-lock, html.nav-lock body { overflow: hidden; }

  #header .mod_navigation ul.level_1 { flex-direction: column; align-items: stretch; gap: 0; }
  #header .mod_navigation .level_1 > li { border-bottom: 1px solid #2b2e3d; padding: 6px 0; }
  #header .mod_navigation .level_1 > li > a,
  #header .mod_navigation .level_1 > li > strong {
    display: block;
    padding: 12px 0;
    font-size: 20px;
    font-weight: 600;
    border: 0;
  }
  /* Unterebenen immer offen, eingerueckt, ohne Flaeche */
  #header .mod_navigation ul.level_2,
  #header .mod_navigation .level_1 > li:hover > ul.level_2,
  #header .mod_navigation .level_1 > li:focus-within > ul.level_2 {
    display: flex !important;
    flex-direction: column;
    position: static;
    width: auto;
    max-width: none;
    min-width: 0;
    gap: 0;
    padding: 0 0 10px;
    background: none;
    box-shadow: none;
    border-radius: 0;
  }
  #header .mod_navigation ul.level_2 > li > a,
  #header .mod_navigation ul.level_2 > li > strong {
    padding: 10px 0 6px;
    margin: 0;
    font-size: 15px;
    border: 0;
  }
  #header .mod_navigation ul.level_3 { padding: 0 0 6px 14px; border-left: 1px solid #2b2e3d; }
  #header .mod_navigation ul.level_3 a,
  #header .mod_navigation ul.level_3 strong { padding: 7px 0; font-size: 15px; white-space: normal; }
}

/* Mega-Menue: Unterpunkte linksbuendig (die allgemeine Navigationsregel
   zentrierte sie), Einzelseiten mit Pfeil als direkte Links. */
#header .mod_navigation ul.level_2,
#header .mod_navigation ul.level_3 { align-items: stretch; text-align: left; justify-items: start; }
#header .mod_navigation ul.level_3 li { text-align: left; }
#header .mod_navigation ul.level_2 > li:not(.submenu) > a::after { content: "\00a0→"; color: var(--bi-accent-300); }
@media (min-width: 901px) {
  #header .mod_navigation ul.level_2 > li:not(.submenu) > a,
  #header .mod_navigation ul.level_2 > li:not(.submenu) > strong {
    padding: 0 0 8px;
    margin-bottom: 4px;
    border-bottom: 1px solid #2e3246;
  }
}

/* --- Blaues Band mit Hintergrundbild ----------------------------------
   Im Artikel mit Klasse "dunkel" ein Bild-Element mit Klasse "bg" anlegen
   (oder beim vorhandenen Bild w-1-2 durch bg ersetzen). Das Foto liegt
   dann randlos hinter dem Band, in Blau getoent; der Text steht links. */
#container #main .inside > .mod_article.dunkel:has(> .bg) {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding-top: 140px;
  padding-bottom: 140px;
}
#container .mod_article.dunkel > .bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  margin: 0;
  grid-column: auto;
  grid-row: auto;
}
#container .mod_article.dunkel > .bg figure,
#container .mod_article.dunkel > .bg .image_container { margin: 0; height: 100%; mix-blend-mode: normal; }
#container .mod_article.dunkel > .bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  filter: grayscale(1) contrast(1.1);
  opacity: 0.55;
}
#container #main .inside > .mod_article.dunkel:has(> .bg)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, #22396b 0%, rgba(34, 57, 107, 0.92) 40%, rgba(47, 74, 128, 0.55) 75%, rgba(47, 74, 128, 0.35) 100%),
    radial-gradient(50% 80% at 85% 20%, rgba(160, 195, 255, 0.25), transparent 70%);
  mix-blend-mode: normal;
}
/* Text bekommt die linke Haelfte, auch wenn er keine Breitenklasse hat. */
#container .mod_article.dunkel:has(> .bg) > :not(.bg) { grid-column: content-start / span 3; }
@media (max-width: 900px) {
  #container .mod_article.dunkel:has(> .bg) > :not(.bg) { grid-column: content; }
  #container #main .inside > .mod_article.dunkel:has(> .bg)::after { background: rgba(34, 57, 107, 0.88); }
}

/* Haarlinie oben in den Baendern entfernt: Die Baender trennen sich bereits
   durch ihren Farbwechsel, die Linie wirkte darunter wie ein Fehler. */


/* =========================================================================
   Mehr Leben: vier Stilmittel aus den Trends 2026
   ========================================================================= */

/* 1. Hervorgehobene Woerter in Ueberschriften mit Farbverlauf.
   Im Editor ein Wort der Ueberschrift kursiv setzen (Strg+I). Wirkt in
   Ueberschrift-Elementen und in Ueberschriften im Text. */
#container :is(h1, h2) em,
#container :is(h1, h2) i {
  font-style: normal;
  background: linear-gradient(100deg, #2f66c4 0%, #4a9be8 45%, #3fbf9f 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
#container :is(.mod_article.hero, .mod_article:first-of-type, .dunkel, .site-footer) :is(h1, h2) :is(em, i) {
  background-image: linear-gradient(100deg, #8fb8ff 0%, #6fd6ff 50%, #7ee8c0 100%);
}

/* 2. Bewegtes Licht ("Aurora") in Hero, Seitenkopf und blauen Baendern:
   zwei weiche Lichtflecken, die langsam wandern. */
@media (prefers-reduced-motion: no-preference) {
  #container .mod_article.hero::after,
  #container #main .inside > .mod_article:first-of-type:not(.hero)::after,
  #container #main .inside > .mod_article.dunkel:not(:has(> .bg))::after {
    content: "";
    position: absolute;
    inset: -20%;
    z-index: 0;
    pointer-events: none;
    background:
      radial-gradient(28% 34% at 20% 30%, rgba(74, 127, 214, 0.28), transparent 70%),
      radial-gradient(24% 30% at 80% 70%, rgba(63, 191, 159, 0.16), transparent 70%);
    filter: blur(20px);
    animation: bi-aurora 22s ease-in-out infinite alternate;
  }
  #container #main .inside > .mod_article:first-of-type:not(.hero),
  #container #main .inside > .mod_article.dunkel:not(:has(> .bg)) { position: relative; overflow: hidden; isolation: isolate; }
  #container #main .inside > .mod_article:first-of-type:not(.hero) > *,
  #container #main .inside > .mod_article.dunkel:not(:has(> .bg)) > * { position: relative; z-index: 1; }
  @keyframes bi-aurora {
    0%   { transform: translate3d(0, 0, 0) scale(1); }
    50%  { transform: translate3d(6%, -4%, 0) scale(1.08); }
    100% { transform: translate3d(-5%, 5%, 0) scale(1.02); }
  }
}

/* 3. Laufband. Text-Element mit Klasse "laufband", Inhalt eine einfache
   Aufzaehlung (z.B. Partner). Das Skript verdoppelt die Liste, damit das
   Band nahtlos laeuft; beim Darueberfahren haelt es an. */
#container .mod_article > .laufband { grid-column: full; overflow: hidden; padding: 8px 0; mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
#container .laufband ul {
  display: flex;
  gap: 14px;
  width: max-content;
  margin: 0;
  padding: 0;
  list-style: none;
  animation: bi-marquee 38s linear infinite;
}
#container .laufband:hover ul { animation-play-state: paused; }
#container .laufband li {
  flex: none;
  padding: 14px 24px;
  border-radius: 999px;
  border: 1px solid var(--bi-line-strong);
  background: var(--bi-surface);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--bi-text);
  white-space: nowrap;
}
#container .laufband li::before { content: none; }
@keyframes bi-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { #container .laufband ul { animation: none; flex-wrap: wrap; width: auto; } }

/* 4. Bento-Raster. Klasse "bento" am Artikel mit Karten (plan): die erste
   Karte wird gross (zwei Drittel, zwei Reihen hoch), die anderen fuellen auf. */
@media (min-width: 901px) {
  #container .mod_article.bento > .plan:nth-child(1 of .plan) {
    grid-column: content-start / span 4;
    grid-row: span 2;
    padding: 40px;
    background: linear-gradient(160deg, #ffffff 40%, #eaf1fd 100%);
  }
  #container .mod_article.bento > .plan:nth-child(1 of .plan) > h3 { font-size: clamp(24px, 2.4vw, 32px); }
  #container .mod_article.bento > .plan:nth-child(1 of .plan) p { font-size: 17px; }
  #container .mod_article.bento > .plan:not(:nth-child(1 of .plan)) { grid-column: span 2; }
  #container .mod_article.bento > .plan:nth-child(3n + 1 of .plan) { grid-column-start: auto; }
  #container .mod_article.bento > .plan:nth-child(4 of .plan) { grid-column-start: content-start; }
}

/* Haarlinie wirklich entfernen: die urspruengliche Regel war spezifischer. */
#container #main .inside > .mod_article:not(:first-of-type):not(.dunkel):not(.hero):not(:has(> .stats))::before { content: none !important; display: none !important; }

/* Listen: Haekchen in Akzentfarbe statt Gedankenstrich. */
#container .mod_article .rte ul:not(.level_1):not(.level_2):not(.level_3) > li,
#container .mod_article > .content-text ul > li { position: relative; padding-left: 30px; list-style: none; }
#container .mod_article .rte ul > li::before,
#container .mod_article > .content-text ul > li::before {
  content: "" !important;
  position: absolute;
  left: 0;
  top: 0.38em;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--bi-accent) 14%, transparent);
  -webkit-mask: none;
  mask: none;
}
#container .mod_article .rte ul > li::after,
#container .mod_article > .content-text ul > li::after {
  content: "";
  position: absolute;
  left: 5px;
  top: calc(0.38em + 5px);
  width: 8px;
  height: 5px;
  border-left: 2px solid var(--bi-accent);
  border-bottom: 2px solid var(--bi-accent);
  transform: rotate(-45deg);
}
#container .laufband li::after { content: none; }
#container .laufband li { padding-left: 24px; }

/* =========================================================================
   Mutiger: groessere Typo, Bildbaender, Fotokarten, Hero mit Video
   ========================================================================= */

/* Riesige Hero-Ueberschrift */
#container .mod_article.hero h1,
#container #main .inside > .mod_article:first-of-type h1 {
  font-size: clamp(46px, 7.2vw, 108px);
  font-weight: 800;
  letter-spacing: -0.055em;
  line-height: 0.95;
  text-wrap: balance;
}

/* Bildband: Artikel mit Klasse "bild", darin ein Bild-Element und
   optional ein Text-Element. Das Foto laeuft randlos, 70 % der Fensterhoehe,
   der Text liegt unten links auf einem Verlauf. */
#container #main .inside > .mod_article.bild {
  position: relative;
  min-height: 70vh;
  padding: 0;
  overflow: hidden;
  isolation: isolate;
  align-content: end;
  background: #161826;
  --bi-text: #ffffff;
  --bi-neutral-400: #e3e7f3;
  --bi-accent: #8fb8ff;
}
#container .mod_article.bild > .content-image {
  position: absolute; inset: 0; z-index: -2; margin: 0; grid-column: auto;
}
#container .mod_article.bild > .content-image :is(figure, .image_container) { height: 100%; margin: 0; mix-blend-mode: normal; }
#container .mod_article.bild > .content-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transform: scale(1.04); transition: transform 1.2s ease; }
#container .mod_article.bild:hover > .content-image img { transform: scale(1); }
#container #main .inside > .mod_article.bild::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(0deg, rgba(14, 18, 36, 0.92) 0%, rgba(14, 18, 36, 0.4) 45%, transparent 75%);
}
#container .mod_article.bild > .content-text { grid-column: content-start / span 4; padding: 0 0 88px; }
#container .mod_article.bild h2 { font-size: clamp(36px, 5vw, 76px); font-weight: 800; color: #fff; }

/* Fotokarten: eine Karte mit Bild zeigt es randlos oben. */
#container .mod_article > .plan:has(img) { padding-top: 0; overflow: hidden; }
#container .mod_article > .plan:has(img) :is(figure, .image_container) { margin: 0 -28px 18px; mix-blend-mode: normal; }
#container .mod_article > .plan:has(img) img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0; transition: transform 0.5s ease; }
#container .mod_article > .plan:has(img):hover img { transform: scale(1.04); }

/* Hero mit Video: Video-Element mit Klasse "bg" statt Bild. */
.mod_article.hero > .bg video,
.mod_article.hero > .content-player.bg video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0; opacity: 0.5; }
.mod_article.hero > .content-player.bg { position: absolute; inset: 0; z-index: 0; margin: 0; }

/* Karten mit Neigung zur Maus und Lichtkante */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  #container .mod_article > .plan { transform-style: preserve-3d; will-change: transform; }
  #container .mod_article > .plan::after {
    content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
    background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(74, 127, 214, 0.14), transparent 45%);
    opacity: 0; transition: opacity 0.3s ease;
  }
  #container .mod_article > .plan:hover::after { opacity: 1; }
}

/* Hero-Ueberschrift: gross, aber passend zur halben Spalte. */
#container .mod_article.hero h1,
#container #main .inside > .mod_article:first-of-type h1 {
  font-size: clamp(40px, 4.6vw, 72px);
  font-weight: 750;
  letter-spacing: -0.045em;
  line-height: 1.02;
  hyphens: manual;
}

/* Vergleichstabelle */
#container .mod_article > .content-table:not(.stats) table { width: 100%; border-collapse: collapse; font-size: 16px; background: var(--bi-surface); border-radius: 16px; overflow: hidden; box-shadow: 0 0 0 1px var(--bi-line); }
#container .mod_article > .content-table:not(.stats) th,
#container .mod_article > .content-table:not(.stats) td { padding: 16px 22px; text-align: left; border-bottom: 1px solid var(--bi-line); color: var(--bi-neutral-400); }
#container .mod_article > .content-table:not(.stats) thead th { font-weight: 600; color: var(--bi-text); background: color-mix(in srgb, var(--bi-accent) 8%, var(--bi-surface)); }
#container .mod_article > .content-table:not(.stats) td:first-child { font-weight: 600; color: var(--bi-text); }
#container .mod_article > .content-table:not(.stats) td:last-child { color: var(--bi-accent); font-weight: 600; }
#container .mod_article > .content-table:not(.stats) tr:last-child td { border-bottom: 0; }

/* --- Footer: Logo und Rechtliches ------------------------------------- */
.site-footer > .footer-logo { grid-column: content; margin: 0 0 8px; }
.site-footer > .footer-logo img { height: 44px; width: auto; border-radius: 0; }
.site-footer > .footer-legal {
  grid-column: content;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
  margin-top: 40px;
  padding-top: 22px;
  border-top: 1px solid #2b2e3d;
  font-size: 14px;
  color: var(--bi-neutral-500);
}
.site-footer > .footer-legal a { color: var(--bi-neutral-300); }
.site-footer > .footer-legal a:hover { color: var(--bi-text); }
.site-footer > .footer-legal span { margin-left: auto; }
@media (max-width: 720px) { .site-footer > .footer-legal span { margin-left: 0; width: 100%; } }

/* --- Datenstrom ---------------------------------------------------------
   Klasse "datenstrom" am Artikel (Seitenkopf oder Hero). burow.js fuegt die
   Leitungen ein; ohne JavaScript bleibt der Kopf einfach ruhig. */
.mod_article.datenstrom { position: relative; overflow: hidden; isolation: isolate; }
.mod_article.datenstrom > :not(.bi-stream) { position: relative; z-index: 2; }
.bi-stream { position: absolute; inset: 0; z-index: 0; pointer-events: none; perspective: 600px; }
.bi-stream__plane {
  position: absolute;
  inset: -10% -10% -10% 38%;
  transform: rotateY(-28deg) rotateX(8deg);
  transform-origin: left center;
}
.bi-stream__line {
  position: absolute;
  left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, #2e3d63 20%, #2e3d63 80%, transparent);
}
.bi-stream__pulse {
  position: absolute;
  top: -1px;
  left: -8%;
  width: 90px;
  height: 3px;
  border-radius: 3px;
  background: linear-gradient(90deg, transparent, #9dbcec);
  box-shadow: 0 0 12px #6a99e0;
  animation: bi-run var(--d, 3s) linear var(--w, 0s) infinite;
}
.bi-stream__line--ok .bi-stream__pulse { background: linear-gradient(90deg, transparent, #3fbf7f); box-shadow: 0 0 12px #3fbf7f; }
.bi-stream__glow {
  position: absolute;
  right: -10%; top: -20%;
  width: 60%; height: 90%;
  background: radial-gradient(closest-side, rgba(74, 127, 214, 0.25), transparent);
  filter: blur(10px);
  animation: bi-aur 12s ease-in-out infinite alternate;
}
/* Text links lesbar halten */
.bi-stream::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #161826 0%, rgba(22, 24, 38, 0.85) 38%, rgba(22, 24, 38, 0) 70%);
}
@keyframes bi-run { from { left: -8%; } to { left: 108%; } }
@keyframes bi-aur { from { transform: translate(0, 0) scale(1); } to { transform: translate(8%, -6%) scale(1.1); } }
@media (max-width: 900px) {
  .bi-stream__plane { inset: 30% -20% -10% 10%; opacity: 0.6; }
  .bi-stream::after { background: linear-gradient(180deg, #161826 0%, rgba(22, 24, 38, 0.8) 55%, rgba(22, 24, 38, 0.4) 100%); }
}
@media (prefers-reduced-motion: reduce) {
  .bi-stream__pulse, .bi-stream__glow { animation: none; }
  .bi-stream__pulse { left: 40%; }
}

/* --- Themen-Animationen: Netzwerk (1a) und Scan (1b) -------------------
   Gleiche Mechanik wie der Datenstrom: Klasse am Artikel, burow.js setzt
   sie nach Seitenadresse und fuegt die Elemente ein. */
.mod_article.netzwerk-anim,
.mod_article.scan { position: relative; overflow: hidden; isolation: isolate; }
.mod_article.netzwerk-anim > :not(.bi-anim),
.mod_article.scan > :not(.bi-anim) { position: relative; z-index: 2; }
.bi-anim { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.bi-anim::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #161826 0%, rgba(22, 24, 38, 0.85) 38%, rgba(22, 24, 38, 0) 70%);
}
/* 1a Netzwerk */
.bi-net svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.bi-net path { stroke: #33507f; stroke-width: 1; fill: none; }
.bi-net .bi-net__dot { fill: #9dbcec; }
.bi-net .bi-net__ring { fill: none; stroke: #6a99e0; animation: bi-pulse 2.8s ease-out infinite; transform-box: fill-box; transform-origin: center; }
.bi-net .bi-net__ok .bi-net__dot { fill: #3fbf7f; }
.bi-net .bi-net__ok .bi-net__ring { stroke: #3fbf7f; }
.bi-net .bi-net__packet { fill: #bcd4ff; }
@keyframes bi-pulse { from { transform: scale(1); opacity: 0.9; } to { transform: scale(5); opacity: 0; } }
/* 1b Scan */
.bi-scan__grid {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle, #3a4466 1px, transparent 1.4px);
  background-size: 22px 22px;
  -webkit-mask-image: linear-gradient(90deg, transparent 30%, #000 70%);
          mask-image: linear-gradient(90deg, transparent 30%, #000 70%);
}
.bi-scan__cell {
  position: absolute; width: 20px; height: 20px; border-radius: 4px;
  background: rgba(106, 153, 224, 0.3); box-shadow: 0 0 18px rgba(106, 153, 224, 0.4);
  opacity: 0; animation: bi-cell 6s ease-in-out infinite;
}
.bi-scan__cell--ok { background: rgba(63, 191, 127, 0.35); box-shadow: 0 0 18px rgba(63, 191, 127, 0.5); }
.bi-scan__beam {
  position: absolute; top: 0; bottom: 0; left: 0; width: 40%;
  background: linear-gradient(90deg, transparent, rgba(106, 153, 224, 0.1) 70%, rgba(157, 188, 236, 0.35) 98%, transparent);
  animation: bi-scan 5s cubic-bezier(.5, 0, .5, 1) infinite;
}
@keyframes bi-cell { 0%, 100% { opacity: 0; } 8%, 22% { opacity: 1; } 40% { opacity: 0; } }
@keyframes bi-scan { from { transform: translateX(-30%); } to { transform: translateX(260%); } }
@media (max-width: 900px) {
  .bi-anim::after { background: linear-gradient(180deg, #161826 0%, rgba(22, 24, 38, 0.8) 55%, rgba(22, 24, 38, 0.4) 100%); }
}
@media (prefers-reduced-motion: reduce) {
  .bi-net__ring, .bi-scan__cell, .bi-scan__beam, .bi-net animateMotion { animation: none; }
  .bi-scan__beam { display: none; }
  .bi-scan__cell { opacity: 0.6; }
}

/* Fix: die Aurora-Regel fuer Seitenkoepfe setzt alle Kinder auf
   position: relative. Dadurch hatte die Animationsebene keine Hoehe und
   alle Leitungen lagen oben in einer Linie. */
#container #main .inside > .mod_article > .bi-stream,
#container #main .inside > .mod_article > .bi-anim {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  width: auto;
  height: auto;
  margin: 0;
  grid-column: auto;
  grid-row: auto;
  animation: none;
}

/* =========================================================================
   Stilmittel 2026 (Auswahl 1, 2, 3, 4, 5, 7, 8)
   ========================================================================= */
:root { --bi-mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", Menlo, Consolas, monospace; }

/* 1. Ueberschriften werden beim Hereinscrollen kraeftiger (variable Inter). */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    #container #main .inside > .mod_article:not(:first-of-type) > .content-headline > h2,
    #container #main .inside > .mod_article:not(:first-of-type) > .content-text > h2 {
      animation: bi-weight linear both;
      animation-timeline: view();
      animation-range: entry 0% cover 40%;
    }
    @keyframes bi-weight {
      from { font-weight: 250; letter-spacing: 0; opacity: 0.35; }
      to   { font-weight: 750; letter-spacing: -0.04em; opacity: 1; }
    }
  }
}

/* 2. Monospace fuer Daten: Vorspann, Zahlen, Nummern, Telefon. */
#container .mod_article h6,
#container .mod_article .content-headline > h6,
#container .stats tr:first-child td,
#container .mod_article > .plan::before,
.site-footer .rte strong,
#header .header-phone {
  font-family: var(--bi-mono);
  letter-spacing: 0.04em;
}
#container .stats tr:first-child td { letter-spacing: -0.02em; }

/* 3. Leichte Tiefe: Karten im hellen Bereich und die Knoepfe im Hero. */
#container #main .inside > .mod_article:not(.dunkel):not(.hero) > .plan {
  background: linear-gradient(180deg, #ffffff, #f3f5fa);
  box-shadow: inset 0 1px 0 #ffffff, 0 1px 2px rgba(27, 33, 64, 0.08), 0 12px 28px -12px rgba(27, 33, 64, 0.25);
  border-radius: 16px;
}
#container .mod_article.hero p:last-of-type a:first-child {
  border: 0;
  color: #ffffff;
  border-radius: 12px;
  background: linear-gradient(180deg, #5a8fe6, #2f5fb8);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 1px 0 #1f4590, 0 8px 18px -6px rgba(47, 95, 184, 0.6);
  transition: transform 0.08s ease, box-shadow 0.08s ease;
}
#container .mod_article.hero p:last-of-type a:first-child:hover { color: #ffffff; background: linear-gradient(180deg, #6a9bec, #3566c2); }
#container .mod_article.hero p:last-of-type a:first-child:active {
  transform: translateY(2px);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25);
}

/* 4. Ueberlappen: Klasse "ueberlappen" am Artikel. Sein Bild ragt in den
   naechsten Artikel hinein. */
#container #main .inside > .mod_article.ueberlappen { overflow: visible !important; z-index: 3; }
#container #main .inside > .mod_article.ueberlappen::after { content: none !important; }
#container .mod_article.ueberlappen > .content-image {
  position: relative;
  z-index: 3;
  margin-bottom: -140px;
  align-self: end;
}
#container .mod_article.ueberlappen > .content-image img {
  border-radius: 16px;
  box-shadow: 0 28px 56px -18px rgba(0, 0, 0, 0.55);
}
#container #main .inside > .mod_article.ueberlappen + .mod_article { padding-top: 200px; }
@media (max-width: 900px) {
  #container .mod_article.ueberlappen > .content-image { margin-bottom: -80px; }
  #container #main .inside > .mod_article.ueberlappen + .mod_article { padding-top: 130px; }
}

/* 5. Gekritzelte Unterstreichung: Wort in der Ueberschrift unterstreichen
   (Strg+U im Editor). Zeichnet sich beim Hereinscrollen. */
#container :is(h1, h2) u {
  text-decoration: none;
  padding-bottom: 0.12em;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 20' preserveAspectRatio='none'%3E%3Cpath d='M3 12 C 40 4, 80 16, 120 9 S 190 5, 217 11' fill='none' stroke='%233fbf9f' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E") 0 100% / 100% 0.32em no-repeat;
}
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    #container :is(h1, h2) u {
      animation: bi-scribble linear both;
      animation-timeline: view();
      animation-range: entry 20% cover 45%;
    }
    @keyframes bi-scribble { from { background-size: 0% 0.32em; } to { background-size: 100% 0.32em; } }
  }
}

/* 7. IT-Check: Text-Element mit Klasse "it-check". */
.it-check .bi-check { margin-top: 24px; padding: 28px; border-radius: 16px; background: var(--bi-surface); box-shadow: 0 0 0 1px var(--bi-line), 0 12px 28px -14px rgba(27, 33, 64, 0.2); display: flex; flex-direction: column; gap: 16px; max-width: 640px; }
.bi-check__bar { display: flex; gap: 6px; }
.bi-check__bar span { flex: 1; height: 4px; border-radius: 4px; background: var(--bi-line-strong); transition: background 0.3s; }
.bi-check__bar span.is-done { background: var(--bi-accent); }
.bi-check__num { font-family: var(--bi-mono); font-size: 12px; color: var(--bi-accent); }
.bi-check__q { font-size: 22px; font-weight: 700; letter-spacing: -0.03em; line-height: 1.25; color: var(--bi-text); }
.bi-check__answers { display: flex; flex-direction: column; gap: 8px; }
.bi-check__answers button {
  font: inherit; font-size: 15px; text-align: left; padding: 13px 16px; cursor: pointer;
  border-radius: 10px; border: 1px solid var(--bi-line-strong); background: #ffffff; color: #161826;
  transition: border-color 0.15s, background 0.15s;
}
.bi-check__answers button:hover { border-color: var(--bi-accent); background: #eef3fc; }
.bi-check__answers button:focus-visible { outline: 2px solid var(--bi-accent); outline-offset: 2px; }
.bi-check__result { display: flex; align-items: center; gap: 12px; font-size: 24px; font-weight: 750; letter-spacing: -0.03em; color: var(--bi-text); }
.bi-check__result i { width: 18px; height: 18px; border-radius: 50%; flex: none; }
.bi-check__text { color: var(--bi-neutral-400); }
.bi-check__actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.bi-check__actions a.bi-check__cta { padding: 12px 20px; border-radius: 999px; background: var(--bi-accent); color: #ffffff; font-weight: 600; }
.bi-check__actions a.bi-check__cta:hover { color: #ffffff; filter: brightness(1.1); }
.bi-check__actions button { font: inherit; font-size: 14px; border: 0; background: none; color: var(--bi-accent); cursor: pointer; }

/* 8. Kartenstapel: Klasse "stapel" am Artikel mit Karten (plan). */
#container #main .inside > .mod_article.stapel { overflow: visible !important; }
#container #main .inside > .mod_article.stapel > .plan {
  grid-column: content;
  position: sticky;
  min-height: 240px;
  padding: 32px 36px;
  border-radius: 20px;
  box-shadow: 0 -12px 32px -14px rgba(27, 33, 64, 0.35);
}
#container #main .inside > .mod_article.stapel > .plan > h3 { font-size: clamp(24px, 2.4vw, 32px); font-weight: 750; letter-spacing: -0.035em; }
#container #main .inside > .mod_article.stapel > .plan:nth-of-type(1) { top: 110px; }
#container #main .inside > .mod_article.stapel > .plan:nth-of-type(2) { top: 130px; background: #e6e9f1; }
#container #main .inside > .mod_article.stapel > .plan:nth-of-type(3) { top: 150px; background: #2f4a80; --bi-text: #ffffff; --bi-neutral-400: #dbe3f4; --bi-accent-400: #cfe0ff; --bi-accent-300: #cfe0ff; }
#container #main .inside > .mod_article.stapel > .plan:nth-of-type(4) { top: 170px; background: #161826; --bi-text: #e9e9ed; --bi-neutral-400: #b2b6ca; --bi-accent-400: #9dbcec; --bi-accent-300: #9dbcec; }
#container #main .inside > .mod_article.stapel > .plan:nth-of-type(n+5) { top: 190px; }
#container #main .inside > .mod_article.stapel > .plan:last-of-type { margin-bottom: 120px; }

/* =========================================================================
   Hintergruende 1a–1f. burow.js verteilt sie automatisch (ein Muster je
   Band-Typ und Seite). Manuell am Artikel: bg-punkte, bg-leiter, bg-wellen,
   bg-flaechen, bg-korn, bg-wort (+ Wort im Vorspann). Klasse "bg-keins"
   verhindert die Automatik fuer einen Artikel.
   ========================================================================= */
#container #main .inside > .mod_article:is(.bg-punkte, .bg-leiter, .bg-flaechen, .bg-wort, .bg-wellen) { position: relative; overflow: hidden; isolation: isolate; }
#container .mod_article:is(.bg-flaechen, .bg-wort, .bg-wellen) > :not(.bi-bgfx) { position: relative; z-index: 1; }
.bi-bgfx { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }

/* 1a Punktraster (helle Baender) */
#container #main .inside > .mod_article.bg-punkte {
  background-image: radial-gradient(70% 90% at 85% 30%, transparent 0, #f4f5f8 75%), radial-gradient(circle, #c3c9d8 1.2px, transparent 1.6px);
  background-size: auto, 20px 20px;
}
#container #main .inside > .mod_article.grau.bg-punkte {
  background-image: radial-gradient(70% 90% at 85% 30%, transparent 0, #e6e9f1 75%), radial-gradient(circle, #b9c1d6 1.2px, transparent 1.6px);
  background-color: #e6e9f1;
}

/* 1b Leiterbahnen (graue Baender) */
#container #main .inside > .mod_article.bg-leiter,
#container #main .inside > .mod_article.grau.bg-leiter {
  background: linear-gradient(90deg, #e6e9f1 30%, rgba(230, 233, 241, 0) 80%), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' fill='none' stroke='%23b9c1d6' stroke-width='1.4'%3E%3Cpath d='M0 40h40l20 20h40M100 60v40l20 20h40M20 0v20l20 20M80 160v-30l-20-20H30M160 90h-30M120 0v20l-20 20'/%3E%3Cg fill='%23b9c1d6' stroke='none'%3E%3Ccircle cx='100' cy='60' r='3'/%3E%3Ccircle cx='30' cy='110' r='3'/%3E%3Ccircle cx='130' cy='90' r='3'/%3E%3Ccircle cx='100' cy='40' r='3'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 160px 160px, #e6e9f1;
}

/* 1c Foerde-Wellen (Footer) */
.bi-bgfx--wellen::before {
  content: "";
  position: absolute; inset: 0 -240px 0 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='36' fill='none' stroke='%23314068' stroke-width='1.3'%3E%3Cpath d='M0 18 C 40 4, 80 4, 120 18 S 200 32, 240 18'/%3E%3C/svg%3E") 0 0 / 240px 36px;
  -webkit-mask-image: linear-gradient(160deg, transparent 35%, #000 90%);
          mask-image: linear-gradient(160deg, transparent 35%, #000 90%);
  animation: bi-wave 22s linear infinite;
}
@keyframes bi-wave { to { transform: translateX(-240px); } }
.site-footer.bg-wellen { position: relative; overflow: hidden; isolation: isolate; }

/* 1d Weiche Farbflaechen (helle Baender, Privatkunden) */
.bi-bgfx--flaechen i {
  position: absolute; display: block;
  filter: blur(46px);
  animation: bi-drift 16s ease-in-out infinite alternate;
}
.bi-bgfx--flaechen i:nth-child(1) { width: 46%; height: 90%; right: -8%; top: -30%; border-radius: 42% 58% 63% 37% / 45% 40% 60% 55%; background: #cfdcf5; }
.bi-bgfx--flaechen i:nth-child(2) { width: 34%; height: 70%; right: 22%; bottom: -35%; border-radius: 60% 40% 45% 55% / 50% 60% 40% 50%; background: #c9eee2; animation-direction: alternate-reverse; animation-duration: 20s; }
@keyframes bi-drift { from { transform: translate(0, 0) scale(1); } to { transform: translate(-6%, 4%) scale(1.08); } }

/* 1e Koernung mit Verlauf (blaue Baender) */
#container #main .inside > .mod_article.dunkel.bg-korn:not(:has(> .bg)),
#container #main .inside > .mod_article.dunkel.bg-korn:nth-of-type(even):not(:has(> .bg)) {
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    radial-gradient(80% 120% at 100% 0%, #4a6fb5, transparent 60%),
    radial-gradient(60% 80% at 0% 100%, #1f6f6a, transparent 60%),
    #22396b;
  background-blend-mode: soft-light, normal, normal, normal;
}

/* 1f Riesiges Wort in Umrissschrift */
.bi-bgfx--wort span {
  position: absolute; right: -0.04em; bottom: -0.18em;
  font-size: clamp(140px, 22vw, 340px);
  font-weight: 800; letter-spacing: -0.06em; line-height: 1;
  color: transparent; -webkit-text-stroke: 1.5px #b9c1d6;
  white-space: nowrap; user-select: none;
}
.dunkel .bi-bgfx--wort span { -webkit-text-stroke-color: rgba(207, 224, 255, 0.25); }

@media (prefers-reduced-motion: reduce) {
  .bi-bgfx--wellen::before, .bi-bgfx--flaechen i { animation: none; }
}

/* Fix grosses Wort: kleiner, blasser, nur rechts, laeuft nach links aus. */
.bi-bgfx--wort span {
  font-size: clamp(120px, 15vw, 230px);
  right: 0.02em;
  bottom: -0.2em;
  -webkit-text-stroke: 1.2px #c6cddd;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 45%);
          mask-image: linear-gradient(90deg, transparent 0%, #000 45%);
}

/* Unvollstaendige letzte Kartenreihe auffuellen:
   2 Karten uebrig -> je halbe Breite, 1 Karte uebrig -> volle Breite. */
@media (min-width: 901px) {
  .mod_article:has(> .plan:nth-last-child(2 of .plan):nth-child(3n + 1 of .plan)) > .plan:nth-last-child(-n + 2 of .plan) { grid-column-end: span 3; }
  .mod_article:has(> .plan:nth-last-child(2 of .plan):nth-child(3n + 1 of .plan)) > .plan:nth-last-child(2 of .plan) { grid-column-start: content-start; }
  .mod_article > .plan:nth-last-child(1 of .plan):nth-child(3n + 1 of .plan):not(:only-of-type) { grid-column: content; }
}

/* Footer bleibt ohne Muster. */
.site-footer > .bi-bgfx { display: none !important; }

/* Fix: Muster- und Animationsebenen wurden von der Artikel-Spaltenregel in
   die Inhaltsspalte gezwungen und dort hart abgeschnitten. Sie liegen jetzt
   ueber der vollen Breite. */
#container #main .inside > .mod_article > :is(.bi-bgfx, .bi-anim, .bi-stream) {
  grid-column: full !important;
  grid-row: auto !important;
  position: absolute !important;
  inset: 0 !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}
/* Farbflaechen dezenter, damit sie neben blauen Baendern nicht konkurrieren. */
.bi-bgfx--flaechen i { opacity: 0.55; filter: blur(60px); }

/* Akzent reduziert: Farbverlauf nur noch in der Seitenueberschrift (h1).
   In Abschnittsueberschriften (h2) ist der zweite Teil ruhig grau -
   zweifarbig statt bunt. */
#container h2 em,
#container h2 i,
#container :is(.mod_article.hero, .mod_article:first-of-type, .dunkel, .site-footer) h2 :is(em, i) {
  background: none;
  -webkit-background-clip: border-box;
          background-clip: border-box;
  color: #7a7f93;
  -webkit-text-fill-color: currentColor;
}
#container :is(.dunkel, .site-footer, .mod_article.hero) h2 :is(em, i) { color: rgba(233, 236, 245, 0.55); }

/* Kartennummern im blauen Band lesbar */
#container .mod_article.dunkel > .plan::before { color: #cfe0ff; }

/* --- Partnerlogos -------------------------------------------------------
   Inhaltselement "Galerie" mit Klasse "logos". Logos werden einheitlich
   hoch, in Graustufen, beim Darueberfahren farbig. Mit zusaetzlicher
   Klasse "laufband" laufen sie als Band durch. */
#container .mod_article > .logos { grid-column: content; }
#container .logos ul {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start;
  gap: 28px 56px; margin: 0; padding: 0; list-style: none;
}
#container .logos li { margin: 0; padding: 0; }
#container .logos li::before, #container .logos li::after { content: none !important; }
#container .logos :is(figure, .image_container) { margin: 0; mix-blend-mode: normal; }
#container .logos img {
  display: block; height: 44px; width: auto; max-width: 180px; object-fit: contain; border-radius: 0;
  filter: grayscale(1); opacity: 0.6; transition: filter 0.25s, opacity 0.25s;
}
#container .logos li:hover img { filter: none; opacity: 1; }
#container .dunkel .logos img { filter: grayscale(1) brightness(0) invert(1); opacity: 0.75; }
#container .dunkel .logos li:hover img { filter: brightness(0) invert(1); opacity: 1; }
#container .logos.laufband ul { flex-wrap: nowrap; width: max-content; animation: bi-marquee 40s linear infinite; }
#container .logos.laufband:hover ul { animation-play-state: paused; }
#container .mod_article > .logos.laufband { grid-column: full; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
#container .logos figcaption { display: none; }

/* Logo-Galerie im Partner-Artikel: rechte Haelfte neben dem Text. */
#container .mod_article > .w-1-2 + .logos { grid-column: span 3 / content-end; align-self: end; }
@media (max-width: 900px) { #container .mod_article > .w-1-2 + .logos { grid-column: content; } }
#container .logos ul { row-gap: 32px; }

/* Partnerlogos im Seitenkopf: klein, weiss, unter dem Text, mit Etikett. */
#container .mod_article > .kopf-logos { grid-column: content; margin-top: 8px; display: flex; align-items: center; gap: 20px; position: relative; z-index: 2; }
#container .mod_article > .kopf-logos::before {
  content: "Partner";
  font-family: var(--bi-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(233, 236, 245, 0.55);
}
#container .kopf-logos ul { gap: 16px 36px; }
#container .kopf-logos img { height: 30px; max-width: 140px; filter: grayscale(1) brightness(0) invert(1); opacity: 0.7; }
#container .kopf-logos li:hover img { filter: brightness(0) invert(1); opacity: 1; }
/* PC-SPEZIALIST ist eine Flaeche: als Kachel zeigen statt einfarbig. */
#container .kopf-logos img[src*="pc-spezialist"] { filter: none; opacity: 0.9; border-radius: 4px; }

/* Logos immer farbig. Auf dunklem Grund stehen sie auf hellen Kacheln,
   damit auch dunkle Schriftzuege (Microsoft, 3CX) lesbar bleiben. */
#container .logos img,
#container .logos li:hover img,
#container .dunkel .logos img,
#container .dunkel .logos li:hover img,
#container .kopf-logos img,
#container .kopf-logos li:hover img { filter: none !important; opacity: 1 !important; }
#container .logos img { height: 52px; max-width: 200px; }
#container .logos img[src*="terra"] { height: 72px; }
#container .logos img[src*="pc-spezialist"] { height: 60px; border-radius: 6px; }

/* Kopf-Logos: immer links unter dem Text, groesser, auf hellen Kacheln. */
#container #main .inside > .mod_article > .kopf-logos {
  grid-column: content !important;
  justify-self: start;
  margin-top: 16px;
}
#container .kopf-logos ul { gap: 12px; }
#container .kopf-logos li {
  display: flex; align-items: center; justify-content: center;
  height: 64px; padding: 0 18px; border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 6px 18px -8px rgba(0, 0, 0, 0.5);
}
#container .kopf-logos img { height: 34px; max-width: 150px; }
#container .kopf-logos img[src*="terra"] { height: 52px; }
#container .kopf-logos img[src*="pc-spezialist"] { height: 44px; border-radius: 4px; }
#container .dunkel .logos li { display: flex; align-items: center; height: 76px; padding: 0 20px; border-radius: 12px; background: #ffffff; }

/* Mobil: Baender randlos ueber die volle Breite, kleinere Abstaende. */
@media (max-width: 900px) {
  html, body { overflow-x: hidden; }
  #wrapper, #container, #main, #main .inside { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; max-width: none !important; width: auto !important; }
  #container #main .inside > .mod_article {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    border-radius: 0 !important;
    row-gap: 18px;
  }
  /* Kurzer Strich ueber Abschnittsueberschriften entfaellt mobil. */
  #container .mod_article > .content-headline > h2::before,
  #container .mod_article > .content-headline:has(> h2)::before { display: none !important; }
  #container .mod_article > .content-headline > h6 { margin-bottom: 0; }
}

/* KI-Kennzeichnung: Klasse "ki-bild" am Bild-Element (oder "ki-bild" am
   Artikel fuer alle Bilder darin). Setzt ein sichtbares Etikett aufs Bild. */
.ki-bild figure, .ki-bild .image_container, .mod_article.ki-bild .content-image figure { position: relative; }
.ki-bild figure::after,
.mod_article.ki-bild .content-image figure::after {
  content: "KI-generiert";
  position: absolute; right: 10px; bottom: 10px; z-index: 3;
  padding: 4px 9px; border-radius: 6px;
  font-family: var(--bi-mono); font-size: 11px; letter-spacing: 0.04em; line-height: 1.3;
  color: #ffffff; background: rgba(22, 24, 38, 0.78);
  pointer-events: none;
}
/* Im Hero liegt das Bild flaechig hinten: Etikett unten rechts im Band. */
.mod_article.hero.ki-bild::after,
.mod_article.hero:has(> .bg.ki-bild)::after {
  content: "Hintergrundbild KI-generiert";
  position: absolute; right: 16px; bottom: 12px; z-index: 3;
  font-family: var(--bi-mono); font-size: 11px; color: rgba(233, 236, 245, 0.7);
}

/* KI-Kennzeichnung als echter Text: die Bildunterschrift "KI-generiert"
   wird als Etikett aufs Bild gelegt. Das reine CSS-Etikett entfaellt dann. */
#container .ki-bild figure { position: relative; }
#container .ki-bild figcaption {
  position: absolute; right: 10px; bottom: 10px; z-index: 3; margin: 0;
  padding: 4px 9px; border-radius: 6px;
  font-family: var(--bi-mono); font-size: 11px; letter-spacing: 0.04em; line-height: 1.3;
  color: #ffffff; background: rgba(22, 24, 38, 0.78);
}
#container .ki-bild figure:has(figcaption)::after { content: none !important; }
/* Im Hero (Bild als Hintergrund) steht die Unterschrift unten rechts im Band. */
#container .mod_article.hero > .bg.ki-bild figcaption { position: absolute; right: 16px; bottom: 12px; background: none; color: rgba(233, 236, 245, 0.7); }
#container .mod_article.hero:has(> .bg.ki-bild figcaption)::after { content: none !important; }

