.xy-bannerCarouselBox {
	width: 100vw;
	margin: 0 calc(50% - 50vw);
}
.xy-bannerCarouselBox__inner {
	width: calc(100vw - 40px);
	margin: 0 auto;
	padding-top: 30px;
	overflow: hidden;
}
.xy-bannerCarouselBox__inner.-kenTop {
	padding-top: 12px;
}
.xy-bannerCarouselBox__inner.-zenkokuTop {
	padding-top: 20px;
}

.xy-bannerCarousel {
	display: flex;
}
.xy-bannerCarousel__item {
	width: calc(100vw - 40px);
}
.xy-bannerCarousel__item a {
	position: relative;
	display: block;
	aspect-ratio: 360/73;
}
.xy-bannerCarousel__item a:has(img[src*="wedding_camp_bn_2014_sp"])::before {
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	width: 100%;
	height: 100%;
	border: 1px solid #dfdfdf;
}
.xy-bannerCarousel__img {
	width: 100%;
	height: auto;
	aspect-ratio: 360/73;
}
.xy-bannerCarousel__img[data-carousel-image] {
	display: none;
}
.xy-bannerCarousel__img[data-carousel-image].is-visible {
	display: block;
}

.xy-indicatorsFlex {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: 8px;
}
.xy-indicatorsFlex__item {
	width: 8px;
	height: 8px;
	border-radius: 8px;
	background: #ccc;
}
.xy-indicatorsFlex__item:not(:last-of-type) {
	margin-right: 8px;
}
.xy-indicatorsFlex__item.is-current {
	background: #ef007f;
}
@media screen and (max-width: 374px) {
	.xy-bannerCarouselBox__inner {
		width: calc(100vw - 30px);
	}
	.xy-bannerCarousel__item {
		width: calc(100vw - 30px);
	}
}
