* {
  padding: 0;
  margin: 0;
  font-family: "Roboto", sans-serif;
  font-size: 15px;
  color: #374649;
  box-sizing: border-box;
}

p {
  margin-bottom: 1em;
}

h1, h2 {
  font-family: "Nunito", sans-serif;
  font-weight: 400;
}

h1 {
  font-size: 40px;
}

h2 {
  font-size: 28px;
}

h3, h4 {
  font-family: "Roboto", sans-serif;
  font-weight: 500;
}

.small-text {
  font-size: 12px !important;
}

html, body, .canvas {
  height: 100%;
}

.site-headline {
  margin-top: 10px;
  margin-bottom: 28px;
}

.canvas {
  margin: 0 auto;
  padding: 11px 1em 0;
  max-width: 1170px;
  flex: 1 auto;
  display: flex;
  flex-direction: column;
}
.canvas .footer {
  height: 100%;
  flex: 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.canvas .footer .logo {
  display: flex;
  justify-content: center;
  width: 100%;
}
.canvas .footer .logo img {
  width: 100%;
  max-width: 280px;
}
.canvas .footer .logo img.horizontal {
  max-width: 480px;
}
.canvas .footer .links {
  margin-top: 20px;
  width: 100%;
}
.canvas .content.consent .site-headline {
  margin-bottom: 18px;
  margin-top: 10px;
}

.normal-font {
  font-weight: 400 !important;
}

.intro-text {
  margin-bottom: 64px;
}
.intro-text.small {
  margin-bottom: 32px;
}
.intro-text.block {
  text-align: justify;
}
.intro-text.login {
  margin-bottom: 46px;
}

.suggest {
  margin-top: 60px;
}

.divider {
  border-top: 1px solid #b7cbd3;
  margin: 1.2em 0;
}

.footer {
  text-align: center;
  padding: 60px 0 25px;
}

.datenschutz h2,
.impressum h2 {
  margin-top: 36px;
  margin-bottom: 12px;
  font-size: 24px;
}
.datenschutz h3, .datenschutz h4,
.impressum h3,
.impressum h4 {
  margin: 0.4em 0 0;
}

.headband {
  margin-bottom: 12px;
  display: flex;
  flex-direction: row;
  border-bottom: 1px solid #eee;
  min-height: 85px;
  max-height: 85px;
}
.headband .navigation {
  align-self: center;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  margin: 0 auto 0 0;
}
.headband .navigation .headline {
  flex: 1 auto;
  display: flex;
  border-bottom: 1px solid #374649;
  align-items: center;
  padding-bottom: 5px;
}
.headband .navigation .headline h2 {
  color: #ed0000;
}
.headband .navigation .menu-links {
  flex: 1 auto;
  display: flex;
  align-items: flex-end;
  min-height: 2em;
}
.headband .navigation .menu-links a {
  margin-right: 1em;
  text-decoration: none;
  font-weight: 700;
  padding-bottom: 1em;
  border-bottom: 5px solid transparent;
}
.headband .navigation .menu-links a:hover, .headband .navigation .menu-links a.active {
  border-bottom: 5px solid #ed0000;
}
.headband .navigation .menu-links a:last-child {
  margin-right: 0;
}
.headband .logo {
  padding-bottom: 1em;
}
.headband .logo.te-logo {
  max-width: 100px;
  min-width: 80px;
  max-height: 82px;
}
.headband .logo.data-logo {
  max-width: 200px;
  min-width: 120px;
  align-self: flex-end;
  padding-bottom: 16px;
  padding-right: 60px;
}
.headband .logo img {
  max-width: 100%;
  max-height: 100%;
}

.userbar {
  display: flex;
  justify-content: flex-end;
}
.userbar .item {
  margin-right: 1.5em;
}
.userbar .item i.bi,
.userbar .item .bi::before {
  font-size: 16px;
}
.userbar .item:last-child {
  margin-right: 0;
}
.userbar a {
  text-decoration: none;
}

.flex {
  display: flex;
}
.flex.column {
  flex-direction: column;
}

.red {
  color: #ed0000;
}
.red b {
  color: #ed0000;
}

.blue {
  color: #4a7c90;
}
.blue b {
  color: #4a7c90;
}

.green {
  color: #008749;
}
.green b {
  color: #008749;
}

a.red-button {
  display: inline-block;
  border-radius: 80px;
  padding: 0 40px;
  background: 0 0;
  font-weight: 700;
  font-size: 14px;
  line-height: 16px;
  text-align: center;
  cursor: pointer;
  height: 50px;
  border: 1px solid #ed0000;
  color: #ed0000;
  text-decoration: none;
}
@media all and (max-width: 720px) {
  a.red-button {
    height: auto;
    padding: 10px 20px;
  }
}
a.red-button * {
  font-size: 14px;
}
a.red-button.line-height {
  height: 100%;
}
a.red-button * {
  color: #ed0000;
}
a.red-button:hover {
  background-color: #ed0000;
  color: #fff;
}
a.red-button:hover * {
  color: #fff;
}

a.green-button {
  display: inline-block;
  border-radius: 80px;
  padding: 0 40px;
  background: 0 0;
  font-weight: 700;
  font-size: 14px;
  line-height: 16px;
  text-align: center;
  cursor: pointer;
  height: 50px;
  border: 1px solid #008749;
  color: #008749;
  text-decoration: none;
}
@media all and (max-width: 720px) {
  a.green-button {
    height: auto;
    padding: 10px 20px;
  }
}
a.green-button * {
  font-size: 14px;
}
a.green-button * {
  color: #008749;
}
a.green-button:hover {
  background-color: #008749;
  color: #fff;
}
a.green-button:hover * {
  color: #fff;
}

form.te-form.small {
  max-width: 390px;
}
form.te-form.medium {
  max-width: 720px;
}
form.te-form label {
  display: block;
  margin: 0 0 4px;
  font-weight: 500;
}
form.te-form label.required:after {
  content: " *";
}
form.te-form.no-required-stars label.required:after {
  content: "";
}
form.te-form input[type=text],
form.te-form input[type=email],
form.te-form input[type=password] {
  border-radius: 10px;
  border: none;
  background-color: #f7f9fa;
  padding: 5px 7px 0;
  height: 38px;
  font-weight: 300;
  max-width: 100%;
  width: 100%;
}
form.te-form input[type=text]:focus-visible,
form.te-form input[type=email]:focus-visible,
form.te-form input[type=password]:focus-visible {
  outline: #4a7c90 solid 1px;
}
form.te-form input[type=text][disabled=disabled],
form.te-form input[type=email][disabled=disabled],
form.te-form input[type=password][disabled=disabled] {
  background-color: #fbfbfb;
  color: #777;
  cursor: not-allowed;
}
form.te-form input[type=checkbox],
form.te-form input[type=radio] {
  cursor: pointer;
  min-height: 1.2em;
  min-width: 1.2em;
  max-height: 1.2em;
  max-width: 1.2em;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: 1px solid #374649;
}
form.te-form input[type=checkbox]:checked,
form.te-form input[type=radio]:checked {
  background-color: #ed0000;
}
form.te-form input[type=submit].red-button,
form.te-form button[type=submit].red-button {
  display: inline-block;
  border-radius: 80px;
  padding: 0 40px;
  background: 0 0;
  font-weight: 700;
  font-size: 14px;
  line-height: 16px;
  text-align: center;
  cursor: pointer;
  height: 50px;
  border: 1px solid #ed0000;
  color: #ed0000;
}
@media all and (max-width: 720px) {
  form.te-form input[type=submit].red-button,
form.te-form button[type=submit].red-button {
    height: auto;
    padding: 10px 20px;
  }
}
form.te-form input[type=submit].red-button *,
form.te-form button[type=submit].red-button * {
  font-size: 14px;
}
form.te-form input[type=submit].red-button.line-height,
form.te-form button[type=submit].red-button.line-height {
  height: 100%;
}
form.te-form input[type=submit].red-button *,
form.te-form button[type=submit].red-button * {
  color: #ed0000;
}
form.te-form input[type=submit].red-button:hover,
form.te-form button[type=submit].red-button:hover {
  background-color: #ed0000;
  color: #fff;
}
form.te-form input[type=submit].red-button:hover *,
form.te-form button[type=submit].red-button:hover * {
  color: #fff;
}
form.te-form input[type=submit].green-button,
form.te-form button[type=submit].green-button {
  display: inline-block;
  border-radius: 80px;
  padding: 0 40px;
  background: 0 0;
  font-weight: 700;
  font-size: 14px;
  line-height: 16px;
  text-align: center;
  cursor: pointer;
  height: 50px;
  border: 1px solid #008749;
  color: #008749;
}
@media all and (max-width: 720px) {
  form.te-form input[type=submit].green-button,
form.te-form button[type=submit].green-button {
    height: auto;
    padding: 10px 20px;
  }
}
form.te-form input[type=submit].green-button *,
form.te-form button[type=submit].green-button * {
  font-size: 14px;
}
form.te-form input[type=submit].green-button *,
form.te-form button[type=submit].green-button * {
  color: #008749;
}
form.te-form input[type=submit].green-button:hover,
form.te-form button[type=submit].green-button:hover {
  background-color: #008749;
  color: #fff;
}
form.te-form input[type=submit].green-button:hover *,
form.te-form button[type=submit].green-button:hover * {
  color: #fff;
}
form.te-form input[type=submit].red-inverse-button,
form.te-form button[type=submit].red-inverse-button {
  display: inline-block;
  border-radius: 80px;
  padding: 0 40px;
  background: 0 0;
  font-weight: 700;
  font-size: 14px;
  line-height: 16px;
  text-align: center;
  cursor: pointer;
  height: 50px;
  border: 1px solid #ed0000;
  background-color: #ed0000;
  color: #fff;
}
@media all and (max-width: 720px) {
  form.te-form input[type=submit].red-inverse-button,
form.te-form button[type=submit].red-inverse-button {
    height: auto;
    padding: 10px 20px;
  }
}
form.te-form input[type=submit].red-inverse-button *,
form.te-form button[type=submit].red-inverse-button * {
  font-size: 14px;
}
form.te-form input[type=submit].red-inverse-button *,
form.te-form button[type=submit].red-inverse-button * {
  color: #fff;
}
form.te-form input[type=submit].red-inverse-button:hover,
form.te-form button[type=submit].red-inverse-button:hover {
  background-color: #fff;
  color: #ed0000;
}
form.te-form input[type=submit].red-inverse-button:hover *,
form.te-form button[type=submit].red-inverse-button:hover * {
  color: #ed0000;
}
form.te-form input[type=submit].green-inverse-button,
form.te-form button[type=submit].green-inverse-button {
  display: inline-block;
  border-radius: 80px;
  padding: 0 40px;
  background: 0 0;
  font-weight: 700;
  font-size: 14px;
  line-height: 16px;
  text-align: center;
  cursor: pointer;
  height: 50px;
  border: 1px solid #008749;
  background-color: #008749;
  color: #fff;
}
@media all and (max-width: 720px) {
  form.te-form input[type=submit].green-inverse-button,
form.te-form button[type=submit].green-inverse-button {
    height: auto;
    padding: 10px 20px;
  }
}
form.te-form input[type=submit].green-inverse-button *,
form.te-form button[type=submit].green-inverse-button * {
  font-size: 14px;
}
form.te-form input[type=submit].green-inverse-button *,
form.te-form button[type=submit].green-inverse-button * {
  color: #fff;
}
form.te-form input[type=submit].green-inverse-button:hover,
form.te-form button[type=submit].green-inverse-button:hover {
  background-color: #fff;
  color: #008749;
}
form.te-form input[type=submit].green-inverse-button:hover *,
form.te-form button[type=submit].green-inverse-button:hover * {
  color: #008749;
}
form.te-form .form-field {
  margin-bottom: 14px;
}
form.te-form .form-field.submit {
  margin-top: 15px;
  text-align: right;
}
form.te-form .form-field.checkbox label {
  margin: 0;
  cursor: pointer;
  font-weight: 400;
  line-height: normal;
}
form.te-form .form-field.checkbox label:before {
  display: inline-block;
  font-family: bootstrap-icons !important;
  font-style: normal;
  font-weight: normal !important;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  vertical-align: -0.125em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin-right: 10px;
  content: "\f584";
}
form.te-form .form-field.checkbox input[type=checkbox] {
  opacity: 0;
  position: absolute;
  z-index: -1;
}
form.te-form .form-field.checkbox input[type=checkbox]:checked + label:before {
  display: inline-block;
  font-family: bootstrap-icons !important;
  font-style: normal;
  font-weight: normal !important;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  vertical-align: -0.125em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin-right: 10px;
  content: "\f26d";
}
form.te-form .form-field.small-notice * {
  font-size: 12px;
}
form.te-form .form-row {
  display: flex;
}
form.te-form .form-row .form-field {
  flex: 1 50%;
  margin-right: 2em;
}
form.te-form .form-row .form-field:last-child {
  margin-right: 0;
}

.form-error {
  color: #ed0000;
}
.form-error ul {
  list-style: none;
}
.form-error ul li {
  color: #ed0000;
}

table.te-table {
  width: 100%;
  margin: 0;
  text-align: left;
  border-collapse: collapse;
  border-spacing: 0;
}
table.te-table tr.even td {
  background-color: #f7f9fa;
}
table.te-table tr.inactive td, table.te-table tr.inactive td * {
  color: #637e83;
}
table.te-table thead tr:first-child th {
  border-top: 1px solid #757575;
}
table.te-table thead tr.head th {
  border-bottom: 1px solid #fff;
}
table.te-table th {
  background-color: #ed0000;
  border-bottom: none;
  color: #fff;
  font-weight: 400;
  border-top: 0;
  border-left: 1px solid #ed0000;
  padding: 10px 15px;
}
table.te-table th:first-child {
  border-left: 1px solid #757575;
}
table.te-table th:last-child {
  border-right: 1px solid #757575;
}
table.te-table td {
  padding: 10px 15px;
  border: 1px solid #f7f9fa;
}
table.te-table td.center {
  text-align: center;
}
table.te-table td.icon-link a {
  text-decoration: none;
}

.consent-status {
  text-align: center;
  background-color: #f7f9fa;
  border-radius: 25px;
  margin: 15px 0 40px;
  height: 90px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.consent-status span {
  margin-left: 2px;
}
.consent-status span,
.consent-status span * {
  font-family: "Nunito", sans-serif;
  font-size: 20px;
}
.consent-status .next {
  margin-top: 0.5em;
}

.grid-wrapper {
  width: 100%;
  margin: auto 0;
}

.consent-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 5px;
  grid-template-areas: ". .";
  align-items: center;
}
.consent-grid .label {
  text-align: right;
}
.consent-grid .value {
  text-align: left;
}

.image-preview {
  border: 1px solid #eee;
  max-width: 360px;
}
.image-preview img {
  max-width: 100%;
  max-height: 100%;
  display: block;
}

@media all and (max-width: 720px) {
  .headband .navigation .headline h2 {
    font-size: 20px;
  }
  .headband .navigation .menu-links a {
    font-size: 14px;
  }

  .consent-status {
    height: auto;
    padding: 22px 0;
    flex-direction: column;
  }
  .consent-status span {
    margin-left: 0;
  }

  .consent-grid {
    display: flex;
    flex-direction: column;
  }
  .consent-grid .value {
    margin-bottom: 20px;
  }
  .consent-grid .value:last-child {
    margin-bottom: 0;
  }
}
.pagination {
  display: flex;
  margin-bottom: 15px;
}
.pagination.center {
  justify-content: center;
}
.pagination .pager-menu {
  background-color: #f7f9fa;
  border-radius: 20px;
  margin-right: 5px;
}
.pagination .pager-menu:last-child {
  margin-right: 0;
}
.pagination .pager-menu.current, .pagination .pager-menu:hover {
  background-color: #b7cbd3;
}
.pagination .pager-menu a {
  text-decoration: none;
}
.pagination .pager-menu a, .pagination .pager-menu span {
  display: block;
  padding: 10px 16px;
}

@media all and (max-width: 480px) {
  form.te-form .form-row {
    flex-direction: column;
  }
  form.te-form .form-row .form-field {
    margin-right: 0;
  }

  .canvas .headband .logo {
    min-width: unset;
  }
  .canvas .userbar {
    margin: 1em 0 2em;
  }
}
@media all and (max-width: 300px) {
  .canvas .headband {
    min-height: unset;
  }
  .canvas .headband .logo.te-logo {
    display: none;
  }
}
