.vbm-slider {
	position: relative !important;
	width: 100% !important;
	max-width: var(--vbm-max-width, 1200px) !important;
	margin: 0 auto 20px !important;
}

.vbm-slider-track {
	display: flex !important;
	gap: var(--vbm-gap, 16px) !important;
	overflow-x: auto !important;
	scroll-snap-type: x mandatory;
	-ms-overflow-style: none;
	scrollbar-width: none;
	cursor: grab;
}

.vbm-slider-track.vbm-animating {
	scroll-snap-type: none;
}

.vbm-slider-track.vbm-dragging {
	cursor: grabbing;
	scroll-snap-type: none;
	scroll-behavior: auto;
	user-select: none;
}

.vbm-slider-track::-webkit-scrollbar {
	display: none;
}

.vbm-slide {
	position: relative !important;
	scroll-snap-align: start;
	border-radius: 10px !important;
	overflow: hidden !important;
	flex: 1 0 calc((100% - (var(--vbm-desktop-visible, 3) - 1) * var(--vbm-gap, 16px)) / var(--vbm-desktop-visible, 3)) !important;
}

/* Single-banner shortcode always takes full width, regardless of visible-count settings. */
.vbm-single .vbm-slide {
	flex: 0 0 100% !important;
}

.vbm-slide-link {
	display: block !important;
	position: relative !important;
	aspect-ratio: var(--vbm-ratio, 21/9) !important;
	height: auto !important;
	overflow: hidden !important;
}

.vbm-slide-overlay-link {
	position: absolute !important;
	inset: 0 !important;
	z-index: 5 !important;
	display: block !important;
}

.vbm-slide-img {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center;
	display: block !important;
	margin: 0 !important;
}

@media (max-width: 1024px) {
	.vbm-slide {
		flex-basis: calc((100% - (var(--vbm-tablet-visible, 2) - 1) * var(--vbm-gap, 16px)) / var(--vbm-tablet-visible, 2)) !important;
	}
}

@media (max-width: 600px) {
	.vbm-slide {
		flex-basis: calc((100% - (var(--vbm-mobile-visible, 1) - 1) * var(--vbm-gap, 16px)) / var(--vbm-mobile-visible, 1)) !important;
	}
}

/* Text block and button block are positioned independently (inline styles carry the actual position/zone). */
.vbm-slide-text,
.vbm-slide-button {
	position: absolute !important;
	max-width: 55%;
	z-index: 2 !important;
}

.vbm-slide-title {
	font-size: 1.6em;
	font-weight: 700;
	margin: 0 0 8px;
	line-height: 1.2;
}

.vbm-slide-desc {
	font-size: 1em;
	margin: 0;
}

.vbm-color-light .vbm-slide-title,
.vbm-color-light .vbm-slide-desc {
	color: #fff;
}

.vbm-color-dark .vbm-slide-title,
.vbm-color-dark .vbm-slide-desc {
	color: #222;
}

.vbm-slide-btn {
	display: inline-block;
	background: #fff;
	color: #222;
	padding: 8px 18px;
	border-radius: 4px;
	font-weight: 600;
	font-size: 0.9em;
	white-space: nowrap;
}

/* 9-zone position system — shared by .vbm-slide-text and .vbm-slide-button */
.vbm-pos-top-left     { top: 6%; left: 5%; text-align: left; }
.vbm-pos-top-center   { top: 6%; left: 50%; transform: translateX(-50%); text-align: center; }
.vbm-pos-top-right    { top: 6%; right: 5%; text-align: right; }

.vbm-pos-middle-left  { top: 50%; left: 5%; transform: translateY(-50%); text-align: left; }
.vbm-pos-middle-center{ top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; }
.vbm-pos-middle-right { top: 50%; right: 5%; transform: translateY(-50%); text-align: right; }

.vbm-pos-bottom-left  { bottom: 6%; left: 5%; text-align: left; }
.vbm-pos-bottom-center{ bottom: 6%; left: 50%; transform: translateX(-50%); text-align: center; }
.vbm-pos-bottom-right { bottom: 6%; right: 5%; text-align: right; }

.vbm-dots {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	margin-top: 14px;
}

.vbm-dot {
	width: 8px;
	height: 8px;
	border-radius: 4px;
	background: #d5d5d5;
	cursor: pointer;
	transition: width 0.25s ease, background 0.25s ease;
}

.vbm-dot.vbm-active {
	width: 22px;
	background: #2874f0;
}

@media (max-width: 600px) {
	.vbm-slide-text,
	.vbm-slide-button {
		max-width: 85%;
	}
	.vbm-slide-title {
		font-size: 1.1em;
	}
	.vbm-slide-desc {
		font-size: 0.85em;
	}
	.vbm-slide-btn {
		padding: 6px 14px;
		font-size: 0.8em;
	}
}
