.two-col-media-cta {
  --two-col-gap: 100px;

  .two-col-media-cta__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: var(--two-col-gap);
    row-gap: 30px;
    align-items: center;
  }

  .two-col-media-cta__content,
  .two-col-media-cta__media {
    min-width: 0;
  }

  .two-col-media-cta__video,
  .two-col-media-cta__image img {
    width: 100%;
    max-width: 100%;
    height: auto;
    display: block;
  }

  &.two-col-media-cta--swapped {
    .two-col-media-cta__content {
      grid-column: 2;
      grid-row: 1;
    }

    .two-col-media-cta__media {
      grid-column: 1;
      grid-row: 1;
    }
  }

  // Stack on <= lg (Bootstrap standard)
  @include media-breakpoint-down(lg) {
    .two-col-media-cta__grid {
      grid-template-columns: 1fr;
    }

    // reset any explicit placement
    .two-col-media-cta__content,
    .two-col-media-cta__media {
      grid-column: auto;
      grid-row: auto;
    }

    // IMPORTANT: also reset the swapped variant with matching specificity
    &.two-col-media-cta--swapped {
      .two-col-media-cta__content,
      .two-col-media-cta__media {
        grid-column: auto;
        grid-row: auto;
      }
    }

    // Ensure content then media (content always on top)
    .two-col-media-cta__content {
      order: 1;
    }

    .two-col-media-cta__media {
      order: 2;
    }
  }
}