.prose > * + :is(.wp-block-image, .wp-block-gallery, .wp-block-embed, .wp-block-quote, .wp-block-separator),
.prose > :is(.wp-block-image, .wp-block-gallery, .wp-block-embed, .wp-block-quote, .wp-block-separator) + * {
  margin-top: var(--sp-8);
}

.prose .wp-block-image img,
.prose .wp-block-gallery img,
.prose .wp-block-embed iframe {
  border-radius: calc(var(--radius) / 2);
}

.prose .wp-block-embed iframe {
  display: block;
  width: 100%;
  border: 0;
}

.prose { --media-height: min(36rem, 75vh); }

.prose .wp-block-image img {
  display: block;
  width: auto;
  max-height: var(--media-height);
}

.prose .wp-embed-aspect-21-9 { max-width: calc(var(--media-height) * 21 / 9); }
.prose .wp-embed-aspect-18-9 { max-width: calc(var(--media-height) * 2); }
.prose .wp-embed-aspect-16-9 { max-width: calc(var(--media-height) * 16 / 9); }
.prose .wp-embed-aspect-4-3 { max-width: calc(var(--media-height) * 4 / 3); }
.prose .wp-embed-aspect-1-1 { max-width: var(--media-height); }
.prose .wp-embed-aspect-9-16 { max-width: calc(var(--media-height) * 9 / 16); }
.prose .wp-embed-aspect-1-2 { max-width: calc(var(--media-height) / 2); }

.prose :is(.wp-block-image, .wp-block-embed):is(.alignleft, .alignright),
.prose :is(.wp-block-image, .wp-block-embed) > figure:is(.alignleft, .alignright) { max-width: 45%; }

.prose .wp-block-embed:is(.alignleft, .alignright),
.prose .wp-block-embed > figure:is(.alignleft, .alignright) { width: 100%; }

.prose :is(.wp-block-image, .wp-block-embed).alignleft,
.prose :is(.wp-block-image, .wp-block-embed) > figure.alignleft {
  float: left;
  margin: var(--sp-1) var(--sp-8) var(--sp-4) 0;
}

.prose :is(.wp-block-image, .wp-block-embed).alignright,
.prose :is(.wp-block-image, .wp-block-embed) > figure.alignright {
  float: right;
  margin: var(--sp-1) 0 var(--sp-4) var(--sp-8);
}

.prose :is(.wp-block-image, .wp-block-embed).aligncenter,
.prose :is(.wp-block-image, .wp-block-embed) > figure.aligncenter,
.prose .wp-block-image :is(.aligncenter, figure.aligncenter) img { margin-inline: auto; }

.prose .wp-block-image.aligncenter img,
.prose .wp-block-image > figure.aligncenter img { max-height: 85vh; }

.prose :is(.wp-block-image, .wp-block-embed).aligncenter > .wp-element-caption,
.prose :is(.wp-block-image, .wp-block-embed) > figure.aligncenter > figcaption { text-align: center; }

.prose > :is(.wp-embed-aspect-9-16, .wp-embed-aspect-1-2):not(.alignright, .aligncenter) {
  float: left;
  width: 100%;
  margin-right: var(--sp-4);
  margin-bottom: var(--sp-4);
}

.prose > :is(.wp-embed-aspect-9-16, .wp-embed-aspect-1-2) + :not(.wp-embed-aspect-9-16, .wp-embed-aspect-1-2),
.prose > :is(.wp-block-image, .wp-block-embed, .wp-block-gallery):not(.alignleft, .alignright, .wp-embed-aspect-9-16, .wp-embed-aspect-1-2):not(:has(> figure:is(.alignleft, .alignright))),
.prose > .clear,
.prose h1,
.prose h2,
.prose h3,
.prose .wp-block-quote,
.prose .wp-block-separator { clear: both; }

.prose::after {
  content: "";
  display: block;
  clear: both;
}

.prose > .wp-block-image > .wp-element-caption,
.prose > .wp-block-embed > .wp-element-caption,
.prose > .wp-block-gallery > .wp-element-caption {
  margin: var(--sp-2) 0 0;
  font-size: var(--fs-small);
  line-height: 1.5;
  color: var(--c-text-muted);
}

.prose .wp-block-quote {
  padding: var(--sp-2) 0 var(--sp-2) var(--sp-6);
  border-left: 2px solid var(--c-accent);
  font-size: 1.1875rem;
  line-height: 1.6;
  color: var(--c-text);
}

.prose .wp-block-quote > * { margin: 0; }
.prose .wp-block-quote > * + * { margin-top: var(--sp-3); }

.prose .wp-block-quote cite {
  display: block;
  font-family: var(--font-display);
  font-size: var(--fs-tiny);
  font-style: normal;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-text-muted);
}

.prose .wp-block-separator {
  height: 1px;
  border: 0;
  background: linear-gradient(90deg, transparent, var(--c-line-strong), transparent);
  opacity: 1;
}

@media (max-width: 900px) {
  .prose :is(.wp-block-image, .wp-block-embed):is(.alignleft, .alignright),
  .prose :is(.wp-block-image, .wp-block-embed) > figure:is(.alignleft, .alignright) {
    float: none;
    max-width: 100%;
    margin-inline: 0;
  }

  .prose :is(.wp-embed-aspect-9-16, .wp-embed-aspect-1-2):not(.alignright, .aligncenter) {
    float: none;
    margin-inline: 0;
  }
}
