html body {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  -moz-hyphens: auto;
  -ms-hyphens: auto;
  -webkit-hyphens: auto;
  hyphens: auto;
  color: var(--bs-body-color);

  *:focus,
  *:active {
    outline: 0px;
  }

  img {
    max-width: 100%;
    height: auto;
    width: auto;
  }

  strong, b {
    font-weight: $font-weight-bold;
  }

  iframe, embed {
    width: 100%;
  }

  video {
    width: 100%;
    max-height: 100%;
  }

  a {
    transition: color 0.3s ease;
    color: var(--bs-primary);

    &:hover {
      color: var(--bs-secondary);
    }
  }

  span:not([data-bs-toggle="dropdown"]) {
    line-height: var(--bs-body-line-height);
  }

  p {
    line-height: var(--bs-body-line-height-lg);
    //overflow: auto;

    /*
    &.error {
      //@extend .bg-danger;
      //@extend .alert;
      color: var(--bs-body-color-inverse);
      font-size: 1rem;
      font-weight: $font-weight-normal;
      width: 100%;

    }
    */
    > a.alert {
      margin-top: 0px;
      margin-bottom: 0px;
    }

    &:last-child {
      margin-bottom: 0px;
    }

    & + h2,
    & + .h2 {
      margin-top: 2rem;
    }
  }

  h6,
  .h6,
  h5,
  .h5,
  h4,
  .h4,
  h3,
  .h3,
  h2,
  .h2,
  h1,
  .h1 {
    line-height: 1.2;
    transition: color 0.3s ease;
    color: var(--bs-headline-color);
    font-weight: var(--bs-headline-font-weight);

    > span {
      display: block;
    }
  }

  .ce--subline {
    font-weight: $font-weight-bold;
    color: var(--bs-primary);
    @include font-size(22px);
    display: block;
    margin-bottom: $headline-spacing;
    line-height: var(--bs-body-line-height);
  }

  .ce--topline {
    font-weight: $font-weight-light;
    color: var(--bs-primary);
    @include font-size(22px);
    display: block;
    line-height: var(--bs-body-line-height);

    &:not(:last-child) {
      margin-bottom: .25rem;
    }
  }


  h1,
  .h1 {

    margin-bottom: $headline-spacing;
    display: block;

    & + .ce--subline {
      margin-top: -$headline-spacing / 1.25;
      margin-bottom: $headline-spacing;
      @include font-size(1.5rem);
    }
  }

  h2,
  .h2 {

    margin-bottom: $headline-spacing / 1.75;
    display: block;

    & + .ce--subline {
      margin-top: -$headline-spacing/2;
      margin-bottom: $headline-spacing / 1.75;
      @include font-size(1.5rem);
    }
  }

  h3,
  .h3 {
    font-weight: var(--bs-font-weight-500);
    margin-bottom: $headline-spacing / 2.5;
    font-size: 1.5rem;
    color: var(--bs-primary);
    display: block;

    & + .ce--subline {
      margin-top: -$headline-spacing / 3;
      margin-bottom: $headline-spacing / 3;
    }
  }

  h4,
  .h4 {
    margin-bottom: $headline-spacing;

    & + .ce--subline {
      margin-top: -$headline-spacing/1.25;
      margin-bottom: $headline-spacing;
    }
  }

  main ul {
    padding-left: 15px;

    &:last-child {
      margin-bottom: 0px;
    }

    &.list-downloads {
      list-style-type: none;
      padding: 0px;
      margin: 0px;

      > li {
        position: relative;

        &:not(:last-child) {
          margin-bottom: 8px;
        }

        a {
          text-decoration: none;
          color: var(--bs-body-color);
          padding-left: 35px;
          display: block;

          &:before {
            @extend %fa-icon;
            @extend .fal;
            content: fa-content($fa-var-download);
            position: absolute;
            padding-right: rfs-value(10px);
            color: var(--bs-primary);
            left: 0;
            top: 7px;
          }
        }
      }
    }
  }

  .table-responsive {
    margin-bottom: 1rem;

    &:last-child {
      margin-bottom: 0px;
    }

    > table.table {
      margin-top: 0px;
    }
  }

  table.table {
    margin-top: 1rem;
    margin-bottom: 1rem;

    &:last-child {
      margin-bottom: 0px;
    }

    &.table-data {
      @include font-size(14px);
      margin-top: 0px;

      tr {
        td {
          border-bottom: 0px;
          padding-top: 0.25rem;
          padding-bottom: 0.25rem;

          &:first-child {
            color: var(--bs-primary);
            padding-left: 0px;
            font-family: $font-family-tertiary;
          }

          &:last-child {
            white-space: normal;
          }
        }
      }
    }

    &.table-technical-data {
      border: 0px;
      width: 100% !important;
      height: auto !important;
      //margin-top: 2.5rem;

      > thead {
        > tr {
          background-color: var(--bs-blue);

          th {
            color: var(--bs-body-color-inverse);
          }
        }
      }

      > tbody:first-child {
        > tr {
          &:first-child {
            background-color: var(--bs-blue);

            td {
              color: var(--bs-body-color-inverse);
            }
          }
        }
      }

      > tbody {
        > tr {
          &:nth-child(even) {
            background-color: var(--bs-gray-300);
          }

          &:nth-child(odd) {
            background-color: var(--bs-gray-400);
          }


          td {
            padding: rfs-value(5px 10px);
            width: auto !important;
            height: auto !important;
            border-bottom: 0px;
            color: var(--bs-gray-700);
          }
        }
      }
    }

    tr {
      td {
        width: auto;
        white-space: nowrap;
        height: auto;
      }
    }
  }

  a.alert {
    text-decoration: none;

    i {
      @include font-size(22px);
      margin-right: rfs-value(15px);
      vertical-align: sub;
    }
  }
}

.text-primary {
  color: $primary !important;
}

.text-secondary {
  color: $secondary !important;
}


.dynamic-fontsize-lg {
  font-size: calc(4.5vh + 4.5vw);
  line-height: var(--bs-body-line-height-sm);
}

.dynamic-fontsize {
  font-size: calc(3.5vh + 3.5vw);
  line-height: var(--bs-body-line-height-sm);
}


.dynamic-fontsize-sm {
  font-size: calc(2.5vh + 2.5vw);
  line-height: var(--bs-body-line-height-sm);
}