/* Photo-only columns grow with their adjacent copy. Keep mobile image ratios,
   CMS object-position values, charts, illustrations and hero layouts unchanged. */
.lr-story-intro-photo img { display: block; width: 100%; }

@media (min-width: 701px) {
  .lr-snapshot.lr-snapshot-visual { align-items: stretch; }
  .lr-snapshot-image { position: relative; align-self: stretch; min-height: 260px; }
  .lr-snapshot-image picture { display: block; height: 100%; }
  .lr-snapshot-image img {
    position: absolute; inset: 0; display: block; width: 100%; height: 100%;
    aspect-ratio: auto; object-fit: cover;
  }
}

@media (min-width: 900px) {
  .lr-split, .lr-chapter .lr-split, .lr-story-feature,
  .lr-callout-feature, .lr-story-intro { align-items: center; }

  /* Center the whole copy group (including CTAs), not its individual children.
     Only photographic media stretches; calendars and chat keep natural height. */

  .lr-split-media:has(> picture, > img),
  .lr-story-feature-media:has(> picture, > img),
  .lr-callout-feature-media:not(:has(.lr-callouts)):has(> picture, > img),
  .lr-story-intro-photo {
    position: relative; align-self: stretch; min-height: clamp(260px, 25vw, 400px);
  }

  .lr-split-media > picture,
  .lr-story-feature-media > picture,
  .lr-callout-feature-media:not(:has(.lr-callouts)) > picture,
  .lr-story-intro-photo > picture { display: block; height: 100%; }

  .lr-split-media > img, .lr-split-media > picture > img,
  .lr-story-feature-media > img, .lr-story-feature-media > picture > img,
  .lr-callout-feature-media:not(:has(.lr-callouts)) > img,
  .lr-callout-feature-media:not(:has(.lr-callouts)) > picture > img,
  .lr-story-intro-photo img {
    position: absolute; inset: 0; display: block; width: 100%; height: 100%;
    aspect-ratio: auto; object-fit: cover;
  }

  /* The story's result panel remains below its photo, never under a crop. */
  .lr-story-intro-media { display: flex; flex-direction: column; align-self: stretch; }
  .lr-story-intro-photo { flex: 1; }
  .lr-story-intro-media > .lr-story-result { flex: none; }
}