:root {
  --header-bgcolor: #888; /* Setze eine passende Hintergrundfarbe */
  --header-bgcolor-dark: #666;
}

/* Basis-Tabelle */
table {
  width: 100%;
  border: 1px solid #f0f0f0;
  border-collapse: collapse;
}

/* Text neben Bild */
.ce-textpic.ce-right .ce-bodytext {
  width: 70%;
}

/* Tabellenkopf */
table th {
  background-color: var(--header-bgcolor-dark);
  color: #fff;
  padding: 5px 10px;
  position: relative;
  text-align: left;
}

/* Tabellenzellen */
table td {
  padding: 10px;
  position: relative;
}

/* Absatz in Tabellenzellen */
table p {
  margin-bottom: 0;
}

/* Zebra-Streifen für Tabellenzeilen */
table tr:nth-child(odd) {
  background: #fff;
}
table tr:nth-child(even) {
  background: #f0f0f0;
}

/* Responsive Tabellen für kleine Bildschirme */
th {
  display: none;
}
td {
  display: block;
  vertical-align: top;
}
td:last-child {
  padding-bottom: .5em;
}
td:before {
  content: attr(data-th);
  font-weight: bold;
  margin-right: 5px;
  display: block;
}

/* Sonderformat für Tabellen mit summary="left" */
table[summary="left"] th {
  width: 35%;
  float: left;
  display: block;
}
table[summary="left"] td {
  width: 50%;
  float: left;
}
table[summary="left"] td::before {
  display: none;
}

/* Medienabfrage: Desktop */
@media (min-width: 600px) {
  td:before {
    display: none;
  }
  th, td {
    display: table-cell;
  }
}

/* Medienabfrage: Mobil */
@media (max-width: 599px) {
  table {
    border-top: 1px solid #dadada;
  }

  table td {
    box-sizing: border-box;
    margin: 0;
    padding: 10px;
    text-align: left;
    vertical-align: top;
    width: 100%;
  }

  table[summary="left"] th,
  table[summary="left"] td {
    width: 100%;
  }

  table[summary="left"] tr:nth-child(odd) th {
    background: #fff;
    color: #000;
    padding-bottom: 0;
    border: 0;
  }

  table[summary="left"] tr:nth-child(even) th {
    background: #f0f0f0;
    color: #000;
    padding-bottom: 0;
    border: 0;
  }
}

/* Tabelle ohne Optik */
table.noTableOptik {
  border: 0;
  width: auto;
  margin: 0 auto;
}
table.noTableOptik tr:nth-child(even) {
  background: transparent;
}
table.noTableOptik tr:first-child h1,
table.noTableOptik tr:first-child h2,
table.noTableOptik tr:first-child h3,
table.noTableOptik tr:first-child h4 {
  margin-top: 0;
}
table.noTableOptik td {
  padding: 0 50px 0 0;
}
table.noTableOptik td:last-child {
  padding-right: 0;
}
