// WordPress blog & articles view
//
// The styles for most of the TinyMCE produced
// classes and WordPress Gutenberg editor formatting.

// Blog post category styles
.cat {
  margin-bottom: .5rem;
  margin-top: 4rem;

  a {
    background-color: transparent;
    border-color: $color-cat-borders;
    border-radius: 5px;
    border-style: solid;
    border-width: 1px 1px 2px;
    box-shadow: none;
    color: $color-black;
    display: inline-block;
    font-size: var(--font-size-small);
    margin-bottom: .5rem;
    margin-right: .5em;
    padding: .2em .6em;
    transition: all $transition-duration;
  }

  a:hover,
  a:focus {
    /* stylelint-disable sh-waqar/declaration-use-variable */
    border-color: rgba($color-blog-tags, .4);
    /* stylelint-enable sh-waqar/declaration-use-variable */
  }
}

.gutenberg-content {
  max-width: 100%;
  padding-bottom: var(--padding-block);
  padding-left: 0;
  padding-right: 0;
  padding-top: var(--padding-block);

  .blocks-gallery-grid {
    display: grid;

    .blocks-gallery-item {
      width: 100%;
    }
  }

  // Loops to enumerate the classes for columns.
  @for $i from 2 through 9 {
    .columns-#{$i} .blocks-gallery-grid {
      grid-column-gap: 3rem;
      grid-template-columns: repeat($i, 1fr);
    }
  }

  // WordPress alignments
  .cat-links,
  .tags-links {
    display: block;
  }

  .alignleft {
    float: left;
    margin-right: 3rem;
  }

  .alignright {
    float: right;
    margin-left: 3rem;
  }

  .aligncenter {
    clear: both;
    display: block;
    margin: 0 auto;
  }

  del {
    color: $color-blockquotes;
    text-decoration: line-through;
  }

  p {
    color: $color-paragraphs;
    font-weight: 400;
    line-height: $line-height-blog;
  }

  // Lists
  li {
    @include responsive-font($font-size-min, $font-size-max-blog);

    @media (max-width: $container-mobile) {
      font-size: 15px;
    }
  }

  // Embeds
  embed,
  iframe,
  object,
  video {
    max-width: 100%;
  }

  // Title line-heights
  h1,
  h2,
  h3,
  h4,
  h5,
  .is-style-ingress {
    line-height: 1.22;
  }

  // Don't add extra margin on top of first title
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    &:first-child {
      margin-top: 0;
    }
  }

  img {
    border-radius: 4px;
  }

  @media (max-width: $width-max-article + 40px) {
    padding-left: 2rem;
    padding-right: 2rem;
    width: calc(100% - 4rem);

    pre {
      margin-left: 2rem;
      width: calc(100% - 8rem);
    }

    ol,
    ul {
      padding-left: calc(2rem + 2.7rem);
    }

    ul.tags {
      padding-left: 0;
    }
  }

  figcaption,
  cite,
  small {
    border: 0;
    color: $color-captions;
    font-size: 15px;
    font-style: normal;
    margin-bottom: 6rem;
    margin-left: auto;
    margin-right: auto;
    margin-top: 3rem;
    max-width: $width-max-article;
    padding-bottom: 0;
    text-align: center;
    width: 100%;

    @media (max-width: $container-mobile) {
      margin-top: 2rem;
    }
  }

  &.wp-block-gallery {
    color: $color-white;
    overflow: hidden;

    figcaption {
      color: $color-white;
      font-size: var(--font-size-small);
      line-height: 1.55;
      margin-bottom: var(--margin-between-text-elements);
      padding: 0 2rem;
      width: 100%;

      @media (max-width: 600px) {
        padding: 0;
      }
    }

    img {
      margin-bottom: 0;
    }
  }

  /* stylelint-disable selector-max-compound-selectors */
  .wp-block-image figcaption,
  .wp-block-image .alignright > figcaption,
  .wp-block-image .aligncenter > figcaption,
  .wp-block-image.is-resized > figcaption {
    display: block;
    width: 100%;
  }
  /* stylelint-enable selector-max-compound-selectors */

  .wp-block-image > figure {
    display: inline-block;
    width: auto;

    &.alignleft,
    &.alignright {
      // Hack for keeping figcaption from flowing over floated image, this variable is set inline to the corresponding figure with gutenberg-helpers.js
      /* stylelint-disable csstools/value-no-unknown-custom-properties */
      max-width: var(--child-img-width);
      /* stylelint-enable */
    }

    &.alignleft,
    &.alignright,
    &.aligncenter {
      figcaption {
        margin-bottom: 2rem;
      }

      @media (max-width: $container-mobile) {
        float: none;
        margin: 0;

        // Has to be important because we want to override inline width
        /* stylelint-disable declaration-no-important */
        width: 100% !important;
        /* stylelint-enable */
      }

      @media (max-width: $container-mobile) {
        &.alignleft img,
        &.alignright img,
        &.aligncenter img {
          float: none;
          height: auto;
          width: 100%;
        }
      }
    }
  }

  a:hover,
  &:focus {
    text-decoration: none;
  }

  iframe,
  .fb-post,
  small {
    display: block;
  }

  cite {
    margin-bottom: 0;
  }

  > blockquote,
  > blockquote.wp-block-quote {
    border-left: 2px solid $color-links;
    line-height: $line-height-blog;
    margin-bottom: 4rem;
    margin-left: auto;
    margin-right: auto;
    margin-top: 4rem;
    padding: 3.5rem 6rem;

    @media (max-width: $width-max-article + 40px) {
      padding: 3.5rem 2rem;
      width: calc(100% - 4rem);
    }

    cite {
      text-align: left;
    }

    @media (max-width: $container-mobile) {
      padding: 4rem 4rem 4rem 2rem;
    }

    > p {
      color: $color-links;
      line-height: $line-height-blog;
    }
  }

  div[style="width: 640px;"],
  .wp-video {
    // Forced to use important here, because embeds inline stuff
    /* stylelint-disable declaration-no-important */
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: $width-max-article !important;
    width: 100% !important;
    /* stylelint-enable */
  }

  > figure.wp-caption {
    // Forced to use important here, because embeds inline stuff
    /* stylelint-disable declaration-no-important */
    max-width: $width-max-article !important;
    width: 100% !important;
    /* stylelint-enable */
  }

  > * {
    line-height: $line-height-blog;
    margin-left: auto;
    margin-right: auto;
    max-width: $width-max-article;
    width: 100%;

    .twitter-tweet,
    .instagram-media,
    .wp-video,
    .is-provider-instagram,
    .is-provider-twitter,
    .is-provider-facebook {
      // Forced to use important here, because embeds inline stuff
      /* stylelint-disable declaration-no-important */
      margin-left: auto !important;
      margin-right: auto !important;
      max-width: $width-max-article !important;
      width: 100% !important;

      @media (max-width: $width-max-article + 40px) {
        padding-left: 4rem !important;
        padding-right: 4rem !important;
      }

      @media (max-width: 480px) {
        padding-left: 2rem !important;
        padding-right: 2rem !important;
      }
      /* stylelint-enable */
    }

    &.wp-block-image {
      margin-bottom: 4rem;
      margin-top: 4rem;
    }

    &.twitter-tweet,
    &.instagram-media,
    &.wp-video {
      // Forced to use important here, because embeds inline stuff
      /* stylelint-disable declaration-no-important */
      margin-left: auto !important;
      margin-right: auto !important;
      max-width: $width-max-article !important;
      width: 100% !important;

      @media (max-width: $width-max-article + 40px) {
        padding-left: 4rem !important;
        padding-right: 4rem !important;
      }

      @media (max-width: 480px) {
        padding-left: 2rem !important;
        padding-right: 2rem !important;
      }
      /* stylelint-enable */
    }

    &.alignwide {
      margin-bottom: 4rem;
      margin-left: auto;
      margin-right: auto;
      margin-top: 4rem;
      padding-left: 2rem;
      padding-right: 2rem;
      width: 100%;

      @media (min-width: 870px) {
        max-width: $width-grid-base;
        padding-left: 0;
        padding-right: 0;
      }
    }

    &.alignfull {
      margin-bottom: 8rem;
      margin-top: 8rem;
      max-width: 100%;
      width: 100%;

      img {
        border-radius: 0;
      }
    }
  }

  @media (min-width: 1170px) {
    small[style="text-align: center;"] {
      display: block;
      margin-bottom: 8rem;
      margin-top: -4rem;
      max-width: 100%;
      width: 100%;
    }
  }
}

// WordPress captions
.wp-caption {
  max-width: 100%;

  @media (max-width: $width-max-article + 40px) {
    // Forced to use important here, because embeds inline stuff
    /* stylelint-disable declaration-no-important */
    width: 100% !important;
    /* stylelint-enable */
  }

  img[class*="wp-image-"] {
    display: block;
    margin: 0 auto;
  }

  .wp-caption-text {
    font-style: italic;
    margin-bottom: 20px;
    padding: 1rem 0;
    text-align: left;
  }
}

// Tables, codes and pres
table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  font-family: $font-paragraphs;
  height: 3rem;
  padding: 1rem;

  @media (max-width: 600px) {
    display: inline-block;
    height: auto;
    padding: 10px 0;
    text-align: center;
    width: 100%;
  }
}

// Table heading cells
th {
  font-weight: 700;
}

abbr[title] {
  border-bottom: 1px dotted;
}

b,
strong {
  font-weight: 700;
}

dfn {
  font-style: italic;
}

kbd {
  background-color: $color-tags-and-search-items;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-shadow: 0 1px 0 rgba(#000, .2), 0 0 0 2px $color-white inset;
  color: $color-paragraphs;
  display: inline-block;
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.4;
  padding: 0 .5rem;
  text-shadow: 0 1px 0 $color-white;
  white-space: nowrap;
}

// Preformatted text.
// CSS Simple Pre Code
pre {
  background-color: $color-code-background;
  border: 1px solid $color-code-background;
  border-radius: 4px;
  color: $color-lightgrey;
  display: block;
  font-family: $font-monospace;
  font-size: var(--font-size-small);
  line-height: $line-height-blog;
  margin: 3rem 0;
  overflow: auto;
  padding: 15px 16px 14px;
  position: relative;
  white-space: pre;
  word-wrap: break-word;

  code {
    border-radius: 4px;
  }
}

// Next/Previous single post navigation
.post-navigation .nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

// Blog post tag styles
ul.tags {
  list-style: none;
  margin-bottom: var(--margin-between-text-elements);
  margin-top: 0;
  overflow: hidden;

  @media (min-width: $width-max-article + 40px) {
    padding: 0;
  }

  li {
    float: left;
    margin-bottom: 10px;
    margin-left: 0;
    margin-right: 10px;
    margin-top: 0;
    padding-left: 0;

    a:not(.button):not(.no-text-link) {
      background-color: transparent;
      border-color: $color-tag-borders;
      border-radius: 5px;
      border-style: solid;
      border-width: 1px 1px 2px;
      box-shadow: none;
      color: $color-black;
      display: inline-block;
      font-size: $font-size-tiny;
      margin-right: .4em;
      padding: .2em .6em;
      transition: all $transition-duration;
    }

    /* stylelint-disable selector-max-compound-selectors, selector-max-pseudo-class */
    a:not(.button):not(.no-text-link):hover,
    a:not(.button):not(.no-text-link):focus {
      border-color: $color-tag-borders-hover;
    }
    /* stylelint-enable selector-max-compound-selectors, selector-max-pseudo-class */
  }
}
