.bes-slide-layout { position: relative; min-width: 0; width: 100%; }
.carousel-slider-root { padding-block: 2.25rem; }
/* Narrow side rails keep previous/next hit targets clear of slide links. */
.carousel-slider-root:has(> .carousel-control-prev) > .carousel-inner { width: calc(100% - 104px); margin-inline: 52px; }
.carousel-slider-root > .carousel-control-prev,
.carousel-slider-root > .carousel-control-next { top: 50%; bottom: auto; transform: translateY(-50%); width: 44px; height: 44px; background: #212529; border-radius: 50%; opacity: 1; }
.carousel-slider-root > .carousel-control-prev { left: 4px; }
.carousel-slider-root > .carousel-control-next { right: 4px; }
.carousel-slider-root > .carousel-indicators { bottom: .25rem; margin: 0 52px; overflow-x: auto; justify-content: safe center; }
.carousel-slider-root > .carousel-indicators [data-bs-target] { background-color: #fff; box-shadow: none; filter: drop-shadow(0 1px 1px #0008); opacity: .55; flex-shrink: 0; }
.carousel-slider-root > .carousel-indicators .active { background-color: #fff; opacity: 1; }
.carousel-slider-root a:focus-visible,
.carousel-slider-root button:focus-visible { outline: 3px solid #0d6efd; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .carousel-slider-root .carousel-item { transition: none; } }
.bes-slide-media { min-width: 0; }
.bes-slide-media img { display: block; width: 100%; max-width: 100%; object-fit: contain; }
.bes-slide-caption { padding: clamp(1rem, 3vw, 2.5rem); color: #fff; text-align: center; overflow-wrap: anywhere; min-width: 0; }
.bes-slide-caption > :last-child { margin-bottom: 0; }
.bes-slide-inside .bes-slide-caption { position: absolute; z-index: 1; max-height: 100%; overflow: auto; }
.bes-slide-inside.bes-slide-left .bes-slide-caption { left: 0; top: 0; bottom: 0; width: 45%; text-align: left; align-content: center; }
.bes-slide-inside.bes-slide-right .bes-slide-caption { right: 0; top: 0; bottom: 0; width: 45%; text-align: right; align-content: center; }
.bes-slide-inside.bes-slide-top .bes-slide-caption { top: 0; left: 0; right: 0; }
.bes-slide-inside.bes-slide-bottom .bes-slide-caption { bottom: 0; left: 0; right: 0; padding-bottom: 3rem; }
.bes-slide-outside { display: flex; align-items: stretch; }
.bes-slide-outside .bes-slide-media { flex: 1 1 60%; }
.bes-slide-outside .bes-slide-caption { flex: 1 1 40%; background: var(--slide-caption-background, #212529); align-content: center; padding-bottom: 3rem; }
.carousel-slider-root .carousel-slider-image { height: min(var(--slide-height, 520px), 70vh); object-fit: var(--slide-object-fit, contain); }
.bes-slide-outside.bes-slide-left { flex-direction: row-reverse; }
.bes-slide-outside.bes-slide-top { flex-direction: column-reverse; }
.bes-slide-outside.bes-slide-bottom { flex-direction: column; }
.bes-slide-outside.bes-slide-left .bes-slide-caption,
.bes-slide-outside.bes-slide-right .bes-slide-caption { text-align: left; }
.bes-slide-outside.bes-slide-top > *, .bes-slide-outside.bes-slide-bottom > * { flex-basis: auto; }
@media (max-width: 767.98px) {
    .carousel-slider-root { padding-block: 3.5rem; }
    .carousel-slider-root:has(> .carousel-control-prev) > .carousel-inner { width: 100%; margin-inline: 0; }
    .carousel-slider-root > .carousel-control-prev, .carousel-slider-root > .carousel-control-next { top: auto; bottom: .25rem; transform: none; }
    .carousel-slider-root > .carousel-indicators { bottom: .6rem; }
    .carousel-slider-root .carousel-slider-image { height: min(var(--slide-mobile-height, 300px), 60svh); }
    .bes-slide-outside.bes-slide-left { flex-direction: column-reverse; }
    .bes-slide-outside.bes-slide-right { flex-direction: column; }
    .bes-slide-outside > * { flex-basis: auto; }
    .bes-slide-inside.bes-slide-left .bes-slide-caption,
    .bes-slide-inside.bes-slide-right .bes-slide-caption { width: 65%; }
    .bes-slide-caption h3 { font-size: clamp(1.25rem, 6vw, 2rem) !important; }
}
