/* --------------------------------------------------
	
	ローディング画面

-------------------------------------------------- */
#loading {
	position: fixed;
	inset: 0;
	background-color: #000;
	z-index: calc(infinity);
}

#loading .loading__inner {
	position: absolute;
	inset: 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
}

#loading .loading__inner::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: radial-gradient(circle, rgba(123, 210, 255, 0) 20%, #000);
}

.loading__logo {
    max-width: 240px;
		max-width: 500px;
    width: 80%;
}

#visual-campaign {
	position: relative;
	background: url("../img/top/bg_all.webp") no-repeat center top;
	background-size: cover;
}


/* --------------------------------------------------

	ナビゲーション

-------------------------------------------------- */
#visual .menu {
	position: relative;
	/*　margin: -63px auto 0;　*/
	margin: -110px auto 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	gap: 2px;
	/*
	-webkit-filter: drop-shadow(0px 0 5px black);
	filter: drop-shadow(0px 0 5px black);
	*/
	z-index: 10;
}

@media screen and (max-width:768px) {
	#visual .menu {
		margin-top: 4.4166666667vw;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		gap:1.302083vw 0;
	}
}

#visual .menu__item {
	/*　max-width: 226px;　*/
	max-width: 100%;
	font-size: 0;
	box-shadow : 0 10px 20px rgba(47, 44, 24, 0.8);
}

/* 20251107 */
.menu__item + .menu__item {
	margin-left: 4px;
}
/* 20251107 */

@media screen and (max-width:768px) {
	#visual .menu__item {
		width: 31.5%;
	}
}

.menu__btn {
	border: none;
	outline: none;
}


@media (any-hover:hover) {
	#visual .menu__btn {
		-webkit-transition: -webkit-filter .3s;
		transition: -webkit-filter .3s;
		transition: filter .3s;
		transition: filter .3s, -webkit-filter .3s;
	}
	
	#visual .menu__btn .btn__txt:after {
		-webkit-transition: -webkit-transform .5s cubic-bezier(.25, 1, .5, 1);
		transition: -webkit-transform .5s cubic-bezier(.25, 1, .5, 1);
		transition: transform .5s cubic-bezier(.25, 1, .5, 1);
		transition: transform .5s cubic-bezier(.25, 1, .5, 1), -webkit-transform .5s cubic-bezier(.25, 1, .5, 1);
	}
	
	#visual .menu__btn:hover {
		-webkit-filter: drop-shadow(0px 0 .5rem rgba(0, 0, 0, .5)) brightness(140%);
		filter: drop-shadow(0px 0 .5rem rgba(0, 0, 0, .5)) brightness(140%);
	}
	
	#visual .menu__btn:hover .btn__txt:after {
		-webkit-transform: translateX(50%);
		transform: translateX(50%);
	}
}


/* --------------------------------------------------

	キャンペーン一覧

-------------------------------------------------- */
#campaign {
	position: relative;
	/*　padding: 440px 50px 560px;　*/
    padding: 200px 0 250px;
	/* overflow: hidden; */
}

@media screen and (max-width:768px) {
	#campaign {
        padding: 32.78125vw 0 25vw;
	}
}

#campaign .ttl {
	position: relative;
	z-index: 100;
	width: 60%;
	max-width: 469px;
	margin: 0 auto;
	filter: drop-shadow(0 0 20px rgba(255, 243, 139, 1)) drop-shadow(0 0 10px rgba(255, 243, 139, 1));
}

#campaign .ttl:not(:first-of-type) {
	margin-top: 120px;
	filter: drop-shadow(0 0 20px rgba(255, 243, 139, 1)) drop-shadow(0 0 10px rgba(255, 243, 139, 1));
}

@media screen and (max-width:768px) {
	#campaign .ttl {
        margin-bottom: -0.791667vw;
	}
	
	#campaign .ttl:not(:first-of-type) {
        margin-top: 36.71875vw;
	}
}

.frame {
	position: relative;
	z-index: 100;
}

#campaign .frame__inner {
    margin-top: -30px;
    padding-top: 80px;
}

@media screen and (max-width:768px) {
	#campaign .frame__inner {
		margin-top: -5.233333vw;
		padding-top: 11.9vw;
	}
}

#campaign .contents-num {
	width: 14%;
	max-width: 162px;
	aspect-ratio: 49/52;
    margin: -50px auto;
	/*
	-webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(30%, #000), color-stop(70%, #000), to(transparent));
	-webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 30%, #000 70%, transparent 100%);
	mask-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(30%, #000), color-stop(70%, #000), to(transparent));
	*/
	mask-image: linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%);

}

#campaign .contents-slider {
	width: 90%;
	margin: 0 auto;
}

@media screen and (max-width:768px) {
	#campaign .contents-slider {
		width: 82%;
		margin-top: 5.2083333333vw;
	}
}

#campaign .contents-slider__ttl {
	font-weight: 700;
	font-size: 36px;
	text-align: center;
    height: 2.4em;
	margin-top: 30px;
    line-height: 1.4;
    display: flex;
    justify-content: center;
    align-items: center;
}

@media screen and (max-width:768px) {
	#campaign .contents-slider__ttl {
		font-size: 4.6875vw;
        height: 11vw;
        margin-top: 8.2083333333vw;
	}
}

#campaign .contents-slider__bnr {
	max-width: 904px;
	margin: 30px auto;
	padding: 2px;
	background: #1C47FF;
	background: linear-gradient(132deg,rgba(28, 71, 255, 1) 0%, rgba(47, 245, 236, 1) 15%, rgba(242, 171, 255, 1) 40%, rgba(47, 245, 236, 1) 72%, rgba(47, 182, 245, 1) 100%);
}

@media screen and (max-width:768px) {
	#campaign .contents-slider__bnr {
		padding: 1px;
		margin: 3.90625vw auto;
	}
}

#campaign .contents-slider__txt {
	width: 90%;
	margin: auto;
	font-size: 22px;
}

@media screen and (max-width:768px) {
	#campaign .contents-slider__txt {
        font-size: 3.6458333333vw;
        text-align: center;
	}
}

#campaign .btn {
	margin-top: 30px;
}

@media screen and (max-width:768px) {
	#campaign .btn {
		margin-top: 3.90625vw;
	}
}

#campaign .pv-list {
	width: 90%;
	margin: 70px auto 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	gap: 20px;
	-webkit-filter: drop-shadow(0px 0 6px rgba(0, 0, 0, 1));
	filter: drop-shadow(0px 0 6px rgba(0, 0, 0, 1));
}

@media screen and (max-width:768px) {
	#campaign .pv-list {
		margin-top: 3.2vw;
		gap: 2.6041666667vw;
	}
}

#campaign .pv-list__item {
	max-width: 400px;
}

@media (any-hover:hover) {
	#campaign .pv-list__bnr {
		-webkit-transition: -webkit-filter .3s;
		transition: -webkit-filter .3s;
		transition: filter .3s;
		transition: filter .3s, -webkit-filter .3s;
	}
	
	#campaign .pv-list__bnr .btn__txt:after {
		-webkit-transition: -webkit-transform .5s cubic-bezier(.25, 1, .5, 1);
		transition: -webkit-transform .5s cubic-bezier(.25, 1, .5, 1);
		transition: transform .5s cubic-bezier(.25, 1, .5, 1);
		transition: transform .5s cubic-bezier(.25, 1, .5, 1), -webkit-transform .5s cubic-bezier(.25, 1, .5, 1);
	}
	
	#campaign .pv-list__bnr:hover {
		-webkit-filter: drop-shadow(0px 0 10px rgba(0, 73, 195, .5)) brightness(140%);
		filter: drop-shadow(0px 0 10px rgba(0, 73, 195, .5)) brightness(140%);
	}
	
	#campaign .pv-list__bnr:hover .btn__txt:after {
		-webkit-transform: translateX(50%);
		transform: translateX(50%);
	}
}

#campaign .campaign__unit {
	position: absolute;
	left: 0;
	right: 0;
	margin: auto;
	pointer-events: none;
}

#campaign .campaign__unit.is--01 {
    top: -215px;
    left: -1320px;
    width: 1005px;
}

@media screen and (max-width:768px) {
	#campaign .campaign__unit.is--01 {
        top: -6.333333vw;
        left: -64.635417vw;
        width: 71%;
	}
}

#campaign .campaign__unit.is--02 {
    top: -414px;
    right: -1050px;
    width: 1410px;
	z-index: 0;
}

@media screen and (max-width:768px) {
	#campaign .campaign__unit.is--02 {
        top: -27.0625vw;
        right: -51.125vw;
        width: 97%;
	}
}

#campaign .campaign__unit.is--03 {
    bottom: -185px;
    left: -1305px;
    width: 1450px;
}

@media screen and (max-width:768px) {
	#campaign .campaign__unit.is--03 {
        bottom: -12.4375vw;
        left: -69vw;
        width: 100%;
	}
}

#campaign .campaign__unit.is--04 {
    bottom: -240px;
    right: -1395px;
    width: 824px;
}

@media screen and (max-width:768px) {
	#campaign .campaign__unit.is--04 {
        bottom: -25vw;
        right: -57.333333vw;
        width: 77%;
	}
}


#swiper .swiper-button-next, #swiper .swiper-button-prev {
	top: 48%;
}

@media screen and (max-width:768px) {
	#swiper .swiper-button-next, #swiper .swiper-button-prev {
		top: 48%;
	}
}

#swiper .swiper-button-prev {}

@media screen and (max-width:768px) {
	#swiper .swiper-button-prev {
		left: -7%;
	}
}

#swiper .swiper-button-next {}

@media screen and (max-width:768px) {
	#swiper .swiper-button-next {
		right: -7%;
	}
}

.is--animation-logo>* {
	opacity: 0;
}

.is--animation-logo .main-ttl__part08 {
	-webkit-transform: scale(2);
	transform: scale(2);
}

.is--animation-logo .main-ttl__main01 {
	-webkit-transform: scale(2);
	transform: scale(2);
	-webkit-filter: brightness(300%);
	filter: brightness(300%);
	will-change: filter;
}

.is--animation-logo .main-ttl__main02 {
	-webkit-transform: scale(1.3);
	transform: scale(1.3);
}

.is--animation-logo .main-unit__intro-order--1,
.is--animation-logo .main-unit__intro-order--2,
.is--animation-logo .main-unit__intro-order--3,
.is--animation-logo .main-unit__intro-order--4 {
	will-change: transform, opacity;
}

.is--animation-logo .main-unit__img01,
.is--animation-logo .main-unit__img04 {
	-webkit-transform: translateX(55%);
	transform: translateX(55%);
}

.is--animation-logo .main-unit__img02,
.is--animation-logo .main-unit__img03 {
	-webkit-transform: translateX(-55%);
	transform: translateX(-55%);
}

@media screen and (max-width:768px) {
	.is--animation-logo .main-unit__img01,
	.is--animation-logo .main-unit__img04 {
		-webkit-transform: translateX(36.4583333333vw);
		transform: translateX(36.4583333333vw);
	}

	.is--animation-logo .main-unit__img02,
	.is--animation-logo .main-unit__img03 {
		-webkit-transform: translateX(-36.4583333333vw);
		transform: translateX(-36.4583333333vw);
	}
}

.is--animation-logo .main-ttl__part01, .is--animation-logo .main-ttl__part06 {
	-webkit-transform: translateX(20px) rotate(45deg);
	transform: translateX(20px) rotate(45deg);
}

@media screen and (max-width:768px) {
	.is--animation-logo .main-ttl__part01, .is--animation-logo .main-ttl__part06 {
		-webkit-transform: translateX(2.6041666667vw) rotate(45deg);
		transform: translateX(2.6041666667vw) rotate(45deg);
	}
}

.is--animation-logo .main-ttl__part03, .is--animation-logo .main-ttl__part04, .is--animation-logo .main-ttl__part05 {
	-webkit-transform: translateX(-20px) rotate(-45deg);
	transform: translateX(-20px) rotate(-45deg);
}

@media screen and (max-width:768px) {
	.is--animation-logo .main-ttl__part03, .is--animation-logo .main-ttl__part04, .is--animation-logo .main-ttl__part05 {
		-webkit-transform: translateX(-2.6041666667vw) rotate(-45deg);
		transform: translateX(-2.6041666667vw) rotate(-45deg);
	}
}

.is--animation-logo.is--animation .main-ttl__part08 {
	opacity: 1;
	-webkit-transform: scale(1);
	transform: scale(1);
	-webkit-transition: opacity .2s, -webkit-transform .3s cubic-bezier(.34, 1.56, .64, 1);
	transition: opacity .2s, -webkit-transform .3s cubic-bezier(.34, 1.56, .64, 1);
	transition: opacity .2s, transform .3s cubic-bezier(.34, 1.56, .64, 1);
	transition: opacity .2s, transform .3s cubic-bezier(.34, 1.56, .64, 1), -webkit-transform .3s cubic-bezier(.34, 1.56, .64, 1);
}

.is--animation-logo.is--animation .main-ttl__sub {
	opacity: 1;
	-webkit-transition: opacity .2s .2s;
	transition: opacity .2s .2s;
}

.is--animation-logo.is--animation .main-ttl__main01 {
	opacity: 1;
	-webkit-transform: scale(1);
	transform: scale(1);
	-webkit-filter: brightness(100%);
	filter: brightness(100%);
	-webkit-transition: opacity .2s .2s, -webkit-filter 3s .2s cubic-bezier(.16, 1, .3, 1), -webkit-transform .3s .2s cubic-bezier(.34, 1.56, .64, 1);
	transition: opacity .2s .2s, -webkit-filter 3s .2s cubic-bezier(.16, 1, .3, 1), -webkit-transform .3s .2s cubic-bezier(.34, 1.56, .64, 1);
	transition: opacity .2s .2s, filter 3s .2s cubic-bezier(.16, 1, .3, 1), transform .3s .2s cubic-bezier(.34, 1.56, .64, 1);
	transition: opacity .2s .2s, filter 3s .2s cubic-bezier(.16, 1, .3, 1), transform .3s .2s cubic-bezier(.34, 1.56, .64, 1), -webkit-filter 3s .2s cubic-bezier(.16, 1, .3, 1), -webkit-transform .3s .2s cubic-bezier(.34, 1.56, .64, 1);
}

.is--animation-logo.is--animation .main-ttl__main02 {
	opacity: 1;
	-webkit-transform: scale(1);
	transform: scale(1);
	-webkit-transition: opacity .2s .4s, -webkit-transform .3s .4s cubic-bezier(.68, -.6, .32, 1.6);
	transition: opacity .2s .4s, -webkit-transform .3s .4s cubic-bezier(.68, -.6, .32, 1.6);
	transition: opacity .2s .4s, transform .3s .4s cubic-bezier(.68, -.6, .32, 1.6);
	transition: opacity .2s .4s, transform .3s .4s cubic-bezier(.68, -.6, .32, 1.6), -webkit-transform .3s .4s cubic-bezier(.68, -.6, .32, 1.6);
}

.is--animation-logo.is--animation .main-unit__intro-order--1 {
	opacity: 1;
	-webkit-transform: translate(0);
	transform: translate(0);
	-webkit-transition: opacity 0s .52s, -webkit-transform .85s .52s cubic-bezier(.34, 1.2, .64, 1);
	transition: opacity 0s .52s, -webkit-transform .85s .52s cubic-bezier(.34, 1.2, .64, 1);
	transition: opacity 0s .52s, transform .85s .52s cubic-bezier(.34, 1.2, .64, 1);
	transition: opacity 0s .52s, transform .85s .52s cubic-bezier(.34, 1.2, .64, 1), -webkit-transform .85s .52s cubic-bezier(.34, 1.2, .64, 1);
}

.is--animation-logo.is--animation .main-unit__intro-order--2 {
	opacity: 1;
	-webkit-transform: translate(0);
	transform: translate(0);
	-webkit-transition: opacity 0s .68s, -webkit-transform .85s .68s cubic-bezier(.34, 1.2, .64, 1);
	transition: opacity 0s .68s, -webkit-transform .85s .68s cubic-bezier(.34, 1.2, .64, 1);
	transition: opacity 0s .68s, transform .85s .68s cubic-bezier(.34, 1.2, .64, 1);
	transition: opacity 0s .68s, transform .85s .68s cubic-bezier(.34, 1.2, .64, 1), -webkit-transform .85s .68s cubic-bezier(.34, 1.2, .64, 1);
}

.is--animation-logo.is--animation .main-unit__intro-order--3 {
	opacity: 1;
	-webkit-transform: translate(0);
	transform: translate(0);
	-webkit-transition: opacity 0s .84s, -webkit-transform .85s .84s cubic-bezier(.34, 1.2, .64, 1);
	transition: opacity 0s .84s, -webkit-transform .85s .84s cubic-bezier(.34, 1.2, .64, 1);
	transition: opacity 0s .84s, transform .85s .84s cubic-bezier(.34, 1.2, .64, 1);
	transition: opacity 0s .84s, transform .85s .84s cubic-bezier(.34, 1.2, .64, 1), -webkit-transform .85s .84s cubic-bezier(.34, 1.2, .64, 1);
}

.is--animation-logo.is--animation .main-unit__intro-order--4 {
	opacity: 1;
	-webkit-transform: translate(0);
	transform: translate(0);
	-webkit-transition: opacity 0s 1.08s, -webkit-transform .9s 1.08s cubic-bezier(.34, 1.2, .64, 1);
	transition: opacity 0s 1.08s, -webkit-transform .9s 1.08s cubic-bezier(.34, 1.2, .64, 1);
	transition: opacity 0s 1.08s, transform .9s 1.08s cubic-bezier(.34, 1.2, .64, 1);
	transition: opacity 0s 1.08s, transform .9s 1.08s cubic-bezier(.34, 1.2, .64, 1), -webkit-transform .9s 1.08s cubic-bezier(.34, 1.2, .64, 1);
}

.is--animation-logo.is--animation .main-ttl__part05, .is--animation-logo.is--animation .main-ttl__part06 {
	opacity: 1;
	-webkit-transform: translateX(0) rotate(0);
	transform: translateX(0) rotate(0);
	-webkit-transition: opacity .4s .7s, -webkit-transform .5s .6s cubic-bezier(.68, -.6, .32, 1.6);
	transition: opacity .4s .7s, -webkit-transform .5s .6s cubic-bezier(.68, -.6, .32, 1.6);
	transition: opacity .4s .7s, transform .5s .6s cubic-bezier(.68, -.6, .32, 1.6);
	transition: opacity .4s .7s, transform .5s .6s cubic-bezier(.68, -.6, .32, 1.6), -webkit-transform .5s .6s cubic-bezier(.68, -.6, .32, 1.6);
}

.is--animation-logo.is--animation .main-ttl__part01, .is--animation-logo.is--animation .main-ttl__part03, .is--animation-logo.is--animation .main-ttl__part04 {
	opacity: 1;
	-webkit-transform: translateX(0) rotate(0);
	transform: translateX(0) rotate(0);
	-webkit-transition: opacity .4s .75s, -webkit-transform .5s .65s cubic-bezier(.16, 1, .3, 1);
	transition: opacity .4s .75s, -webkit-transform .5s .65s cubic-bezier(.16, 1, .3, 1);
	transition: opacity .4s .75s, transform .5s .65s cubic-bezier(.16, 1, .3, 1);
	transition: opacity .4s .75s, transform .5s .65s cubic-bezier(.16, 1, .3, 1), -webkit-transform .5s .65s cubic-bezier(.16, 1, .3, 1);
}

.is--animation-menu {
	opacity: 0;
	-webkit-transform: translateY(50%);
	transform: translateY(50%);
	-webkit-filter: brightness(140%);
	filter: brightness(140%);
	pointer-events: none;
	display: block;
}

.is--animation-menu.is--animation {
	opacity: 1;
	-webkit-transform: translateY(0%);
	transform: translateY(0%);
	-webkit-filter: brightness(100%);
	filter: brightness(100%);
	pointer-events: auto;
	-webkit-transition: opacity .3s .8s, -webkit-filter 1s .8s, -webkit-transform .5s .8s cubic-bezier(.34, 1.56, .64, 1);
	transition: opacity .3s .8s, -webkit-filter 1s .8s, -webkit-transform .5s .8s cubic-bezier(.34, 1.56, .64, 1);
	transition: opacity .3s .8s, filter 1s .8s, transform .5s .8s cubic-bezier(.34, 1.56, .64, 1);
	transition: opacity .3s .8s, filter 1s .8s, transform .5s .8s cubic-bezier(.34, 1.56, .64, 1), -webkit-filter 1s .8s, -webkit-transform .5s .8s cubic-bezier(.34, 1.56, .64, 1);
}

.is--animation-menu.is--animation:nth-of-type(2) {
	-webkit-transition-delay: .9s, .9s, .9s;
	transition-delay: .9s, .9s, .9s;
}

.is--animation-menu.is--animation:nth-of-type(3) {
	-webkit-transition-delay: 1s, 1s, 1s;
	transition-delay: 1s, 1s, 1s;
}

.is--animation-menu.is--animation:nth-of-type(4) {
	-webkit-transition-delay: 1.1s, 1.1s, 1.1s;
	transition-delay: 1.1s, 1.1s, 1.1s;
}

.is--animation-menu.is--animation:nth-of-type(5) {
	-webkit-transition-delay: 1.2s, 1.2s, 1.2s;
	transition-delay: 1.2s, 1.2s, 1.2s;
}

.is--animation-menu.is--animation:nth-of-type(6) {
	-webkit-transition-delay: 1.3s, 1.3s, 1.3s;
	transition-delay: 1.3s, 1.3s, 1.3s;
}

.is--animation-menu.is--animation:nth-of-type(7) {
	-webkit-transition-delay: 1.4s, 1.4s, 1.4s;
	transition-delay: 1.4s, 1.4s, 1.4s;
}