/* Impressum – Kadence-Fassung
   Grundlage: Versand & Lieferung / eingefrorener Rechtsseiten-Master.
   Alle Regeln sind unter .impressum-kadence gekapselt.
*/

.impressum-kadence {
  --im-brand: #2E4396;
  --im-brand-dark: #22326F;
  --im-brand-light: #E8ECF7;
  --im-ink: #1F2937;
  --im-body: #4A5568;
  --im-muted: #6B7280;
  --im-line: #E5E7EB;
  --im-bg: #FFFFFF;
  --im-bg-soft: #EBEBEB;
  --im-radius: 14px;
  --im-shadow: 0 4px 18px rgba(31,41,55,.10);

  color: var(--im-body);
}

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

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

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

/* Kopf */
.impressum-kadence .im-head {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: var(--im-bg-soft);
  padding: 0 0 40px;
}

.impressum-kadence .im-head .crumbs {
  padding-top: 18px;
  color: var(--im-muted);
  font-size: 14px;
}

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

.impressum-kadence .im-head .crumbs span { margin: 0 5px; }

.impressum-kadence .im-head h1 {color: var(--im-ink);
}

.impressum-kadence .im-head .im-sub {
  margin: 0;
  color: var(--im-muted);
  max-width: 80ch;
}

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

/* Sidebar */
.impressum-kadence .im-card {
  position: sticky;
  top: 155px;
  background: var(--im-bg);
  border: 1px solid var(--im-line);
  border-top: 4px solid var(--im-brand);
  border-radius: var(--im-radius);
  box-shadow: var(--im-shadow);
  padding: 8px 30px 26px;
  max-height: calc(100vh - 185px);
  overflow-y: auto;
}

.impressum-kadence .im-row {
  padding: 20px 0;
  border-bottom: 1px solid var(--im-line);
}

.impressum-kadence .im-row:last-child {
  border-bottom: 0;
  padding-bottom: 4px;
}

.impressum-kadence .im-row .label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--im-brand);
  margin-bottom: 8px;
}

.impressum-kadence .im-row .value {
  margin: 0;
  color: var(--im-ink);
}

.impressum-kadence .im-row .value strong { font-weight: 700; }

.impressum-kadence .im-row .note {
  display: block;
  color: var(--im-muted);
  font-size: 14px;
  margin-top: 4px;
}

.impressum-kadence .im-row a {
  color: var(--im-brand);
  text-decoration: none;
}

.impressum-kadence .im-row a:hover { text-decoration: underline; }

/* Inhaltsverzeichnis */
.impressum-kadence .im-toc {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: imtoc;
}

.impressum-kadence .im-toc li {
  border-bottom: 1px solid var(--im-line);
}

.impressum-kadence .im-toc li:last-child { border-bottom: 0; }

.impressum-kadence .im-toc a {
  display: block;
  padding: 8px 0;
  font-size: 15px;
  color: var(--im-body);
  text-decoration: none;
}

.impressum-kadence .im-toc a::before {
  counter-increment: imtoc;
  content: counter(imtoc) ".";
  display: inline-block;
  width: 24px;
  color: var(--im-brand);
  font-weight: 700;
}

.impressum-kadence .im-toc a:hover { color: var(--im-brand); }

/* Inhalt */
.impressum-kadence .im-text { max-width: 76ch; 
}

.impressum-kadence .im-text h2 {
  margin: 0 0 12px;
  padding-top: 4px;
  scroll-margin-top: 150px;
  color: var(--im-ink);
}

.impressum-kadence .im-text section + section {
  margin-top: 40px;
  padding-top: 36px;
  border-top: 1px solid var(--im-line);
}

.impressum-kadence .im-text p { margin: 0 0 14px; }
.impressum-kadence .im-text p:last-child { margin-bottom: 0; }

.impressum-kadence .im-text a {
  color: var(--im-brand);
  overflow-wrap: anywhere;
}

.impressum-kadence .im-text a:hover { text-decoration: underline; }

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

/* Quellen- und Herstellerlisten */
.impressum-kadence .im-sources,
.impressum-kadence .im-manufacturers {
  margin: 10px 0 0;
  padding-left: 22px;
}

.impressum-kadence .im-sources li,
.impressum-kadence .im-manufacturers li {
  padding: 4px 0 4px 4px;
}

.impressum-kadence .im-sources li::marker,
.impressum-kadence .im-manufacturers li::marker {
  color: var(--im-brand);
}

.impressum-kadence .im-manufacturers li + li {
  margin-top: 10px;
}

@media (max-width: 1180px) {
  .impressum-kadence .im-body {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .impressum-kadence .im-card {
    position: static;
    max-height: none;
    overflow: visible;
  }

  .impressum-kadence .im-text { max-width: none; 
}
}

@media (max-width: 720px) {
  .impressum-kadence .wrap {
    padding-left: 20px;
    padding-right: 20px;
  }

  .impressum-kadence .section { padding: 48px 0; }

  .impressum-kadence .im-card {
    padding-left: 20px;
    padding-right: 20px;
  }
}


/* ---------------------------------------------------------
   Impressum – DEV-spezifische Feinjustierung v2
   --------------------------------------------------------- */

/* Sidebar entspricht der DEV: reine Unternehmens-/Kontaktdaten,
   kein Inhaltsverzeichnis. */
.impressum-kadence .im-card {
  position: sticky;
  top: 150px;
  padding: 8px 24px 18px;
}

/* Inhalt auf die DEV-Proportionen abstimmen */
.impressum-kadence .im-body {
  grid-template-columns: 330px minmax(0, 620px);
  gap: 48px;
  max-width: 1000px;
  justify-content: center;
}

.impressum-kadence .im-text {
  max-width: 620px;
}

.impressum-kadence .im-text h2 {
  margin-bottom: 12px;
}

.impressum-kadence .im-text section + section {
  margin-top: 34px;
  padding-top: 30px;
}

/* DEV: Hinweis unter Verbraucherstreitbeilegung */
.impressum-kadence .im-notice {
  background: var(--im-brand-light);
  border-radius: 8px;
  padding: 16px 18px;
  color: var(--im-body);
}

/* Alte Quote-Regel bleibt unschädlich, wird im HTML nicht mehr verwendet. */

/* DEV: Bilder-/Videorechte in heller, kompakter Quellenbox */
.impressum-kadence .im-sourcebox {
  margin-top: 14px;
  border: 1px solid var(--im-line);
  border-radius: 8px;
  background: #fbfbfc;
  padding: 14px 16px;
}

.impressum-kadence .im-sources {
  list-style: none;
  margin: 0;
  padding: 0;
}

.impressum-kadence .im-sources li {
  margin: 0;
  padding: 3px 0;
  font-size: 12.5px;
  line-height: 1.42;
  overflow-wrap: anywhere;
}

.impressum-kadence .im-sources li strong {
  font-weight: 600;
  color: var(--im-muted);
}

.impressum-kadence .im-sources li strong::after {
  content: "  ";
}

.impressum-kadence .im-sources li a {
  color: var(--im-brand);
  text-decoration: none;
}

.impressum-kadence .im-sources li a:hover {
  text-decoration: underline;
}

/* DEV: Produktbilder als zweispaltige Zeilen statt Aufzählung */
.impressum-kadence .im-product-section {
  margin-top: 14px !important;
  padding-top: 0 !important;
  border-top: 0 !important;
}

.impressum-kadence .im-manufacturers {
  margin: 16px 0 0;
  padding: 0;
}

.impressum-kadence .im-manufacturer-row {
  display: grid;
  grid-template-columns: 185px minmax(0, 1fr);
  gap: 18px;
  padding: 10px 0;
  border-bottom: 1px solid var(--im-line);
  font-size: 13px;
  line-height: 1.45;
}

.impressum-kadence .im-manufacturer-row:last-child {
  border-bottom: 0;
}

.impressum-kadence .im-manufacturer-name {
  color: var(--im-ink);
}

.impressum-kadence .im-manufacturer-desc {
  color: var(--im-body);
}

/* Sidebar-Typografie etwas kompakter wie in der DEV */
.impressum-kadence .im-row {
  padding: 16px 0;
}

.impressum-kadence .im-row .label {
  font-size: 11px;
  margin-bottom: 6px;
}

.impressum-kadence .im-row .value {
}

.impressum-kadence .im-row .note {
  font-size: 11.5px;
  line-height: 1.5;
}

@media (max-width: 1180px) {
  .impressum-kadence .im-body {
    grid-template-columns: 1fr;
    max-width: 760px;
  }

  .impressum-kadence .im-card {
    position: static;
  }

  .impressum-kadence .im-text {
    max-width: none;
  
}
}

@media (max-width: 720px) {
  .impressum-kadence .im-manufacturer-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .impressum-kadence .im-sources li {
    font-size: 12px;
  }
}


/* ---------------------------------------------------------
   Impressum – DEV Feinabgleich v3
   Schriftgrößen und Abstände nach Screenshot-Abgleich
   --------------------------------------------------------- */

/* Hauptinhalt – DEV-Abstand oben/unten */
.impressum-kadence {
}

.impressum-kadence .section {
  padding-top: 72px;
  padding-bottom: 72px;
}

.impressum-kadence .im-body {
  grid-template-columns: 300px minmax(0, 620px);
  gap: 38px;
  max-width: 958px;
}

/* Sidebar */
.impressum-kadence .im-card {
  padding: 7px 18px 14px;
  border-radius: 10px;
}

.impressum-kadence .im-row {
  padding: 13px 0;
}

.impressum-kadence .im-row .label {
  font-size: 10px;
  line-height: 1.35;
  letter-spacing: .08em;
  margin-bottom: 6px;
}

.impressum-kadence .im-row .value {
}

.impressum-kadence .im-row .note {
  font-size: 10px;
  line-height: 1.4;
  margin-top: 3px;
}

/* Haupttext */
.impressum-kadence .im-text {
  max-width: 620px;
}

.impressum-kadence .im-text h2 {
  margin: 0 0 9px;
  padding-top: 0;
}

.impressum-kadence .im-text p {
  margin: 0 0 11px;
}

.impressum-kadence .im-text section + section {
  margin-top: 27px;
  padding-top: 23px;
}

/* Verbraucher-Hinweis */
.impressum-kadence .im-notice {
  padding: 13px 15px;
  border-radius: 7px;
}

/* Bilder-/Videorechte */
.impressum-kadence .im-sourcebox {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 7px;
}

.impressum-kadence .im-sources li {
  padding: 2px 0;
  font-size: 10.5px;
  line-height: 1.32;
}

/* Produktbilder */
.impressum-kadence .im-product-section {
  margin-top: 10px !important;
}

.impressum-kadence .im-product-section > p {
  margin-bottom: 12px;
}

.impressum-kadence .im-manufacturers {
  margin-top: 10px;
}

.impressum-kadence .im-manufacturer-row {
  grid-template-columns: 170px minmax(0, 1fr);
  gap: 14px;
  padding: 7px 0;
  font-size: 10.5px;
  line-height: 1.35;
}

/* DEV: Produktbilder-Überschrift sitzt direkt nach der Quellenbox */
.impressum-kadence .im-sourcebox + * {
  margin-top: 0;
}

@media (max-width: 1180px) {
  .impressum-kadence .im-body {
    grid-template-columns: 1fr;
    gap: 32px;
    max-width: 760px;
  }
}

@media (max-width: 720px) {
  .impressum-kadence {
  
}

  .impressum-kadence .section {
    padding-top: 42px;
    padding-bottom: 44px;
  }

  .impressum-kadence .im-text {
  
}

  .impressum-kadence .im-text h2 {
  
}
}


/* ---------------------------------------------------------
   v4 – Kadence Theme-Typografie
   ---------------------------------------------------------
   Normale Typografie wird nicht mehr im Impressum festgelegt.
   Schriftfamilie, Grundgröße, Zeilenhöhe sowie H1/H2-Typografie
   kommen damit aus dem aktiven Kadence-Theme.

   Bewusst eigene Mikrotypografie behalten:
   - Sidebar-Labels
   - Nebenhinweise (.note)
   - lange Bildquellenliste
   - kompakte Hersteller-/Produktbild-Zeilen
   Diese Elemente sind in der DEV ebenfalls kleiner als der Fließtext.
*/


/* ---------------------------------------------------------
   v5 – H2 wie DEV
   --------------------------------------------------------- */
.impressum-kadence .im-text h2 {
}


/* ---------------------------------------------------------
   v6 – Contentbreite wie DEV
   --------------------------------------------------------- */
.impressum-kadence .im-body {
  max-width: 1240px;
  grid-template-columns: 330px minmax(0, 1fr);
  gap: 48px;
}


/* ---------------------------------------------------------
   v7 – innere Breitenbegrenzung entfernt
   DEV: 1240px Gesamt-Contentbreite
   --------------------------------------------------------- */
.impressum-kadence .im-body {
  width: 100%;
  max-width: 1240px;
  grid-template-columns: 330px minmax(0, 1fr);
  gap: 48px;
  margin-left: auto;
  margin-right: auto;
}

.impressum-kadence .im-text {
  width: 100%;
  max-width: none;
}


/* ---------------------------------------------------------
   v8 – echte DEV-Contentbreite 1240px
   Unabhängig von einem schmaleren Kadence-Elterncontainer
   --------------------------------------------------------- */
@media (min-width: 1181px) {
  .impressum-kadence .im-body {
    width: 1240px;
    max-width: calc(100vw - 80px);
    grid-template-columns: 330px minmax(0, 1fr);
    gap: 48px;

    position: relative;
    left: 50%;
    transform: translateX(-50%);

    margin-left: 0;
    margin-right: 0;
  }

  .impressum-kadence .im-text {
    width: auto;
    max-width: none;
    min-width: 0;
  }
}

/* ---------------------------------------------------------
   Impressum – Sonderblöcke wie DEV
   ---------------------------------------------------------
   Diese Regeln stehen bewusst am Dateiende und überschreiben
   ältere Mikrotypografie-Regeln aus den vorherigen Fassungen.
*/
.impressum-kadence #legal-imprint-media-rights,
.impressum-kadence #legal-imprint-media-rights li,
.impressum-kadence #legal-imprint-media-rights a,
.impressum-kadence #legal-imprint-product-images,
.impressum-kadence #legal-imprint-product-images .im-manufacturer-row,
.impressum-kadence #legal-imprint-product-images .im-manufacturer-name,
.impressum-kadence #legal-imprint-product-images .im-manufacturer-desc {
  font-size: 14px;
  line-height: 22px;
}

/* ---------------------------------------------------------
   Impressum – Produktbilder-Tabelle wie DEV
   --------------------------------------------------------- */
.impressum-kadence #legal-imprint-product-images,
.impressum-kadence #legal-imprint-product-images .im-manufacturer-row,
.impressum-kadence #legal-imprint-product-images .im-manufacturer-name,
.impressum-kadence #legal-imprint-product-images .im-manufacturer-desc {
  font-size: 15px;
  line-height: 23px;
}

/* ---------------------------------------------------------
   Impressum – DEV-Spaltenbreiten + Responsive Fix v4
   Desktop: 1240px Gesamtbreite = 420px Sidebar + 125px Gap + 695px Inhalt
   Tablet/Mobil: einspaltig
   --------------------------------------------------------- */
@media (min-width: 1181px) {
  .impressum-kadence .im-body {
    width: 1240px;
    max-width: calc(100vw - 80px);
    grid-template-columns: 420px 695px;
    gap: 125px;
  }

  .impressum-kadence .im-card {
    width: 420px;
    min-width: 0;
  }

  .impressum-kadence .im-text {
    width: 695px;
    max-width: 695px;
    min-width: 0;
  }
}

@media (max-width: 1180px) {
  .impressum-kadence .im-body {
    width: 100%;
    max-width: 100%;
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;

    position: static;
    left: auto;
    transform: none;

    margin-left: auto;
    margin-right: auto;
  }

  .impressum-kadence .im-card,
  .impressum-kadence .im-text {
    width: 100%;
    max-width: none;
    min-width: 0;
  }

  .impressum-kadence .im-card {
    position: static;
  }
}

@media (max-width: 720px) {
  .impressum-kadence .im-body {
    gap: 24px;
  }
}

/* ---------------------------------------------------------
   Impressum – Sidebar exakt wie DEV
   --------------------------------------------------------- */
.impressum-kadence .im-card {
  position: sticky;
  top: 155px;
  background: var(--bg);
  border: 1px solid var(--line);
  border-top: 4px solid var(--brand);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 8px 30px 26px;
}

@media (max-width: 1180px) {
  .impressum-kadence .im-card {
    position: static;
    top: auto;
  }
}

/* ---------------------------------------------------------
   Impressum – Korrektur v6
   DEV-Grid: 420px Sidebar + 64px Gap + flexible Inhaltsspalte
   --------------------------------------------------------- */
@media (min-width: 1181px) {
  .impressum-kadence .im-body {
    width: 1240px;
    max-width: calc(100vw - 80px);
    grid-template-columns: 420px minmax(0, 1fr);
    gap: 64px;
    align-items: start;

    position: relative;
    left: 50%;
    transform: translateX(-50%);

    margin-left: 0;
    margin-right: 0;
  }

  .impressum-kadence .im-card {
    width: 420px;
    min-width: 0;
    position: sticky;
    top: 155px;
    background: var(--im-bg);
    border: 1px solid var(--im-line);
    border-top: 4px solid var(--im-brand);
    border-radius: var(--im-radius);
    box-shadow: var(--im-shadow);
    padding: 8px 30px 26px;
    max-height: calc(100vh - 185px);
    overflow-y: auto;
  }

  .impressum-kadence .im-text {
    width: auto;
    max-width: none;
    min-width: 0;
  }
}

@media (max-width: 1180px) {
  .impressum-kadence .im-body {
    width: 100%;
    max-width: 100%;
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
    position: static;
    left: auto;
    transform: none;
    margin-left: auto;
    margin-right: auto;
  }

  .impressum-kadence .im-card,
  .impressum-kadence .im-text {
    width: 100%;
    max-width: none;
    min-width: 0;
  }

  .impressum-kadence .im-card {
    position: static;
    top: auto;
    max-height: none;
    overflow-y: visible;
  }
}

@media (max-width: 720px) {
  .impressum-kadence .im-body {
    gap: 24px;
  }
}


/* ---------------------------------------------------------
   Impressum – Korrektur v8
   Sidebar-Abstände und Linkverhalten exakt nach DEV
   --------------------------------------------------------- */
.impressum-kadence .im-card {
  position: sticky;
  top: 155px;
  background: var(--im-bg);
  border: 1px solid var(--im-line);
  border-top: 4px solid var(--im-brand);
  border-radius: var(--im-radius);
  box-shadow: var(--im-shadow);
  padding: 8px 30px 26px;
  max-height: calc(100vh - 185px);
  overflow-y: auto;
}

.impressum-kadence .im-row {
  padding: 20px 0;
  border-bottom: 1px solid var(--im-line);
}

.impressum-kadence .im-row:last-child {
  border-bottom: 0;
  padding-bottom: 4px;
}

.impressum-kadence .im-row .label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--im-brand);
  margin-bottom: 8px;
}

.impressum-kadence .im-row .value {
  margin: 0;
  color: var(--im-ink);
}

.impressum-kadence .im-row .value strong {
  font-weight: 700;
}

.impressum-kadence .im-row .note {
  display: block;
  color: var(--im-muted);
  font-size: 14px;
  margin-top: 4px;
}

.impressum-kadence .im-row a,
.impressum-kadence .im-row a:visited {
  color: var(--im-brand);
  text-decoration: none;
}

.impressum-kadence .im-row a:hover,
.impressum-kadence .im-row a:focus-visible {
  color: var(--im-brand);
  text-decoration: underline;
}

@media (max-width: 1180px) {
  .impressum-kadence .im-card {
    position: static;
    top: auto;
    max-height: none;
    overflow-y: visible;
  }
}

/* v10 – Sidebar-Links: im Normalzustand ohne Unterstreichung */
.impressum-kadence .im-card a,
.impressum-kadence .im-card a:visited {
  color: var(--im-brand) !important;
  text-decoration: none !important;
}

.impressum-kadence .im-card a:hover,
.impressum-kadence .im-card a:focus-visible {
  color: var(--im-brand) !important;
  text-decoration: underline !important;
}




/* ==========================================================
   IMPRESSUM – EINZIGER H1/UNTERZEILEN-ABSTAND
   Keine weitere H1-Margin-Definition in dieser Datei.
   Gilt identisch auf Desktop, Tablet und Mobile.
   ========================================================== */
.impressum-kadence .im-head h1 {
  margin: 18px 0 12px !important;
}

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