.richTextBlock {
  margin-bottom: var(--spacing-section-bottom);

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    margin: var(--spacing-m) auto var(--spacing-s);
    max-width: var(--size-width-p);
  }

  h5,
  h6 {
    text-transform: uppercase;
    letter-spacing: .04em;
  }

  p {
    margin: 0 auto 1.4em;
    font-size: var(--font-size-body);
    max-width: var(--size-width-p);
  }

  ul,
  ol {
    margin: 1em auto 2em;
    font-size: var(--font-size-body);
    max-width: var(--size-width-p);
    list-style: none;

    li {
      position: relative;
      margin-bottom: .75em;
      padding-left: 2em;

      &:before {
        position: absolute;
        left: 0;
      }
    }
  }

  ul {
    li {
      &:before {
        content: "";
        left: .35em;
        top: .4em;
        display: block;
        width: .75em;
        height: .75em;
        border-radius: 1em;
        background: var(--color-goldenOrange);
      }
    }
  }

  ol {
    counter-reset: counter;

    li {
      &:before {
        counter-increment: counter;
        content: counter(counter);
        font-weight: 500;
        color: var(--color-chateauBlue);
        border-radius: 1em;
        background: var(--color-neufPink);
        width: 1.5em;
        height: 1.5em;
        text-align: center;
      }
    }
  }

  blockquote {
    font-family: var(--font-serif);
    font-size: 2.8rem;
    font-style: italic;
    max-width: calc(var(--size-width-p) * 1.4);
    margin: 2rem auto 3.2rem;
  }

  strong,
  b {
    font-weight: 600;
  }

  em {
    font-style: italic;
  }

  a:not(:global(.button)) {
    text-decoration-thickness: .1rem;
    text-decoration-color: var(--color-goldenOrange);
    font-weight: 500;
    transition: text-decoration-color var(--transition-easing);

    &:hover {
      opacity: 1;
      text-decoration-color: currentColor;
    }
  }

  img {
    max-width: 100%;
  }

  figure {
    margin: 2rem 0 2.4rem;
  }

  figcaption {
    font-size: var(--font-size-caption);
    padding: .6rem 0;
    max-width: var(--size-width-p);
  }

  hr {
    margin: 2rem auto;
    max-width: var(--size-width-p);
    border: none;
    height: 1px;
    background: var(--color-text);
  }

  table {
    width: 100%;
    max-width: var(--size-width-p);
    border-collapse: collapse;
    margin: 0 auto;

    tr {
      border-top: var(--border);

      &:last-child {
        border-bottom: var(--border);
      }
    }

    th {
      text-align: left;
      width: 11rem;
      font-weight: 600;
    }

    th,
    td {
      padding: var(--spacing-xs) 0;
    }
  }
}
