.wpvip-event-carousel{position:relative;padding:0!important;max-width:none}
.wpvip-event-carousel__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;gap:0}
.wpvip-event-carousel__track>.wp-block-image{flex:0 0 100%;min-width:0;max-width:none;margin:0!important;scroll-snap-align:start;position:relative}
.wpvip-event-carousel__track img{display:block;width:100%;height:clamp(20rem,65vw,46rem);object-fit:cover}
.wpvip-event-carousel__track figcaption{position:absolute;bottom:0;left:0;right:0;margin:0;padding:3rem 1.5rem 1.5rem;background:linear-gradient(transparent,rgba(0,0,0,.8));color:white;text-align:left;font-size:.85rem}
.wpvip-event-carousel__controls{display:flex;align-items:center;justify-content:center;gap:1.3rem;padding:.7rem 1rem;font-variant-numeric:tabular-nums}
.wpvip-event-carousel__controls[hidden]{display:none}
.wpvip-event-carousel__controls button{font:inherit;background:transparent;color:inherit;border:1px solid currentColor;border-radius:999px;width:44px;height:44px;cursor:pointer}
.wpvip-event-carousel :focus-visible{outline:2px solid currentColor;outline-offset:-4px}
.wpvip-event-carousel-editor{border:1px dashed currentColor;padding:1rem}
.wpvip-event-carousel-editor .wp-block-image{max-width:40rem;margin-inline:auto}
@media(prefers-reduced-motion:reduce){.wpvip-event-carousel__track{scroll-behavior:auto}}
/* Enhancement crossfades; native horizontal scrolling remains the no-JS fallback. */
.wpvip-event-carousel.is-enhanced .wpvip-event-carousel__track{display:grid;overflow:hidden;scroll-snap-type:none;touch-action:pan-y pinch-zoom}
.wpvip-event-carousel.is-enhanced .wpvip-event-carousel__track>.wp-block-image{grid-area:1/1;opacity:0;pointer-events:none;transition:opacity .65s ease;z-index:0}
.wpvip-event-carousel.is-enhanced .wpvip-event-carousel__track>.is-active{opacity:1;pointer-events:auto;z-index:1}
@media(prefers-reduced-motion:reduce){.wpvip-event-carousel.is-enhanced .wpvip-event-carousel__track>.wp-block-image{transition:none}}

.wpvip-event-carousel__track>.wp-block-image:has(img:not([src])){display:none}
.wpvip-event-carousel__controls .wpvip-event-carousel__toggle{width:auto;padding-inline:1rem;font-size:.8rem;white-space:nowrap}
.wpvip-event-carousel__controls button[hidden]{display:none}
.wpvip-event-carousel__controls{flex-wrap:wrap}
