.home-slider-wrap {
	width: 100%;
	max-width: 100%;
}

.home-slider-wrap.home-slider-full {
	/* Fallback for no-JS: 100vw includes the scrollbar's width on Windows/Linux,
	   which overflows a few px off the right edge and clips content near it.
	   home-slider.js replaces width/margin-left/transform below with values
	   measured from the real (scrollbar-excluded) viewport width, so this only
	   matters if JS fails to run. */
	width: 100vw;
	max-width: 100vw;
	margin-left: 50%;
	transform: translateX(-50%);
}

/* Namespaced structural rules (not Swiper's default .swiper/.swiper-* classes) so
   this instance can't be picked up or restyled by another Swiper/carousel already
   running on the site. See home-slider.js for the matching Swiper config. */
.home-slider-swiper {
	position: relative;
	width: 100%;
	aspect-ratio: var(--hs-ratio-w, 2560) / var(--hs-ratio-h, 667);
	max-height: var(--hs-max-height, 640px);
	background: var(--hs-bg, #f2f2f2);
	overflow: hidden;
	z-index: 1;
}

.home-slider-swiper .home-slider-track {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	box-sizing: content-box;
	/* !important: some themes/page builders apply a global "* { transition: ... }"
	   reset that otherwise clobbers the transition Swiper needs for slide changes. */
	transition-property: transform !important;
	z-index: 1;
}

.home-slider-swiper .home-slider-slide {
	flex-shrink: 0;
	width: 100%;
	height: 100%;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.home-slider-swiper .home-slider-slide a {
	display: block;
	width: 100%;
	height: 100%;
}

.home-slider-swiper .home-slider-slide img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	display: block;
}

.home-slider-prev,
.home-slider-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 20;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	background: rgba(0, 0, 0, 0.35);
	cursor: pointer;
	user-select: none;
}

.home-slider-prev {
	left: 10px;
}

.home-slider-next {
	right: 10px;
}

.home-slider-prev::after,
.home-slider-next::after {
	font-size: 20px;
	line-height: 1;
}

.home-slider-prev::after {
	content: "\2039";
}

.home-slider-next::after {
	content: "\203A";
}

.home-slider-dots {
	position: absolute;
	bottom: 12px;
	left: 0;
	width: 100%;
	z-index: 20;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
}

.home-slider-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #fff;
	opacity: 0.6;
	cursor: pointer;
	display: inline-block;
}

.home-slider-dot-active {
	opacity: 1;
}

@media (max-width: 768px) {
	.home-slider-prev,
	.home-slider-next {
		width: 30px;
		height: 30px;
	}

	.home-slider-prev::after,
	.home-slider-next::after {
		font-size: 16px;
	}
}
