@charset "UTF-8";

.pc_only {
	display: none;
}

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

共通処理エリア

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

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

body {
	/* 和文基本 */
	font-size: 0.7em !important;
}


.sp {
	display: block !important;
}

.pc {
	display: none !important;
}

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




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

モーダルエリア

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

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

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

div.iziModal.isAttached {
	border-radius: 10px !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: 10px;
	border: 1px solid #ffffff;
	filter: drop-shadow(0 0 15px rgba(116, 131, 141, 0.5));
	background-image: url(../images/texcher_abstract_poligon.png);
	background-repeat: no-repeat;
	background-size: 100% auto;
}

.modal_button {
	width: 100%;
	height: 26px;
	margin: 15px auto 20px auto;
	display: flex;
	justify-content: center;
	gap: 10px;
}

.modal_button button {
	width: 82px;
	height: 26px;
	border-radius: 13px;
	transition-duration: 400ms;
	font-size: 8px;
}

.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: 300px;
	height: 300px;
}

#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: 115px;
	margin-top: 32px;
}

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

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

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

#modal_getstamp .modal_base_bg h3::after,
#modal_max_point .modal_base_bg h3::after {
	position: absolute;
	content: "";
	background-color: #e78cff;
	width: 25px;
	height: 3px;
	left: 50%;
	bottom: -15px;
	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: 8px;
	margin-top: 30px;
}


/* modal exchange wallpaper start */

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

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

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

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

/* modal exchange wallpaper end */


/* modal exchage fail start */

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

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

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

/* 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: max(300px, 80vw);
	height: 100%;
	margin: auto;
}

#modal_shop .modal_header {
	width: 100%;
}

#modal_shop .modal_header img {
	width: 25px;
	height: 25px;
	margin: 20px 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: 14px;
	font-weight: bold;
	text-decoration: none;
	margin-top: 7px;
	position: relative;
}

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

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

#modal_shop .modal_header p {
	margin-top: 15px;
	padding: 0 15px;
}

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

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

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

#modal_shop .modal_shop_list .modal_shop_list_wrapper::-webkit-scrollbar-thumb {
  background: #ff5a9b;
	border-radius: 5px;
  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 10px;
}

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

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

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

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

#modal_shop .shop_item_group .shop_item .shop_item_header {
	display: flex;
	flex-flow: column;
	justify-content: space-between;
	align-items: center;
	margin: 20px 10px;
	padding-bottom: 10px;
	border-bottom: 1px solid #6e98b7;
}

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

#modal_shop .shop_item_group .shop_item .shop_item_header .exchange_wallpaper {
	display: flex;
	width: 150px;
	height: 30px;
	margin-top: 10px;
	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;
	flex-flow: column;
	justify-content: center;
	padding: 10px 0;
	margin: 0 10px;
	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: 100%;
	aspect-ratio: 16 / 9;
	pointer-events: none;
}

#modal_shop .shop_item_group .shop_item .shop_item_main .shop_item_type {
	align-content: center;
}

#modal_shop .shop_item_group .shop_item .shop_item_main .shop_item_type li {
	display: inline-flex;
	flex-flow: column;
	margin: 10px auto;
	text-align: center;
	width: 100%;
	position: relative;
}

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


/* ポイント不足 */
#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: 70px;
	margin: 0 10px;
	text-align: left;
	font-size: 10px;
	line-height: 15px;
	border-top: 1px solid #ffffff;
	padding: 10px;
}

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



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

#modal_oshi_select .modal_base_bg {
	width:  max(300px, 80vw);
	height: 100%;
	margin: auto;
}

#modal_oshi_select .modal_header {
	width: 100%;
}

#modal_oshi_select .modal_header img {
	width: 25px;
	height: 25px;
	margin: 20px 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: 14px;
	font-weight: bold;
	text-decoration: none;
	margin-top: 7px;
	position: relative;
}

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

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

#modal_oshi_select .modal_header p {
	margin-top: 17px;
	padding: 0 10px;
}

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

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

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

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

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

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

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

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

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

#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: 20px;
	height: 0;
	top: -4px;
	left: 5px;
	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.selected {
	border: 2px solid #ff5a9b;
}

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

#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: 9px;
	margin-top: 4px;
}

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

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

	will-change: transform;
}


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


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

.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: 5px;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
モーダル 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(200px, 45vw);
	margin: 50px auto 0 auto;
	position: relative;
	overflow: hidden;
}

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

.character_hr .background_hr {
	width: 100%;
	height: max(120px, 43vw);
	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: min(-30px, -11vw);
}

.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: 706px auto;
}

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

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

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

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

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








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

ローディングエリア

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

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

#loading {
	z-index: 1000;
	position: fixed;
	top: 0;
	left: 0;
	width: 100dvw;
	height: 100dvh;
	background-color: #eaf0f3;
	transition-duration: 800ms;
	transition-property: all;
	transition-timing-function: cubic-bezier(.42,0,0,.99);
	transition-delay: 0ms;
	transform-origin: right;
	display: flex;
	justify-content: center;
	align-items: center;
}

#loading .loading_logo {
	display: block;
	width: 210px;
	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
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/








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

ナビゲーションエリア

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

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

#header_toggle {
	position: fixed;
	z-index: 70;
	width: 110px;
	height: 55px;
	top: 35px;

	background: rgba(255, 255, 255, 0.85);
	border-bottom-right-radius: 10px;
	border-top-right-radius: 10px;
	filter: drop-shadow(0 0 20px rgba(58, 63, 80, 0.3));
	box-shadow: inset 0 0 10px #ffffff;

	display: flex !important;
	justify-content: space-between;
	align-items: center;
}

#header_toggle.open {
	background: rgba(255, 255, 255, 0);
	filter: drop-shadow(0 0 0 rgba(255, 255, 255, 0));
	box-shadow: inset 0 0 0 rgba(255, 255, 255, 0);
}

#header_toggle .header_toggle_logo {
	width: 27px;
	height: auto;
	margin-left: 15px;
	flex-shrink: 0;
}

#header_toggle .nav_toggle_btn {
	width: 25px;
	height: 25px;
	margin-right: 25px;
	margin-left: 0;
	padding: 0;
	background: transparent;
	border: none;
	flex-shrink: 0;

	display: flex;
	align-items: center;
	justify-content: center;
}
#header_toggle .nav_toggle_btn img {
	width: 100%;
	height: auto;
	display: block;
}

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




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

#header {
	position: fixed;
	z-index: 60;
	background: #e9f1f4;
	width: 100%;
	height: 100%;
	margin: 0;
}

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




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

#header .header_navi_area {
	position: absolute;
	display: flex;
	justify-content: center;
	height: 100%;
	width: 100%;
	align-items: center;
}

#header .header_navi_area .gnav {
	position: absolute;
	width: 320px;
	height: calc(100% - 120px);
	top: 120px;
}

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

#header .header_navi_area .gnav a {
	width: 260px;
	height: 50px;
	background-color: #ffffff;
	border-radius: 10px;

	margin: 0 auto;
	padding: 0 20px;

	font-size: 16px;
	line-height: 50px;
	font-weight: bold;
	text-decoration: none;
	text-align: left;

	display: flex;
	justify-content: space-between;
}

#header .header_navi_area .gnav a span {
	font-size: 8px;
	font-weight: normal;
	line-height: 50px;
	color: #47c2ff;
	text-align: right;
}

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




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

#header .header_user_status ul {
	position: absolute;
	height: 100%;
	width: 100%;
	pointer-events: none;
}

#header .header_user_status .header_select_oshi {
	position: absolute;
	width: 30px;
	height: 30px;
	right: 15px;
	top: 45px;
	background-color: #e8f0f4;
	border-radius: 30px;
	border: 2px solid #ffffff;
	overflow: hidden;
	transition-duration: 600ms;
	pointer-events: fill;
}

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

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

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

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

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

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

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

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

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

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

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

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


#header .header_user_status ul li {
	position: absolute;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

#header .header_user_status .header_stamp_point {
	position: absolute;
	background-color: #e8f0f4;
	border-radius: 5px;
	width: 100px;
	height: 30px;
	bottom: 25px;
	left: 50%;
	transform: translate(-50%, 0);
	border: 2px solid #ffffff;
	transition-duration: 600ms;
	pointer-events: fill;
}

#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: 7px;
	height: 7px;
	top: 50%;
	right: 55px;
	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: 17px;
	height: 17px;
	top: 50%;
	left: 5px;
	transform: translate(0, -50%);
}

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

#header .header_user_status .header_stamp_point span {
	margin: 0 5px 0 auto;
	font-size: 15px;
	line-height: 26px;
	display: block;
	text-align: center;
	width: 50px;
}

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




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

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

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

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

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

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




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

追従フッターエリア

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

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

#oshi_footer {
	position: fixed;
	bottom: 0;
	z-index: 50;
	width: 100%;
	height: 50px;
	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: 5px;
	height: 40px;
	width: min(250px, 60vw);
	right: 110px;
	top: calc(50% - 10px);
	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: -13px;
    transform: translate(0, -50%);
    height: 20px;
    width: 13px;
}

#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: 8px;
	line-height: 40px;
	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: 90px;
	object-fit: contain;
	top: -30px;
	right: 30px;
}

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

#oshi_footer button img {
	width: 14px;
	height: 16px;
	margin: 0 auto 0 6px;
}

#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%); }
}

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




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

キービジュアルエリア

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

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

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

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




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

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

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

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

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

	/* 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(100dvh - 25vw);
	max-height: calc(750px - 25vw);
}

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

#vis .vis_main li {
	width: 100%;
	height: 100%;
	margin: 0 auto;
  text-align: center;
	display: flex;
	flex-flow: column;
  justify-content: center;
  align-items: center;
}


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

#vis .vis_logo {
	height: max(150px, 35vw);
	z-index: 10;
}

#vis .vis_detail {
	width: max(210px, 38vw);
	display: grid;
	z-index: 10;
}

#vis .vis_detail .vis_subtext {
	position: relative;
	font-size: 10px;
	margin-top: 30px;
}

#vis .vis_detail .vis_subtext::after {
	position: absolute;
	content: "";
	background-color: #0fafff;
	width: max(25px, 5vw);
	height: 2px;
	top: 20px;
	left: 50%;
	transform: translate(-50%, 0);
}

#vis .vis_detail .vis_release_date {
	font-size: max(27px, 5vw);
	margin-top: 25px;
}

#vis .vis_detail .vis_link_btn {
	width: 180px;
	height: 40px;
	display: block;
	margin: 40px auto 0 auto;
	text-decoration: none;
	line-height: 40px;
	font-size: 13px;
	color: #ffffff;
	background: linear-gradient(#0fafff, #019ae7);
	border-radius: 999px;
	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: url(../images/vis_id_top_sp.png);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: top;
	width: max(315px, 70%);
	height: 100%;
	top: 0;
	left: 0;
}

#vis .vis_products_1::after {
	position: absolute;
	content: "";
	background: url(../images/vis_id_bottom_sp.png);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: bottom;
	width: max(301px, 70%);
	height: 100%;
	bottom: 0;
	right: 0;
}

/*** 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_sp.png);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: top;
	width: max(50%, 200px);
	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_sp.png);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: bottom;
	width: max(50%, 200px);
	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;
}

#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;
	height: 1200px;
	width: max(580px, 120vw);
	top: calc(50% + 100px);
	left: 50%;
	transform: translate(-50%, -50%);
}

#vis .vis_products_3 .vis_logo {
	width: 160px;
	position: relative;
	display: block;
	overflow: visible;
	object-fit: contain;
}

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

#vis .vis_products_4 .vis_detail {
	z-index: 20;
	margin-top: 0;
	width: auto;
}

#vis .vis_products_4 .vis_detail .vis_link_btn {
	margin: calc(70px + max(27px, 5vw)) auto 0 auto;
}


/* timer用設定 start */

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

#vis .vis_products_4 .vis_timer ul {
	display: flex;
	gap: 15px;
}

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

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


#vis .vis_products_4 .vis_timer ul div {
	display: flex;
	gap: 4px;
}

#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: 22px;
	height: 33px;
	line-height: 33px;
	font-size: 15px;
}

/* 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% + 150px) auto;
	background-repeat: no-repeat;
	background-position: center;
}

#vis .vis_products_5 .vis_logo {
	height: auto;
	display: block;
	margin: 0 auto;
	width: max(70px, 15vw);
}

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

#vis .vis_products_5 p:nth-of-type(1) {
	margin-top: max(17px, 5vw);
	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: 280px;
	height: 25px;
	margin-top: 45px;
	position: relative;
}

#vis .vis_products_5 p:nth-of-type(2)::before {
	position: absolute;
	content: "";
	background-color: #f59dce;
	width: max(25px, 5vw);
	height: 2px;
	top: -25px;
	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: 25vw;
	overflow-x: scroll;
}

#vis .vis_carousel ul {
	width: max(600px, 100vw);
	height: 100%;
	display: flex;
}

#vis .vis_carousel .vis_carousel_item {
	width: max(120px, calc(100vw / 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);
}

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

#vis .vis_carousel .vis_carousel_item img {
	margin: auto;
	width: max(60px, 18vw);
	max-width: 100px;
}

#vis .vis_carousel .vis_carousel_item.products_2 img {
	width: max(40px, 12vw);
	max-width: 65px;
}

#vis .vis_carousel .vis_carousel_item.products_4 img {
	width: max(40px, 14vw);
	max-width: 80px;
}

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








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

ニュースエリア

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

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

#news {
	margin: 90px auto 0 auto;
	width: max(300px, calc(100% - 60px));
}

#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: 40px auto 0 auto;
}

#news .news_list ul {
	width: 100%;
}

/* ニュースの最初のcss start */

#news .news_list li:first-child .news_item {
	display: block;
	width: 100%;
	text-decoration: none;
	margin-top: 15px;
	padding-bottom: 15px;
	transition-duration: 600ms;
	position: relative;

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

#news .news_list li:first-child .news_item::before {
	position: absolute;
	content: "";
	left: 0;
	bottom: 0;
	height: 1px;
	width: 100%;
	background: linear-gradient(to right, #ff5a9b, #3a3f50);
}

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

#news .news_list li:first-child  .news_item:hover {
	filter: brightness(1.1);
}

#news .news_list li:first-child .news_item .news_item_thumbnail {
	width: 100%;
	object-fit: contain;
}

#news .news_list li:first-child .news_item .news_detail {
	margin: 15px 0 15px 0;
	width: 100%;
	height: 120px;
}

#news .news_list li:first-child .news_item .news_detail .news_release_date {
	font-size: 15px;
}

#news .news_list li:first-child .news_item .news_detail .news_description {
	font-size: 12px;
	margin: 10px 0 0 0;
}

/* ニュースの最初のcss end */


/* ニュースの最初以外のcss start */

#news .news_list li:not(:first-child) .news_item {
	width: 100%;
	text-decoration: none;
	display: flex;
	margin-top: 15px;
	padding-bottom: 15px;
	transition-duration: 600ms;
	position: relative;

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

#news .news_list li:not(:first-child) .news_item.closed {
	display: none;
}

#news .news_list li:not(:first-child) .news_item::before {
	position: absolute;
	content: "";
	left: 0;
	bottom: 0;
	height: 1px;
	width: 100%;
	background: linear-gradient(to right, #ff5a9b, #3a3f50);
}

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

#news .news_list li:not(:first-child) .news_item:hover {
	filter: brightness(1.1);
}

#news .news_list li:not(:first-child) .news_item .news_item_thumbnail {
	width: 50vw;
	object-fit: contain;
}

#news .news_list li:not(:first-child) .news_item .news_detail {
	margin: 0 0 0 10px;
}

#news .news_list li:not(:first-child) .news_item .news_detail .news_release_date {
	font-size: 10px;
}

#news .news_list li:not(:first-child) .news_item .news_detail .news_description {
	font-size: 8px;
	margin: 10px 0 0 0;
}

/* ニュースの最初以外のcss end */


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

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

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

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

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

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








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

動画エリア

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

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

#movie {
	clear: both;
	width: 100%;
	height: max(400px, 70vw);
	margin-top: 160px;
	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: max(260px, 80vw);
	display: flex;
	justify-content: center;
	position: relative;
}

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

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

#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: 5px;
}

#movie .movie_list .movie_list_thumb::before {
	content: '';
	width: 50px;
	height: 50px;
	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% - 20px);
	margin: 10px;
	filter: brightness(0.8);
	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 {
	font-size: 10px;
	margin-top: 14px;
}

#movie .movie_swiper_btn_prev {
	position: absolute;
	height: 40px;
	width: 25px;
	left: min(-25px, -8vw);
	top: calc(50% + 50px);
	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: 40px;
	width: 25px;
	right: min(-25px, -8vw);
	top: calc(50% + 50px);
	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 {
	filter: brightness(1.1);
}

#movie .movie_swiper_btn_next:hover {
	filter: brightness(1.1);
}

#movie .movie_swiper_pagination {
	position: absolute;
	bottom: -35px;
	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: 40px;
	width: calc(150%);
	display: flex;
	justify-content: center;
	top: 30px;
	left: -50%;
	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: 40px;
	width: calc(200%);
	display: flex;
	justify-content: center;
	bottom: 45px;
	left: -50%;
	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%;
	width: 100%;
	height: 100%;
}


/* 背景パーティクルは個別調整が難しいので全体の scale を小さくする start */
/* 小さい数値で大きく変わるので beak point をいくつか用意して設定 */

@media (max-width: 480px) {
	#movie .movie_bg .movie_bg_particles {
		transform: translate(-50%, -50%) scale(0.27);
	}
}

@media (min-width: 481px) and (max-width: 600px) {
	#movie .movie_bg .movie_bg_particles {
		transform: translate(-50%, -50%) scale(0.31);
	}
}

@media (min-width: 601px) and (max-width: 769px) {
	#movie .movie_bg .movie_bg_particles {
		transform: translate(-50%, -50%) scale(0.35);
	}
}

/* 背景パーティクルは個別調整が難しいので全体の scale を小さくする end */


#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: 600px;
	margin-top: 50px;
	overflow-x: hidden;
}

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




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

#products .products_wapper {
	padding: 0 0 0 calc(50vw - 200px);
}

#products .products_title {
	width: calc(100% - 50px);
	height: 70px;
	margin: 0 0 auto 50px;
	position: relative;
}

#products .products_title::before {
	position: absolute;
	content: "";
	z-index: 10;
	top: 0;
	left: -50px;
	background-image: url(../images/subtitle_products.png);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center;
	width: 37px;
	height: 340px;
}

#products .products_title p {
	position: absolute;
	top: 0;
	left: 0;
}

#products .products_title .products_swiper_btn {
	position: absolute;
	top: 40px;
	left: 0;
}

#products .products_title .products_swiper_btn .btn_prev {
	background-color: #3a3f50;
	color: #ffffff;
	width: 100px;
	height: 26px;
	border-radius: 13px;
	text-align: right;
	padding-right: 15px;
	transition-duration: 600ms;
	position: relative;
	font-size: 10px;
}

#products .products_title .products_swiper_btn .btn_prev::before {
	position: absolute;
	content: '';
	top: 50%;
	left: 15px;
	transform: translate(0, -50%);
	width: 4px;
	height: 9px;
	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.swiper-button-disabled {
	filter: grayscale(100%);
  pointer-events: none;
}

#products .products_title .products_swiper_btn .btn_next {
	background-color: #3a3f50;
	color: #ffffff;
	width: 100px;
	height: 26px;
	border-radius: 13px;
	text-align: left;
	padding-left: 15px;
	margin-left: 10px;
	transition-duration: 600ms;
	position: relative;
	font-size: 10px;
}

#products .products_title .products_swiper_btn .btn_next::before {
	position: absolute;
	content: '';
	top: 50%;
	right: 15px;
	transform: translate(0, -50%);
	width: 4px;
	height: 9px;
	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.swiper-button-disabled {
	filter: grayscale(100%);
  pointer-events: none;
}

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




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

#products .products_list {
	width: calc(100% - 50px);
	margin: 0 auto 0 50px;
}

/* 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: 20px auto 0 auto;
	overflow: hidden;
	position: relative;
}

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

/* new_flag の場合に new を表示 */
#products .products_list .products_item.new_flag::before {
	position: absolute;
	content: "";
	top: -5px;
	left: 10px;
	width: 33px;
	height: 46px;
	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: 225px;
	height: 160px;
	background-color: #ffffff;
	margin: 15px auto 0 auto;
	border-radius: 3px;
	justify-content: center;
	display: flex;
}

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

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

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

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

#products .products_list .products_item.products_5 .products_item_thumb img {
	width: 80px;
	margin: -15px auto 0 auto;
}

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

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

#products .products_list .products_item .products_item_info th {
	width: 120px;
	height: 20px;
	background-color: #d9e3e8;
	border-radius: 3px;
	margin: 0;
	font-size: 8px;
	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: 105px;
	width: 225px;
	margin: 10px auto 0 auto;
	padding-top: 20px;
	font-size: 10px;
	line-height: 16px;
	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: 225px;
}

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

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

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

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

#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: max(170px, 50vw);
	margin: max(60px, 25vw) 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, 15vw);
	margin: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	line-height: 200px;
	border-radius: 100px;
	border: 2px 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%;
	height: 360px;
	justify-content: center;
	margin-top: 50px;
	position: relative;
}

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


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

#share .share_select_oshi {
	position: absolute;
	width: 100%;
	height: 170px;
	justify-items: center;
	top: 70px;
}

#share .share_select_oshi img {
	height: 170px;
	object-fit: cover;
	display: block;
	margin: auto;
}

#share .share_select_oshi::after {
	content: "";
	position: absolute;
	left: calc(50% + 10px);
	bottom: -25px;
	transform: translate(-50%, 0);
	width: 80px;
	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(10px, 0);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

#share .share_detail {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	justify-items: center;
}

#share .share_detail .share_serifbox {
	background-color: #3a3f50;
	width: 250px;
	height: 40px;
	border-radius: 20px;
	margin: 10px auto 0 auto;
	position: relative;
}

#share .share_detail .share_serifbox::after {
	content: "";
	position: absolute;
	right: 55px;
	bottom: -7.5px;
	width: 12px;
	height: 8px;
	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% - 10px);
	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 {
	color: #ffffff;
	line-height: 40px;
	display: inline-block;
	white-space: nowrap;
	padding-left: 100%;
	text-align: center;
	font-size: 10px;
	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: 220px auto 0 auto;
	display: flex;
	justify-content: center;
}

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

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

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

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








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

インフォエリア

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

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

#info {
	margin-top: 50px;
	height: 600px;
	background-image: url(../images/texcher_abstract_perl.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: top;
	position: relative;
}

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




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

#info .voising_info {
	display: flex;
	flex-flow: column;
	align-items: center;
	height: 480px;
	width: 100%;
	margin: 0 auto;
}

#info .voising_info .info_logo {
	width: 250px;
	margin: 70px auto 0 auto;
}

#info .voising_info .info_description {
	width: 250px;
	margin: 60px auto 0 auto;
}

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

#info .voising_info .info_description h3 .jp_tagline {
	font-size: 35px;
}

#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: 250px;
	height: 20px;
}

#info .voising_info .info_description p {
	margin-top: 30px;
	font-size: 12px;
}

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




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

#info .officital_site_link {
	position: absolute;
	bottom: -20px;
	left: calc(50% - 90px);
	width: 180px;
	height: 40px;
	color: #ffffff;
	background: linear-gradient(#ff8bcd, #ff6cc0 36%);
	line-height: 40px;
	text-align: center;
	border-radius: 20px;
	display: inline-block;
	font-size: 10px;
}

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

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








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

フッターエリア

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

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

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

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

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




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

#grandfooter .official_accounts {
	width: calc(100% - 40px);
	margin: 45px auto 0 auto;
}

#grandfooter .official_accounts ul {
	width: calc(100% - 20px);
	min-width: 290px;
	max-width: 400px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

#grandfooter .official_accounts li {
	position: relative;
}


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

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

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

#grandfooter .official_accounts li.accounts_youtube img {
	width: 20px;
	height: 14px;
}

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

#grandfooter .official_accounts li.accounts_contact img {
	width: 17px;
	height: 14px;
}

#grandfooter .official_accounts li a {
	font-size: 7px;
	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: 100px auto 0 auto;
	text-align: center;
	color: #63608c;
}

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




