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

.layout:not(:last-child) {
  margin-bottom: var(--gap);
}

.column {
  grid-column: span var(--span);
  padding: 0 var(--gap);
}

.layout-simple .column {
  padding: 0;
}

.layout-columns-4 .column:nth-child(odd) {
  padding-right: 0;
}

.layout-columns-4 .column:nth-child(even) {
  padding-left: 0;
}

.layout:first-child .block:not(.block-type-image):not(.block-type-video):first-child {
  margin-top: calc(var(--gap) * 2);
}

/*
.layout:not(:first-child) .block:not(.block-type-image):first-child {
  border-top: thin solid;
  padding-top: 0.25rem;
}
*/

@media (min-width: 30rem) {
  .issue .layout {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
}

@media (min-width: 50rem) {
  .layout {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }

  .issue .layout {
    grid-template-columns: 1fr 1fr;
  }

  .layout-columns-4 .column:nth-child(even) {
    padding-left: calc(var(--gap) / 2);
  }

  .layout-columns-1 .block-type-heading,
  .layout-columns-1 .block-type-text,
  .layout-columns-1 .block-type-download {
    max-width: calc(50vw - (var(--gap) * 2));
  }
}

@media (min-width: 70rem) {
  .issue .layout {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
}

.blocks {
  display: flex;
  flex-direction: column;
  gap: var(--gap);
}

.block {
  width: 100%;
}

.layout-columns-1 .block-type-image,
.layout-columns-2 .block-type-image {
  width: auto;
  margin: 0 calc(var(--gap) * -1);
}

.block-type-image {
  position: relative;
}

.block-type-image img {
  width: 100%;
}

.block figcaption {
  font-style: italic;
  font-size: var(--xs);
  position: absolute;
  bottom: var(--gap);
  left: var(--gap);
  right: var(--gap);
  max-width: max-content;
  padding: 0 0.1em;
  margin: 0 -0.1em;
  font-weight: 500;
  background-color: #ffffff;
}

.layout-columns-4 .block figcaption {
  bottom: calc(var(--gap) / 2);
  left: calc(var(--gap) / 2);
  right: calc(var(--gap) / 2);
}

.block-type-text {
  font-weight: 400;
}

.block-type-heading h1,
.block-type-heading h2 {
  margin-bottom: 0;
}

.block-type-heading h3,
.block-type-heading h4,
.block-type-heading h5,
.block-type-heading h6 {
  margin-bottom: -0.75rem;
}

.layout + .layout {
  margin-top: calc(var(--gap) * 3);
}

.block-type-text + .block-type-text,
.block-type-text + .block-type-heading,
.block-type-download + .block-type-text,
.block-type-download + .block-type-heading,
.block-type-image + .block-type-text,
.block-type-image + .block-type-heading,
.block-type-video + .block-type-text,
.block-type-video + .block-type-heading {
  margin-top: var(--gap);
}

.block-type-text p:not(:last-child),
.block-type-text ul:not(:last-child),
.block-type-text ol:not(:last-child) {
  margin-bottom: 1em;
}

.block-type-text a {
  overflow-wrap: break-word;
}

.block-type-text ul {
  list-style: disc;
}

.block-type-text ol {
  list-style: decimal;
}

.block-type-text em,
.issue .introduction em {
  font-style: italic;
}

.block-type-text ul,
.block-type-text ol {
  padding-left: 1em;
  display: flex;
  flex-direction: column;
  gap: calc(var(--gap) / 4);
}

.block-type-heading h1,
.block-type-heading h2 {
  font-size: var(--xl);
}

.layout-simple .block-type-heading h1,
.layout-simple .block-type-heading h2 {
  font-size: var(--lg);
}

.block-type-heading h3 {
  font-size: var(--xs);
  font-weight: 700;
}

.block-type-heading h4,
.block-type-heading h5,
.block-type-heading h6 {
  font-size: var(--xs);
  font-weight: 700;
}

.block-type-heading h1,
.block-type-heading h2,
.block-type-heading h3,
.block-type-heading h4,
.block-type-heading h5,
.block-type-heading h6 {
  padding-top: var(--gap);
  margin-top: calc(var(--gap) * -1);
}

.block-type-video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.block-type-video .video {
  position: relative;
  background: currentColor;
}

.block-type-video .video:before {
  content: "";
  display: block;
  padding-top: var(--ratio);
}

.block-type-download {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap);
}

.block-type-download .download-extension,
.block-type-download .download-size {
  text-transform: uppercase;
  font-size: var(--xs);
}

.default .layout {
  font-weight: 600;
}

.default .layout strong,
.default .layout b {
  font-weight: 700;
}

.default .layout h2,
.default .layout h3,
.default .layout h4,
.default .layout h5 {
  font-weight: 700;
}

details {
  border-top: thin solid;
  font-weight: 500;
}

details .should-open,
details .should-close {
  font-weight: 500;
  padding-right: 0.5em;
  line-height: 0.5;
}

details .should-close {
  display: none;
}

details[open] {
  padding-bottom: var(--gap);
}

details[open] .should-open {
  display: none;
}

details[open] .should-close {
  display: block;
}

details summary {
  font-weight: 700;
  padding: 0.5rem 0;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
}

details summary::-webkit-details-marker {
  display:none;
}

details > *:not(summary):not(:last-child) {
  margin-bottom: 1em;
}


@media (min-width: 50rem) {
  .default .layout-columns-2 .column:last-child,
  .default .layout-columns-4 .column:nth-child(3) {
    padding-left: calc(var(--gap) * 2);
  }

  .default .layout-columns-2 .column:first-child .block-type-image {
    margin-right: calc(var(--gap) * -1.5);
  }

  .default .layout-columns-2 .column:last-child .block-type-image {
    margin-left: calc(var(--gap) * -1.5 + 2px);
  }
}
