/**
 * Episode 33 — layout aligned to graphic case-study rhythm (Bodies of Type).
 * Globals + typography.css handle type, cards, split, img-duo, hero-img.
 */
.episode-root {
  display: flex;
  flex-direction: column;
  width: 100%;
  box-sizing: border-box;
  gap: var(--spacing-m);
}

.episode-root .banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Center large spreads on wide viewports (common book mockup width in portfolio frames) */
@media (min-width: 811px) {
  .episode-root .episode-hero-constrain {
    max-width: 960px;
    margin-inline: auto;
    width: 100%;
  }
}

/* Keep spread pairs visually even with globals .img-duo */
.episode-root .episode-spread-row {
  align-items: stretch;
}

.episode-root .episode-spread-row > figure {
  min-height: clamp(220px, 38vh, 480px);
}

/* Two text cards 2:1 — equal height (stretch to taller column); CTA centered in right card */
.episode-root .episode-card-pair {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: stretch;
  gap: var(--spacing-m);
  width: 100%;
  box-sizing: border-box;
}

.episode-root .episode-card-pair__lead,
.episode-root .episode-card-pair__side {
  min-width: 0;
  min-height: 0;
}

.episode-root .episode-card-pair__lead {
  flex: 2 1 0;
}

.episode-root .episode-card-pair__side {
  flex: 1 1 0;
}

.episode-root .episode-card-pair__lead .full-text-body,
.episode-root .episode-card-pair__side .full-text-body {
  flex: 0 0 auto;
}

.episode-root .episode-card-pair__side .direct-btn {
  align-self: center;
  margin-top: auto;
}

@media screen and (max-width: 810px) {
  .episode-root .episode-card-pair {
    flex-direction: column;
  }

  .episode-root .episode-card-pair__lead,
  .episode-root .episode-card-pair__side {
    flex: 1 1 auto;
  }
}
