.blog-post {
  margin-top: var(--space-xxl);
  column-gap: var(--gutter);
  display: grid;

  .col {
    >div {
      margin-bottom: var(--baseline);
    }
  }

  @media (min-width: 64rem) {
    .col {
      grid-column: 2 / span 10;
    }
  }

  @media (min-width: 75rem) {
    .col {
      grid-column: 3 / span 8;
    }
  }
}

@media (min-width: 64rem) {
  .blog-post {
    grid-template-columns: repeat(12, 1fr);
  }
}

.blog-post-details {
  border-block: 1px solid var(--color-iron-300);
  margin-bottom: var(--baseline);
  padding-block: var(--baseline);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--gutter);

  .person {
    width: 5rem;
  }
}

.blog-post-image {
  background-color: var(--color-iron-300);
  border-radius: var(--border-radius);
  height: auto;
  overflow: hidden;
  padding-bottom: calc(56.25%);
  position: relative;

  img {
    height: 100%;
    object-fit: cover;
    object-position: center center;
    position: absolute;
    user-select: none;
    width: 100%;
  }
}

.blog-post-content {
  padding: 0;
  padding-top: var(--baseline);
  column-gap: var(--gutter);
  display: grid;
  grid-template-columns: repeat(8, 1fr);

  section {
    background-color: var(--color-downriver-400);
    border-radius: var(--border-radius);
    color: white;
    margin-top: var(--baseline);
    overflow: hidden;
    padding-block: var(--space-xl);
    padding-inline: var(--gutter);
    position: relative;
    z-index: 0;
    margin-bottom: var(--baseline-lg) !important;
    display: block;

    >span {
      color: var(--color-iron-400);
      position: absolute;
      top: 0.5rem;
      left: 50%;
      translate: -50%;
      font-size: var(--font-size-sm);
    }

    >h2 {
      margin-top: 0px;
    }

    >ul {
      margin-top: 0px;
      list-style-position: inside;
      list-style-type: circle;

      >li::marker {
        color: var(--color-pastel-green-400);
      }
    }

    >*+* {
      margin-top: var(--baseline);
    }

    >p:last-child>a {
      background-color: var(--color-white);
      border-radius: var(--border-radius);
      border: 1px solid transparent;
      color: var(--color-downriver-400);
      cursor: pointer;
      display: inline-block;
      font-weight: 500;
      line-height: 1;
      padding: 0.75rem 1.5rem;
      text-align: center;
      user-select: none;
      vertical-align: middle;
      white-space: nowrap;

      overflow-wrap: anywhere;
      text-decoration-color: var(--color-pastel-green-400);
      text-decoration-line: underline;
    }

    &::after {
      background-image: url(../../images/shield.png);
      background-position: right -25% center;
      background-repeat: no-repeat;
      background-size: auto 125%;
      content: "";
      inset: 0px;
      opacity: 0.25;
      pointer-events: none;
      position: absolute;
      z-index: -1;
    }
  }

  @media (min-width: 64rem) {
    section {
      padding-block: var(--space-lg);
      padding-inline: var(--gutter);

      &::after {
        opacity: 1;
      }
    }
  }

  >pre {
    background-color: var(--color-iron-300);
    border-radius: var(--border-radius);
    overflow-x: auto;
    padding: var(--baseline) var(--gutter);
  }

  >pre,
  table,
  section,
  iframe {
    grid-column: span 8;
  }

  :not(table):not(pre):not(iframe):not(section):not(div:first-child) {
    grid-column: 2 / span 6;
  }

  >table {
    border-collapse: collapse;
    border-spacing: 0px;
    border: 1px solid var(--color-iron-400);
    font-size: var(--font-size-sm);
    width: 100%;

    >thead {
      background-color: var(--color-iron-200);

      >tr {
        border-bottom: 1px solid var(--color-iron-400);

        >th,
        >td {
          border-right: 1px solid var(--color-iron-400);
          padding: calc(var(--baseline) / 2) var(--gutter);
          text-align: left !important;
        }

        >th {
          font-weight: 500;
        }
      }
    }

    >tbody {
      background-color: var(--color-white);

      >tr {
        border-bottom: 1px solid var(--color-iron-400);

        >td {
          border-right: 1px solid var(--color-iron-400);
          padding: calc(var(--baseline) / 2) var(--gutter);
          text-align: left !important;
        }
      }
    }
  }
}