/**
 * single.css
 */

section.single-post {
  max-width: 700px;
  margin: 0 auto;
  padding: 0 0 32px 0;

  .post-thumbnail {
    display: flex;
    align-items: center;
    width: auto;
    aspect-ratio: 2.35 / 1;
    margin-bottom: 16px;
    border-radius: 4px;
    background: var(--color-white-dark);
    overflow: hidden;

    img {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
    }
  }

  .post-title {
    margin-bottom: 12px;
    color: var(--color-black);
    font-family: var(--font-family-headings);
    font-size: var(--font-size-h1);
    line-height: 0.95;
  }

  .post-meta,
  .post-submeta {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 16px;
    color: var(--color-grey-dark);
    font-size: var(--font-size-medium);
    
    a {
      color: var(--color-grey-dark);
      text-decoration: none;

      &:hover,
      &:focus {
        color: var(--color-black);
        text-decoration: underline;
      }
    }

    .post-badges {
      display: flex;
      gap: 16px;
      align-items: center;
    }

    .meta-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px 16px;
    }

    a.post-author {
      display: flex;
      align-items: center;
      gap: 8px;
      color: var(--color-black);

      img.avatar {
        width: 28px;
        height: 28px;
        border-radius: 20px;
      }
    }

    .post-categories {
      display: flex;
      flex-direction: row;
      gap: 8px;
    }

    .post-knowledge-level {
      .knowledge-level-icon {
        width: 20px;
        height: 20px;
      }
    }
  }

  .post-submeta {
    margin-bottom: 24px;

    .meta-row {
      justify-content: left;
      flex-wrap: wrap;
    }
  }

  .post-content {
    font-size: var(--font-size-body);
    line-height: var(--line-height-single);
    color: var(--color-black);

    img {
      max-width: 100%;
      height: auto;
      border-radius: 4px;
      margin: 16px 0;
    }

    p > a {
      color: var(--color-primary);
    }

    p:not(:last-of-type) {
      margin-bottom: 16px;
    }
  }

  .post-footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    margin-top: 40px;
    padding: 32px 16px;
    border-top: 1px solid var(--color-grey-light);
    border-bottom: 1px solid var(--color-grey-light);
    
    .author-meta {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;

      img {
        width: 40px;
        height: auto;
        border-radius: 20px;
        background: var(--color-white-dark);
        aspect-ratio: 1 / 1;
      }
    }
    
    .author-bio {
      max-width: 600px;

      p {
        color: var(--color-grey-dark);
        font-size: var(--font-size-medium);
        line-height: 1.6;
        text-align: center;
      }
    }

    .author-links {
      display: flex;
      gap: 16px;

      a {
        display: flex;
        align-items: center;
        gap: 4px;
        color: var(--color-primary);
        font-size: var(--font-size-small);
        text-decoration: none;

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

        &::after {
          content: '';
          min-width: 18px;
          height: 18px;
          background: var(--color-primary);
          mask-image: url('../../images/icons/icon-chevron-right-48x48.png');
          mask-repeat: no-repeat;
          mask-position: center;
          mask-size: contain;
          -webkit-mask-image: url('../../images/icons/icon-chevron-right-48x48.png');
          -webkit-mask-repeat: no-repeat;
          -webkit-mask-position: center;
          -webkit-mask-size: contain;
          transition: all 0.2s ease-out;
          display: flex;
        }
      }
    }
  }
}

/* Section: Relevant Posts */
section.relevant-posts {
  margin-top: 64px;

  & > h2 {
    font-size: var(--font-size-h2);
    line-height: 1;
    margin-bottom: 32px;
  }

  .relevant-grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns), 1fr);
    gap: var(--grid-gap);
  }
}