@charset "UTF-8";




/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

共通処理エリア

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
共通処理 start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

.sp {
	display: none !important;
}

.pc {
	display: block !important;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
共通処理 end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

モーダルエリア

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
モーダル 共通部分 start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

/* 角丸にするためにオーバーライド */
.iziModal {
	border-radius: 20px !important;
	background-color: rgba(0, 0, 0, 0) !important;
}

div.iziModal.isAttached {
	border-radius: 20px !important;
	background-color: rgba(0, 0, 0, 0) !important;
}

.iziModal-wrap {
	background-color: rgba(0, 0, 0, 0) !important;
}

.iziModal-content {
	background-color: rgba(0, 0, 0, 0) !important;
}
/* 角丸にするためにオーバーライド */

.modal_base_wapper {
	display: none;
}

.modal_base_bg {
	background-color: #ffffff;
	margin: auto;
	border-radius: 20px;
	border: 3px solid #ffffff;
	filter: drop-shadow(0 0 30px rgba(116, 131, 141, 0.5));
	background-image: url(../images/texcher_abstract_poligon.png);
	background-repeat: no-repeat;
}

.modal_button {
	width: 100%;
	height: 52px;
	margin: 30px auto 40px auto;
	display: flex;
	justify-content: center;
	gap: 20px;
}

.modal_button button {
	width: 164px;
	height: 52px;
	border-radius: 26px;
	transition-duration: 400ms;
	font-size: 16px;
}

.modal_button .modal_btn_primary {
	background-color: #ff5a9b;
	color: #ffffff;
}

.modal_button .modal_btn_close {
	background-color: #c7cdd2;
}

.modal_button button:hover {
	filter: brightness(1.1);
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
モーダル 共通部分 end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
モーダル 通知系モーダル start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#modal_getstamp .modal_base_bg,
#modal_max_point .modal_base_bg,
#modal_exchange_stamp .modal_base_bg,
#modal_exchange_fail .modal_base_bg {
	width: 600px;
	height: 600px;
}

#modal_getstamp .modal_base_bg .stamp_icon,
#modal_max_point .modal_base_bg .stamp_icon,
#modal_exchange_fail .modal_base_bg .stamp_icon {
	position: relative;
	width: 100%;
	height: 230px;
	margin-top: 65px;
}

#modal_getstamp .modal_base_bg .stamp_icon .stamp,
#modal_max_point .modal_base_bg .stamp_icon .stamp {
	position: absolute;
	width: 174px;
	height: 167px;
	top: 50%;
	left: 50%;
}

#modal_getstamp .modal_base_bg .stamp_icon .particle,
#modal_max_point .modal_base_bg .stamp_icon .particle {
	position: absolute;
	width: 297px;
	height: 228px;
	bottom: 50%;
	left: 50%;
}

#modal_getstamp .modal_base_bg h3,
#modal_max_point .modal_base_bg h3 {
	text-align: center;
	font-size: 30px;
	color: #ff5a9b;
	margin-top: 40px;
	position: relative;
}

#modal_getstamp .modal_base_bg h3::after,
#modal_max_point .modal_base_bg h3::after {
	position: absolute;
	content: "";
	background-color: #e78cff;
	width: 49px;
	height: 6px;
	left: 50%;
	bottom: -30px;
	transform: translate(-50%, 0);
	border-radius: 3px;
}

#modal_getstamp .modal_base_bg p,
#modal_max_point .modal_base_bg p {
	text-align: center;
	font-size: 16px;
	margin-top: 60px;
}


/* modal exchange wallpaper start */

#modal_exchange_wallpaper .modal_base_bg .stamp_icon {
	margin-top: 35px;
	height: 300px;
	position: relative;
}

#modal_exchange_wallpaper .modal_base_bg .stamp_icon .wallpaper_thumb {
	display: block;
	width: 533px;
	height: 300px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	position: absolute;
}

#modal_exchange_wallpaper .modal_base_bg h3 {
	text-align: center;
	font-size: 16px;
	color: #ff5a9b;
	margin-top: 40px;
}

#modal_exchange_wallpaper .modal_base_bg p {
	text-align: center;
	font-size: 14px;
	margin-top: 40px;
}

/* modal exchange wallpaper end */


/* modal exchage fail start */

#modal_exchange_fail .modal_base_bg .stamp_icon .stamp {
	position: absolute;
	width: 240px;
	height: 240px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

#modal_exchange_fail .modal_base_bg h3 {
	text-align: center;
	font-size: 16px;
	color: #9e0aea;
	margin-top: 40px;
}

#modal_exchange_fail .modal_base_bg p {
	text-align: center;
	font-size: 14px;
	margin-top: 40px;
}

/* modal exchage fail end */


/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
モーダル 通知系モーダル end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
モーダル 通知系モーダル animation start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#modal_getstamp .modal_base_bg .stamp_icon .stamp,
#modal_max_point .modal_base_bg .stamp_icon .stamp {
	animation: stampPopAnimation 0.8s ease-out forwards;
}

#modal_getstamp .modal_base_bg .stamp_icon .particle,
#modal_max_point .modal_base_bg .stamp_icon .particle {
	animation: particlePopAnimation 0.9s ease-out forwards;
}

#modal_exchange_wallpaper .modal_base_bg .stamp_icon .wallpaper_thumb {
	animation: wallpaperPopAnimation 0.9s ease-out forwards;
}


/* スタンプ出現 */
@keyframes stampPopAnimation {
	0% {
		opacity: 0;
		transform: translate(-50%, calc(-50% + 30px));
	}
	60% {
		opacity: 0;
		transform: translate(-50%, calc(-50% + 30px));
	}
	85% {
		opacity: 1;
		transform: translate(-50%, calc(-50% - 20px));
	}
	100% {
		opacity: 1;
		transform: translate(-50%, -50%);
	}
}

/* パーティクル出現 */
@keyframes particlePopAnimation {
	0% {
		opacity: 0;
		transform: translate(-50%, 50%) scale(0.5);
	}
	70% {
		opacity: 0;
		transform: translate(-50%, 50%) scale(0.5);
	}
	90% {
		opacity: 1;
		transform: translate(-50%, 50%) scale(1.05);
	}
	100% {
		opacity: 1;
		transform: translate(-50%, 50%) scale(1);
	}
}

/* 壁紙サムネ出現 */
@keyframes wallpaperPopAnimation {
	0% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(0.95);
	}
	50% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(0.95);
	}
	80% {
		opacity: 1;
		transform: translate(-50%, -50%) scale(1.05);
	}
	100% {
		opacity: 1;
		transform: translate(-50%, -50%) scale(1);
	}
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
モーダル 通知系モーダル animation end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/





/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
モーダル shop start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#modal_shop .modal_base_bg {
	width: 950px;
	height: 100%;
	margin: auto;
}

#modal_shop .modal_header {
	width: 100%;
}

#modal_shop .modal_header img {
	width: 55px;
	height: 55px;
	margin: 40px auto 0 auto;
	display: block;
}

#modal_shop .modal_header {
	text-align: center;
}

#modal_shop .modal_header h3 {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	font-size: 28px;
	font-weight: bold;
	text-decoration: none;
	margin-top: 15px;
	position: relative;
}

#modal_shop .modal_header h3:before {
	position: absolute;
	content: "";
	width: 29px;
	height: 3px;
	top: 50px;
	left: 50%;
	transform: translate(-50%, 0);
	background-color: #ff5a9b;
}

#modal_shop .modal_header h3 span {
	margin-top: 35px;
}

#modal_shop .modal_header p {
	margin-top: 35px;
}

#modal_shop .modal_shop_list {
	width: 100%;
	height: 350px;
	background-color: #ffffff;
	margin-top: 30px;
	overflow: hidden;
	border-top: 2px solid #dde3f5;
	border-bottom: 2px solid #dde3f5;
	padding-right: 20px;
}

#modal_shop .modal_shop_list .modal_shop_list_wrapper {
	height: 310px;
	margin: 20px 0 20px 0;
	overflow-y: scroll;
	overflow-x: hidden;
}

#modal_shop .modal_shop_list .modal_shop_list_wrapper::-webkit-scrollbar {
  width: 15px;
}

#modal_shop .modal_shop_list .modal_shop_list_wrapper::-webkit-scrollbar-thumb {
  background: #ff5a9b;
	border-radius: 8px;
	border: 3px solid transparent;
  background-clip: padding-box;
}

#modal_shop .modal_shop_list .modal_shop_list_wrapper::-webkit-scrollbar-track {
  background: #e1e8ed;
	border-radius: 8px;
}

#modal_shop .modal_shop_list .shop_gallary {
	margin: 0 20px;
}

#modal_shop .shop_item_group {
	width: 100%;
	overflow: hidden;
	background-color: #f7fafb;
	border-radius: 10px;
	margin-top: 20px;
}

#modal_shop .shop_item_group:first-child {
	margin-top: 0;
}

#modal_shop .shop_item_group .group_logo {
	display: block;
	height: 110px;
	object-fit: contain;
	margin: 35px auto 0 auto;
}

#modal_shop .shop_item_group .shop_item {
	width: calc(100% - 20px);
	margin: 20px 10px;
	background-color: #e1e8ed;
	border-radius: 10px;
}

#modal_shop .shop_item_group .shop_item .shop_item_header {
	height: 67px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 30px;
	border-bottom: 1.5px solid #6e98b7;
}

#modal_shop .shop_item_group .shop_item .shop_item_header p {
	display: block;
	font-size: 16px;
}

#modal_shop .shop_item_group .shop_item .shop_item_header .exchange_wallpaper {
	display: flex;
	width: 165px;
	height: 30px;
	border-radius: 15px;
	font-size: 12px;
	color: #ffffff;
	align-items: center;
	justify-content: center;
}

#modal_shop .shop_item_group .shop_item .shop_item_header .exchange_wallpaper img {
	width: 20px;
	height: 19px;
	margin: 0 8px 0 0;
}

#modal_shop .shop_item_group .shop_item .shop_item_main {
	display: flex;
	justify-content: center;
	padding: 30px 0;
	margin: 0 30px;
	border-top: 1.5px solid #ffffff;
	border-bottom: 1.5px solid #6e98b7;
}

#modal_shop .shop_item_group .shop_item .shop_item_main img {
	display: block;
	width: 270px;
	aspect-ratio: 16 / 9;
	pointer-events: none;
}

#modal_shop .shop_item_group .shop_item .shop_item_main .shop_item_type {
	margin-left: 30px;
	align-content: center;
}

#modal_shop .shop_item_group .shop_item .shop_item_main .shop_item_type li {
	display: flex;
	margin: 20px 0 0 28px;
	position: relative;
}

#modal_shop .shop_item_group .shop_item .shop_item_main .shop_item_type li::before {
	position: absolute;
	content: "";
	width: 21px;
	height: 22px;
	top: 50%;
	left: -30px;
	transform: translate(0, -50%);
	background-image: url(../svg/oshiselect_star.svg);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: bottom;
}

#modal_shop .shop_item_group .shop_item .shop_item_main .shop_item_type a {
	display: block;
	width: 93px;
	height: 22px;
	background-color: #8f9faa;
	color: #ffffff;
	font-size: 10px;
	text-align: center;
	line-height: 22px;
	border-radius: 11px;
}


/* ポイント不足 */
#modal_shop .shop_item_group .shop_item.unable .shop_item_header .exchange_wallpaper {
	background-color: #8f9faa !important;
	pointer-events: none;
}

#modal_shop .shop_item_group .shop_item.unable .shop_item_main .shop_item_type a {
	background-color: #8f9faa;
	pointer-events: none;
}


/* ロック状態 */
#modal_shop .shop_item_group .shop_item.locked .shop_item_header .exchange_wallpaper {
	background-color: #fe61b1;
	transition-duration: 600ms;
}

#modal_shop .shop_item_group .shop_item.locked .shop_item_header .exchange_wallpaper:hover {
	filter: brightness(1.2);
}

#modal_shop .shop_item_group .shop_item.locked .shop_item_main .shop_item_type a {
	background-color: #8f9faa;
	pointer-events: none;
}


/* 解放済み */
#modal_shop .shop_item_group .shop_item.unlocked .shop_item_header .exchange_wallpaper {
	background-color: #8f9faa;
	pointer-events: none;
}

#modal_shop .shop_item_group .shop_item.unlocked .shop_item_main .shop_item_type a {
	background-color: #fe61b1;
	transition-duration: 600ms;
}

#modal_shop .shop_item_group .shop_item.unlocked .shop_item_main .shop_item_type a:hover {
	filter: brightness(1.2);
}




#modal_shop .shop_item_group .shop_item .shop_item_footer {
	height: 60px;
	margin: 0 30px;
	text-align: right;
	line-height: 60px;
	border-top: 1.5px solid #ffffff;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
モーダル shop end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/



/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
モーダル oshi select start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#modal_oshi_select .modal_base_bg {
	width: 950px;
	height: 100%;
	margin: auto;
}

#modal_oshi_select .modal_header {
	width: 100%;
}

#modal_oshi_select .modal_header img {
	width: 55px;
	height: 55px;
	margin: 40px auto 0 auto;
	display: block;
}

#modal_oshi_select .modal_header {
	text-align: center;
}

#modal_oshi_select .modal_header h3 {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	font-size: 28px;
	font-weight: bold;
	text-decoration: none;
	margin-top: 15px;
	position: relative;
}

#modal_oshi_select .modal_header h3:before {
	position: absolute;
	content: "";
	width: 29px;
	height: 3px;
	top: 50px;
	left: 50%;
	transform: translate(-50%, 0);
	background-color: #ff5a9b;
}

#modal_oshi_select .modal_header h3 span {
	margin-top: 35px;
}

#modal_oshi_select .modal_header p {
	margin-top: 35px;
}

#modal_oshi_select .modal_oshi_list {
	width: 100%;
	height: 350px;
	background-color: #ffffff;
	margin-top: 30px;
	overflow: hidden;
	border-top: 2px solid #dde3f5;
	border-bottom: 2px solid #dde3f5;
	padding-right: 20px;
}

#modal_oshi_select .modal_oshi_list .modal_oshi_list_wrapper {
	height: 310px;
	margin: 20px 0 20px 0;
	overflow-y: scroll;
	overflow-x: hidden;
}

#modal_oshi_select .modal_oshi_list .modal_oshi_list_wrapper::-webkit-scrollbar {
  width: 15px;
}

#modal_oshi_select .modal_oshi_list .modal_oshi_list_wrapper::-webkit-scrollbar-thumb {
  background: #ff5a9b;
	border-radius: 8px;
	border: 3px solid transparent;
  background-clip: padding-box;
}

#modal_oshi_select .modal_oshi_list .modal_oshi_list_wrapper::-webkit-scrollbar-track {
  background: #e1e8ed;
	border-radius: 8px;
}

#modal_oshi_select .modal_oshi_list .oshi_gallary {
	background-color: #f7fafb;
	border-radius: 10px;
	margin: 0 20px 0 20px;
}

#modal_oshi_select .modal_oshi_list ul.group_row {
	display: flex;
	justify-content: space-between;
	margin: 10px;
}

#modal_oshi_select .modal_oshi_list .oshi_gallary > li {
	overflow: hidden;
}

#modal_oshi_select .modal_oshi_list .group_row li {
	width: 130px;
	height: 130px;
}

#modal_oshi_select .modal_oshi_list .group_row .talent_panel {
	width: calc(100% - 4px);
	height: calc(100% - 4px);
	border-radius: 10px;
	border: 2px solid #d8e4ed;
	background-color: #d8e4ed;
	padding-top: 0;
	display: flex;
	flex-flow: column;
	transition-duration: 400ms;
	position: relative;
}

#modal_oshi_select .modal_oshi_list .group_row .talent_panel::before {
	position: absolute;
	content: "";
	width: 25px;
	height: 0;
	top: -5px;
	left: 10px;
	background-image: url(../svg/oshiselect_flag.svg);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: bottom;
	transition-duration: 400ms;
	z-index: 510;
}

#modal_oshi_select .modal_oshi_list .group_row .talent_panel:hover {
	border: 2px solid #ffa5d6;
	filter: brightness(1.1);
}

#modal_oshi_select .modal_oshi_list .group_row .talent_panel.selected {
	border: 2px solid #ff5a9b;
}

#modal_oshi_select .modal_oshi_list .group_row .talent_panel.selected::before {
	position: absolute;
	content: "";
	width: 25px;
	height: 34px;
}

#modal_oshi_select .modal_oshi_list .group_row .talent_panel figure {
	width: 100%;
	height: 80px;
	background: #ffffff;
	overflow: hidden;
	border-radius: 9px 9px 0 0;
}

#modal_oshi_select .modal_oshi_list .group_row .talent_panel p {
	width: 100%;
	text-align: center;
	font-family: "IBM Plex Sans", sans-serif;
	font-optical-sizing: auto;
	font-weight: 700;
	font-style: normal;
	font-variation-settings: "wdth" 100;
}

#modal_oshi_select .modal_oshi_list .group_row .talent_panel .character_name {
	font-size: 12px;
	margin-top: 4px;
}

#modal_oshi_select .modal_oshi_list .group_row .talent_panel .group_name {
	font-size: 10px;
	color: #8ba9c0;
	margin-top: 2px;
}

#modal_oshi_select .modal_oshi_list .group_row .talent_panel figure img {
	width: 70px;
	margin: 0 auto;
	display: block;
}


/* キャラごとの位置調整 start */


/* いれいす */
.modal_oshi_list .group_row .talent_panel[data-character-id="00"] img {
	transform: translate(0, 7px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="01"] img {
	transform: translate(0, 3px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="02"] img {
	transform: translate(0, -10px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="03"] img {
	transform: translate(0, 5px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="04"] img {
	transform: translate(0, 7px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="05"] img {
	transform: translate(0, 7px);
}


/* すたぽら */
.modal_oshi_list .group_row .talent_panel[data-character-id="10"] img {
	transform: translate(0, 4px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="11"] img {
	transform: translate(0, -7px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="12"] img {
	transform: translate(0, 4px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="13"] img {
	transform: translate(0, -2px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="14"] img {
	transform: translate(0, 4px);
}


/* クロノヴァ */
.modal_oshi_list .group_row .talent_panel[data-character-id="20"] img {
	transform: translate(0, 4px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="21"] img {
	transform: translate(0, 3px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="22"] img {
	transform: translate(0, 4px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="23"] img {
	transform: translate(0, 5px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="24"] img {
	transform: translate(0, 4px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="25"] img {
	transform: translate(0, -2px);
}


/* ブラフラ */
.modal_oshi_list .group_row .talent_panel[data-character-id="30"] img {
	transform: translate(0, 3px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="31"] img {
	transform: translate(0, 2px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="32"] img {
	transform: translate(0, 4px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="33"] img {
	transform: translate(0, 6px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="34"] img {
	transform: translate(0, 4px);
}

.modal_oshi_list .group_row .talent_panel[data-character-id="35"] img {
	transform: translate(0, -2px);
}


/* キャラごとの位置調整 end */


#modal_oshi_select .modal_oshi_list .group_row .blank_panel {
	background-color: #e9f1f4;
	border-radius: 10px;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
モーダル oshi select end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
モーダル animation start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

/* iziModalの標準アニメーションを上書き */
.simpleModalZoomIn {
	animation: simpleModalZoomIn 0.2s ease-out forwards !important;
}

.simpleModalZoomOut {
	animation: simpleModalZoomOut 0.2s ease-in forwards !important;
}

/* 拡大するアニメーション */
@keyframes simpleModalZoomIn {
	from {
		opacity: 0;
		transform: scale(0.8);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}

/* 縮小するアニメーション（閉じる時用） */
@keyframes simpleModalZoomOut {
	from {
		opacity: 1;
		transform: scale(1);
	}
	to {
		opacity: 0;
		transform: scale(0.8);
	}
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
モーダル animation end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/








/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

キャラクター区切りエリア

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

.character_hr {
	width: 100%;
	height: min(530px, 50vw);
	margin: 200px auto 0 auto;
	position: relative;
	overflow: hidden; 
}

.character_hr .character_vis {
	width: 100%;
	height: min(530px, 50vw);
	clip-path: polygon(0 0, 100% 25%, 100% 100%, 0 75%);
	position: absolute;
	top: 0;
	left: 0;
}

.character_hr .background_hr {
	width: 100%;
	height: min(530px, 50vw);
	background: url(../images/obj_parallax_voising_outline.png);
	background-size: 100% auto;
	background-repeat: repeat-y;
	background-position: center;
	clip-path: polygon(0 25%, 100% 0, 100% 75%, 0 100%);
	position: absolute;
	top:0;
}


/* いれいす */
.character_hr.group_ireisu {
	margin-top: max(-140px, -17vw);
}

.character_hr.group_ireisu .character_vis::before {
	content: "";
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url(../dlc/wallpaper_ireisu_group_light_pc.png);
	background-size: 100% auto;
	background-repeat: repeat-y;
	background-position: center;
	z-index: -1;
	pointer-events: none;

	will-change: transform;
}

.character_hr.group_ireisu .background_hr {
	background-color: #ff78be;
}

/* すたぽら */
.character_hr.group_starpola .character_vis::before {
	content: "";
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url(../dlc/wallpaper_starpola_group_light_pc.png);
	background-size: 100% auto;
	background-repeat: repeat-y;
	background-position: center;
	z-index: -1;
	pointer-events: none;

	will-change: transform;
}

.character_hr.group_starpola .background_hr {
	background-color: #ef962e;
}

/* クロノヴァ */
.character_hr.group_chronoreverse .character_vis::before {
	content: "";
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url(../dlc/wallpaper_chronoreverse_group_light_pc.png);
	background-size: 100% auto;
	background-repeat: repeat-y;
	background-position: center;
	z-index: -1;
	pointer-events: none;

	will-change: transform;
}

.character_hr.group_chronoreverse .background_hr {
	background-color: #b4e632;
}

/* ブラフラ */
.character_hr.group_blackflap .character_vis::before {
	content: "";
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url(../dlc/wallpaper_blackflap_group_light_pc.png);
	background-size: 100% auto;
	background-repeat: repeat-y;
	background-position: center;
	z-index: -1;
	pointer-events: none;

	will-change: transform;
}

.character_hr.group_blackflap .background_hr {
	background-color: #0fafff;
}








/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

パララックス背景

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

#parallax {
	z-index: -2;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 200%;
}

#parallax div {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 200%;
	background-repeat: repeat;
	background-position: top center;
}

#parallax div:nth-of-type(1) {
	background-image: url(../svg/particle_blue.svg);
	background-size: 1412px auto;
}

#parallax div:nth-of-type(2) {
	background-image: url(../svg/particle_green.svg);
	background-size: 1190px auto;
}

#parallax div:nth-of-type(3) {
	background-image: url(../svg/particle_grey.svg);
	background-size: 1432px auto;
}

#parallax div:nth-of-type(4) {
	background-image: url(../svg/particle_orange.svg);
	background-size: 1374px auto;
}

#parallax div:nth-of-type(5) {
	background-image: url(../svg/particle_pink.svg);
	background-size: 1228px auto;
}

#parallax div:nth-of-type(6) {
	background-image: url(../svg/particle_purple.svg);
	background-size: 903px auto;
}








/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

ローディングエリア

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
ローディング base start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#loading {
	z-index: 1000;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #eaf0f3;
	display: flex;
	justify-content: center;
	align-items: center;
}

#loading .loading_logo {
	display: block;
	width: 430px;
	fill: #3a3f50;
  animation: loading_animation 1.5s infinite ease-in-out;
}

@keyframes loading_animation {
  0% { opacity: 0.3; }
  50% { opacity: 1; }
  100% { opacity: 0.3; }
}

#loading.start {
	animation: fadeout_animation 1.6s both;
}

@keyframes fadeout_animation {
	0% {
		opacity: 1;
		transform: translate(0, 0); 
	}
  50% {
		opacity: 0;
		transform: translate(0, 0);
	}
  100% {
		opacity: 0;
		transform: translate(0, -100%);
	}
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
ローディング base end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/








/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

ナビゲーションエリア

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
ナビゲーション base start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#header {
	position: fixed;
	z-index: 50;
	background:rgba(255, 255, 255, 0.85);
	width: calc(100% - 60px);
	height: 110px;
	margin: 30px;
	border-radius: 20px;
	filter: drop-shadow(0 0 20px rgba(58, 63, 80, 0.3));
	box-shadow: inset 0 0 10px #ffffff;
	display: flex;
	justify-content: space-between;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
ナビゲーション base end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
ナビゲーション navi area start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#header .header_navi_area {
	display: flex;
	justify-content: center;
	height: 100%;
	align-items: center;
	margin: 0 0 0 min(35px, 3vw);
}

#header .header_navi_area .header_logo {
	width: min(50px, 5vw);
	object-fit: cover;
}

#header .header_navi_area .gnav {
	margin: 0 0 0 min(25px, 2vw);
}

#header .header_navi_area .gnav ul {
	display: flex;
	justify-content: space-between;
	gap: min(50px, 3vw);
}

#header .header_navi_area .gnav a {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	font-size: min(18px, 1.8vw);
	font-weight: bold;
	text-decoration: none;
	position: relative;
}

#header .header_navi_area .gnav a::after {
	position: absolute;
	content: "";
	background-color: #0fafff;
	width: 0;
	height: 3px;
	bottom: -10px;
	left: 50%;
	transform: translate(-50%, 0);
	transition-duration: 400ms;
}

#header .header_navi_area .gnav a:hover::after {
	width: 30px;
}

#header .header_navi_area .gnav a span {
	font-size: min(12px, 1.3vw);
	font-weight: normal;
	color: #47c2ff;
	margin: 13px auto 0 auto;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
ナビゲーション navi area end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
ナビゲーション user status start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#header .header_user_status ul {
	display: flex;
	justify-content: center;
	height: 100%;
	align-items: center;
	margin: 0 30px 0 0;
}

#header .header_user_status .header_select_oshi {
	width: 60px;
	height: 60px;
	background-color: #e8f0f4;
	border-radius: 60px;
	margin-right: min(20px, 1vw);
	border: 4px solid #ffffff;
	overflow: hidden;
	transition-duration: 600ms;
}

#header .header_user_status .header_select_oshi:hover {
	border: 4px solid #ffa5d6;
}

#header .header_user_status .header_select_oshi button {
	width: 100%;
	height: 100%;
}

#header .header_user_status .header_select_oshi button img {
	width: 50px;
	margin: 7px auto 0 auto;
	display: block;
}

/* キャラごとの調整 start*/

#header .header_user_status .header_select_oshi button img.character_index_01 {
	transform: translate(0, -5px);
}

#header .header_user_status .header_select_oshi button img.character_index_02 {
	transform: translate(0, -10px);
}

#header .header_user_status .header_select_oshi button img.character_index_11 {
	transform: translate(0, -5px);
}

#header .header_user_status .header_select_oshi button img.character_index_21 {
	transform: translate(3px, 0);
}

#header .header_user_status .header_select_oshi button img.character_index_25 {
	transform: translate(0, -3px);
}

#header .header_user_status .header_select_oshi button img.character_index_30 {
	transform: translate(0, -2px);
}

#header .header_user_status .header_select_oshi button img.character_index_35 {
	transform: translate(0, -3px);
}

/* キャラごとの調整 end */

#header .header_user_status .header_stamp_point {
	background-color: #e8f0f4;
	border-radius: 10px;
	width: min(204px, 20vw);
	height: 60px;
	position: relative;
	border: 4px solid #ffffff;
	transition-duration: 600ms;
}

#header .header_user_status .header_stamp_point::before {
	position: absolute;
	content: "";
	background: url(../svg/icon_cross.svg);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center;
	width: 15px;
	height: 15px;
	top: 50%;
	right: min(110px, 10vw);
	transform: translate(0, -50%);
}

#header .header_user_status .header_stamp_point::after {
	position: absolute;
	content: "";
	background: url(../svg/icon_stamp.svg);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center;
	width: 35px;
	height: 35px;
	top: 50%;
	left: min(10px, 3vw);
	transform: translate(0, -50%);
}

#header .header_user_status .header_stamp_point:hover {
	border: 4px solid #ffa5d6;
}

#header .header_user_status .header_stamp_point span {
	margin: 0 10px 0 auto;
	font-size: min(30px, 3vw);
	line-height: 52px;
	display: block;
	text-align: center;
	width: min(90px, 8vw);
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
ナビゲーション user status end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
ナビゲーション animation start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#header {
	opacity: 0;
	transform: translate(0, -100px);
	transition-duration: 500ms;
}

#header.active {
	opacity: 1;
	transform: translate(0, 0);
}

#header .header_user_status .header_select_oshi button:hover {
	animation: chara_yure 1.5s infinite;
}

@keyframes chara_yure {
	0% { transform: rotate(0deg); }
  10% { transform: rotate(-10deg); }
	20% { transform: rotate(10deg); }
  30% { transform: rotate(-10deg); }
	40% { transform: rotate(10deg); }
  50% { transform: rotate(0deg); }
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
ナビゲーション animation end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

追従フッターエリア

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
追従フッター base start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#oshi_footer {
	position: fixed;
	bottom: 0;
	z-index: 50;
	width: 100%;
	height: 110px;
	pointer-events: none;
}

#oshi_footer .oshi_footer_msg {
	position: absolute;
	filter: drop-shadow(0 0 20px rgba(58, 63, 80, 0.3));
	background-color: #ffffff;
	border-radius: 10px;
	height: 80px;
	width: min(530px, 60vw);
	right: 270px;
	top: calc(50% - 20px);
	transform: translate(0, -50%);
	pointer-events: all;
}

#oshi_footer .oshi_footer_msg::after {
	position: absolute;
	content: "";
	background-image: url(../svg/obj_fukidashi_footer.svg);
	background-position: 100% auto;
	background-repeat: no-repeat;
	top: calc(50% - 5px);
	right: -26px;
	transform: translate(0, -50%);
	height: 40px;
	width: 26px;
}

#oshi_footer .oshi_footer_msg .scroll_wrapper {
	width: calc(100% - 20px);
	height: 100%;
	overflow: hidden;
	border-radius: 10px;

	/* 左右の端をぼかす */
	-webkit-mask-image: linear-gradient(to right, 
		transparent, 
		black 10%, 
		black 90%, 
		transparent);
	mask-image: linear-gradient(to right, 
		transparent, 
		black 10%, 
		black 90%, 
		transparent);
}

#oshi_footer .oshi_footer_msg .scroll_wrapper p {
	color: #005097;
	font-size: 16px;
	line-height: 80px;
	display: inline-block;
	white-space: nowrap;
	padding-left: 100%;
}

#oshi_footer .oshi_footer_msg .scroll_wrapper a {
	color: #ff5a9b;
}

#oshi_footer .navigate_diplay_character {
	position: absolute;
	height: 190px;
	object-fit: contain;
	top: -60px;
	right: 80px;
}

#oshi_footer button {
	position: absolute;
	width: 73px;
	height: 62px;
	bottom: 0;
	right: 0;
	pointer-events: all;
	background-image: url(../svg/change_button_bg.svg);
}

#oshi_footer button img {
	width: 29px;
	height: 33px;
	margin: 0 auto 0 13px;
}

#oshi_footer button:hover {
	filter: brightness(1.2);
}



/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
追従フッター base end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
追従フッター animation start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#oshi_footer {
	opacity: 0;
	transform: translate(0, 100px);
	transition-duration: 500ms;
}

#oshi_footer.active {
	opacity: 1;
	transform: translate(0, 0);
}

#oshi_footer .oshi_footer_msg p {
	animation: scroll_oshi_text 15s linear infinite;
}

@keyframes scroll_oshi_text {
	from { transform: translateX(0); }
	to { transform: translateX(-100%); }
}

#oshi_footer button:hover img {
	animation: roate_change 1s linear infinite;
}

@keyframes roate_change {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(180deg);  }
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
追従フッター animation end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/


/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

キービジュアルエリア

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
キービジュアル：base start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#vis {
	z-index: 1;
	position: relative;
	width: 100%;
	height: 100vh;
	max-height: 1035px;
	overflow: hidden;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
キービジュアル：base end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
キービジュアル：header start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#vis .vis_header {
	display: flex;
	position: absolute;
	width: calc(100% - 60px);
	justify-content: space-between;
	margin: 40px 30px 0 30px;
	z-index: 10;
}

#vis .vis_header .vis_header_logo {
	width: 140px;
	object-fit: contain;
}

#vis .vis_header .vis_pagenation {
	background-color: #2391e5;
	width: 110px;
	height: 40px;
	border-radius: 40px;
	text-align: center;
}

#vis .vis_header .vis_pagenation p {
	color: #ffffff;
	line-height: 40px;
	font-size: 18px;

	/* reset swiper pagnation css */
	position: relative;
	left: auto;
	right: auto;
	width: auto;
	text-align: center;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
キービジュアル：header end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
キービジュアル：main start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#vis .vis_main {
	width: 100%;
	height: calc(100% - 135px);
}

#vis .vis_main > ul {
	width: 100%;
	height: 100%;
	background: linear-gradient(#ffffff, #ebebeb);
}

#vis .vis_main li {
	width: 100%;
	height: 100%;
	display: block;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
}


/*** 共通部分 start ***/

#vis .vis_logo {
	width: 30vw;
	max-width: 400px;
	min-width: 300px;
	margin: 0 30px;
	z-index: 10;
}

#vis .vis_detail {
	width: 35vw;
	max-width: 400px;
	min-width: 330px;
	margin: 0;
	display: grid;
	z-index: 10;
}

#vis .vis_detail .vis_subtext {
	position: relative;
	font-size: 18px;
	letter-spacing: 10px;
}

#vis .vis_detail .vis_subtext::after {
	position: absolute;
	content: "";
	background-color: #0fafff;
	width: 50px;
	height: 3px;
	top: 45px;
	left: 50%;
	transform: translate(-50%, 0);
}

#vis .vis_detail .vis_release_date {
	font-size: min(34px, 3.8vw);
	letter-spacing: 8px;
	margin-top: 50px;
}

#vis .vis_detail .vis_link_btn {
	width: 260px;
	height: 60px;
	display: block;
	margin: 80px auto 0 auto;
	text-decoration: none;
	font-size: 15px;
	letter-spacing: 2px;
	line-height: 60px;
	color: #ffffff;
	background: linear-gradient(#0fafff, #019ae7);
	border-radius: 30px;
	transition-duration: 600ms;
}

/* disabel 状態 */
#vis .vis_detail .vis_link_btn.disable {
	color: #8991ac;
	background: #3a3f50;
	pointer-events: none;
}

#vis .vis_detail .vis_link_btn:hover {
	filter: brightness(1.1);
}


/*** 共通部分 end ***/


/*** product 1 start ***/

#vis .vis_products_1 {
	background-color: #ffffff;
	position: relative;
}

#vis .vis_products_1::before {
	position: absolute;
	content: "";
	background-image: url(../images/vis_id_bg_pc.png);
	background-size: auto 100%;
	background-repeat: no-repeat;
	background-position: center;
	width: 150%;
	height: 100%;
	top: 0;
	left: calc(50% + 160px + 5vw);
	transform: translate(-50%, 0);
}
#vis .vis_products_1 .vis_logo {
	filter: drop-shadow(0 0 3px #ffffff) drop-shadow(0 0 6px #ffffff) drop-shadow(0 0 10px #ffffff);
}

/*** product 1 end ***/



/*** product 2 start ***/

#vis .vis_products_2 {
	background-color: #ffffff;
	position: relative;
}

#vis .vis_products_2::before {
	position: absolute;
	content: "";
	background: url(../images/vis_connect_bg_left_pc.png);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: top;
	width: min(50%, 700px);
	height: 100%;
	top: 50%;
	left: 0;
	transform: translate(0, -50%);
}

#vis .vis_products_2::after {
	position: absolute;
	content: "";
	background: url(../images/vis_connect_bg_right_pc.png);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: bottom;
	width: min(50%, 500px);
	height: 100%;
	top: 50%;
	right: 0;
	transform: translate(0, -50%);
}

/*** product 2 end ***/



/*** product 3 start ***/

#vis .vis_products_3 {
	background-image: url(../images/vis_irelove_bg_pattern.png);
	background-size: auto 100%;
	background-repeat: repeat-x;
	background-position: center;
}

#vis .vis_products_3 .vis_logo_wrapper {
  position: relative;
  display: inline-block;
	width: 30vw;
	max-width: 400px;
	min-width: 300px;
	margin: 0 30px;
}

#vis .vis_products_3 .vis_logo_wrapper::before {
	position: absolute;
	content: "";
	background-image: url(../images/vis_irelove_kv_sp.png);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center;
	width: 80vw;
	max-width: 1100px;
	min-width: 800px;
	height: 1200px;
	top: calc(50% + 90px);
	left: 50%;
	transform: translate(-50%, -50%);

	will-change: transform; /* レンダリングが正しく行われない時があるので対応 */
}

#vis .vis_products_3 .vis_logo {
	width: 25vw;
	max-width: 300px;
	min-width: 150px;
	margin: 0 auto;
	position: relative;
	display: block;
	overflow: visible;
	object-fit: contain;
}

#vis .vis_products_3 .vis_detail {
	display: grid;
	z-index: 20;
	/* drop shadow を３重にかけて濃くしている */
	filter: drop-shadow(0 0 3px #ffffff) drop-shadow(0 0 6px #ffffff) drop-shadow(0 0 10px #ffffff);
}

/*** product 3 end ***/




/*** product 4 end ***/

#vis .vis_products_4 {
	background: url(../images/texcher_abstract_grd_a.png);
	background-size: 100% 100%;
	background-repeat: no-repeat;
	background-position: center;
	position: relative;
}

#vis .vis_products_4::before {
	position: absolute;
	content: "";
	background: url(../svg/text_comingsoon_top.svg);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center;
	width: 100%;
	height: 8vw;
	top: 0;
	left: 50%;
	transform: translate(-50%, 0);
}

#vis .vis_products_4::after {
	position: absolute;
	content: "";
	background: url(../svg/text_comingsoon_bottom.svg);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center;
	width: 100%;
	height: 8vw;
	bottom: 0;
	left: 50%;
	transform: translate(-50%, 0);
}

#vis .vis_products_4 .vis_logo {
	width: 30vw;
	max-width: 400px;
	min-width: 300px;
	z-index: 10;
	filter: drop-shadow(0 0 6px #ffffff) drop-shadow(0 0 12px #ffffff) drop-shadow(0 0 20px #ffffff);
}

#vis .vis_products_4 .vis_detail {
	z-index: 20;

	/* timer をつかう際はつける必要がある */
	/* width: auto; */
}

#vis .vis_products_4 .vis_detail .vis_link_btn {
	margin-top: calc(136px + min(34px, 3.8vw));
}

/* timer用設定 start */

#vis .vis_products_4 .vis_timer {
	display: flex;
	gap: min(30px, 2vw);
	margin-top: 65px;
}

#vis .vis_products_4 .vis_timer ul {
	display: flex;
	gap: min(15px, 1.5vw);
}

#vis .vis_products_4 .vis_timer li {
	display: flex;
	flex-flow: column;
}

#vis .vis_products_4 .vis_timer li p {
	display: block;
	margin-top: 20px;
	color: #848eae;
}

#vis .vis_products_4 .vis_timer ul div {
	display: flex;
	gap: min(3px, 0.3vw);
}

#vis .vis_products_4 .vis_timer time {
	display: block;
	background-image: url(../images/countdown_panel_bg.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	width: min(44px, 4vw);
	height: min(58px, 5.2vw);
	line-height: min(58px, 5.2vw);
	font-size: min(25px, 2.5vw);
}

/* timer用設定 end */


/*** product 4 end ***/



/*** product 5 start ***/

#vis .vis_products_5 {
	display: flex;
  flex-flow: column;
	text-align: center;
	background-image: url(../images/logo_voising_symbol_1c.png);
	background-size: calc(30% + 300px) auto;
	background-repeat: no-repeat;
	background-position: center;
}

#vis .vis_products_5 img {
	display: block;
	margin: 0 auto;
	width: 130px;
}

#vis .vis_products_5 p {
	display: block;
	margin: 0 auto;
}

#vis .vis_products_5 p:nth-of-type(1) {
	margin-top: 35px;
	color: #848eae;
}

#vis .vis_products_5 p:nth-of-type(2) {
	background-image: url(../images/text_comingsoon_grd.png);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center;
	text-indent: -9999px;
	width: 680px;
	height: 60px;
	margin-top: 80px;
	position: relative;
}

#vis .vis_products_5 p:nth-of-type(2)::before {
	position: absolute;
	content: "";
	background-color: #f59dce;
	width: 50px;
	height: 3px;
	top: -45px;
	left: 50%;
	transform: translate(-50%, 0);
}

/*** product 5 end ***/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
キービジュアル：main end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
キービジュアル：progress bar start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#vis .vis_progress_bar {
	--progress: 0; /* プログレスバーの進捗度 */
	width: 100%;
	height: 5px;
  background: linear-gradient(to right, #ff6cc0 50%, #ffffff 50%);
	background-size: 200% 100%;

	animation: progress-loop 5s linear infinite;
	background-position: calc(100% * (1 - var(--progress))) 0
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
キービジュアル：progress bar end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
キービジュアル carousel start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#vis .vis_carousel {
	width: 100%;
	height: 130px;
}

#vis .vis_carousel ul {
	height: 100%;
	display: flex;
}

#vis .vis_carousel .vis_carousel_item {
	width: calc(100% / 5);
	height: 100%;
}

#vis .vis_carousel .vis_carousel_item button {
	width: 100%;
	height: 100%;
	background-color: #ecf1f5;
	transition-duration: 600ms;
}

#vis .vis_carousel .vis_carousel_item.selected button {
	filter: brightness(1.1);
}

@media (any-hover: hover) {
	#vis .vis_carousel .vis_carousel_item button:hover {
		filter: brightness(1.1);
	}
}

#vis .vis_carousel .vis_carousel_item button:active {
	filter: brightness(1.1);
}

#vis .vis_carousel .vis_carousel_item img {
	margin: auto;
	width: calc(25px + 6vw);
	max-width: 110px;
}

#vis .vis_carousel .vis_carousel_item.products_2 img {
	width: calc(30px + 10vw);
	max-width: 150px;
}

#vis .vis_carousel .vis_carousel_item.products_4 img {
	width: max(30px, 5vw);
	max-width: 90px;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
キービジュアル carousel end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/








/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

ニュースエリア

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
ニュース base start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#news {
	margin: 190px auto 0 auto;
	width: calc(100% - 60px);
	max-width: 1280px;
}

#news h2 {
	background-image: url(../images/subtitle_news.png);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center;
	width: 100%;
	height: auto;
	text-indent: -9999px;
	aspect-ratio: 2489/386
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
ニュース base end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/


/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
ニュース news list start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#news .news_list {
	width: 100%;
	margin: 155px auto 0 auto;
}

#news .news_list .news_item {
	width: 100%;
	text-decoration: none;
	display: flex;
	margin-top: 30px;
	transition-duration: 600ms;
	position: relative;

	animation-name: anime_wp_t_b;
  animation-duration: 0.6s;
  animation-timing-function: ease-out;
}

#news .news_list .news_item.closed {
	display: none;
}

#news .news_list .news_item::before {
	position: absolute;
	content: "";
	top: 0;
	right: 0;
	width: 2px;
	height: 100%;
	background-color: #3a3f50;
}

#news .news_list .news_item::after {
	position: absolute;
	content: '';
	bottom: 0;
	right: 32px;
	width: 22px;
	height: 22px;
	background-image: url(../svg/icon_externallink.svg);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
}

#news .news_list .news_item:hover {
	filter: brightness(1.1);
	transform: scale(1.05);
}

#news .news_list .news_item .news_item_thumbnail {
	width: 40vw;
	max-width: 453px;
	object-fit: contain;
}

#news .news_list .news_item .news_detail {
	margin: 0 0 0 40px;
}

#news .news_list .news_item .news_detail .news_release_date {
	font-size: 16px;
}

#news .news_list .news_item .news_detail .news_description {
	font-size: 17px;
	margin: 35px 20px 0 0;
}

#news .news_show_more {
	margin-top: 80px;
	width: 100%;
	border-radius: 6px;
	display: none;
}

#news .news_show_more.closed {
	display: block;
}

#news .news_show_more button {
	width: 280px;
	height: 60px;
	border-radius: 6px;
	background: linear-gradient(to left, #d96fa8 0%, #3a3f50 60%);
	color: #ffffff;
	float: right;
	font-size: 16px;
	text-align: right;
	padding-right: 20px;
	transition-duration: 600ms;
	position: relative;
}

#news .news_show_more button::before {
	position: absolute;
	content: '';
	top: 50%;
	transform: translate(0, -50%);
	left: 32px;
	width: 11px;
	height: 16px;
	background-image: url(../svg/icon_arrow_w_l.svg);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	transition-duration: 600ms;
}

#news .news_show_more button:hover {
	filter: brightness(1.3);
}

#news .news_show_more button:hover::before {
	left: 42px;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
ニュース news list end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/








/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

動画エリア

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
動画 base start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#movie {
	clear: both;
	width: 100%;
	height: min(117vw, 1150px);
	margin-top: 360px;
	background-color: #e8f0f4;
	position: relative;
}

#movie::before {
	position: absolute;
	content: '';
	top: -4vw;
	left: 50%;
	transform: translate(-50%, 0);
	width: 100%;
	height: 5vw;
	background-image: url(../svg/obj_movie_bg_top.svg);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center;
	z-index: -1;
}

#movie::after {
	position: absolute;
	content: '';
	bottom: -4vw;
	left: 50%;
	transform: translate(-50%, 0);
	width: 100%;
	height: 5vw;
	background-image: url(../svg/obj_movie_bg_bottom.svg);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center;
	z-index: -1;
}

#movie .movie_wrapper {
	width: 100%;
	height: 100%;
	position: absolute;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
動画 base end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
動画 movie list start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

/* swiperはこのコンテンツサイズに収まるように表示される */
#movie .movie_list_grandwrapper {
	margin: 0 auto;
	width: calc(100% - 140px);
	max-width: 950px;
	display: flex;
	justify-content: center;
	position: relative;
}

#movie .movie_list {
	position: relative;
	width: 100%;
	max-width: 1280px;
	height: 100%;
	margin-top: 220px;
	z-index: 7;
}

#movie .movie_list ul li {
	width: 900px;
}

#movie .movie_list .movie_list_thumb {
	width: 100%;
	aspect-ratio: 16 / 9;
	margin: 0 auto;
	background-image: url(../images/obj_movie_thumb_bg.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: top;
	position: relative;
	display: block;
	border-radius: 10px;
}
#movie .movie_list .movie_list_thumb img {
	filter: brightness(0.8);
}

#movie .movie_list .movie_list_thumb::before {
	content: '';
	width: 100px;
	height: 100px;
	background-image: url(../svg/icon_play_mark.svg);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: top;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	transition-duration: 600ms;
	z-index: 8;
}

#movie .movie_list .movie_list_thumb:hover::before {
	transform: translate(-50%, -50%) scale(1.1);
}

#movie .movie_list .movie_list_thumb img {
	width: calc(100% - 40px);
	margin: 20px;
	transition-duration: 600ms;
}

#movie .movie_list .movie_list_thumb:hover img {
	filter: brightness(1);
}

#movie .movie_list .movie_list_detail {
	text-align: center;
}

#movie .movie_list .movie_list_detail p {
	margin-top: 28px;
}

#movie .movie_swiper_btn_prev {
	position: absolute;
	height: 85px;
	width: 52px;
	left: max(-70px, -7vw);
	top: calc(50% + 85px);
	transform: translateY(-50%);
	z-index: 10;
	opacity: 1;
	transition-duration: 600ms;
}

#movie .movie_swiper_btn_prev.swiper-button-disabled {
	opacity: 0;
}

#movie .movie_swiper_btn_next {
	position: absolute;
	height: 85px;
	width: 52px;
	right: max(-70px, -7vw);
	top: calc(50% + 85px);
	transform: translateY(-50%);
	z-index: 10;
	opacity: 1;
	transition-duration: 600ms;
}

#movie .movie_swiper_btn_next.swiper-button-disabled {
	opacity: 0;
}

#movie .movie_swiper_btn_prev:hover {
	left: calc(max(-70px, -7vw) - 10px);
	filter: brightness(1.1);
}

#movie .movie_swiper_btn_next:hover {
	right: calc(max(-70px, -7vw) - 10px);
	filter: brightness(1.1);
}

#movie .movie_swiper_pagination {
	position: absolute;
	bottom: -70px;
	left: 50%;
	width: auto;
	transform: translate(-50%, 0);
	z-index: 20;
}

#movie .movie_swiper_pagination .swiper-pagination-bullet {
  background-color: #c6cbd3;
}

#movie .movie_swiper_pagination .swiper-pagination-bullet-active {
  background-color: #3a3f50;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
動画 movie list end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
動画 movie bg start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#movie .movie_bg {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	overflow-x: clip;
}

#movie .movie_bg .movie_bg_filme_top {
	background-image: url(../svg/obj_movie_film_grey.svg);
	background-size: contain;
	background-repeat: repeat-x;
	background-position: center;
	height: 145px;
	width: calc(100% + 20px);
	display: flex;
	justify-content: center;
	top: 70px;
	left: -10px;
	transform: rotate(4deg);
	position: absolute;
	overflow: hidden;
	z-index: 5;
}

#movie .movie_bg .movie_bg_filme_top img {
	display: block;
	width: 100%;
	animation: marquee 20s linear infinite;
}

#movie .movie_bg .movie_bg_filme_bottom {
	background-image: url(../svg/obj_movie_film_w.svg);
	background-size: contain;
	background-repeat: repeat-x;
	background-position: center;
	height: 75px;
	width: calc(100% + 20px);
	display: flex;
	justify-content: center;
	bottom: 90px;
	left: -10px;
	transform: rotate(-5deg);
	position: absolute;
	overflow: hidden;
	z-index: 5;
}

#movie .movie_bg .movie_bg_filme_bottom img {
	display: block;
	width: 100%;
	animation: marquee 20s linear infinite;
}

@keyframes marquee {
  0% {
    translate: 50%;
  }
  100% {
    translate: -50%;
  }
}

/*** particles start***/

#movie .movie_bg .movie_bg_particles {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

#movie .movie_bg .movie_bg_particles span {
	display: block;
	background-size: 100% auto;
	background-position: center;
	background-repeat: no-repeat;
	position: absolute;
	top: 50%;
	left: 50%;
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(1) {
	background-image: url(../svg/obj_movie_flake_circle.svg);
	width: 100px;
	height: 100px;
	margin: -410px 0 0 -550px;
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(2) {
	background-image: url(../svg/obj_movie_flake_circle.svg);
	width: 50px;
	height: 50px;
	margin: 230px 0 0 650px;
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(3) {
	background-image: url(../svg/obj_movie_flake_circle.svg);
	width: 190px;
	height: 190px;
	margin: 530px 0 0 250px;
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(4) {
	background-image: url(../svg/obj_movie_flake_dot_b.svg);
	width: 155px;
	height: 155px;
	margin: -300px 0 0 -800px;
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(5) {
	background-image: url(../svg/obj_movie_flake_dot_b.svg);
	width: 115px;
	height: 115px;
	margin: 270px 0 0 500px;
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(6) {
	background-image: url(../svg/obj_movie_flake_dot_a.svg);
	width: 115px;
	height: 115px;
	margin: -300px 0 0 550px;
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(7) {
	background-image: url(../svg/obj_movie_flake_dot_a.svg);
	width: 155px;
	height: 155px;
	margin: 310px 0 0 -700px;
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(8) {
	background-image: url(../svg/obj_movie_flake_play.svg);
	width: 66px;
	height: 94px;
	margin: 500px 0 0 500px;
	transform: rotate(-90deg);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(9) {
	background-image: url(../svg/obj_movie_flake_play.svg);
	width: 62px;
	height: 45px;
	margin: -610px 0 0 -350px;
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(10) {
	background-image: url(../svg/obj_movie_flake_pause.svg);
	width: 27px;
	height: 43px;
	margin: -550px 0 0 700px;
	transform: rotate(-90deg);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(11) {
	background-image: url(../svg/obj_movie_flake_pause.svg);
	width: 41px;
	height: 49px;
	margin: 270px 0 0 -800px;
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(12) {
	background-image: url(../svg/obj_movie_flake_wave_a.svg);
	width: 228px;
	height: 228px;
	margin: 100px 0 0 -690px;
}
#movie .movie_bg .movie_bg_particles span:nth-of-type(13) {
	background-image: url(../svg/obj_movie_flake_wave_b.svg);
	width: 135px;
	height: 135px;
	margin: -690px 0 0 450px;
}

/*** particles end***/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
動画 movie bg end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
動画 animation start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#movie .movie_bg .movie_bg_particles span:nth-of-type(1),
#movie .movie_bg .movie_bg_particles span:nth-of-type(3),
#movie .movie_bg .movie_bg_particles span:nth-of-type(4),
#movie .movie_bg .movie_bg_particles span:nth-of-type(6),
#movie .movie_bg .movie_bg_particles span:nth-of-type(7) {
	opacity: 0;
	transition-timing-function: cubic-bezier(.42,0,0,.99);
	transition-duration: 700ms;
	transition-delay: 150ms;
	transform-origin: center;
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(2),
#movie .movie_bg .movie_bg_particles span:nth-of-type(5),
#movie .movie_bg .movie_bg_particles span:nth-of-type(8),
#movie .movie_bg .movie_bg_particles span:nth-of-type(9),
#movie .movie_bg .movie_bg_particles span:nth-of-type(10),
#movie .movie_bg .movie_bg_particles span:nth-of-type(11),
#movie .movie_bg .movie_bg_particles span:nth-of-type(12),
#movie .movie_bg .movie_bg_particles span:nth-of-type(13) {
	opacity: 0;
	transition-timing-function: cubic-bezier(.42,0,0,.99);
	transition-duration: 600ms;
	transition-delay: 250ms;
	transform-origin: center;
}

#movie .movie_bg .movie_bg_particles.active span:nth-of-type(1),
#movie .movie_bg .movie_bg_particles.active span:nth-of-type(2),
#movie .movie_bg .movie_bg_particles.active span:nth-of-type(3),
#movie .movie_bg .movie_bg_particles.active span:nth-of-type(4),
#movie .movie_bg .movie_bg_particles.active span:nth-of-type(5),
#movie .movie_bg .movie_bg_particles.active span:nth-of-type(6),
#movie .movie_bg .movie_bg_particles.active span:nth-of-type(7),
#movie .movie_bg .movie_bg_particles.active span:nth-of-type(8),
#movie .movie_bg .movie_bg_particles.active span:nth-of-type(9),
#movie .movie_bg .movie_bg_particles.active span:nth-of-type(10),
#movie .movie_bg .movie_bg_particles.active span:nth-of-type(11),
#movie .movie_bg .movie_bg_particles.active span:nth-of-type(12),
#movie .movie_bg .movie_bg_particles.active span:nth-of-type(13) {
	opacity: 1;
	transform: scale(1) translate(0, 0);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(1) {
	transform: scale(0.5) translate(550px, 410px);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(2) {
	transform: scale(0.5) translate(-650px, -230px);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(3) {
	transform: scale(0.5) translate(-250px, -530px);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(4) {
	transform: scale(0.5) translate(800px, 300px);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(5) {
	transform: scale(0.5) translate(-500px, -270px);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(6) {
	transform: scale(0.5) translate(-550px, 300px);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(7) {
	transform: scale(0.5) translate(700px, -310px);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(8) {
	transform: scale(0.5) translate(-500px, -500px);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(9) {
	transform: scale(0.5) translate(350px, 610px);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(10) {
	transform: scale(0.5) translate(-700px, 550px);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(11) {
	transform: scale(0.5) translate(800px, -270px);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(12) {
	transform: scale(0.5) translate(690px, -100px);
}

#movie .movie_bg .movie_bg_particles span:nth-of-type(13) {
	transform: scale(0.5) translate(-450px, 690px);
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
動画 animation end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/








/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

プロダクトエリア

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
プロダクト base start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#products {
	width: 100%;
	height: 1350px;
	overflow-x: hidden;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
プロダクト base end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
プロダクト products title start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#products .products_title {
	width: calc(100% - 300px);
	max-width: 1000px;
	margin: 160px auto 0 auto;
	position: relative;
}

#products .products_title::before {
	position: absolute;
	content: "";
	z-index: 10;
	left: -140px;
	top: 30px;
	background-image: url(../images/subtitle_products.png);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center;
	width: 110px;
	height: 1026px;
	text-indent: -9999px;
	aspect-ratio: 2489/386;
}

#products .products_title .products_swiper_btn {
	margin-top: 35px;
}

#products .products_title .products_swiper_btn .btn_prev {
	background-color: #3a3f50;
	color: #ffffff;
	width: 200px;
	height: 72px;
	border-radius: 36px;
	text-align: right;
	padding-right: 33px;
	transition-duration: 600ms;
	position: relative;
}

#products .products_title .products_swiper_btn .btn_prev::before {
	position: absolute;
	content: '';
	top: 50%;
	left: 30px;
	transform: translate(0, -50%);
	width: 17px;
	height: 30px;
	background-image: url(../svg/icon_product_arrow_l.svg);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	transition-duration: 600ms;
}

#products .products_title .products_swiper_btn .btn_prev:hover {
	filter: brightness(1.4);
}

#products .products_title .products_swiper_btn .btn_prev:hover::before {
	left: 20px;
}

#products .products_title .products_swiper_btn .btn_prev.swiper-button-disabled {
	filter: grayscale(100%);
  pointer-events: none;
}

#products .products_title .products_swiper_btn .btn_next {
	background-color: #3a3f50;
	color: #ffffff;
	width: 200px;
	height: 72px;
	border-radius: 36px;
	text-align: left;
	padding-left: 33px;
	margin-left: 20px;
	transition-duration: 600ms;
	position: relative;
}

#products .products_title .products_swiper_btn .btn_next::before {
	position: absolute;
	content: '';
	top: 50%;
	right: 30px;
	transform: translate(0, -50%);
	width: 17px;
	height: 30px;
	background-image: url(../svg/icon_product_arrow_r.svg);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	transition-duration: 600ms;
}

#products .products_title .products_swiper_btn .btn_next:hover {
	filter: brightness(1.4);
}

#products .products_title .products_swiper_btn .btn_next:hover::before {
	right: 20px;
}

#products .products_title .products_swiper_btn .btn_next.swiper-button-disabled {
	filter: grayscale(100%);
  pointer-events: none;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
プロダクト products title end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
プロダクト products list start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#products .products_list {
	width: calc(100% - 300px);
	max-width: 1000px;
	margin: auto;
}

/* swiper の css を override */
#products .products_list.swiper {
	overflow: visible !important;
}

#products .products_list.swiper .swiper-wrapper {
	overflow: visible !important;
}
/* swiper の css を override */

#products .products_list ul {
	width: 1810px;
	display: flex;
	margin: 40px auto 0 auto;
	overflow: hidden;
	position: relative;
}

#products .products_list .products_item {
	width: 580px;
	height: 800px;
	background-color: #eff4f7;
	border-radius: 10px;
	position: relative;
}

/* new_flag の場合に new を表示 */
#products .products_list .products_item.new_flag::before {
	position: absolute;
	content: "";
	top: -10px;
	left: 20px;
	width: 66px;
	height: 92px;
	background-image: url(../svg/icon_product_new.svg);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
}

#products .products_list .products_item .products_item_thumb {
	width: 470px;
	height: 320px;
	background-color: #ffffff;
	margin: 30px auto 0 auto;
	border-radius: 6px;
	justify-content: center;
	display: flex;
}

#products .products_list .products_item .products_item_thumb img {
	width: 270px;
	height: 210px;
	margin: auto;
	object-fit: contain;
}

/*** product ごとの部調整 start ***/

#products .products_list .products_item.products_2 .products_item_thumb img {
	width: 180px;
}

#products .products_list .products_item.products_4 .products_item_thumb img {
	width: 220px;
}

#products .products_list .products_item.products_5 .products_item_thumb img {
	width: 160px;
}

/*** product ごとの部調整 end ***/


#products .products_list .products_item .products_item_info {
	margin: 0 auto;
	width: 510px;
	justify-content: space-between;
	border-spacing: 20px 20px;
}

#products .products_list .products_item .products_item_info th {
	width: 240px;
	height: 40px;
	background-color: #d9e3e8;
	border-radius: 6px;
	margin: 0;
	text-align: center;
}

#products .products_list .products_item .products_item_info td {
	color: #8ec208;
	text-align: center;
}

#products .products_list .products_item .products_item_description {
	height: 160px;
	width: 470px;
	margin: 20px auto 0 auto;
	padding-top: 35px;
	font-size: 16px;
	line-height: 32px;
	position: relative;
}

#products .products_list .products_item .products_item_description::before {
	border-bottom: 2px dotted #000;
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 470px;
}

#products .products_list .products_item .products_item_link {
	display: block;
	width: 470px;
	height: 60px;
	text-align: center;
	line-height: 60px;
	margin: 20px auto 0 auto;
	background: linear-gradient(to right, #6e8e1c 0%, #3a3f50 70%);
	color: #ffffff;
	border-radius: 30px;
	transition-duration: 600ms;
}

#products .products_list .products_item .products_item_link.disable {
	color: #8991ac;
	background: #3a3f50;
	pointer-events: none;
}

#products .products_list .products_item .products_item_link:hover {
	filter: brightness(1.3);
}

#products .products_list .products_swiper_pagination {
	margin-top: 55px;
}

#products .products_list .products_swiper_pagination .swiper-pagination-bullet {
  background-color: #c6cbd3;
}

#products .products_list .products_swiper_pagination .swiper-pagination-bullet-active {
  background-color: #b4e632;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
プロダクト products list end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
プロダクト animation start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#products h2 {
	opacity: 0;
	transform: translate(-160px, -200px);
	transition-duration: 300ms;
}

#products h2.active {
	opacity: 1;
	transform: translate(-160px, 0);
	transition-duration: 600ms;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
プロダクト animation end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/









/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

登録エリア

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
登録 base start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#register {
	width: 100%;
	height: min(580px, 50vw);
	margin: 210px 0;
}

#register::before {
	content: "";
	position: absolute;
	left: 0;
	top: -2.5vw;
	width: 100%;
	height: 5vw;
	background-image: url(../svg/text_tagline_eff.svg);
	background-size: 100% auto;
	background-repeat: no-repeat;
	mix-blend-mode: color-dodge;
	z-index: 10;
}

#register::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -2.5vw;
	width: 100%;
	height: 5vw;
	background-image: url(../svg/text_tagline_eff.svg);
	background-size: 100% auto;
	background-repeat: no-repeat;
	mix-blend-mode: color-dodge;
	z-index: 10;
}

#register .register_wapper {
	width: 100%;
	height: 100%;
	position: relative;
	overflow: hidden;
	display: flex;
  justify-content: center;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
登録 base start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
登録 scroll bg start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#register .register_wapper .scroll_bg {
	position: absolute;
	width: 200vw;
	height: calc(400vw / 1680 * 582);
	background-image: url(../images/voising_id_bg.png);
	background-repeat: repeat;
	background-size: 50% 25%;
	animation: scroll_bg_anime 30s linear infinite;
}

@keyframes scroll_bg_anime {
  0% {
    transform: translate(25%, 0);
  }
  100% {
		transform: translate(-25%, -50%);
  }
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
登録 scroll bg start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
登録 register button start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#register .register_wapper .register_button {
	margin: auto;
}

#register .register_button a {
	width: min(920px, 70vw);
	height: min(200px, 20vw);
	margin: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	line-height: 200px;
	border-radius: 100px;
	border: 6px solid #ffffff;
	background: linear-gradient(110deg, #0fafff, #3a3f50);
	color: #ffffff;
	transition-duration: 600ms;
}

#register .register_button a:hover {
	filter: brightness(1.3);
}

#register .register_button .register_button_txt_vosing {
	font-size: min(70px, 6vw);
}

#register .register_button .register_button_txt_kochira {
	font-size: min(25px, 2.2vw);
	margin-left: 10px;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
登録 register button end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
登録 animation start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#register::before {
	opacity: 0;
	transition-duration: 500ms;
	transition-property: all;
	transition-timing-function: ease-in;
	background-position: -500px 50%;
}

#register.active::before {
	opacity: 1;
	background-position: center;
}

#register::after {
	opacity: 0;
	transition-duration: 500ms;
	transition-property: all;
	transition-timing-function: ease-in;
	background-position: 500px 50%;
}

#register.active::after {
	opacity: 1;
	background-position: center;
}

#register .register_button {
	opacity: 0;
	transition-duration: 1200ms;
	transform: translate(0, 50px)
}

#register .register_button.active {
	opacity: 1;
	transform: translate(0, 0);
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
登録 animation end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/








/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

シェアエリア

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
シェア base start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#share {
	width: 100%;
	display: flex;
	justify-content: center;
	margin-top: 240px;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
シェア base end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/


/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
シェア select oshi start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#share .share_select_oshi {
	height: min(370px, 40vw);
	position: relative;
	display: inline-flex;
}

#share .share_select_oshi img {
	height: 100%;
	object-fit: cover;
}

#share .share_select_oshi::after {
	content: "";
	position: absolute;
	left: calc(50% + 20px);
	bottom: -22px;
	transform: translate(-50%, 0);
	width: min(200px, 20vw);
	height: 50px;
	background-image: url(../svg/share_character_shadow.svg);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center;
	z-index: -1; /* 影を下にする*/
}


/* キャラごとの調整 */

#share .share_select_oshi .character_index_01 {
	transform: translate(20px, 0);
}

#share .share_select_oshi .character_index_02 {
	transform: translate(20px, 0);
}

#share .share_select_oshi .character_index_04 {
	transform: translate(20px, 0);
}

#share .share_select_oshi .character_index_05 {
	transform: translate(20px, 0);
}

#share .share_select_oshi .character_index_10 {
	transform: translate(30px, 0);
}

#share .share_select_oshi .character_index_11 {
	transform: translate(10px, 0);
}

#share .share_select_oshi .character_index_12 {
	transform: translate(30px, 0);
}

#share .share_select_oshi .character_index_13 {
	transform: translate(10px, 0);
}

#share .share_select_oshi .character_index_20 {
	transform: translate(10px, 0);
}

#share .share_select_oshi .character_index_21 {
	transform: translate(30px, 0);
}

#share .share_select_oshi .character_index_22 {
	transform: translate(10px, 0);
}

#share .share_select_oshi .character_index_24 {
	transform: translate(10px, 0);
}

#share .share_select_oshi .character_index_30 {
	transform: translate(10px, 0);
}

#share .share_select_oshi .character_index_31 {
	transform: translate(10px, 0);
}

#share .share_select_oshi .character_index_32 {
	transform: translate(20px, 0);
}

#share .share_select_oshi .character_index_33 {
	transform: translate(20px, 0);
}

#share .share_select_oshi .character_index_34 {
	transform: translate(20px, 0);
}

#share .share_select_oshi .character_index_35 {
	transform: translate(20px, 0);
}

/* キャラごとの調整 */


/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
シェア select oshi end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/


/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
シェア detail start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#share .share_detail {
	margin-left: 50px;
}

#share .share_detail .share_serifbox {
	background-color: #3a3f50;
	width: min(520px, 55vw);
	height: 80px;
	border-radius: 44px;
	margin-top: 20px;
	position: relative;
}

#share .share_detail .share_serifbox::after {
	content: "";
	position: absolute;
	left: 55px;
	bottom: -15px;
	width: 24px;
	height: 16px;
	background-image: url(../svg/obj_fukidashi_tip.svg);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center;
}

#share .share_detail .share_serifbox .scroll_wrapper {
	width: calc(100% - 20px);
	height: 100%;
	margin: 0 auto;
	overflow: hidden;
	border-radius: 10px;

	/* 左右の端をぼかす */
	-webkit-mask-image: linear-gradient(to right, 
		transparent, 
		black 10%, 
		black 90%, 
		transparent);
	mask-image: linear-gradient(to right, 
		transparent, 
		black 10%, 
		black 90%, 
		transparent);
}

#share .share_detail .share_serifbox .scroll_wrapper p {
	text-align: center;
	font-size: 20px;
	color: #ffffff;
	line-height: 80px;
	display: inline-block;
	white-space: nowrap;
	padding-left: 100%;

	animation: scroll_oshi_share_text 15s linear infinite;
}

@keyframes scroll_oshi_share_text {
	from { transform: translateX(0); }
	to { transform: translateX(-100%); }
}

#share .share_detail .share_links {
	margin: 50px auto 0 auto;
	display: flex;
	justify-content: center;
}

#share .share_detail .share_links li a {
	display: block;
	width: 100px;
	height: 100px;
	margin: 0 25px;
	transition-duration: 300ms;
}

#share .share_detail .share_links li a:hover {
	transform: translate(0, -10px);
}

#share .share_description {
	text-align: center;
	font-size: 22px;
	margin-top: 40px;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
シェア detail end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/








/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

インフォエリア

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
インフォ base start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#info {
	margin-top: 190px;
	height: min(600px, 60vw);
	background-image: url(../images/texcher_abstract_perl.png);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: top;
	position: relative;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
インフォ base end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
インフォ voising info start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#info .voising_info {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
}

#info .voising_info .info_logo {
	width: 30vw;
	max-width: 350px;
	margin: 0 30px;
}

#info .voising_info .info_description {
	width: 40vw;
	max-width: 512px;
	margin: 0 30px;
}

#info .voising_info .info_description h3 {
	display: block;
	display: inline-flex;
	flex-flow: column;
}

#info .voising_info .info_description h3 .jp_tagline {
	font-size: min(5.5vw, 70px);
}

#info .voising_info .info_description h3 .en_tagline {
	text-indent: -9999px;
	background-image: url(../svg/text_tagline.svg);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center;
	width: min(500px, 39vw);
	height: min(45px, 4vw);
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
インフォ voising info end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
インフォ offical site link start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#info .officital_site_link {
	position: absolute;
	bottom: -40px;
	width: 360px;
	height: 80px;
	color: #ffffff;
	background: linear-gradient(#ff8bcd, #ff6cc0 36%);
	line-height: 80px;
	text-align: center;
	border-radius: 40px;
	left: calc(50% - 180px);
	transition-duration: 600ms;
}

#info .officital_site_link:hover {
	filter: brightness(1.1);
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
インフォ offical site link end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/








/*――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

フッターエリア

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――*/

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
フッター base start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#grandfooter {
	width: 100%;
	height: 600px;
	background-color: #eeeff1;
	padding-top: 120px;
}

#grandfooter .footer_logo {
	width: 127px;
	margin: 0 auto;
	display: block;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
フッター base end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
フッター offical accounts start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#grandfooter .official_accounts {
	width: max(80vw, 650px);
	max-width: 800px;
	margin: 195px auto 0 auto;
}

#grandfooter .official_accounts ul {
	width: 100%;
	display: flex;
	justify-content: space-between;
}

#grandfooter .official_accounts li {
	position: relative;
}


/* account x */
#grandfooter .official_accounts li.accounts_x {
	width: 150px;
	line-height: 35px;
}

#grandfooter .official_accounts li.accounts_x img {
	width: 35px;
	height: 35px;
}

/* account youtube */
#grandfooter .official_accounts li.accounts_youtube {
	width: 235px;
	line-height: 28px;
}

#grandfooter .official_accounts li.accounts_youtube img {
	width: 41px;
	height: 28px;
}

/* account contact */
#grandfooter .official_accounts li.accounts_contact {
	width: 138px;
	line-height: 29px;
}

#grandfooter .official_accounts li.accounts_contact img {
	width: 35px;
	height: 29px;
}


#grandfooter .official_accounts li a {
	display: flex;
	justify-content: space-between;
	transition-duration: 600ms;
}

#grandfooter .official_accounts li a:hover {
	filter: brightness(2);
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
フッター offical accounts end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
フッター copyright start
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/

#grandfooter .footer_copyright {
	margin: 220px auto 0 auto;
	text-align: center;
	color: #63608c;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
フッター copyright end
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/




