/* Group Carousel — equal-height slides, hidden native arrows (proxied by .carousel-nav), control layout. */

/* ── Custom controls row (code module below the carousel) ── */
.carousel-nav { display: inline-flex; gap: 1rem; }

/* ── Native arrows stay in the DOM for the proxy clicks but never show ── */
.et_pb_group_carousel .et_pb_group_carousel_arrow { display: none !important; }

/* ── Module fills its column ── */
.et_pb_group_carousel { width: 100%; max-width: 100%; }

/* ── 1.5rem gap between cards — half-gap padding per slide + container bleed, so Divi's
      slide-width math is untouched and the edge cards stay flush with the column ── */
.et_pb_group_carousel .et_pb_group_carousel_slide { padding: 0 0.75rem; }
.et_pb_group_carousel .et_pb_group_carousel_container {
  width: calc(100% + 1.5rem);
  margin-left: -0.75rem;
}

/* ── Equal-height cards — every slide stretches to the tallest ── */
.et_pb_group_carousel .et_pb_group_carousel_track { display: flex; align-items: stretch; }
.et_pb_group_carousel .et_pb_group_carousel_slide { height: auto; display: flex; }
.et_pb_group_carousel .et_pb_group_carousel_slide > .et_pb_group {
  flex: 1 1 100% !important;   /* Divi hands the card group flex-basis 50% (same rule as the slides) — basis beats width, so force it to fill the slide */
  width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
/* image pinned to the top; text block centers itself in whatever space is left */
.et_pb_group_carousel .et_pb_group_carousel_slide .et_pb_image { flex: 0 0 auto; }
.et_pb_group_carousel .et_pb_group_carousel_slide .et_pb_text:first-of-type { margin-top: auto; }
.et_pb_group_carousel .et_pb_group_carousel_slide .et_pb_text:last-of-type { margin-bottom: auto; }
