/* ==========================================================
   AGB – Kadence-Fassung
   Basis: Original-DEV des Kunden + eingefrorener Widerruf-Master.
   Inhalte und Breiten nicht redaktionell verändern.
   ========================================================== */

.agb-kadence {
  --agb-brand: #2E4396;
  --agb-brand-dark: #22326F;
  --agb-brand-light: #E8ECF7;
  --agb-ink: #1F2937;
  --agb-body: #4A5568;
  --agb-muted: #6B7280;
  --agb-line: #E5E7EB;
  --agb-bg: #FFFFFF;
  --agb-bg-soft: #EBEBEB;
  --agb-radius: 14px;
  --agb-shadow: 0 4px 18px rgba(31,41,55,.10);
  color: var(--agb-body);
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.7;
}

.agb-kadence,
.agb-kadence * { box-sizing: border-box; }

.agb-kadence .wrap {
  width: 100%;
  max-width: 1560px;
  margin: 0 auto;
  padding-left: 40px;
  padding-right: 40px;
}

.agb-kadence .section { padding: 72px 0; }

/* Kopfbereich */
.agb-kadence .agb-head {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: var(--agb-bg-soft);
  padding: 0 0 40px;
}
.agb-kadence .agb-head .crumbs {
  padding-top: 18px;
  color: var(--agb-muted);
  font-size: 14px;
}

.agb-kadence .agb-head .crumbs a {
  color: var(--agb-brand);
  text-decoration: none;
  margin-right: 5px;
}

.agb-kadence .agb-head .crumbs span { margin: 0 5px; }
.agb-kadence .agb-head h1 {color: var(--agb-ink);
}
.agb-kadence .agb-head .agb-sub {
  margin: 0;
  color: var(--agb-muted);
}

/* Zweispaltiger Aufbau */
.agb-kadence .agb-body {
  display: grid;
  grid-template-columns: 420px minmax(0, 1fr);
  gap: 64px;
  align-items: start;
  max-width: 1240px;
  margin: 0 auto;
}

/* Karte links */
.agb-kadence .agb-card {
  position: sticky;
  top: 155px;
  background: var(--agb-bg);
  border: 1px solid var(--agb-line);
  border-top: 4px solid var(--agb-brand);
  border-radius: var(--agb-radius);
  box-shadow: var(--agb-shadow);
  padding: 8px 30px 26px;
  max-height: calc(100vh - 185px);
  overflow-y: auto;
}
.agb-kadence .agb-row { padding: 20px 0; border-bottom: 1px solid var(--agb-line); }
.agb-kadence .agb-row:last-child { border-bottom: 0; padding-bottom: 4px; }
.agb-kadence .agb-row .label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--agb-brand);
  margin-bottom: 8px;
}
.agb-kadence .agb-row .value {
  font-style: normal;
  margin: 0;
  color: var(--agb-ink);
  font-size: 16px;
  line-height: 1.7;
}
.agb-kadence .agb-row .value strong { font-weight: 700; }
.agb-kadence .agb-row .value a { color: var(--agb-brand); font-weight: 600; }
.agb-kadence .agb-row .value a:hover { text-decoration: underline; }
.agb-kadence .agb-row .note { display: block; color: var(--agb-muted); font-size: 14px; margin-top: 4px; }
.agb-kadence .agb-row .stand { font-size: 18px; font-weight: 700; letter-spacing: .02em; }

/* Inhaltsverzeichnis */
.agb-kadence .agb-toc { list-style: none; margin: 0; padding: 0; }
.agb-kadence .agb-toc li { border-bottom: 1px solid var(--agb-line); }
.agb-kadence .agb-toc li:last-child { border-bottom: 0; }
.agb-kadence .agb-toc .gruppe {
  border-bottom: 0;
  padding: 16px 0 4px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--agb-muted);
}
.agb-kadence .agb-toc li:first-child.gruppe { padding-top: 2px; }
.agb-kadence .agb-toc a {
  display: flex;
  gap: 8px;
  padding: 8px 0;
  font-size: 15px;
  color: var(--agb-body);
  text-decoration: none;
}
.agb-kadence .agb-toc a .par { color: var(--agb-brand); font-weight: 700; white-space: nowrap; }
.agb-kadence .agb-toc a:hover { color: var(--agb-brand); }

/* Textspalte */
.agb-kadence .agb-text { max-width: 76ch; }
.agb-kadence .agb-text h2 {
  font-size: 21px;
  margin: 0 0 12px;
  padding-top: 4px;
  scroll-margin-top: 150px;
  color: var(--agb-ink);
  font-weight: 700;
}
.agb-kadence .agb-text section + section {
  margin-top: 40px;
  padding-top: 36px;
  border-top: 1px solid var(--agb-line);
}
.agb-kadence .agb-text p { margin: 0 0 14px; }
.agb-kadence .agb-text p:last-child { margin-bottom: 0; }
.agb-kadence .agb-text a { color: var(--agb-brand); }
.agb-kadence .agb-text a:hover { text-decoration: underline; }

/* Überschrift eines Teils */
.agb-kadence .agb-teil {
  margin: 0;
  padding: 26px 26px 24px;
  background: var(--agb-brand-light);
  border-radius: 10px;
  scroll-margin-top: 150px;
}
.agb-kadence .agb-teil .kennung {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--agb-brand);
  margin-bottom: 6px;
}
.agb-kadence .agb-teil h2 { margin: 0 0 6px; padding: 0; font-size: 23px; }
.agb-kadence .agb-teil p { margin: 0; color: var(--agb-body); font-size: 15.5px; }
.agb-kadence .agb-text section.agb-teil-sec + section {
  border-top: 0;
  padding-top: 0;
  margin-top: 34px;
}

/* Nummerierte Absätze */
.agb-kadence .agb-abs { list-style: none; margin: 0; padding: 0; counter-reset: abs; }
.agb-kadence .agb-abs > li {
  position: relative;
  padding-left: 40px;
  margin-bottom: 14px;
}
.agb-kadence .agb-abs > li:last-child { margin-bottom: 0; }
.agb-kadence .agb-abs > li::before {
  counter-increment: abs;
  content: "(" counter(abs) ")";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--agb-brand);
  font-weight: 700;
  font-size: 15px;
}
.agb-kadence .agb-abs p { margin: 0 0 10px; }
.agb-kadence .agb-abs p:last-child { margin-bottom: 0; }

.agb-kadence .agb-liste { margin: 10px 0 0; padding-left: 22px; }
.agb-kadence .agb-liste li { padding: 3px 0; }

/* Einleitung */
.agb-kadence .agb-quote {
  background: var(--agb-brand-light);
  border-radius: 10px;
  padding: 18px 22px;
  color: var(--agb-ink);
  font-size: 16.5px;
}

/* Tabellen */
.agb-kadence .agb-tabelle-rahmen { overflow-x: auto; margin: 14px 0 0; }
.agb-kadence .agb-tabelle {
  width: 100%;
  min-width: 460px;
  border-collapse: collapse;
  font-size: 14.5px;
  background: #FAFAFB;
  border: 1px solid var(--agb-line);
  border-radius: 10px;
}
.agb-kadence .agb-tabelle th {
  text-align: left;
  font-size: 12.5px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--agb-brand);
  padding: 12px 16px;
  border-bottom: 1px solid var(--agb-line);
}
.agb-kadence .agb-tabelle td {
  padding: 10px 16px;
  border-bottom: 1px solid var(--agb-line);
  vertical-align: top;
  line-height: 1.55;
}
.agb-kadence .agb-tabelle tr:last-child td { border-bottom: 0; }
.agb-kadence .agb-tabelle td.wert { white-space: nowrap; font-weight: 700; color: var(--agb-ink); }

/* Hinweiskästen der Entwurfsfassung */
.agb-kadence .agb-pruefhinweis {
  margin: 40px 0 0;
  padding: 16px 20px;
  border-left: 4px solid #E3B900;
  background: #FFFBE6;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--agb-ink);
}
.agb-kadence .agb-pruefhinweis strong {
  display: block;
  margin-bottom: 4px;
}
.agb-kadence .agb-pruefhinweis ul {
  margin: 8px 0 0;
  padding-left: 20px;
}
.agb-kadence .agb-pruefhinweis li {
  padding: 2px 0;
}

/* Zielgruppen-Marken */
.agb-kadence .agb-nur {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 2px 9px 3px;
  border-radius: 999px;
  margin-right: 8px;
  vertical-align: 1px;
  white-space: nowrap;
}
.agb-kadence .agb-nur.is-unt { background: #EDF1FB; color: var(--agb-brand); }
.agb-kadence .agb-nur.is-verb { background: #E7F3EB; color: #1D7038; }

@media (max-width: 1180px) {
  .agb-kadence .agb-body { grid-template-columns: 1fr; gap: 40px; }
  .agb-kadence .agb-card { position: static; max-height: none; overflow: visible; }
  .agb-kadence .agb-text { max-width: none; }
}

@media (max-width: 720px) {
  .agb-kadence .wrap { padding-left: 20px; padding-right: 20px; }
  .agb-kadence .section { padding: 48px 0; }
  .agb-kadence .agb-card { padding-left: 20px; padding-right: 20px; }
  .agb-kadence .agb-teil { padding: 22px 20px; }
  .agb-kadence .agb-abs > li { padding-left: 34px; }
}

@media print {
  .agb-kadence .agb-head { background: #fff; }
  .agb-kadence .agb-card { position: static; box-shadow: none; max-height: none; overflow: visible; }
  .agb-kadence .agb-body { display: block; max-width: none; }
  .agb-kadence .agb-text { max-width: none; }
}

/* v3 – Übernahme der finalen Rechtsseiten-Korrekturen */

/* Sidebar-Links: Unterstreichung nur bei Hover/Fokus.
   Die vorhandenen Seitenfarben der verschiedenen Linkarten bleiben erhalten. */
.agb-kadence .agb-card a,
.agb-kadence .agb-card a:visited {
  text-decoration: none !important;
}

.agb-kadence .agb-card a:hover,
.agb-kadence .agb-card a:focus-visible {
  text-decoration: underline !important;
}

/* Responsive Seitenabstand stabil auf der äußeren Content-Section.
   So bleibt insbesondere rechts auf schmalen Viewports derselbe Abstand
   wie links und die Sidebar kann nicht über die verfügbare Breite wachsen. */
@media (max-width: 1180px) {
  .agb-kadence .section {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  .agb-kadence .section > .wrap {
    width: 100% !important;
    max-width: 1240px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .agb-kadence .agb-body,
  .agb-kadence .agb-card,
  .agb-kadence .agb-text {
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 720px) {
  .agb-kadence .section {
    padding: 48px 20px !important;
  }
}



/* v9 – AGB Feinabgleich */

/* Sidebar: alle Links im Normalzustand ohne Unterstreichung;
   Unterstreichung ausschließlich bei Hover/Tastaturfokus. */
.agb-kadence .agb-card a,
.agb-kadence .agb-card a:link,
.agb-kadence .agb-card a:visited {
  text-decoration: none !important;
}

.agb-kadence .agb-card a:hover,
.agb-kadence .agb-card a:focus,
.agb-kadence .agb-card a:focus-visible {
  text-decoration: underline !important;
}

/* Tablet/Mobil: bewusst nicht den fehlerhaften rechten DEV-Abstand übernehmen.
   Symmetrischer Seitenabstand wie bei der finalen Datenschutzseite. */
@media (max-width: 1180px) {
  .agb-kadence .section {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  .agb-kadence .section > .wrap {
    width: 100% !important;
    max-width: 1240px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .agb-kadence .agb-body,
  .agb-kadence .agb-card,
  .agb-kadence .agb-text {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (max-width: 720px) {
  .agb-kadence .section {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}


/* v6 – Zwischenbreiten:
   Die ursprüngliche DEV-Fassung arbeitet oberhalb Mobile mit 40 px Wrap-Padding.
   Unsere bereits geprüften iPad-/Moto-G4-Bereiche bleiben unverändert.
   Nur zwischen 1025 px und 1180 px erhöhen wir den seitlichen Abstand auf 40 px. */
@media (min-width: 1025px) and (max-width: 1180px) {
  .agb-kadence .section {
    padding-left: 40px !important;
    padding-right: 40px !important;
  }
}




/* ==========================================================
   RECHTSSEITEN-MASTER – wie bestätigtes Impressum
   Typografie: Theme / Seitentypografie-Tool.
   Abstand gilt identisch auf Desktop, Tablet und Mobile.
   ========================================================== */
.agb-kadence .agb-head h1 {
  margin: 18px 0 12px !important;
}

.agb-kadence .agb-head .agb-sub {
  margin-top: 0 !important;
}
