.gdoc-markdown {
  line-height: 1.6em;

  > :first-child {
    margin-top: 0 !important;
  }

  &--nested {
    :first-child {
      margin-top: 0 !important;
    }

    > pre {
      margin-top: 0 !important;
    }

    > :last-child {
      margin-bottom: 0;
    }
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    > code {
      border-top: $border-4 solid var(--accent-color);
      font-size: 0.75em !important;
    }
  }

  h4,
  h5,
  h6 {
    > code {
      font-size: 0.8rem !important;
    }
  }

  b,
  optgroup,
  strong {
    font-weight: bolder;
  }

  a,
  &__link {
    text-decoration: none;
    border-bottom: $border-1 solid transparent;
    line-height: 1em;

    &:hover {
      text-decoration: underline;
    }
  }

  &__link--raw {
    text-decoration: none !important;
    color: $body-font-color !important;

    &:hover {
      text-decoration: none !important;
    }

    &:visited {
      color: $body-font-color !important;
    }
  }

  &__link--code {
    text-decoration: none;
    code {
      color: inherit !important;
    }

    &:hover {
      background: none;
      color: var(--link-color) !important;
      text-decoration: underline;
    }

    &:visited,
    &:visited:hover {
      color: var(--link-color-visited) !important;
    }
  }

  &__figure {
    padding: $padding-4;
    margin: $padding-16 0;
    background-color: var(--accent-color);
    display: table;
    border-top-left-radius: $border-radius;
    border-top-right-radius: $border-radius;

    figcaption {
      display: table-caption;
      caption-side: bottom;
      background-color: var(--accent-color);
      padding: 0 $padding-4 $padding-4;
      text-align: center;
      border-bottom-left-radius: $border-radius;
      border-bottom-right-radius: $border-radius;
    }

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

  img {
    max-width: 100%;
    border-radius: $border-radius;
  }

  blockquote {
    margin: $padding-16 0;
    padding: $padding-8 $padding-16 $padding-8 ($padding-16 - $padding-4); //to keep total left space 16dp

    border-left: $border-4 solid var(--accent-color);
    border-radius: $border-radius;

    :first-child {
      margin-top: 0;
    }
    :last-child {
      margin-bottom: 0;
    }
  }

  table:not(.lntable) {
    display: table;
    border-spacing: 0;
    border-collapse: collapse;
    margin-top: $padding-16;
    margin-bottom: $padding-16;
    width: 100%;
    text-align: left;

    thead {
      border-bottom: $border-4 solid var(--accent-color);
    }

    tr th,
    tr td {
      padding: $padding-8 $padding-16;
    }

    tr {
      border-bottom: $border-2 solid var(--accent-color);
    }

    tr:nth-child(2n) {
      background: var(--accent-color-lite);
    }
  }

  hr {
    height: $border-2;
    border: none;
    background: var(--accent-color);
  }

  ul,
  ol {
    padding-left: $padding-16 * 2;
  }

  dl {
    dt {
      font-weight: bolder;
      margin-top: $padding-16;
    }

    dd {
      margin-left: $padding-16 * 2;
    }
  }

  pre {
    margin: 1rem 0;
  }

  code {
    background-color: var(--code-background);
    border-radius: $border-radius;
    color: var(--code-font-color);
    font-size: 0.85em;
    line-height: 1.45em;
    padding: 0.2em 0.4em;
  }

  pre code {
    display: block;
    padding: 1rem;
    width: 100%;
  }

  mark {
    background-color: var(--mark-color);
  }

  &__align {
    &--left {
      h1,
      h2,
      h3,
      h4,
      h5,
      h6 {
        justify-content: flex-start;
      }
      text-align: left;
    }

    &--center {
      h1,
      h2,
      h3,
      h4,
      h5,
      h6 {
        justify-content: center;
      }
      text-align: center;
    }

    &--right {
      h1,
      h2,
      h3,
      h4,
      h5,
      h6 {
        justify-content: flex-end;
      }
      text-align: right;
    }
  }
}
