/*	===============================================================
	● サイトCSSファイル
	---------------------------------------------------------------
	Release 2026.03.25                               Powered by TDR
	=============================================================== */

	/*============================
		Webフォント
	============================*/
	/* @import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c&family=Noto+Serif+JP:wght@200..900&display=swap'); */
	@import url('https://fonts.googleapis.com/css2?family=LINE+Seed+JP:wght@100;400;700&family=Noto+Serif+JP&display=swap');
	/*
		font-family: "M PLUS Rounded 1c", sans-serif;
		font-family: "Noto Serif JP", serif;
		*/

	/*============================
		レイアウト
	============================*/
	html
	{
		overflow: auto;
		font-size: 62.5%;
		margin: auto;
		padding: 0;
		scroll-behavior: smooth;
		scroll-padding-top: 100px;
	}

	body
	{
		font-size: 1.7rem;
		background: #fff;
		color: #222;
		font-family: "LINE Seed JP", sans-serif;
		font-weight: 400;
		margin: auto;
		padding: 0;
		padding-bottom:32px;
		position: relative;
		line-height: 1.9;
		letter-spacing: 0em;
		background-size: 100% auto;
		z-index: -2;
	}

	main {
		display: block;
		width: 100%;
		/* overflow: hidden; */
		top: 70px;
		position: relative;
		z-index: 0;
		padding-bottom: 100px;
	}

	main > article,
	main > section {
		display: block;
		width: 100%;
		/* background: #fff; */
		position: relative;
		z-index: 10;
		/* transform: rotate(0.03deg); */
	}

	.cmn_contents {
		padding-top: 56px;
	}
	.sub_contents {
		margin-top: 56px;
	}

	.container {
		/* max-width:1440px; */
		max-width: 1200px;
		width: 100%;
		margin: 0 auto;
		padding: 0px 20px 75px;
		position: relative;
		z-index: 0;
	}
	.container.back,
	.container.voting
	 {
		padding: 0px 20px 0px;
	}

	/* hタグ */
	.cmn_contents h2 {
		width: 100%;
		font-size: 3.9rem;
		/* border-bottom: 5px solid #ccc; */
		padding: 0 0 16px;
		line-height: 1.3;
		margin-bottom: 32px;
		font-weight: 400;
	}
	.sub_contents h2 {
		width: 100%;
		font-size: 2rem;
		font-weight: 700;
		border-bottom: 2px solid #ccc;
		/* padding: 0 80px 10px 0; */
		padding: 0 0px 20px 0;
		line-height: 1.7;
		margin-bottom: 25px;
	}
	.sub_contents .news h2
	{
		display:flex;
		align-items: baseline;
		justify-content: space-between;
		padding: 0 0px 10px 0;
		gap:0 50px;
		line-height: 1.3;
	}
	.sub_contents .news h2 .category_wrap
	{
		font-size:1.7rem;
		min-width: 230px;
	}
	.sub_contents .news h2 .category_wrap span
	{
		padding: 0.1em 1em;
		text-align: center;
		border: 1px solid #2f2ff0;
		color: #fff;
		background: #2f2ff0;
		border-radius: 5px;
		margin-right:1em;
	}
	.sub_contents .news h2 .category_wrap span.cate2
	{
		border: 1px solid #9e30ff;
		background: #9e30ff;
	}
	.sub_contents .news h2 .category_wrap span.cate3
	{
		border: 1px solid #cc26ab;
		background: #cc26ab;
	}
	.sub_contents .news h2 .category_wrap time
	{
		color: #666;
	}

	.cmn_contents h2 span {
		font-size: 0.6em;
		color: #666;
		padding-left: 30px;
	}

	:is(.ticket, .goods, .ticket_goods) h2 {
		font-size: 2.6rem;
		/* border-bottom: 1px solid #aaa; */
		margin: 0 auto 30px;
		position: relative;
		padding: 0 0 0px;
		line-height: 1;
		color:#63646b;
		font-weight: 500;
	}

	:is(.ticket, .goods, .ticket_goods) h2 span {
		font-size: 2.0rem;
		margin-left: 1em;
		display: inline-block;
		font-family: "Noto Serif JP", serif;
		color:#7e7f80;
		font-weight: 400;
		letter-spacing: 0.13em;
	}

	/* :is(.ticket, .goods, .ticket_goods) h2::after {
		position: absolute;
		content: "";
		display: block;
		border-bottom: solid 5px;
		left: 0px;
		bottom: -3px;
		width: 25%;
	}

	.ticket h2::after {
		border-color: #99bfdf;
	}

	.goods h2::after {
		border-color: #e8aeb1;
	}

	.ticket_goods h2::after {
		border-color: #acd6ae;
	}

	.favorite h2::after {
		border-color: #acd6ae;
	}
	*/

	h3 {
		font-size: 2.5rem;
		text-align: center;
		color: #000;
		line-height: 1;
	}

	.top_category
	{
		padding-top:80px;
	}


	:is(.top_fanclub_bn, .top_news, .top_contact) h3 {
		font-size: 2.6rem;
		/* border-bottom: 1px solid #aaa; */
		margin: 0 auto 30px;
		position: relative;
		padding: 0 0 0px;
		line-height: 1;
		color:#63646b;
		font-weight: 500;
		text-align: left;
	}

	:is(.top_fanclub_bn, .top_news, .top_contact) h3 span {
		font-size: 2.0rem;
		margin-left: 1em;
		display: inline-block;
		font-family: "Noto Serif JP", serif;
		color:#7e7f80;
		font-weight: 400;
		letter-spacing: 0.13em;
	}

	.ttl_wrap
	{
		display: flex;
		justify-content:flex-start;
		gap: 48px;
		align-items: center;
		margin-bottom:30px;
	}
	.ttl_wrap h3
	{
		width: fit-content;
		margin:0 0 0;
	}
	.ttl_wrap a
	{
		display: block;
		width: fit-content;
		/* font-weight: 700; */
		padding: 0 2em .2em 0;
		border-bottom: solid 1px #2f2ff0;
		color: #2f2ff0;
		letter-spacing: .1em;
		white-space: nowrap;
		position: relative;
		font-size:0.9em;
	}
	.ttl_wrap a .arw
	{
		position: absolute;
		font-size: 1rem;
		right: 0;
		top: 50%;
		transform: translate(0, -50%);
		transition: .3s ease-out;
	}
	.ttl_wrap a:hover .arw
	{
		right: -.5em;
	}

	/* img */
	figure img {
		display: inline-block;
		width: 100%;
		height: auto;
	}

	/* リンク */
	a {
		color: #2f2ff0;
		transition: 0.3s;
	}

	.uline
	{
		text-decoration: underline;
	}

	.red
	{
		color: #ff0000;
	}

	button {
		transition: 0.3s;
		cursor: pointer;
	}

	a:hover,
	button:hover {
		opacity: 0.8;
	}

	/* table */
	table.tbl_frm {
		width: 100%;
		font-size:1.5rem;
		margin-top:32px;
	}

	table.tbl_frm tr {
		width: 100%;
		border-bottom: 1px dotted #aaa;
	}

	table.tbl_frm th {
		width: 250px;
		text-align: left;
		vertical-align: top;
		/* padding:20px 30px; */
		padding:15px 20px;
		background: #f4f3f2;
		position: relative;
		font-weight: 700;
	}

	table.tbl_frm th .required {
		display: inline-block;
		font-size: 1rem;
		color: #fff;
		padding: 5px 5px;
		line-height: 1;
		background: #cc0000;
		border-radius: 5px;
		position: absolute;
		right: 30px;
		top:20px;
	}

	table.tbl_frm td {
		/* padding: 20px 30px; */
		padding: 15px 20px;
		background: #fff;
	}

	table.tbl_frm p {
		font-size: 1rem;
		margin-top: 1em;
	}
	table.tbl_frm textarea
	{
		width: 100%;
	    min-height: 200px;
	}

	table.tbl_frm .flex
	{
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		gap: 30px;
	}
	/* table.tbl_frm .flex.align_flex_s
	{
		align-items: flex-start;
	}

	table.tbl_frm .w75 {
		width: calc(75% - 25px);
	}

	table.tbl_frm .w50 {
		width: calc(50% - 25px);
	}

	table.tbl_frm .w25 {
		width: calc(25% - 25px);
	}

	table.tbl_frm td ul {
		display: flex;
		width: 100%;
		justify-content: flex-start;
		gap: 30px;
	}
 */
	table.tbl_frm .name
	{
		width: calc(50% - 15px);
	}
	table.tbl_frm .name1,
	table.tbl_frm .name2
	{
		width: calc((100% - 30px) / 2);
	}
	table.tbl_frm .company
	{
		width:100%;
	}
	table.tbl_frm .mail
	{
		width: calc(50% - 15px);
	}
	table.tbl_frm .password
	{
		width: calc(50% - 15px);
	}
	table.tbl_frm .password > div
	{
		position: relative;
	}
	table.tbl_frm .password > div input
	{
		padding-right:40px;
	}
	table.tbl_frm .password > div i
	{
		position: absolute;
		/* top:50%; */
		top:20px;
		right:15px;
		transform:translate(0, -50%);
	}
	table.tbl_frm .birthday
	{
		width: calc(50% - 15px);
	}
	table.tbl_frm .birthday.fixed > div
	{
		min-height: 40px;
		display: flex;
		align-items: center;
	}
	table.tbl_frm .birthday1,
	table.tbl_frm .birthday2
	{
		width: calc((100% - 30px) / 2);
	}
	table.tbl_frm .birthday2 ul
	{
		display: flex;
		width: 100%;
		justify-content: flex-start;
		gap: 30px;
	}
	table.tbl_frm .birthday2 label
	{
		padding:10px 0;
		white-space: nowrap;
		line-height: 1;
	}
	table.tbl_frm .tel
	{
		width: calc(50% - 15px);
	}
	table.tbl_frm .zip
	{
		width: calc(50% - 15px);
	}
	table.tbl_frm .address
	{
		width:100%;
		justify-content: flex-start;
		align-items: flex-start;
		gap:1em;
	}
	table.tbl_frm .address1
	{
		width: calc(100% - 75% - 15px);
		max-width: 195px;
	}
	table.tbl_frm .address2
	{
		width: calc(100% - 25% - 15px);
	}



	table.tbl_frm td ul label {
		display: flex;
		/* align-items: center; */
		align-items: baseline;
	}

	table.tbl_frm + .btn_area {
		background: transparent;
		padding-top: 40px;
	}

	/* form */
	input[type="text"],
	input[type="mail"],
	input[type="search"],
	input[type="number"],
	input[type="tel"],
	input[type="password"],
	textarea,
	select
	{
		width: 100%;
		appearance: none;
		-webkit-appearance: none;
		-moz-appearance: none;
		-o-appearance: none;
		font-size: 16px;
		background: #fff;
		border: none;
		box-sizing: border-box;
		padding: 10px 10px;
		font-weight: 400;
		border: 1px solid #b1b1b1;
		border-radius: 7px;
		color: #222;
		min-height: 40px;
	}

	select {
		max-width: 100%;
		/* min-width: 199px; */
		padding: 10px 20px 10px 10px;
		background: url(../images/icon/arrow_down.svg) no-repeat top 50% right 8px /
			14px auto#fff;
	}

	select option {
		padding: 2px 5px;
	}



	::-webkit-input-placeholder {
		color: #ccc;
	}

	::-moz-placeholder {
		color: #ccc;
	}

	:-ms-input-placeholder {
		color: #ccc;
	}

	::-ms-input-placeholder {
		color: #ccc;
	}

	::placeholder {
		color: #ccc;
	}

	button[type="submit"],
	button.submit
	{
		width: 100%;
		appearance: none;
		-webkit-appearance: none;
		-moz-appearance: none;
		-o-appearance: none;
		font-size: 1.7rem;
		background: #2f2ff0;
		border: none;
		box-sizing: border-box;
		padding: 0.2em 0;
		font-weight: 700;
		border: 1px solid #2f2ff0;
		border-radius: 5px;
		color: #fff;
		min-height: 40px;
		cursor: pointer;
		line-height: 1;
	}

	/* その他 */
	p {
		line-height: 1.7;
		margin-bottom: 0.5em;
	}

	aside {
		line-height: 1.3;
		font-size: 1.3rem;
		display: block;
		/* padding-left: 1em; */
		position: relative;
		color: gray;
		letter-spacing: 0;
	}
	aside.kome > p
	{
		padding-left: 1em;
		margin-bottom: 0.2em;
	}

	aside > p::before {
		content: "＊";
		position: absolute;
		left: 0;
	}
	ul.kome{
		line-height: 1.5;
		font-size: 1.3rem;
		display: inline-block;
		padding-left: 1em;
		position: relative;
		letter-spacing: 0;
	}

	ul.kome > li::before {
		content: "※";
		position: absolute;
		left: 0em;
	}
	.txt_area
	{
		margin-top:1em;
	}
	.pc_only {
		display: block;
	}

	.sp_only {
		display: none;
	}

	/* success/errorメッセージ */
	.msg {
		width: 70%;
		margin-inline: auto;
		margin-top: 35px;
		margin-bottom: 35px;
		border-collapse: separate;
		border-radius: 10px;
		border-left: 2px solid;
		border-top: 2px solid;
	}

	.msg .msg_icon {
		width: 32px;
		border-right: 2px solid;
		border-bottom: 2px solid;
		color: #fff;
		padding: 15px 5px;
		border-radius: 7px 0 0 7px;
		vertical-align: middle;
	}

	.msg .msg_text {
		font-size: 1.4rem;
		vertical-align: middle;
		line-height: 1.6;
		padding: 3px 20px;
		font-weight: 700;
		border-right: 2px solid;
		border-bottom: 2px solid;
		border-radius: 0 7px 7px 0;
		background-color: #fff;
	}

	.msg.success {
		border-color: #07ad60;
	}

	.msg.success .msg_icon {
		border-color: #07ad60;
		background: #07ad60;
	}

	.msg.success .msg_icon span::after {
		content: "\f058";
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		color: #fff;
	}

	.msg.success .msg_text {
		border-color: #07ad60;
		color: #07ad60;
	}

	.msg.error {
		border-color: #cc0000;
	}

	.msg.error .msg_icon {
		border-color: #cc0000;
		background: #cc0000;
	}

	.msg.error .msg_icon span::after {
		content: "\f06a";
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		color: #fff;
	}

	.msg.error .msg_text
	{
		word-break: break-all;
		border-color: #cc0000;
		color: #cc0000;
	}

	.error_form_message
	{
		word-break: break-all;
		font-size: 0.8em;
		color: #cc0000;
	}

	/*============================
		ヘッダ
	============================*/
	header {
		width: 100%;
		background: #fff;
		position: fixed;
		top: 0;
		display: block;
		z-index: 10;
	}
	header.active
	{
		/* padding-top:0px; */
		box-shadow: 0 0 10px rgba(94, 94, 94, 0.6);
	}

	header .container {
		max-width:1440px;
		/* max-width: 1200px; */
		width: 100%;
		height: 70px;
		margin: 0px auto 0px;
		padding: 0 65px 0 20px;
		position: relative;
		display: flex;
		gap: 30px;
		justify-content: space-between;
		align-items: center;
		z-index: 20;
	}

	header h1 {
		text-align: center;
		margin-right:auto;
	}

	header h1 a {
		color: #000;
	}

	header h1 a figure img {
		max-height: 40px;
		width: auto;
	}

	header .pc_navi > div {
		display: flex;
	}

	/*============================
			フッター
		============================*/
	footer {
		padding: 32px 0px 24px;
		background: transparent;
	}

	footer .container {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 0 20px;
	}

	footer .container .about {
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		gap: 16px;
		width: 25%;
	}

	footer .container .about h2 {
		width: 100%;
		height: auto;
	}
	footer .container .about .jasrac
	{
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 1rem;
		gap:20px;
	}
	footer .container .about .jasrac img
	{
		width: 30px;
	}

	footer .container .ft_navi {
		width: 75%;
	}
	footer .container .ft_navi ul {
		display: flex;
		justify-content: flex-end;
		flex-wrap: wrap;
		gap: 16px 32px;
		font-size:1.6rem;
	}
	footer .container .ft_navi ul a
	{
		color:#333;
		position: relative;
		text-decoration: none;
	}
	footer .container .ft_navi ul a::after
	{
		content: '';
		position: absolute;
		bottom: 0;
		left: 0;
		width: 0;
		height: 1px;
		background: #2f2ff0;
		transition: all 0.3s ease 0s;
	}
	footer .container .ft_navi ul a:hover::after
	{
		width: 100%;
	}
	.copyright {
		background-color: transparent;
		font-size: 1.3rem;
		text-align: center;
		padding: 1em 0 0;
		margin-bottom:16px;
		position: relative;
		z-index: -1;
	}
	.copyright::after {
		content:"";
		width: 100%;
		max-width: 1200px;
		margin-inline:auto;
		border-top: 1px solid #ccc;
		position: absolute;
		top:0;
		left:50%;
		transform:translate(-50%, 0);
	}
	.copyright > div{
		width: 100%;
		max-width: 1200px;
		padding-inline: 20px;
		margin-inline: auto;
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	.copyright > div a
	{
		color:#666;
		display: inline-block;
		margin-left:1.5em;
	}

	/*============================
		言語切り替え
	============================*/
	.gt_container--hich1m .gt_switcher
	{
		font-family: Arial;
		font-size:1.4rem!important;
		width: 147px!important;
	}
	.gt_container--hich1m .gt_switcher .gt_selected a {
		border-top: 1px solid #c0c0f8!important;
		border-left: 1px solid #c0c0f8!important;
		border-right: 1px solid #c0c0f8!important;
		border-radius: 5px 5px 0 0;
		padding: 0.2em 8px!important;
		width: 127px!important;
		background: #f6f6fd!important;
    	color: #666!important;
		text-decoration: none!important;
		font-size:1.4rem!important;
	}
	.gt_container--hich1m .gt_switcher .gt_selected a:hover
	{
		background: #f6f6fd!important;
	}
	.gt_container--hich1m .gt_switcher .gt_option a
	{
		background: #f6f6fd!important;
    	color: #666!important;
		font-size:1.4rem!important;
	}
	.gt_container--hich1m .gt_switcher .gt_option a:hover
	{
		text-decoration: none!important;
	}
	.gt_container--hich1m .gt_switcher .gt_option
	{
		position: relative;
		z-index: 9998;
		border-left: 1px solid #c0c0f8!important;
		border-right: 1px solid #c0c0f8!important;
		border-bottom: none!important;
		width: 143px!important;
	}
	.gt_container--hich1m .gt_switcher .gt_selected
	{
		background: none!important;
	}

	/*============================
		グローバルメニュー
	============================*/
	.pc_navi {
		/* padding-top: 10px; */
		/* width: calc(100% - 208px - 55px); */
		width: fit-content;
		display: flex;
		/* justify-content: space-between; */
		justify-content: flex-end;
		gap: 0px;
	}

	.pc_navi ul {
		display: flex;
		gap: 20px;
	}

	.pc_navi ul li a
	{
		color: #222;
		display: block;
		width: -webkit-fit-content;
		width: -moz-fit-content;
		width: fit-content;
		/* font-size:1.8rem; */
		font-size: 1.6rem;
		white-space: nowrap;
		position: relative;
		display: flex;
		margin-left:2em;
	}
	.pc_navi ul li a:before
	{
		content: "";
		margin-right:0.3em;
		background-color: #2f2ff0;
		width:1.5em;
		height:1.5em;
		position: absolute;
		top:50%;
		left:-2em;
		transform:translate(0, -50%);
		mask-image: url(/images/site/navi0.svg);
		mask-repeat: no-repeat;
		mask-size: contain;
		mask-position: bottom center;
		z-index: 999;
	}
	.pc_navi ul li.ticket a:before
	{
		mask-image: url(/images/site/navi1.svg);
	}
	.pc_navi ul li.goods a:before
	{
		mask-image: url(/images/site/navi2.svg);
	}
	.pc_navi ul li.ticket_goods a:before
	{
		mask-image: url(/images/site/navi3.svg);
	}

	.pc_navi ul li a:after {
		content: "";
		position: absolute;
		bottom: 0px;
		left: 0;
		width: 100%;
		height: 2px;
		background: #2f2ff0;
		transform: scale(0, 1);
		transform-origin: right top;
		transition: transform 0.3s;
	}

	.pc_navi ul li a:hover:after {
		transform: scale(1, 1);
		transform-origin: left top;
	}

	.pc_navi .all {
		padding-right: calc(25px);
		position: relative;
	}
	.pc_navi .favorite {
		padding-left: calc(25px);
		position: relative;
	}

	.pc_navi .favorite i {
		display: inline-block;
		padding-right: 0.5em;
		color: #ffaaee;
	}

	.pc_navi .all::after {
		content: "";
		width: 1px;
		height: 1.5em;
		background: #ccc;
		position: absolute;
		top: 50%;
		right: 0px;
		transform: translate(0, -50%);
	}
	.pc_navi .favorite::after {
		content: "";
		width: 1px;
		height: 1.5em;
		background: #ccc;
		position: absolute;
		top: 50%;
		left: 0px;
		transform: translate(0, -50%);
	}

	.pc_navi > div {
		display: flex;
		justify-content: flex-end;
		width: -webkit-fit-content;
		width: -moz-fit-content;
		width: fit-content;
		gap: 20px;
		padding-left: 20px;
	}

	.pc_navi > div a {
		color: #222;
	}

	.pc_navi > div :is(.login, .logout, .entry, .mypage) a
	{
		font-size: 1.4rem;
		text-align: center;
		border: 2px solid #2f2ff0;
		border-radius: 999px;
		padding: 0.2em 0;
		/* width:150px; */
		width: 100px;
		height:33px;
		display: block;
		white-space: nowrap;
	}
	.pc_navi > div .insta
	{
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.pc_navi > div .insta img
	{
		width: 35px;
		height:35px;
		object-fit: contain;
	}

	.pc_navi > div :is(.login, .logout) a {
		background: #fff;
		border: 2px solid #2f2ff0;
		color:#2f2ff0;
	}
	.pc_navi > div :is(.login, .logout) a:hover {
		background: #2f2ff0;
		color:#fff;
	}

	.pc_navi > div .entry a {
		background: #2f2ff0;
		color: #fff;
	}

	.pc_navi > div .mypage a {
		background: #5656f0;
		color: #fff;
	}
/*
	.sp_navi {
		display: none;
	}
 */
	.side_navi {
		position: absolute;
		z-index: 999;
		top: 70px;
		right: 20px;
		background: #fff;
		border-radius: 0 0 5px 5px;
	}

	.side_navi a
	{
		color: #222;
		font-size: 1.6rem;
		text-align: center;
		border-radius: 0 0 5px 5px;
		padding: 4px 0 8px;
		width: 150px;
		font-weight: 400;
		display: flex;
		align-items: center;
		justify-content: center;
		gap:5px;
	}
	.side_navi a.active
	{
		box-shadow: 0px 3px 5px rgba(94, 94, 94, 0.4);
	}
	.side_navi a span
	{
		font-size:1.6rem;
		color: #5656f0;
	}

	.side_navi a:hover {
		background: #f1f1f1;
	}

	.side_navi a::before {
		content: "\f07a";
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		color: #2f2ff0;
		margin-right:5px;
	}


	header .sp_navi
	{
		display: block;
		/* width: fit-content; */
		/* margin:auto; */
	}
	header .sp_navi ul
	{
		display: grid;
		gap: 15px 5%;
		grid-template-columns: 1fr;
	}
	header .sp_navi ul li.cart
	{
		display: none;
	}
	.sp_navi_wrap
	{
		display: flex;
		align-items: center;
		gap: 8px;
	}
	.member_sp_navi
	{
		display: none;
	}

	.hamburger_wrap
	{
		font-weight: bold;
		font-size: 1rem;
		background: #2f2ff0;
		transition: .5s;
    	margin: 0 0 0 5px;
		width: 70px;
		height: 70px;
		padding: 25px 0;
		position: absolute;
		top:0;
		right: 0;
	}
	.hamburger
	{
		width: 30px;
		height: 20px;
		margin: 0 auto;
		cursor: pointer;
		position: relative;
	}
	.hamburger span
	{
		height:2px;
		background: #fff;
		width: 100%;
		left: 0;
		position: absolute;
	}
	.hamburger span.hamburger_top
	{
		top: 0;
    	transition: .5s;
	}
	.hamburger span.hamburger_bottom
	{
		bottom: 0;
    	transition: .5s;
	}
	.hamburger.active .hamburger_top
	{
		transform: translateY(9px) rotate(45deg);
	}
	.hamburger.active .hamburger_bottom
	{
		transform: translateY(-9px) rotate(-45deg);
	}
	.sp_navi_bg
	{
		width: 350px;
		padding: 80px 3% 80px;
		margin-top: 70px;
		position: fixed;
		top: 0;
		right: -120%;
		height: 100vh;
		transition: all .5s;
		background: #f1f1fff5;
		overflow: auto;
		overflow-y: scroll;
	}
	.sp_navi_bg.active
	{
		right: 0;
	}
	.sp_navi_bg.active a
	{
		color:#333;
		font-size:1.6rem;
	}
	.sp_navi_bg.active a i
	{
		margin-right: 0.5em;
	}
	.sp_navi_bg.active li
	{
		list-style: none;
	}
	.sp_navi_bg.active li
	{
		list-style: none;
	}
	.sp_navi_bg.active li:not(:is(.favorite, .login, .logout, .entry, .mypage, .cart))
	{
		padding:0 15px;
	}
	.sp_navi_bg.active li:is(.favorite, .login, .logout, .entry, .mypage, .cart) a
	{
		display: block;
		width: 100%;
		min-width: 150px;
		padding:5px 20px;
		border-radius: 10px;
		margin-bottom:20px;
		background: #fff;
		color: #2f2ff0;
		font-size:1.4rem;
		text-align: center;
		border: 1px solid #2f2ff0;
	}
	.sp_navi_bg.active li.favorite a
	{
		margin-top:50px;
	}
	.sp_navi_bg.active li:is(.favorite, .login, .logout, .entry, .mypage, .cart) a::before
	{
		content:"";
		margin-right: 0.5em;
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		color: #2f2ff0;
	}

	.sp_navi_bg.active li.favorite a::before
	{
		content:"\f004";
	}
	.sp_navi_bg.active li.login a::before
	{
		/* content:"\f52b"; */
		content: "\f09c";
	}
	.sp_navi_bg.active li.logout a::before
	{
		content:"\f3c1";
	}
	.sp_navi_bg.active li.entry a::before
	{
		/* content:"\f573"; */
		content:"\f234";
	}
	.sp_navi_bg.active li.mypage a::before
	{
		content:"\f4ff";
	}
	.sp_navi_bg.active li.cart a::before
	{
		content:"\f07a";
	}


	/*============================
		キービジュアル
	============================*/
	.kv_wrap {
		position: relative;
		margin: 0px auto 0;
	}

	.kv_wrap .kv_img {
		display: block;
		text-align: center;
	}

	.kv_wrap .kv_img img {
		width: 100%;
		max-width: 1000px;
		padding:70px 20px 50px;
		margin-inline:auto;
		object-fit: contain;
	}

	.kv_wrap.sub .kv_img img {
		height: 200px;
		-o-object-fit: cover;
		object-fit: cover;
		-o-object-position: center center;
		object-position: center center;
	}
	.kv_wrap.sub.item_detail {
		height: 200px;
		position: relative;
		margin: 0px auto 0;
		background-size: cover;
		background-position: center center;
		backdrop-filter: saturate(2);
	}
	.kv_wrap.sub.item_detail.noimg:after {
		content: none;
	}

	.kv_wrap h2 {
		width: 80%;
		font-size: 5rem;
		text-align: center;
		position: absolute;
		letter-spacing: 0.1em;
		top:50%;
		left:50%;
		transform:translate(-50%, -50%);
		font-weight: 700;
		color: #fff;
		line-height: 1.5;
		text-shadow: 0 0 5px #2f2ff0, 0 0 10px #2f2ff0, 0 0 15px #2f2ff0, 0 0 30px #2f2ff0;
	}

	.kv_wrap h2 span {
		margin-top: 25px;
		display: block;
		font-size: 2.5rem;
		line-height: 1.5;
	}

	.kv_wrap h4 {
		width: 98%;
		margin:auto;
		font-size: 2.8rem;
		text-align: center;
		font-weight: 400;
		position: absolute;
		letter-spacing: 0.05em;
		top: 50%;
		left: 50%;
		z-index: 10;
		transform: translate(-50%, -50%);
		font-weight: 700;
		color: #333;
		line-height: 1.4;
		text-shadow: 0 0 5px #fff, 0 0 10px #fff, 0 0 30px #fff;
	}


	.kv_info
	{
		background: linear-gradient(90deg, rgba(160, 190, 220, 1) 70%, rgb(160, 190, 220, 0.1) 100%);
		position: absolute;
		top:60%;
		width:50%;
		font-size:1.4rem;
		letter-spacing: 0;
		padding:15px 50px 8px 0;
	}
	.kv_info.right_white
	{
		background: linear-gradient(90deg, rgba(255, 255, 255, 0.0) 10%, rgba(255, 255, 255, 0.8) 30%,rgb(255, 255, 255, 0.95) 100%);
		position: absolute;
		top:73%;
		right:0;
		width:70%;
		font-size:1.5rem;
		font-weight: normal;
		letter-spacing: 0;
		padding:20px 50px 12px 20%;
	}
	.kv_info p
	{
		/* font-family: 'M PLUS Rounded 1c', sans-serif; */
		color:#555;
		position: relative;
		letter-spacing: 0.1em;
		left:50%;
		transform: translate(-25%, 0);
		line-height: 1.8;
		white-space: nowrap;
		font-weight: bold;
	}

	/*============================
		Contents
	============================*/
	/* バナー */
	section.top_bn {
		margin-top: 25px;
		padding: 0 0px;
	}

	.bn_list {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 10px;
	}

	.bn_list img {
		-o-object-fit: cover;
		object-fit: cover;
	}

	/* カテゴリー */
	:is(.ticket, .goods, .ticket_goods).inner {
		position: relative;
		z-index: 999;
	}

	:is(.ticket, .goods, .ticket_goods).inner > p {
		line-height: 1.6;
		margin-bottom: 40px;
	}

	.category_panel {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr 1fr;
		grid-template-rows: 160px 160px;
		gap: 25px;
		margin-bottom: 25px;
	}

	.category_panel a {
		position: relative;
		display: block;
		height: 100%;
	}
	.category_panel a::after {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		background-color: rgba(0, 0, 0, 0);
		border-radius: 3px;
		z-index: 1;
	}
	.category_panel a:hover {
		opacity: 1;
	}
	.category_panel a:hover::after {
		transition: all 0.5s;
		background-color: rgba(0, 0, 0, 0.3);
	}

	.category_panel img {
		display: block;
		width: 100%;
		height: 100%;
		-o-object-fit: cover;
		object-fit: cover;
		border-radius: 3px;
		position: relative;
	}
	.category_panel div
	{
		width: 80%;
		position: absolute;
		bottom: 15px;
		left: 50%;
		transform: translate(-50%, 0);
		z-index: 10;
		text-align: center;
		color: #fff;
		z-index: 10;
	}
	.category_panel h3
	{
		font-weight: 700;
		color: #fff;
		text-shadow: #333 1px 1px 5px, #333 -1px 1px 5px, #333 1px -1px 5px,
			#333 -1px -1px 5px;
	}
	.category_panel p {
		text-align: center;
		padding-top: 10px;
		margin-top: 10px;
		font-weight: 400;
		color: #fff;
		text-shadow: #333 1px 1px 5px, #333 -1px 1px 5px, #333 1px -1px 5px,
			#333 -1px -1px 5px;
		z-index: 10;
		border-top: 1px solid #fff;
	}
	.category_panel div.small
	{
		bottom: 5px;
	}
	.category_panel div.small h3
	{
		font-size:2rem;text-align: right;
	}
	.category_panel div.small p
	{
		font-size: 1.3rem;
		padding-top: 5px;
		margin-top: 8px;text-align: right;
	}

	/* ticket */
	/* FACTORY */
	.category_panel.type1 .pane1 {
		grid-column: 1 / 3;
		grid-row: 1 / 3;
	}

	.category_panel.type1 .pane2 {
		grid-column: 3 / 4;
		grid-row: 1 / 3;
	}

	.category_panel.type1 .pane3 {
		grid-column: 4 / 5;
		grid-row: 1 / 2;
	}

	.category_panel.type1 .pane4 {
		grid-column: 4 / 5;
		grid-row: 2 / 3;
	}

	/* ticket_goods */
	.category_panel.type2 .pane1 {
		grid-column: 3 / 5;
		grid-row: 1 / 3;
	}

	.category_panel.type2 .pane2 {
		grid-column: 1 / 2;
		grid-row: 1 / 2;
	}

	.category_panel.type2 .pane3 {
		grid-column: 2 / 3;
		grid-row: 1 / 2;
	}

	.category_panel.type2 .pane4 {
		grid-column: 1 / 2;
		grid-row: 2 / 3;
	}

	.category_panel.type2 .pane5 {
		grid-column: 2 / 3;
		grid-row: 2 / 3;
	}

	/* goods */
	.category_panel.type3 .pane1 {
		grid-column: 2 / 4;
		grid-row: 1 / 3;
	}

	.category_panel.type3 .pane2 {
		grid-column: 1 / 2;
		grid-row: 1 / 2;
	}

	.category_panel.type3 .pane3 {
		grid-column: 1 / 2;
		grid-row: 2 / 3;
	}

	.category_panel.type3 .pane4 {
		grid-column: 4 / 5;
		grid-row: 1 / 2;
	}

	.category_panel.type3 .pane5 {
		grid-column: 4 / 5;
		grid-row: 2 / 3;
	}

	.btn_area {
		padding: 20px 0;
		background: #f4f4f4;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 30px;
	}

	.btn_area a.more {
		display: block;
		width: 450px;
		border: 1px solid #2f2ff0;
		color: #2f2ff0;
		background: #fff;
		padding: 0.2em 0;
		border-radius: 5px;
		text-align: center;
	}

	.btn_area a.more:hover {
		color: #fff;
		background: #2f2ff0;
	}


	.btn_area a.more.voting {
		color: #fff;
		background: #f02f5f;
		border: 1px solid #f02f5f;
	}

	.btn_area a.more.voting:hover {
		background: #fff;
		color: #f02f5f;
	}

	.btn_area button.submit {
		max-width: 250px;
	}

	.btn_area button.submit:hover {
		color: #2f2ff0;
		background: #fff;
	}

	.btn_area button.cancel {
		max-width: 250px;
		border-color:#666;
		color: #666;
		background: #fff;
	}
	.btn_area button.cancel:hover {
		color: #fff;
		background: #666;
	}


	.btn_area a.back {
		width: 50%;
		max-width: 250px;
		font-size: 1.7rem;
		background: #b0b0b0;
		border: none;
		box-sizing: border-box;
		padding: 0.2em 0;
		font-weight: 700;
		border: 1px solid #b0b0b0;
		border-radius: 5px;
		color: #fff;
		min-height: 40px;
		cursor: pointer;
		line-height: 1;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.btn_area a.back:hover {
		color: #b0b0b0;
		background: #fff;
	}

	:is(.ticket, .goods) .btn_area a.more {
		color: #2f2ff0;
		border-color: #2f2ff0;
	}

	:is(.ticket_goods) .btn_area a.more {
		color: #d0323f;
		border-color: #d0323f;
	}

	.factory .btn_area a.more {
		color: #166116;
		border-color: #166116;
	}

	:is(.ticket, .goods) .btn_area a.more:hover {
		color: #fff;
		background: #2f2ff0;
	}

	:is(.ticket_goods) .btn_area a.more:hover {
		color: #fff;
		background: #d0323f;
	}

	.factory .btn_area a.more:hover {
		color: #fff;
		background: #166116;
	}

	.top_category .container .inner + .inner {
		margin-top: 60px;
	}

	/* ニュースリスト */
	.news_list {
		margin-top: 20px;
		/* margin-bottom: -15px; */
		padding: 0;
		border-bottom: 1px solid #ebeaea;
		outline: 15px solid #ffffff80;
		border-radius: 0.5px;
	}
	.news_list li{
		background-color: #ffffff80;
	}

	.news_list li a {
		display: flex;
		justify-content: flex-start;
		align-items: center;
		gap: 35px;
		border-top: 1px solid #ebeaea;
		padding: 16px 20px;
		color: #222;
	}

	.news_list li a:hover {
		background: #f4f4f4;
	}

	.news_list li a time {
		width: 110px;
	}

	.news_list li a .category {
		padding: 0.1em 0;
		width: 115px;
		text-align: center;
		color: #fff;
		background: transparent;
		border-radius: 5px;
		font-size: 1.2rem;
		opacity: 0.8;
	}

	.news_list li a .category.cate1 {
		background-color: #2f2ff0;
	}
	.news_list li a .category.cate2 {
		background-color: #9e30ff;
	}
	.news_list li a .category.cate3 {
		background-color: #cc26ab;
	}

	.news_list li a div {
		width: calc(100% - 110px - 115px - 35px * 2);
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	/* CONTACT */
	.top_contact .container {
		margin-top: 20px;
		margin-bottom: 80px;
		background: #f4f2ef;
		padding: 30px 30px;
	}

	.top_contact .container .guide_wrap ul{
		display: grid;
		grid-template-columns:repeat(4, 1fr);
		gap: 30px;
	}

	.top_contact .container .guide_wrap ul li{
		display: list-item;
	}

	.top_contact .container .guide_wrap ul li a{
		display: grid;
		grid-template-rows: subgrid;
		justify-items:center;
		gap:16px;
		width:100%;
		padding:80px 24px 24px;
		background-color: #fff;
		border:1px solid #ebebea;
		border-radius: 15px;
		position: relative;
		color:#333;
		outline-color: #f4f2ef;
	}
	.top_contact .container .guide_wrap ul li a::before
	{
		content:"";
		width:32px;
		height:32px;
		background-color: #2f2ff0;
		position: absolute;
		top:32px;
		mask-position: center;
		mask-size: contain;
		mask-repeat: no-repeat;
	}
	.top_contact .container .guide_wrap ul li.how_payment a::before
	{
		mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M192 160L192 144C192 99.8 278 64 384 64C490 64 576 99.8 576 144L576 160C576 190.6 534.7 217.2 474 230.7C471.6 227.9 469.1 225.2 466.6 222.7C451.1 207.4 431.1 195.8 410.2 187.2C368.3 169.7 313.7 160.1 256 160.1C234.1 160.1 212.7 161.5 192.2 164.2C192 162.9 192 161.5 192 160.1zM496 417L496 370.8C511.1 366.9 525.3 362.3 538.2 356.9C551.4 351.4 564.3 344.7 576 336.6L576 352C576 378.8 544.5 402.5 496 417zM496 321L496 288C496 283.5 495.6 279.2 495 275C510.5 271.1 525 266.4 538.2 260.8C551.4 255.2 564.3 248.6 576 240.5L576 255.9C576 282.7 544.5 306.4 496 320.9zM64 304L64 288C64 243.8 150 208 256 208C362 208 448 243.8 448 288L448 304C448 348.2 362 384 256 384C150 384 64 348.2 64 304zM448 400C448 444.2 362 480 256 480C150 480 64 444.2 64 400L64 384.6C75.6 392.7 88.5 399.3 101.8 404.9C143.7 422.4 198.3 432 256 432C313.7 432 368.3 422.3 410.2 404.9C423.4 399.4 436.3 392.7 448 384.6L448 400zM448 480.6L448 496C448 540.2 362 576 256 576C150 576 64 540.2 64 496L64 480.6C75.6 488.7 88.5 495.3 101.8 500.9C143.7 518.4 198.3 528 256 528C313.7 528 368.3 518.3 410.2 500.9C423.4 495.4 436.3 488.7 448 480.6z"/></svg>');
	}
	.top_contact .container .guide_wrap ul li.how_ticket a::before
	{
		mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M96 128C60.7 128 32 156.7 32 192L32 256C32 264.8 39.4 271.7 47.7 274.6C66.5 281.1 80 299 80 320C80 341 66.5 358.9 47.7 365.4C39.4 368.3 32 375.2 32 384L32 448C32 483.3 60.7 512 96 512L544 512C579.3 512 608 483.3 608 448L608 384C608 375.2 600.6 368.3 592.3 365.4C573.5 358.9 560 341 560 320C560 299 573.5 281.1 592.3 274.6C600.6 271.7 608 264.8 608 256L608 192C608 156.7 579.3 128 544 128L96 128zM448 400L448 240L192 240L192 400L448 400zM144 224C144 206.3 158.3 192 176 192L464 192C481.7 192 496 206.3 496 224L496 416C496 433.7 481.7 448 464 448L176 448C158.3 448 144 433.7 144 416L144 224z"/></svg>');
	}
	.top_contact .container .guide_wrap ul li.how_delivery a::before
	{
		mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M32 160C32 124.7 60.7 96 96 96L384 96C419.3 96 448 124.7 448 160L448 192L498.7 192C515.7 192 532 198.7 544 210.7L589.3 256C601.3 268 608 284.3 608 301.3L608 448C608 483.3 579.3 512 544 512L540.7 512C530.3 548.9 496.3 576 456 576C415.7 576 381.8 548.9 371.3 512L268.7 512C258.3 548.9 224.3 576 184 576C143.7 576 109.8 548.9 99.3 512L96 512C60.7 512 32 483.3 32 448L32 160zM544 352L544 301.3L498.7 256L448 256L448 352L544 352zM224 488C224 465.9 206.1 448 184 448C161.9 448 144 465.9 144 488C144 510.1 161.9 528 184 528C206.1 528 224 510.1 224 488zM456 528C478.1 528 496 510.1 496 488C496 465.9 478.1 448 456 448C433.9 448 416 465.9 416 488C416 510.1 433.9 528 456 528z"/></svg>');
	}
	.top_contact .container .guide_wrap ul li.how_faq a::before
	{
		mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576zM320 240C302.3 240 288 254.3 288 272C288 285.3 277.3 296 264 296C250.7 296 240 285.3 240 272C240 227.8 275.8 192 320 192C364.2 192 400 227.8 400 272C400 319.2 364 339.2 344 346.5L344 350.3C344 363.6 333.3 374.3 320 374.3C306.7 374.3 296 363.6 296 350.3L296 342.2C296 321.7 310.8 307 326.1 302C332.5 299.9 339.3 296.5 344.3 291.7C348.6 287.5 352 281.7 352 272.1C352 254.4 337.7 240.1 320 240.1zM288 432C288 414.3 302.3 400 320 400C337.7 400 352 414.3 352 432C352 449.7 337.7 464 320 464C302.3 464 288 449.7 288 432z"/></svg>');
	}
	.top_contact .container .guide_wrap ul li a::after
	{
		content:"";
		width:48px;
		height:48px;
		background-color: #2f2ff011;
		border-radius: 10px;
		position: absolute;
		top:24px;
	}
	.top_contact .container .guide_wrap ul li a:hover{
		outline:2px solid #2f2ff0;
	}

	/*============================
		banner list
	============================*/
	.top_fanclub_bn
	{
		max-width: 1200px;
		width: 100%;
		margin: 20px auto 80px;
		padding: 44px 32px;
		position: relative;
		background: linear-gradient(135deg, #EAE4F5 0%, #F0EAF8 30%, #FAF5FF 60%, #F5EEF8 80%, #E8E0F2 100%);
		overflow: hidden;
	}
	.top_fanclub_bn::after
	{
		content:"";
		position: absolute;
		inset: 0;
		top:-10%;
		width: 100%;
		height: 130%;
		pointer-events: none;
		background-image: url(/images/site/fcmember_bg.svg);
		background-size: cover;
		background-repeat: no-repeat;
	}
	.top_fanclub_bn .container
	{
		padding:0
	}
	.bn_slider
	{
		width: 100%;
		height: 100%;
	}

	.bn_slider li
	{
		margin-right: 5px;
		margin-left: 5px;
		border:3px solid #fff;
		border-radius: 10px;
	}
	.bn_slider img
	{
		width: 100%;
		object-fit: cover;
		border-radius: 8px;
	}


	/*============================
		Contents(SUB)
	============================*/
	.cmn_contents .inner {
		margin-bottom: 50px;
		padding:24px 24px 32px;
		border-radius: 10px;
		background-color: rgba(255, 255, 255, 0.5);
	}

	.cmn_contents :is(.thanks, .sorry) {
		margin: 50px auto 50px;
	}

	.cmn_contents :is(.thanks, .sorry) p {
		line-height: 1.8;
	}

	/* パンくず */
	.bc__area
	{
		max-width: 1200px;
		margin:16px auto 0;
	}

	.breadcrumbs ul
	{
		max-width:1200px;
		margin:0 10px;
		line-height: 1.3;
	}
	.breadcrumbs ul li
	{
		display:inline;
		/* margin-right:10px;
		padding-left:10px; */
		position: relative;
		font-size:1.3rem;
		color:#666;
	}
	/* .breadcrumbs ul li:nth-child(n+2)::before
	{
		content: " > ";
		position: absolute;
		top:50%;
		transform:translate( 0, -50%);
		left:-7px;
	} */
	.breadcrumbs ul li.arw
	{
		margin: 0 .5em;
	}
	.breadcrumbs ul li a
	{
		color:#666;
		text-decoration: underline;
	}
	.breadcrumbs ul li a:hover
	{
		text-decoration: none;
	}

	:is(.guide_wrap,.faq_wrap) h3
	{
		font-size: 2.4rem;
		margin-top: 40px;
		margin-bottom: 16px;
		display: flex;
		justify-content: flex-start;
		align-items: center;
		padding-top:5px;
		padding-bottom:0px;
		border-bottom: 1px solid #2f2ff0;
	}
	:is(.guide_wrap,.faq_wrap) h3::before
	{
		content: "";
		display: block;
		width: 5px;
		height: 35px;
		background: #2f2ff0;
		margin-right: 10px;
	}

	:is(.guide_wrap,.faq_wrap) h4
	{
		font-size: 2rem;
		margin-top: 40px;
		margin-bottom: 16px;
		padding-top:5px;
		padding-bottom:0px;
		border-bottom: 1px solid #2f2ff0;
	}
	.guide_wrap dl
	{
		margin-bottom:0;
	}
	.guide_wrap dl dt
	{
		font-weight: 700;
		margin-top: 24px;
	}
	.guide_wrap dl dd
	{
		line-height: 1.8;
	}
	.guide_wrap :not(aside) p
	{
		line-height: 1.8;
		margin-bottom: 25px;
	}
	.guide_wrap aside p
	{
		line-height: 1.8;
		margin-bottom: 0px;
		font-size: 1.5rem;
		color:#222;
		padding-left: 1.3em;;
	}
	.guide_wrap p strong
	{
		font-weight: 700;
	}
	.guide_wrap a
	{
		color: #2f2ff0;
		/* text-decoration: underline; */
	}
	.guide_wrap a:hover
	{
		text-decoration: none;
	}
	.guide_wrap ol
	{
		list-style-type: decimal;
    	padding-left: 1.3em;
	}
	.guide_wrap ol li
	{
		margin-bottom: 0.5em;
	}
	ul.pay_flow
	{
		list-style: disc;
		padding-left: 1.3em;
	}
	ul.pay_flow li
	{
		margin-bottom: 0.5em;
	}
	ul.pay_flow li::marker
	{
		color: #2f2ff0;
	}


	section.sub_bn {
		margin-top: 25px;
		padding: 0 0px;
	}

	/* item_search */
	.search_wrap {
		margin: 15px auto 0;
		padding: 25px 30px;
		background: #f4f4f4;
		font-size: 1.6rem;
	}
/*
	.search_wrap .item_category_link {
		display: flex;
		justify-content: flex-start;
		align-items: center;
		gap: 20px;
		margin-bottom: 20px;
	}

	.search_wrap .item_category_link a {
		min-width: 160px;
		line-height: 1;
		padding: 10px;
		background: #fff;
		border-radius: 7px;
		display: block;
		text-align: center;
		border: 1px solid #2f2ff0;
		color: #2f2ff0;
	}
*/

	.search_wrap .item_category_link {
		display: flex;
		justify-content: flex-start;
		flex-wrap: wrap;
		align-items: center;
		gap: 15px 20px;
		margin-bottom: 20px;
	}

	.search_wrap .item_category_link a {
		padding: 5px 15px;
		width: fit-content;
		font-size:1.6rem;
		line-height: 1;
		background: #fff;
		border-radius: 7px;
		display: block;
		text-align: center;
		border: 1px solid #2f2ff0;
		color: #2f2ff0;
	}
	.search_wrap .item_category_link a.on,
	.search_wrap .item_category_link a:hover {
		background: #2f2ff0;
		color: #fff;
	}

	.search_wrap .item_category_link a.all {
		min-width: 100px;
		background: #fff;
		border: 1px solid #222;
		color: #222;
	}

	.search_wrap .item_category_link a.all.on,
	.search_wrap .item_category_link a.all:hover {
		background: #222;
		color: #fff;
	}

	.search_wrap .search_inner {
		display: flex;
		justify-content: flex-start;
		align-items: center;
		gap: 20px;
	}

	.search_wrap .search_inner .name {
		min-width: 280px;
	}

	.search_wrap .search_inner .price_range {
		display: flex;
		justify-content: flex-start;
		align-items: center;
		gap: 5px;
	}

	.search_wrap .search_inner .price_range > div {
		max-width: 157px;
		position: relative;
		z-index: 0;
	}

	.search_wrap .search_inner .price_range > div::after {
		content: "￥";
		color: #222;
		position: absolute;
		top: 0;
		left: 0;
		top: 50%;
		left: 0.5em;
		transform: translate(0, -50%);
		z-index: 999;
	}

	.search_wrap .search_inner .select.other {
		margin-right: auto;
	}

	.search_wrap .search_inner .price_range > div input {
		padding-left: 1.5em;
	}

	.search_wrap .search_inner .search_btn {
		width: 150px;
	}
	.search_tgl
	{
		display:none;
	}

	.list_sort {
		margin: 10px 0 60px;
	}

	.list_sort ul {
		position: relative;
		display: flex;
		justify-content: flex-end;
		gap: 20px;
		align-items: center;
	}

	.list_sort ul:before {
		content: "\f03a";
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		color: #222;
	}

	.list_sort ul a {
		color: #2f2ff0;
		font-weight: 700;
	}

	.list_sort ul a:is(.sort_down, .sort_up) {
		position: relative;
		padding-left: 1em;
	}

	.list_sort ul a.sort_down:before {
		content: "\f0dd";
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		color: #222;
		display: inline-block;
		position: absolute;
		top: -40%;
		left: 0;
	}

	.list_sort ul a.sort_up:before {
		content: "\f0de";
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		color: #222;
		display: inline-block;
		position: absolute;
		top: 0%;
		left: 0;
	}

	/* item_list */
	.item_list {
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 30px;
	}

	.item_list li {
		width: calc((100% - 30px * 3) / 4);
		text-align: center;
		position: relative;
	}
	.item_list.pickup li {
		width: calc((100% - 30px * 2) / 3);
	}

	.item_list li .item_status {
		font-size: 1.3rem;
		line-height: 1;
		padding: 4px 5px;
		margin-right: 10px;
		display: inline-block;
		text-align: center;
		color: #fff;
		position: absolute;
		top: -5px;
		left: -5px;
		z-index: 10;
	}
	.item_list li a {
		display: block;
		position: relative;
		padding:0;
		background-color: rgba(255, 255, 255, 0.5);;
		border-radius: 10px;
		box-shadow: 0px 3px 5px rgba(94, 94, 94, 0.4);
		overflow: hidden;
	}
	.item_list li a:hover {
		background-color: #fff;
		box-shadow: 5px 5px 15px #5e5e5e86;
		opacity: 1;
	}
	.item_list li a:hover figure img {
		transform: scale(1.03);
	}

	.item_list li .item_status.comingsoon {
		background: #a7a7a7;
	}

	.item_list li .item_status.end {
		background: #a7a7a7;
	}

	.item_list li .item_status.soldout {
		background: #a7a7a7;
	}

	.item_list li .item_status.mark {
		background: #5656f0;
		font-weight: 700;
	}

	.item_list li .live {
		font-size: 1.2rem;
		width:40px;
		height:40px;
		border-radius: 50%;
		line-height: 40px;
		padding:0;
		margin-right: 0px;
		display: inline-block;
		text-align: center;
		color: #fff;
		position: absolute;
		top: -7px;
		right: -5px;
		z-index: 10;
		background: #ff0062;
		font-weight: 700;
	}

	.item_list li figure {
		width: 100%;
		aspect-ratio: 540 / 376;
		overflow: hidden;
		position: relative;
		/* border-radius: 3px; */
	}

	.item_list li figure img {
		width: 100%;
		height: 100%;
		object-fit: contain;
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		transition: 0.3s;
		display: block;
		/* background-color: #e8f0ec; */
		background-color: #fff;
		border-radius: 8px 8px 0 0;
	}
	/*
	.item_list li figure:hover img {
		transform: scale(1.1);
	}
	*/
/*

	.item_list li h3 {
		font-size: 1.4rem;
		font-weight: 400;
		padding: 8px 20px 8px 10px;
		margin: 0;
		text-align: left;
		/* white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis; */
/*
		line-height: 1.5;
		min-height: 20px;
		color:#000;
	}
*/

	.item_list li h3 {
		font-size: 1.4rem;
		font-weight: 400;
		padding: 0px 20px 0px 20px;
		margin: 10px 0 10px 0;
		border-radius:8px;
		text-align: left;
		line-height: 1.6;
		min-height: 44.78px;
		color:#000;
		font-weight: 600;
		overflow: hidden;
		display: -webkit-box;
		text-overflow: ellipsis;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}

	.item_list li span
	{
		font-size: 1.4rem;
		line-height: 1;
		padding: 0px 20px 0px 20px;
		margin-bottom: 8px;
		display: block;
		text-align: left;
		color: #8b8b8b;
	}
	.item_list li span:empty
	{
		padding: 0px;
		margin-bottom: 0px;
	}
	.item_list li span.type_name
	{
		font-size: 1.3rem;
		line-height: 1;
		position: relative;
		top:-10px;
		margin-bottom:10px;
		color: #666;
	}

	.item_list li .price {
		font-size: 1.8rem;
		font-weight: 700;
		letter-spacing: 0.1em;
		padding: 8px 20px 16px 20px;
		display: flex;
		justify-content: flex-end;
		align-items: right;
		letter-spacing: 0;
		min-height: 18px;
		line-height: 1;
		min-height: 20px;
		color:#2f2ff0;
	}

	.item_list li .price span {
		font-size: 1.4rem;
		line-height: 1;
		padding: 4px 5px;
		margin-left: 10px;
		background: #da0044;
		display: inline-block;
		text-align: center;
		color: #fff;
	}

	.status_label {
		font-size: 1.4rem;
		padding: 0.1rem;
		min-height: 30px;
		margin: 0 auto 8px;
		width: 100%;
		font-weight: 400;
	}

	.status_label.comingsoon {
		/* background: #2794ec;
			color:#fff; */
		/* background: #fff;
			color:#8b8b8b; */
		background: #fff7e9;
		color: #faaa5f;
	}

	.status_label.end {
		background: #f4f4f4;
		color: #808080;
		/* background: #fff;
			color:#aa3305; */
	}

	.status_label.soldout {
		/* background: #f5eee0;
			color:#f78419; */
		/* background: #fff;
			color:#aa3305; */
		background: #f1f1f1;
		color: #999;
	}

	.status_label.discontinued {
		/* background: #f5eee0;
			color:#f78419; */
		/* background: #fff;
			color:#aa3305; */
		background: #f1f1f1;
		color: #999;
	}

	.item_list li .tag {
		font-size: 1.3rem;
		font-weight: 400;
	}

	.item_list li .tag a {
		display: inline-block;
		margin-right: 0.5em;
	}

	.category_navi .inner {
		display: flex;
		align-items: flex-start;
		justify-content: center;
		gap: 30px;
		margin-bottom: 45px;
	}

	.category_navi .inner h4 {
		font-weight: 400;
		color: #222;
	}

	/* ページャー */
	.pager {
		margin: 50px auto 0;
		max-width: 1200px;
		width: 80%;
	}

	.pager .page_button {
		display: flex;
		align-items: stretch;
		justify-content: center;
		/* gap: 30px; */
		gap: 15px;
	}

	.pager .page_button li a,
	.pager .page_button li.active {
		display: block;
		border: 1px solid #999;
		text-align: center;
		padding: 2px 10px 1px;
		min-width: 20px;
		color: #999;
		font-size: 1.2rem;
	}

	.pager .page_button li a:hover,
	.pager .page_button li.active {
		background: #999;
		color: #fff;
	}

	.pager .page_button li a:has(i)
	{
		border-color:transparent;
	}

	/* item_detail */
	:is(.item_mark,.item_comingsoon,.item_end,.item_soldout)
	{
		position: absolute;
		top: 5px;
		right: 20px;
		font-size: 1.4rem;
		line-height: 1;
		padding: 4px 5px;
		margin-left: 10px;
		background: #5656f0;
		font-weight: 700;
		display: inline-block;
		text-align: center;
		color: #fff;
		border-radius: 0px;
	}
	.item_comingsoon
	{
		background: #a7a7a7;
		color: #fff;
	}
	.item_end
	{
		background: #a7a7a7;
		color: #fff;
	}
	.item_soldout
	{
		background: #a7a7a7;
		color: #fff;
	}

	.item_detail_wrap {
		display: flex;
		justify-content: space-between;
		gap: 40px;
		margin-top: 56px;
		margin-bottom: -15px;
	}

	/* slider */
	.slick-initialized .slick-slide
	{
		display: block;
		background: transparent;
		/* background-image:  radial-gradient(#f1f1ff 5px, transparent 5px), radial-gradient(#f1f1ff 5px, #ffffff 5px); */
		background-size: 40px 40px;
		background-position: 0 0,20px 20px;
	}
	.slider_wrap {
		max-width: 450px;
		width: 100%;
		height:100%;
		margin: 0 auto;
		position: sticky;
		top: 120px;
	}
	.slider_wrap > ul {
		aspect-ratio: 540 / 376;
	}

	.slider_wrap .live_label span
	{
		font-size: 1.45rem;
		letter-spacing: 0.1em;
		width: 50px;
		height: 50px;
		border-radius: 50%;
		line-height: 50px;
		margin-right: 0px;
		display: inline-block;
		text-align: center;
		color: #fff;
		position: absolute;
		top: -16px;
		right: -15px;
		z-index: 10;
		background: #ff0062;
		font-weight: 700;
	}
	@media screen and (max-width: 768px)
	{
		.slider_wrap .live_label span
		{
			right: 5px;
		}
	}

	.slider_wrap .slick-slide {
		height: auto;
		overflow: hidden;
	}

	.slider_wrap .slick-slide img {
		display: block;
		width: 100%;
		height:auto;
		aspect-ratio: 540 / 376;
		object-fit: contain;
		border-radius: 3px;
		/* background-color: #ffffff54; */
		background-color: transparent;
	}

	.slider_wrap .thumbs_dots {
		margin: 20px 0 0;
	}

	.slider_wrap .thumbs_list li {
		display: inline-block;
		width: calc((100% - 60px) / 4);
		height: 100px;
		padding: 0;
		margin-right: 20px;
		opacity: 0.6;
		cursor: pointer;
		transition: opacity 0.3s;
		border-radius: 3px;
		background-color: #f1f1ff!important;
		background-position: center center!important;
		background-size: contain!important;
		background-repeat: no-repeat!important;
	}

	.slider_wrap .thumbs_list li:nth-child(3n) {
		margin-right: 0px;
	}
	.slider_wrap .thumbs_list li:nth-child(n + 4) {
		margin-top: 10px;
	}

	.thumbs_list li.slick-active {
		opacity: 1;
	}

	/* item_info */
	.item_info {
		/* width: 630px; */
		width:calc( 100% - 450px - 40px);
		height:100%;
		position: relative;
		padding:16px 24px;
		background-color: rgba(255, 255, 255, 0.5);
		border-radius: 10px;
	}
	#item_title span
	{
		display: flex;
		align-items: center;
		justify-content: center;
		width: fit-content;
		margin-top:8px;
		padding:3px 15px;
		font-size:1.5rem;
		border:2px solid #2f2ff0;
		/* background-color:#2f2ff0; */
		/* color:#fff; */
		background-color: #fff;
		color:#2f2ff0;
		border-radius: 10px;
		letter-spacing: 0.1em;
	}

	.item_info_inner {
		margin-bottom: 20px;
		font-size: 1.5rem;
	}
	.item_info_inner strong
	{
		font-weight: 700;
	}
	.item_info_inner .item_info_read
	{
		font-size: 1.5rem;
		line-height: 1.7;
		margin-bottom:24px;
	}

	.item_info_inner dl {
		display: flex;
		justify-content: flex-start;
		align-items: center;
		padding: 15px 0;
		border-bottom: 1px dotted #aaa;
	}

	.item_info_inner dl dt {
		width: 25%;
		font-weight: 600;
		color: #444;
	}
	.item_info_inner dl dt span{
		color: #b1b1b1;
		font-size:1.3rem;
		line-height: 1;
		display: block;
	}

	.item_info_inner dl dd {
		width: 80%;
		color:#000;
		line-height: 1.7;
	}
	.item_info_inner dl:not(:has(dt)) dd {
		width: 100%;
	}

	.item_info_inner dl.price dd > * {
		display: inline-block;
	}

	.item_info_inner dl.price dd .regular_price {
		font-size: 2.4rem;
		text-decoration: line-through;
		margin-right: 1em;
	}

	.item_info_inner dl.price dd .sale_price {
		font-size: 2.4rem;
		margin-right: 0;
	}

	.item_info_inner dl.price dd .tax_type {
		font-size: 1.3rem;
		margin-right: 1em;
		position: relative;
		margin-top: -4px;
	}

	.item_info_inner dl.price dd .discount {
		font-size: 1.4rem;
		line-height: 1;
		padding: 4px 5px;
		margin-left: 10px;
		background: #da0044;
		display: inline-block;
		text-align: center;
		color: #fff;
		border-radius: 5px;
	}

	.item_info_inner dl.tag dd a {
		display: inline-block;
		margin-right: 1em;
		font-size: 1.7rem;
	}

	.item_info_inner dl.description dd {
		font-size: 1.6rem;
		line-height: 1.6;
	}

	.item_info_inner dl.size dd select {
		width: 100px !important;
		min-width: auto;
	}



	.type_select ul {
		display: flex;
		justify-content: flex-start;
		gap:10px 20px;
		flex-wrap: wrap;
	}

	.type_select ul li {
		width: fit-content;
		padding: 0;
	}

	.type_select ul li a
	{
		display: block;
		padding: 3px 15px;
		font-size: 1.5rem;
		border: 2px solid #2f2ff0;
		border-radius: 10px;
	}
	.type_select ul li a:hover
	{
		background-color: #e0e0ff;
	}
	.type_select ul li a.active
	{
		background-color:#2f2ff0;
		color:#fff;
	}
	.type_select ul li a:not(.active):hover
	{
		background-color: #e0e0ff;
	}
	.sub_contents h2 span.at_delivery:before,
	.type_select ul li a.at_delivery:before
	{
		content:"\f0d1";
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		margin-right: 0.5em;
	}
	.sub_contents h2 span.at_store:before,
	.type_select ul li a.at_store:before
	{
		content:"\f54e";
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		margin-right: 0.5em;
	}

	.howto
	{
		list-style: decimal;
		padding-left:1em;
		margin-bottom:1em;
	}
	.howto li
	{
		margin-bottom:0.5em;
	}


	.sub_contents .news
	{
		margin-top:56px;
	}


	/* add_cart */
	.add_cart {
		width: 100%;
		padding: 20px;
		background: #fff;
		display: flex;
		align-items: center;
		justify-content:space-evenly;
		flex-wrap: wrap;
		gap: 24px;
		border-radius: 8px;
	}
	.add_cart strong {
		font-weight: 700;
	}

	.favorite-fa-heart {
		font-size: 23px;
		cursor: pointer;
		color: #ffaaee;
		margin-left: 0px;
	}

	.favorite-fa-heart.heart {
		-webkit-animation: heartAnimation 0.2s;
		animation: heartAnimation 0.2s;
		color: #ffaaee;
	}

	.favorite {
		position: relative;
	}

	.tooltips {
		display: none;
		opacity: 0;
		position: absolute;
		padding: 5px 5px;
		font-size: 1.2rem;
		line-height: 1;
		text-align: center;
		color: #fff;
		border-radius: 5px;
		background: #ffaaee;
		width: 100px;
		transition: all 0.3s ease;
		top: -35px;
		left: 50%;
		transform:translate(-50%, 0);
		margin-left: 0px;
	}

	.tooltips:after {
		content: "";
		position: absolute;
		top: 100%;
		left: 50%;
		border: 8px solid transparent;
		border-top: 8px solid #ffaaee;
		margin-left: -8px;
	}

	.favorite:hover .tooltips {
		display: inline-block;
		opacity: 1;
		-webkit-animation: fadeIn 0.3s ease-in 0s forwards;
		animation: fadeIn 0.3s ease-in 0s forwards;
	}

	.favorite_del a
	{
		margin-top:10px;
		display: block;
		width:100%;
		font-size:1.2rem;
		padding:0.2em 0;
		text-align: center;
		background:#f4f3f2;
		color:#666;
	}
	.favorite_del a .favorite-fa-heart
	{
		font-size:1.2rem;
		margin-right:0.5em;
		margin-left:0;
	}

	.add_cart .item_num {
		display: flex;
		align-items: baseline;
		gap: 1em;
	}

	.add_cart .item_num p {
		margin-bottom: 0;
		font-size: 1.3rem;
		white-space: nowrap;
	}

	.add_cart .item_num select
	{
		width: 100px !important;
		min-width: auto;
	}

	.add_cart .buy_btn button {
		font-size: 1.5rem;
		text-align: center;
		border-radius: 5px;
		padding: 0.2em 0;
		width: 150px;
		min-width: 120px;
		line-height: 1;
	}
	.add_cart .buy_btn button span {
		font-size: 1rem;
		display: block;
		opacity: 0.8;
		margin-top:0.1em;
	}
	.add_cart .buy_btn button::before
	{
		content: "\f218";
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		margin-right: 0.5em;
	}

	.shop__btn.btn_wrap
	{
		text-align: center;
		margin-top:100px;
		margin-bottom:-75px;
	}

	/* .shop__btn.btn_wrap a::before
	{
		content:"\f060";
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		margin-right: 0.5em;
		} */

	.add_cart div:is( .comingsoon, .end, .soldout, .discontinued )
	{
		width:70%;
		text-align: center;
		font-weight: 700;
		color:#a7a7a7;
		font-size:1.7rem;
	}
	.add_cart div:is( .comingsoon, .end, .soldout ):after
	{
		font-size:1.5rem;
		font-weight: 400;
		margin-left:0.8em;
	}
	.add_cart div.comingsoon:after
	{
		content:"(商品発売までしばらくお待ちください。)"
	}
	.add_cart div.end:after
	{
		content:"(現在お取り扱いしておりません。)"
	}
	.add_cart div.soldout:after
	{
		content:"(次回入荷までお待ちください。)"
	}


	.item_point {
		width: 100%;
		padding: 30px 0;
		background: #eeedeb;
		margin-bottom: 60px;
	}

	.item_point .container {
		padding: 0 20px;
		display: flex;
		gap: 40px;
		justify-content: center;
	}

	.item_point .point_unit {
		display: flex;
		gap: 15px;
	}

	.item_point .point_unit figure {
		width: 200px;
	}

	.item_point .point_unit figure img {
		-o-object-fit: cover;
		object-fit: cover;
		border-radius: 3px;
	}

	.item_point .point_unit > div {
		width: calc(100% - 15px);
		font-size: 1.5rem;
		line-height: 1.5;
	}

	.return_list {
		padding-top:40px;
		text-align: center;
	}

	.slider_wrap .return_list {
		padding-top:100px;
	}

	.return_list a {
		display: inline-block;
		letter-spacing: -1px;
		position: relative;
	}

	.return_list a::after {
		content: "";
		position: absolute;
		bottom: 0px;
		left: 0;
		width: 100%;
		height: 1px;
		background: repeating-linear-gradient(
			90deg,
			#fff,
			#fff 2px,
			#aaa 2px,
			#aaa 4px
		);
		transform: scale(1, 1);
		transition: transform 1s;
	}

	.return_list a:hover::after {
		background: #aaa;
		transform: scale(1, 1);
	}

	/* login */
	.login {
		display: flex;
		justify-content: space-between;
		gap: 50px;
	}

	.login .login_l {
		max-width: 850px;
		width: 100%;
	}

	.login .login_l h2 {
		border-bottom-color: #bfddf0;
		margin-bottom: 0;
	}

	.login .login_form {
		padding: 30px 40px;
		/* background: #f8f8f8; */
	}

	.login .login_form dl {
		display: flex;
		align-items: center;
		gap: 30px;
		margin-bottom: 30px;
	}

	.login .login_form dt {
		width: 90px;
	}

	.login .login_form dd {
		width: calc(100% - 100px - 30px);
	}

	.login .login_form .btn_area {
		padding: 0;
		background: transparent;
		gap: 30px;
	}

	.login .login_form .btn_area button {
		display: block;
		width: fit-content;
		border: 1px solid;
		padding: 5px 30px;
		border-radius: 5px;
		text-align: center;
		font-weight: 700;
		color: #fff;
		background: #2f2ff0;
		border-color: #2f2ff0;
	}

	.login .login_form .btn_area button:hover {
		color: #2f2ff0;
		background: #fff;
	}

	.login .login_r {
		width: calc(100% - 700px);
	}

	.login .login_r > div {
		margin-top: 40px;
	}

	.login .login_r > div h3 {
		font-size: 1.5rem;
		font-weight: 700;
		text-align: left;
		margin-bottom: 15px;
		position: relative;
		color: #222;
	}

	.login .login_r > div h3:before {
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		margin-right: 0.5em;
		display: inline-block;
		color: #bbb;
	}

	.login .login_r > div h3.entry:before {
		content: "\f007";
	}

	.login .login_r > div h3.passwd:before {
		content: "\f023";
	}

	.login .login_r > div p {
		font-size: 1.4rem;
	}

	.login .login_r > div a {
		font-size: 1.5rem;
		font-weight: 700;
		width: -webkit-fit-content;
		width: -moz-fit-content;
		width: fit-content;
		display: inline-block;
		position: relative;
	}

	.login .login_r > div a::after {
		position: absolute;
		bottom: 0;
		left: 0;
		content: "";
		width: 100%;
		height: 1px;
		background: #2f2ff0;
		transform: scale(1, 1);
		transform-origin: left top;
		transition: transform 0.3s;
	}

	.login .login_r > div a:hover::after {
		transform: scale(0, 1);
		transform-origin: right top;
	}

	/* remainder */
	.login.remainder
	{
		display: block;
		margin-top: 56px;
	}
	.login.remainder .login_form dt {
		width: 150px;
	}

	.login.remainder .login_form dd {
		width: calc(100% - 160px - 30px);
	}

	/* policy */
	.policy {
		margin-bottom: 50px;
	}

	.policy h3 {
		font-size: 1.7rem;
		font-weight: 700;
		text-align: left;
		margin: 2em auto 0.5em;
		padding: 10px 0 5px;
		color: #222;
		border-bottom: solid 2px #bfddf0;
	}

	.policy aside {
		font-size: 1.5rem;
	}

	.policy ol {
		list-style-type: decimal;
		padding-left: 1.3em;
	}

	.policy ol li {
		margin-bottom: 0.3em;
	}

	.policy ul {
		list-style-type: disc;
		padding-left: 1.3em;
	}

	.policy ul li {
		margin-bottom: 1em;
	}

	.policy a {
		font-size: 1.5rem;
		font-weight: 700;
		width: -webkit-fit-content;
		width: -moz-fit-content;
		width: fit-content;
		display: inline-block;
		position: relative;
	}

	.policy a:after {
		position: absolute;
		bottom: 0;
		left: 0;
		content: "";
		width: 100%;
		height: 1px;
		background: #156abb;
		transform: scale(1, 1);
		transform-origin: right top;
		transition: transform 0.3s;
	}

	.policy a:hover:after {
		transform: scale(0, 1);
	}

	/* member */
	.member {
		/* margin-top: 56px; */
		margin-bottom: 50px;
		position: relative;
		padding:24px 24px;
		background-color: rgba(255, 255, 255, 0.5);
		border-radius: 10px;
	}

	.member h2 {
		width: 100%;
		font-size: 3.9rem;
		/* border-bottom: 5px solid #ccc; */
		padding: 0 0 16px;
		line-height: 1.3;
		margin-bottom: 32px;
		font-weight: 400;
	}

	/* .member > p {
		position: absolute;
		top: 10px;
		left: 150px;
	} */
	.member.address h3
	{
		text-align: left;
		font-weight: 700;
		font-size: 2rem;
		margin-top: 30px;
		/* margin-bottom: 25px; */
		margin-bottom: 15px;
		color: #222;
	}
	.member.address h3.my_info
	{
		border-bottom: 5px solid #f4d7ee;
		margin-bottom: 0;
		padding: 15px 0 15px;
	}

	.member.address table.tbl_frm
	{
		border-top: 1px dotted #aaa;
	}
	.member.address table.tbl_frm + .btn_area
	{
		margin-bottom: 40px;
	}
	.member.address table.tbl_frm + .btn_area button.del
	{
		background: #cc0000;
		border-color:#cc0000;
		color:#fff;
		max-width: 250px;
	}
	.member.address table.tbl_frm + .btn_area button.del:hover
	{
		background:#fff;
		border-color:#cc0000;
		color: #cc0000;
	}
	.member.address aside
	{
		padding-left:0;
	}

	/*============================
		カート
	============================*/
	.guide_text {
		margin-bottom: 2em;
	}

	.tbl_cart
	{
		width: 100%;
		margin: 15px auto 40px;
		border: none;
		border-collapse: collapse;
		font-size: 1.5rem;
	}

	.tbl_cart tr
	{
		border-bottom: 1px solid #cccccc;
	}

	.tbl_cart th
	{
		margin: 0;
		vertical-align: middle;
		font-weight: bold;
		padding: 5px 20px;
		background: #f4f3f2;
		border-top: 1px solid #cccccc;
		border-left: 1px dashed #cccccc;
	}

	.tbl_cart th.photo {
		border-left: none;
		width: 13%;
	}

	.tbl_cart th.price {
		width: 15%;
	}

	.tbl_cart th.number_select
	{
		width: 20%;
	}
	.tbl_cart th.number
	{
		width: 13%;
	}

	.tbl_cart th.point {
		width: 10%;
	}

	.tbl_cart th.subtotal {
		width: 15%;
	}
	.tbl_cart tr:is(.tr_subtotal, .tr_point, .tr_coupon, .tr_delivery, .tr_fee, .tr_total) th
	{
		border-left: none;
		text-align: right;
		padding-right:2em;
	}

	.tbl_cart td {
		padding: 10px 20px;
		margin: 0;
		text-align: left;
		vertical-align: middle;
		background: #fff;
		border-left: 1px dashed #cccccc;
		line-height: 1.5;
	}
	.tbl_cart tr:is(.tr_subtotal, .tr_point, .tr_coupon, .tr_delivery, .tr_fee, .tr_total) td
	{
		text-align: right;
	}

	.tbl_cart td.photo {
		text-align: center;
		border-left: none;
	}
	.tbl_cart td.photo a p {
		margin-top:5px;
		margin-bottom:0;
		font-size: 1.3rem;
		letter-spacing: 0.05em;
	}

	.tbl_cart td.price {
		text-align: right;
	}

	.tbl_cart td.cart_change {
		text-align: right;
		margin-right: 5px;
	}

	.tbl_cart td.cart_change form {
		display: flex;
		justify-content: space-between;
		gap: 0px;
	}

	.tbl_cart td.cart_change select {
		min-width: auto;
		width: 45%;
		max-width: 45%;
		margin-right: 5%;
		font-size: 1.7rem;
		position: relative;
		top: -1px;
	}

	.tbl_cart td.cart_change button[value="edit"] {
		font-size: 1.4rem;
		min-width: auto;
		width: 30%;
		max-width: 30%;
		padding: 0.2em 0px;
	}

	.tbl_cart td.cart_change button[value="del"] {
		min-width: auto;
		width: 10%;
		max-width: 10%;
		border: none;
		padding: 0;
		cursor: pointer;
		background: none;
		margin-left: 5%;
		margin-top: -5px;
	}

	.tbl_cart td.cart_change button i {
		font-size: 1.6em;
		position: relative;
		top: 3px;
		color: gray;
	}

	.tbl_cart td.point {
		text-align: center;
	}
	.tbl_cart td.subtotal {
		text-align: right;
		font-size:1.2em;
	}
	.tbl_cart td.subtotal:has(.soldout)
	{
		justify-content: center;
	}
	.tbl_cart td.subtotal .soldout
	{
		color:#cc0000;
		text-align: center;
		font-size:1.5rem;
	}
	/*----------------------------
	ボタン
	-----------------------------*/
	.btn_wrap
	{
		margin-top:40px;
	}
	.submit_btn
	{
		display: flex;
		flex-direction: row-reverse;
		justify-content: center;
		align-items: center;
		gap:30px;
		margin-bottom:30px;
	}
	.submit_btn button
	{
		width: 100%;
		min-height: 41px;
		max-width: 350px;
		appearance: none;
		font-size: 1.7rem;
		background: #2f2ff0;
		border: none;
		box-sizing: border-box;
		padding: 0.2em 0;
		font-weight: 700;
		border: 1px solid #2f2ff0;
		border-radius: 5px;
		color: #fff;
		min-height: 40px;
		cursor: pointer;
		line-height: 1;
	}
	.submit_btn button.back
	{
		background: gray;
		border: 1px solid gray;
	}

	/*============================
		配送選択
	============================*/
	.delivery
	{
		width:100%;
		margin-bottom:60px;
	}
	.point_coupon
	{
		width:100%;
		margin-bottom:50px;
	}
	:is(.delivery, .point_coupon, .payment, .cart_fix, .delivery_fix) > h3
	{
		text-align: left;
		/* font-weight: 700; */
		font-weight: 400;
		font-size:2rem;
		margin-bottom:15px;
		color:#222;
	}
	.tbl_select
	{
		width:100%;
		table-layout: fixed;
		border-top: 1px solid #cccccc;
		font-size: 1.5rem;
		/* margin:0 auto 60px; */
		margin:0 auto 40px;
	}
	.tbl_select tr
	{
		width: 100%;
		border-bottom: 1px solid #cccccc;
	}
	.tbl_select th
	{
		width:20%;
		text-align: left;
		/* padding: 10px 20px; */
		padding: 15px 50px 15px 20px;
		background: #f4f3f2;
		position: relative;
		font-weight: 700;
		vertical-align: top;
	}
	.tbl_select th .required
	{
		display: inline-block;
		font-size: 1rem;
		color: #fff;
		padding: 5px 5px;
		line-height: 1;
		background: #cc0000;
		border-radius: 5px;
		position: absolute;
		right: 30px;
		top: 20px;
	}
	.tbl_select th a
	{
		font-weight: 400;
		display: inline-block;
		margin-top: 1.5em;
		font-size: 1.4rem;
		text-align: center;
		border-radius: 5px;
		padding: 0.2em 0;
		max-width: 150px;
		display: block;
		/* white-space: nowrap; */
		border:1px solid #ccc;
		background: #fff;
		color:#222;
	}
	.tbl_select td
	{
		/* padding: 10px 20px; */
		padding: 15px 20px;
		background: #fff;
	}
	.tbl_select td.address dl
	{
		border:1px solid #ccc;
		display: flex;
		align-items: stretch;
		justify-content: flex-start;
		gap:25px;
		margin-bottom:15px;
		padding:2px;
		border-radius: 5px;
	}
	.tbl_select td.address dl:last-child
	{
		margin-bottom:0;
	}
	.tbl_select td.address dl dt
	{
		min-width:160px;
		padding:0 15px;
		position:relative;
		background:#f4f3f2;
	}
	.tbl_select td.address dl dt label
	{
		white-space: nowrap;
		position:absolute;
		top:50%;
		transform:translate(0%, -50%);
	}
	.tbl_select td.address dl dd
	{
		padding:15px 15px;
	}
	.tbl_select td.address span
	{
		color:#aaa;
	}
	.tbl_select td.hope ul
	{
		display: flex;
		flex-wrap: wrap;
		align-items: stretch;
		justify-content: flex-start;
		gap:10px 30px;
	}

	.tbl_select td.point div
	{
		font-weight: 700;
		background: #f4f3f2;
		padding:15px;
		margin-bottom: 10px;
	}
	.tbl_select td.point li
	{
		margin-bottom:10px;
	}
	.tbl_select td.coupon .coupon_entry_wrap
	{
		max-width:370px;
		padding:15px;
		background: #f4f3f2;
		margin-top:10px;
	}
	.tbl_select td.coupon .coupon_entry_wrap > div
	{
		display: flex;
		align-items: stretch;
		justify-content: flex-start;
		gap:15px;
	}
	.tbl_select td.coupon .coupon_entry_wrap > div div:first-child
	{
		width: 70%;
	}
	.tbl_select td.coupon .coupon_entry_wrap > div div:last-child
	{
		width: 30%;
	}
	.tbl_select td.coupon .coupon_entry_wrap button
	{
		width: 100%;
		font-size: 1.4rem;
		padding: 0.2em 15px;
		appearance: none;
		background: #2f2ff0;
		border: none;
		box-sizing: border-box;
		padding: 0.2em 0;
		font-weight: 700;
		border: 1px solid #2f2ff0;
		border-radius: 5px;
		color: #fff;
		min-height: 40px;
		cursor: pointer;
		line-height: 1;
	}
	.tbl_select td.coupon .coupon_entry_wrap > .application
	{
		margin-top:10px;
		color:#07ad60;
		font-size:1.4rem;
		gap:5px;
	}
	.tbl_select td.coupon .coupon_entry_wrap > .application .coupon_cancel
	{
		margin-left:5px;
		/* color:#da0044; */
		color:#222;
	}
	.tbl_select td.coupon .coupon_entry_wrap > .application span
	{
		font-weight: 700;
	}
	.tbl_select td.memo textarea
	{
		width:100%;
		min-height:200px;
	}
	.tbl_select td strong
	{
		font-weight: 700;
	}
	.previous_payment_save
	{
		margin-top: 20px;
		padding-top: 16px;
		border-top: 1px solid #AAA;
	}

	/*============================
		注文確認
	============================*/
	.payment
	{
		width:100%;
		margin-bottom:50px;
	}
	.payment .tbl_frm tr
	{
		border-top: 1px solid #ccc;
		border-bottom: 1px solid #ccc;
	}

	:is(#payment_card, #payment_cvs)
	{
		display: none;
	}

	.pay_select ul
	{
		margin-top: 0.5em;
		display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		align-content: space-between;
		gap: 0.8em;
	}
	:is(#payment_card, #payment_cvs)
	{
		background: #f3f3f3;
		padding: 15px 30px;
		/* margin-top: 15px; */
	}
	:is(#payment_card, #payment_cvs) > p
	{
		font-weight: 700;
		padding-bottom: 0.3em;
		margin-bottom: 0.3em;
		border-bottom: 1px solid #aaa;
		font-size: 1.6rem;
		margin-top: 0;
	}
	:is(#payment_card, #payment_cvs) > p + aside
	{
		padding-left: 0;
		margin-bottom: 0.3em;
		display: block;
	}
	:is(#payment_card, #payment_cvs) > div
	{
		margin-bottom: 0.5em;
	}
	:is(#payment_card, #payment_cvs) > div strong
	{
		display: block;
		font-weight: 700;
	}
	:is(#payment_card, #payment_cvs) select
	{
		width:fit-content;
	}

	.previous_payment
	{
		display: block;
		background: #f3f3f3;
		padding: 15px 30px 20px;
		margin-bottom: 30px;
	}
	.previous_payment strong
	{
		display: block;
		border-bottom: 1px solid #aaa;
		padding-bottom: 0.3em;
		margin-bottom: 0.3em;
	}
	.previous_payment label
	{
		display: block;
		font-weight: bold;
		margin-bottom: 0.8em;
	}
	.previous_payment .previous_payment_inner
	{
		display: flex;
		gap: 1em;
		margin: 0;
	}
	.previous_payment .previous_payment_inner .item_name
	{
		width: 80px;
		font-weight: bold;
	}

	.order_detail .cart_fix
	{
		width:100%;
		font-size:1.4rem;
	}

	.order_detail .cart_fix :is(.tr_subtotal, .tr_tax, .tr_point, .tr_coupon, .tr_delivery, .tr_fee, .tr_total ) :is(th, td)
	{
		text-align: right;
	}
	.order_detail .cart_fix :is(.tr_subtotal, .tr_tax, .tr_point, .tr_coupon, .tr_delivery, .tr_fee, .tr_total ) th
	{
		border-left:none;
	}
	.order_detail .cart_fix .tr_total
	{
	    border-bottom: 1px solid #cccccc;
	}

	.order_detail .cart_fix .tr_delivery td .free
	{
		color:#da0044;
		font-weight: 700;
	}
	.order_detail .cart_fix .tr_total td
	{
		font-size: 1.2em;
		font-weight: 700;
	}
	.order_detail .delivery_fix
	{
		width:100%;
		font-size:1.4rem;
	}
	.order_detail .delivery_fix .tbl_select
	{
	    margin: 15px auto 40px;
		border-top: 1px solid #cccccc;
	}

	.order_detail .delivery_fix th
	{
   		padding: 10px 20px;
	}

	/*============================
		注文完了
	============================*/
	.order_thanks
	{
		text-align: center;
	}
	.order_thanks h4
	{
		font-size:3rem;
		font-weight: 700;
		margin:40px auto 1em;
	}
	.order_thanks .order_number
	{
		max-width: 800px;
		margin:30px auto 40px;
		padding: 20px;
		background: #f4f3f2;
		display: flex;
		gap:20px;
		justify-content: center;
		align-items: center;
		font-size: 2rem;
	}

	.order_thanks .order_number dd p
	{
		display: inline-block;
		font-size: 1.3rem;
		color:#666;
		padding:0 0.5em;
	}
	.order_thanks .order_number dd p span
	{
		font-weight: 700;
		color:#07ad60;
		padding:0 0.5em;
	}
	.order_thanks .order_info
	{
		max-width: 800px;
		margin:30px auto 40px;
		border:3px solid #f4f3f2;
	}
	.order_thanks .order_info h3
	{
		padding:20px;
		color:#222;
		font-size:2rem;
		background: #f4f3f2;
		margin-bottom: 20px;
	}
	.order_thanks .order_info .order_info_inner
	{
		width:fit-content;
		margin:10px auto 0;
	}
	.order_thanks .order_info dl
	{
		display: flex;
		margin:0 auto 10px;
	}
	.order_thanks .order_info dl dt
	{
		width:120px;
		margin-right:1em;
		text-align: right;
	}

	/*============================
		マイページ
	============================*/
	.mypage h3,
	.mypage .order_number
	{
		width: 100%;
		/* font-size: 3rem; */
		font-size: 2.2rem;
		/* font-weight: 700; */
		font-weight: 400;
		border-bottom: 2px solid #bfddf0;
		padding: 0px 0 10px;
		line-height: 1;
		margin-bottom: 0;
		text-align: left;
		color:#222;
	}

	.mypage h3.member_edit
	{
		border-bottom: 1px dotted #aaa;
	}
	.mypage .order_number
	{
		display: flex;
		gap:30px;
		align-items: center;
	}
	.mypage .order_number .order_status
	{
		font-size: 1.6rem;
		display: inline-block;
		width: 85%;
		max-width: 130px;
		padding: 5px 0;
		text-align: center;
		border-radius: 5px;
		line-height: 1;
		white-space: nowrap;
	}
	.mypage .order_number .order_status
	{
		font-size: 1.6rem;
		display: inline-block;
		width: 85%;
		max-width: 130px;
		padding: 5px 0;
		text-align: center;
		border-radius: 5px;
		line-height: 1;
		white-space: nowrap;
	}
	.mypage .order_number p
	{
		margin-bottom:0;
		font-size: 2rem;
	}
	.mypage .order_number p span
	{
		font-weight: 700;
		color: #07ad60;
		padding: 0 0.5em;
	}
	.mypage h3.my_info
	{
		border-bottom-color:#acd6ae;
		padding-top: 0;
	}
	.mypage h3.leave
	{
		border-bottom-color:#e8aeb1;
		padding-top: 0;
	}
	.mypage .pager
	{
		margin-bottom:60px;
	}

	.video_list
	{
		margin:20px auto 60px;
	}
	.video_list .item_list
	{
		gap:30px 20px;
	}
	.video_list .item_list li
	{
		width: calc((100% - 20px * 2) / 3);
		display: grid;
	}
	.video_list .item_list li a
	{
		display: block;
		position: relative;
		padding: 0;
		background-color: rgba(255, 255, 255, 0);
		border-radius: 10px;
		box-shadow: 0px 3px 5px rgba(94, 94, 94, 0.4);
		overflow: hidden;
	}
	.video_list .item_list li figure
	{
		width: 100%;
		aspect-ratio: 16 / 9;
		overflow: hidden;
		position: relative;
		/* border-radius: 3px; */
	}
	.video_list .item_list li figure img
	{
		width: 100%;
		height: 100%;
		object-fit: contain;
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		transition: 0.3s;
		display: block;
		background-color: #e8f0ec;
		border-radius: 8px 8px 0 0;
	}
	.video_list .item_list li h3
	{
		font-size: 1.4rem;
		font-weight: 400;
		padding: 0px 20px 0px 20px;
		margin: 10px 0 10px 0;
		text-align: left;
		line-height: 1.6;
		min-height: 44.78px;
		color: #000;
		font-weight: 600;
		overflow: hidden;
		display: -webkit-box;
		text-overflow: ellipsis;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		border:none;
	}

	.video_list .item_list li a:hover
	{
		opacity: 0.8;
	}
	.video_list .item_list li a.active figure::after
	{
		content: "";
		pointer-events: none;
		width: 50%;
		height: 50%;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		background: rgba(7, 37, 173, 0.6);
		mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9l0-176c0-8.7 4.7-16.7 12.3-20.9z"/></svg>');
		mask-repeat: no-repeat;
		mask-position: center;
		mask-size: contain;
	}
	.video_list .item_list li a.active:hover::after
	{
		background: rgba(7, 37, 173, 0.3);
	}

	.video_list .item_list li a.inactive
	{
		pointer-events: none;
		cursor: default;
	}
	.video_list .item_list li a.inactive::after
	{
		content: "配信開始までお待ちください";
		text-shadow: 0 0 5px #1100ff;
		display: flex;
		justify-content: center;
		align-items: center;
		width: 100%;
		height: auto;
		padding:5px 0;
		color:#fff;
		font-size: 1.5rem;
		font-weight: 700;
		position: absolute;
		bottom: 45px;
		left: 50%;
		transform: translate(-50%, 0);
		background-color: #2f2ff0aa;
	}

	.video_list .item_list li .limit
	{
		font-size: 1.2rem;
		font-weight: 400;
		letter-spacing: 0.1em;
		padding: 8px 20px 10px 20px;
		text-align: left;
		letter-spacing: 0;
		min-height: 18px;
		line-height: 1.3;
		min-height: 20px;
		color: #2f2ff0;
	}
	.tbl_mypage
	{
		width: 100%;
		margin: 0 auto 40px;
		border: none;
		border-collapse: collapse;
		font-size: 15px;
	}
	.tbl_mypage th
	{
		margin: 0;
		text-align: left;
		vertical-align: middle;
		font-weight: bold;
		padding: 3px 15px;
		background: #f4f3f2;
	}
	.tbl_mypage th.name
	{
		width: 15%;
	}

	.tbl_mypage th.kana
	{
		width: 15%;
	}

	.tbl_mypage th.date
	{
		width: 18%;
	}

	.tbl_mypage th.point
	{
		width: 13%;
	}
	.tbl_mypage th.status
	{
		width: 11%;
	}
	.tbl_mypage th.order_no
	{
		width: 20%;
	}
	.tbl_mypage th.price
	{
		width: 13%;
	}

	.tbl_mypage th.no
	{
		width: 10%;
	}
	.tbl_mypage th.add_name
	{
		width: 20%;
	}

	.tbl_mypage td
	{
		padding: 15px 15px;
		margin: 0;
		text-align: left;
		vertical-align: middle;
		background: #fff;
		border-bottom: 1px dotted #cccccc;
	}
	.tbl_mypage td.name
	{
		font-weight: 700;
	}
	.tbl_mypage td.leave_txt
	{
		width: 80%;
		padding-left:15px;
	}
	.tbl_mypage td:last-child
	{
		text-align: right;
		font-weight: 700;
	}
	.tbl_mypage td a
	{
		margin-left:2em;
	}
	.tbl_mypage td a i
	{
		margin-right:0.2em;
	}
	.tbl_mypage td span
	{
		font-size:0.9em;
		display: inline-block;
		width:85%;
		max-width: 130px;
		padding:5px 0;
		text-align:center;
		border-radius: 5px;
		line-height: 1;
		white-space: nowrap;
	}
	.tbl_mypage td button.del
	{
		background:#cc0000;
		border-color:#cc0000;
	}
	.tbl_mypage td button.del:hover
	{
		background:#fff;
		color:#cc0000;
	}
	.tbl_mypage td.unregistered
	{
		text-align: center;
		font-weight: 400;
	}

	@media screen and (max-width: 800px)
	{
		.tbl_mypage
		{
			width: 100%;
			margin: 0px auto 30px;
			border: none;
			border-collapse: collapse;
			font-size: 15px;
		}
		.tbl_mypage thead
		{
			display: none;
		}
		.tbl_mypage tr
		{
			display: block;
			margin-bottom:20px;
		}
		.tbl_mypage td
		{
			padding: 10px 10px 10px calc(25% + 10px);
			margin: 0;
			text-align: left;
			vertical-align: middle;
			background: #fff;
			border: 1px solid #cccccc;
			border-top: none;
			border-collapse: collapse;
			display: block;
			position: relative;
		}
		.tbl_mypage td:has(a)
		{
			padding: 10px 10px 10px 10px;
		}
		.tbl_mypage td:first-child
		{
			border-top: 1px solid #cccccc;
		}
		.tbl_mypage td::before
		{
			content: attr(data-label);
			float: left;
			font-weight: bold;
			color: #222;
			margin: -11px 20px 10px 0px;
			width: 20%;
			display: block;
			padding: 3px 5px;
			text-align: center;
			font-size: 0.7em;
			position: absolute;
			left: 0;
		}
		.tbl_mypage td.leave_txt
		{
			width: 100%;
		}
	}

	.st_payment,
	.st_deposit
	{
		background: #abc837;
		color:#fff;
	}
	.st_prepare
	{
		background: #f9a22f;
		color:#fff;
	}
	.st_close
	{
		background: #eee;
		color:#999;
	}
	.st_cancel
	{
		background: #222;
		color:#fff;
	}

	.stream_player
	{
		position: relative;
		width: 100%;
		aspect-ratio: 16 / 9;
		max-width: 940px;
		margin: 2em auto 2em;
	}
	.stream_player_inner
	{
		position: relative;
		/* padding-top: 56.25%; */
	}
	.stream_player_inner iframe
	{
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height:100%;
	}


	/*============================
		アニメーション
	============================*/
	/* お気に入りハート */
	@-webkit-keyframes heartAnimation {
		0% {
			/* アイコンサイズをもとのより小さくする */
			transform: scale(0.5);
		}

		10% {
			transform: scale(0.7);
		}

		30% {
			transform: scale(0.9);
		}

		50% {
			transform: scale(1.2);
		}

		80% {
			transform: scale(1.5);
		}

		100% {
			/* もとのサイズに戻す */
			transform: scale(1);
		}
	}

	@keyframes heartAnimation {
		0% {
			/* アイコンサイズをもとのより小さくする */
			transform: scale(0.5);
		}

		10% {
			transform: scale(0.7);
		}

		30% {
			transform: scale(0.9);
		}

		50% {
			transform: scale(1.2);
		}

		80% {
			transform: scale(1.5);
		}

		100% {
			/* もとのサイズに戻す */
			transform: scale(1);
		}
	}

	@-webkit-keyframes fadeIn {
		0% {
			display: none;
			opacity: 0;
		}

		1% {
			display: block;
			opacity: 0;
		}

		100% {
			display: block;
			opacity: 1;
		}
	}

	@keyframes fadeIn {
		0% {
			display: none;
			opacity: 0;
		}

		1% {
			display: block;
			opacity: 0;
		}

		100% {
			display: block;
			opacity: 1;
		}
	}

	/****************************
	 * トースター
	 ****************************/
	.toaster
	{
		line-height: 1;
		margin:0px;
		padding:0px;
/*
		border:3px solid #78c40d;
		background:#78c40d;
*/
		border:3px solid #2f2fe7;
		background:#2f2fe7;
		color:#fff;
		display:none;
		z-index:1000;
		border-radius: 10px;
		box-shadow: 0 0 10px #fff;
		font-weight: 700;
		width: 80%!important;
		max-width: 500px!important;
		left: 50% !important;
		transform:translate(-50%, 0) !important;
	}

	/* .toaster icon
	{
		width:50px;
		margin:0px;
		padding:0px;
		background:#78c40d;
		font-weight:900;
		font-size:1.8rem;
		color:white;
		justify-content:center;
		align-items:center;
		display:flex;
	} */

	.toaster p
	{
		margin:5px 10px;
		text-align: center;
		padding:0px;
		letter-spacing: 0.1em;
	}

	.toaster.error
	{
		border-color:#cc0000;
		background:#cc0000;
	}
	/* .toaster.error icon
	{
		background-color:#cc0000;
	} */

	.safari_msg
	{
		text-align: center;
		margin:100px auto 10px;
	}

	.faq > li
	{
		background-color: #f5f5fc;
		margin-bottom: 30px;
		border-radius: 10px;
		padding: 20px 40px;
	}
	.faq li dt
	{
		font-weight: bold;
		border-bottom: 1px solid #999;
		position: relative;
		padding: 10px 10px 10px 40px;
		line-height: 2;
	}
	.faq li dt::before
	{
		content: "Q.";
		color: #2f2ff0;
		font-size: 20px;
		font-weight: bold;
		position: absolute;
		left: 0;
		top: 5px;
	}
	.faq li dd
	{
		position: relative;
		padding: 10px 10px 10px 40px;
		line-height: 2;
		font-weight: 400;
	}
	.faq li dd::before
	{
		content: "A.";
		color: #07ad60;
		font-size: 20px;
		font-weight: bold;
		position: absolute;
		left: 0;
		top: 5px;
	}
	.faq li dd ol
	{
		list-style-type: decimal;
		padding-left: 1.3em;
	}


	/*============================
		ベストパフォーマンス賞投票
	============================*/
	main:has(.voting)
	{
		padding-bottom: 50px;
	}
	.voting table.tbl_frm tr
	{
		width: 100%;
		border-bottom: none;
	}
	.voting table.tbl_frm tr td
	{
		padding: 20px 0;
		background: #fff;
		border-bottom: none;
	}
	.frm_item {
		border: none;
		width: 100%;
		max-width: 800px;
		margin-inline:auto;
	}

	.frm_item label {
		display: flex;
		align-items: center;
		gap: 0 .5em;
		position: relative;
		margin-bottom: .6em;
		padding: .5em 1em;
		border: 1px solid #2f2ff0;
		border-radius: 3px;
		background-color: transparent;
		cursor: pointer;
		font-size:1.8rem;
	}

	.frm_item label:has(:checked) {
		background-color: #2f2ff026;
		color: #2f2ff0;
	}

	.frm_item label::before,
	.frm_item label:has(:checked)::after {
		border-radius: 50%;
		content: '';
		line-height: 1;
	}

	.frm_item label > span {
		width: calc(100% - .5em - 14px);
		line-height: 1.5;
	}
	.frm_item label::before {
		width: 14px;
		height: 14px;
		background-color: #fff;
		border: 1px solid #2f2ff0;
	}

	.frm_item label:has(:checked)::after {
		position: absolute;
		top: 18px;
		left: calc(7px + 1em);
		transform: translate(-50%, 0);
		width: 8px;
		height: 8px;
		background-color: #2f2ff0;
	}

	.frm_item input {
		display: none;
	}

	.frm_item .black
	{
		width: fit-content;
		max-width: 800px;
		margin-inline: auto	;
		padding: .5em 1em;
		border-bottom: 1px solid #2f2ff0;
		border-radius: 0;
		font-size:2.5rem;
		text-align: center;
		font-weight: 700;
	}

	/*============================
	メッシュグラデーション
	============================*/
	.mesh-bg
	{
		/* position: fixed; */
		position: absolute;
		inset: 0;
		z-index: -1;
		filter: opacity(45%);
	}