.body-copy {
  overflow-anchor: none;
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    color: $color-brand--one;
  }

  .title--s {
    @include font-style($body-copy-title--s, $body-copy-title--s);
    margin-bottom: $spacing--s;

    & + ol,
    & + ul {
      margin-top: $spacing--m;
    }
  }

  .title--xxs {
    margin-bottom: $spacing--xs;

    & + ol,
    & + ul {
      margin-top: $spacing--s;
    }
  }

  .text-source {
    @include font-style('body--m');
    @include text--alternative;
  }

  // lists
  ol,
  ul {
    margin-bottom: $spacing--m;

    & + ol,
    & + ul {
      margin-top: $spacing--l;
    }
  }

  li {
    padding-left: $body-copy-list-item-spacing;

    &::before {
      color: $color-brand--one;
      display: inline-block;
      margin-left: -($body-copy-list-item-spacing);
      min-width: 31px;
    }
  }

  li + li {
    margin-top: $spacing--xs;
  }
  // unordered list
  ul:not(.list--checks) li::before {
    content: '\2022';
    font-size: 1.2em;
    padding-left: 5px;
  }
  // ordered list
  ol {
    counter-reset: li;
    list-style: none;

    li {
      counter-increment: li;
    }

    li::before {
      content: counter(li) '.' ' ';
      position: relative;
    }
  }
  // remove spacing for last item
  p:last-child,
  ul:last-child,
  ol:last-child {
    margin-bottom: 0;
  }
  // background and typo mappings
  @include body-copy-background-mapping;
}
