/* ==========================================================================
   M3 — Visual-led article stage
   Composition: text ~40% | media ~60% (images remain the visual lead).
   Media rows come from Builder (count + orientation). Editorial → Shared CSS.
   ========================================================================== */

.block-m3 {
  width: 100%;
}

/* Two columns when media present; one column when Builder omits media */
.block-m3__layout {
  display: grid;
  align-items: start;
  gap: var(--space-l) var(--space-xl);
  width: 100%;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
}

.block-m3__layout:not(:has(> .block-m3__media)) {
  grid-template-columns: 1fr;
}

.block-m3__content {
  min-width: 0;
  max-width: none;
}

/* Media column — stack of Builder rows (never CSS auto-fit side-by-side) */
.block-m3__media {
  display: flex;
  flex-direction: column;
  gap: var(--space-s);
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  align-content: start;
}

.block-m3__media-row {
  display: grid;
  gap: var(--space-s);
  width: 100%;
  min-width: 0;
  margin: 0;
}

/* Landscape / single: one large image per row */
.block-m3__media-row--16x9,
.block-m3__media-row--stack {
  grid-template-columns: minmax(0, 1fr);
}

/* Squares: two columns only when Builder put two images in the row */
.block-m3__media-row--1x1 {
  grid-template-columns: minmax(0, 1fr);
}

.block-m3__media-row--1x1[data-m3-cols="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.block-m3__media > *,
.block-m3__media-row > * {
  margin: 0;
  min-width: 0;
  width: 100%;
}

.block-m3__caption {
  margin: var(--space-s) 0 0;
  max-width: var(--container-reading);
  color: var(--color-text-muted);
}

.block-m3__caption:empty {
  display: none;
  margin: 0;
}

@media (max-width: 1024px) {
  .block-m3__layout {
    gap: var(--space-m) var(--space-l);
  }
}

@media (max-width: 768px) {
  .block-m3__layout {
    grid-template-columns: 1fr;
    gap: var(--space-m);
  }

  /* Mobile: always one column — even paired squares stack */
  .block-m3__media-row--1x1[data-m3-cols="2"] {
    grid-template-columns: minmax(0, 1fr);
  }
}
