/* Confirmed root cause: full-width containers render .container-fluid with
   Bootstrap's d-flex (container alignment feature). That makes the slider's
   wrapper a flex item with an unstable auto min-width - Swiper's own resize
   handling and the flex ancestor's auto-sizing feed back into each other,
   growing the slider a little more on every layout pass (window resize,
   image load, etc). justify-content only matters when a flex child is
   narrower than its parent; our slider always fills the available width
   anyway, so turning flex off entirely for containers that hold it removes
   the unstable context instead of fighting it. */
.container-fluid.d-flex:has(.frame-type-dm_imageslider) {
	/* Bootstrap's utility classes set display with !important by design
	   (that's the whole point of a utility class) - a plain override here
	   is silently ignored without matching !important. */
	display: block !important;
}

.image-slider-caption--overlay-start,
.image-slider-caption--overlay-center,
.image-slider-caption--overlay-end {
	position: absolute;
	inset-inline: 1rem;
	bottom: 1rem;
	padding: 1.5rem;
	max-width: 32rem;
	border-radius: var(--bs-border-radius, 0);
}

.image-slider-caption--overlay-start {
	text-align: left;
	margin-inline-end: auto;
}

.image-slider-caption--overlay-center {
	text-align: center;
	margin-inline: auto;
}

.image-slider-caption--overlay-end {
	text-align: right;
	margin-inline-start: auto;
}

.image-slider-caption--below {
	padding: 1rem 0;
	text-align: left;
}

/* Default look when no explicit captionBackground is chosen for a slide:
   dark gradient behind overlay text, plain (no background) below the image. */
.image-slider-caption--gradient {
	background: linear-gradient(to top, rgba(0, 0, 0, .65), rgba(0, 0, 0, 0) 100%);
	color: #fff;
}
