/****************************
 * レイアウト・全体
 ****************************/
 @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100:900&display=swap');

	html, body
	{
		width:100%; height:100%;
		margin:0px; padding:0px;
		font-size:20px; color:#fff;
		line-height:170%; letter-spacing:1px;
		background:#fff;
		font-family: "Noto Sans JP", sans-serif;
		font-optical-sizing: auto;
		font-weight:300;
		font-style: normal;
/*
		font-family: dnp-shuei-mgothic-std, sans-serif;
*/
	}

	.pc_only{display:block;}
	span.pc_only{display:inline;}
	.sp_only{display:none;}

	aside.kome p
	{
		text-indent: -1.5em;
		margin-bottom: 0.2em;
		line-height: 1.5;
	}
	aside.kome p::before
	{
		content: "※";
    	margin-right: 0.3em;
	}
	figcaption
	{
		font-size: 0.7rem;
	}
/****************************
 * ヘッダー
 ****************************/
	header
	{
		margin:0px auto 0px;
		padding:30px 0 0px;
		position: relative;
		z-index: 2;
	}
	header :is(.bg1,.bg2)
	{
		position: absolute;
		z-index: -1;
	}
	header .bg1
	{
		top:250px;
		left:55%;
	}
	header .bg2
	{
		top:770px;
		left:7%;
	}
	header h1
	{
		width:1250px;
		margin:auto;
		display:flex;
		align-items:flex-end;
		justify-content: space-around;
	}
	@media screen and (max-width: 1024px) 
	{
		header
		{
			overflow-x: hidden;
		}
		header h1
		{
			width:100%;
			margin:auto;
			flex-direction: column;
			align-items: center;
		}
	}
	header h1 figure
	{
		margin:0;
		padding:0;
		width: -moz-fit-content;
		width:fit-content;
		max-width: 770px;
		z-index:10;
		text-align:center;
	}
	header h1 figure img
	{
		width:100%;
	}
	header h1 div
	{
		width: -moz-fit-content;
		width:fit-content;
		line-height:2;
		color:#3e3a39;
		text-align:center;
		font-weight:normal;
		white-space:nowrap;
		letter-spacing:normal;
		position: relative;
		padding-bottom:5px;
	}
	header h1 div span
	{
		letter-spacing:0.35em;
		display:block;
		font-size:1.6rem;
		font-weight: 600;
	}
	header h1 div span.release
	{
		letter-spacing:0.1em;
		display:block;
		font-size:1rem;
		font-weight: 400;
		margin-bottom:1em;
	}
	header h1 div strong
	{
		letter-spacing:23px;
		display:block;
		font-size:1.6rem;
		font-weight: 600;
		text-indent: 0.3em;
		margin-bottom:5px;
	}
	header h1 div .sns
	{
		width: fit-content;
		margin-inline:auto;
	}
	header h1 div .sns a
	{
		display: flex;
		align-items: center;
		gap:10px;
		font-size:0.8rem;
		color:gray;
	}
	header h1 div .sns a:hover
	{
		opacity: 0.6;
		text-decoration: none;
	}

	.caption
	{
		text-align: center;
		color:#3e3a39;
		padding:80px 0 64px 0;
	}
	.caption .copy
	{
		font-size:1.6rem;
		font-weight: 600;
		margin-inline:auto;
		margin-bottom:45px;
		padding-bottom:25px;
		position: relative;
		line-height: 2;
		width: fit-content;
	}
	.caption .copy::before
	{
		content: "";
		width:40%;
		height:2px;
		background: #1b0833;
		position: absolute;
		left:10%;
		bottom:0;
	}
	.caption .copy::after
	{
		content: "";
		width:40%;
		height:2px;
		background: #dce0e1;
		position: absolute;
		right:10%;
		bottom:0;
	}
	.caption .read
	{
		line-height: 2;
	}
/****************************
 * フッター
 ****************************/
	footer
	{
		line-height:1.3;
		text-align:center;
		background:#1b0833;
		color:#fff;
		padding:8px;
		font-size:12px;
	}
/****************************
 * main
 ****************************/
	main
	{
		display:block;
		width:100%;
	}
	main div.wrap
	{
		display:block;
		width:1000px;
		margin:0 auto;
		color:#333;
	}

	main .bookinfo1
	{
		width:100%;
		margin:0px 0 50px;
		padding:0 0 35px;
		background-image: linear-gradient(0deg, rgb(220, 224, 225) 380px, rgb(0, 0, 0, 0) 1px, rgba(0, 0, 0, 0) calc(100% - 381px));
		color:#3e3a39;
	}
	main .bookinfo2
	{
		width:100%;
		margin:0px 0 50px;
		padding:0 0 35px;
		background-image: linear-gradient(0deg, rgb(17, 19, 42) 480px,rgb(0, 0, 0, 0) 1px, rgba(0, 0, 0, 0) calc(100% - 481px));
		color:#fff;
	}
	main .bookinfo_wrap
	{
		display: flex;
		justify-content: center;
		align-items: flex-end;
		gap:80px;
	}
	.bookinfo_wrap > figure
	{
		width:100%;
		max-width: 313px;
	}
	.bookinfo_wrap > figure img
	{
		outline:5px solid #fff;
		width:100%;
	}
	.bookinfo_wrap > div h2
	{
		font-size:1.4rem;
		line-height:1.6;
		font-weight: 600;
		margin-bottom:20px;
	}
	.bookinfo_wrap > div > div dl
	{
		display: flex;
		justify-content: flex-start;
		margin: 0 0 8px 0;
		text-align: left;
		font-size: 0.8rem;
		line-height: 1.3;
	}
	.bookinfo_wrap > div > div dt
	{
		width:70px;
		letter-spacing: normal;
		font-weight: 300;
		text-align-last: justify;
	}
	.bookinfo_wrap > div > div dd
	{
		line-height: 1.3;
		margin-left:1em;
		font-weight: 300;
	}
	.bookinfo2 .bookinfo_wrap 
	{
		color:#fff;
	}
	.bookinfo2 .bookinfo_wrap > div > div > div
	{
		font-size:0.75rem;
		line-height:1.5;
		font-weight: 300;
		margin-bottom: 15px;
	}
	.bookinfo2 .bookinfo_wrap > div > div > div > div
	{
		line-height:1.4;
		font-size: 0.9em;
		padding-left:1.3em;
	}
	.bookinfo2 + aside
	{
		width:1000px;
		margin:-40px auto 90px;
		font-size:0.8rem;
		color:#3e3a39
	}

	main .event
	{
		width:100%;
		padding:0px 0 80px;
	}

	.event h2
	{
		text-align: center;
		font-size: 1.8rem;
		font-weight: 600;
		line-height: 1.5;
		margin-bottom:50px;
		letter-spacing: 0.2em;
	}
	.event h2 p
	{
		position: relative;
		width: fit-content;
		margin:0 auto 5px;
		padding:8px;
	}
	
	.event h2 p::before
	{
		content: "";
		width:50%;
		height:2px;
		background: #1b0833;
		position: absolute;
		left:0%;
		bottom:0;
	}
	.event h2 p::after
	{
		content: "";
		width:50%;
		height:2px;
		background: #dce0e1;
		position: absolute;
		right:0%;
		bottom:0;
	}
	
	.event .txt
	{
		width:90%;
		font-size:1em;
		margin:30px auto 30px;
		text-align: center;
	}
	.event .event_date
	{
		text-align: center;
		font-weight: 600;
		background:url(../images/bg3.png) no-repeat;
		background-size: contain;
		background-position: center center;
		padding:20px 0 10px;
		margin-bottom:10px;
	}
	.event .event_date p
	{
		margin-bottom:0.8em;
	}
	.event .event_date + figure
	{
		text-align: center;
	}
	.event .event_date + figure img
	{
		width: 100%;
		max-width: 420px;
	}

	.btn_wrap
	{
		text-align:center;
		margin:30px auto 40px;
		display: flex;
		justify-content: center;
		align-items: center;
		gap:50px;
	}
	.btn_wrap a
	{
		padding:15px 40px;
		font-size:0.9rem;
		text-decoration: none;
		color:#fff;
		background: #1b0833;
		border:2px solid #1b0833;
		transition: 0.3s ;
		line-height: 1;
	}
	.btn_wrap a:hover
	{
		color:#1b0833;
		background: #fff;
	}
	.event_info
	{
		font-size:0.8rem;
		text-align: left;
		width: fit-content;
		margin-inline: auto;
	}
	.event_info > p
	{
		line-height: 1.7;
	}
	.event_info > p:first-child
	{
		font-weight: 500;
		font-size: 0.8rem;
		margin-bottom: 0.5em;
	}

	.event_info aside.kome
	{
		padding:20px 0px 5px;
		background: #fff;
		font-size:0.8rem;
		line-height: 1.5;
		text-align: left;
		margin:10px 0 0 1.5em; 
	}


	main .e_commerce
	{
		width:100%;
		padding:80px 0 80px;
		background:radial-gradient(circle,rgba(250, 242, 175, 1) 0%, rgba(237, 221, 83, 1) 40%, rgba(255, 247, 173, 1) 67%, rgba(237, 221, 83, 1) 100%);
	}
	.e_commerce h3
	{
		text-align: center;
		font-size:1.6rem;
		font-weight: 600;
		color:#3e3a39;
		margin-bottom:40px;
		padding:50px 0;
		letter-spacing: 5px;
		background:url(../images/bg4.png) no-repeat;
		background-size: contain;
		background-position: center center;
	}
	.shop_box
	{
		width:85%;
		margin:0 auto 100px;
		text-align: center;
		background: #fff;
	}
	.shop_box h4
	{
		text-align: center;
		font-size:1.4rem;
		font-weight: 400;
		letter-spacing: 0.05em;
		color:#fff;
		padding:5px;
		background:#1b0833;
	}
	.shop_box .inner
	{
		padding:30px;
	}
	.shop_box .inner dl
	{
		text-align: left;
		margin:0 auto 20px;
	}
	.shop_box .inner dl dt
	{
		display: block;
		width: fit-content;
		padding:5px 10px 3px 10px;
		font-size:0.8rem;
		color:#fff;
		font-weight: 300;
		background:url(../images/tokuten.png) no-repeat;
		background-size: 100% 100%;
		background-position: center center;
	}
	.shop_box .inner dl dd
	{
		margin-left:0.5em;
		font-weight: 400;
		font-size:0.9rem;
	}
	.shop_box .postcard
	{
		margin-top:30px;
	}
	.shop_box .postcard img
	{
		width:100%;
		max-width: 420px;
	}
	.shop_box .info
	{
		font-size: 0.8rem;
		text-align: left;
		width:fit-content;
		margin-inline: auto;
	}
	.shop_box .info p:first-child
	{
		font-weight: 500;
		font-size: 0.8rem;
		margin-bottom: 1em;
		text-align: left;
	}
	.shop_box .info > p
	{
		line-height: 1.7;
	}
	.shop_box aside.kome
	{
		padding: 10px 0px 5px;
		background: #fff;
		font-size: 0.8rem;
		line-height: 1.5;
		text-align: left;
		margin: 10px 0 0 1.5em;
		font-weight: 100;
	}
	.shop_box aside.kome p
	{
		font-weight: 300!important;
	}

	.shop_postcard.fix img
	{
		width:auto;
		height:600px;
	}

	main .shop
	{
		width:100%;
		padding:80px 0 50px;
		color:#333;
	}
	.shop h2
	{
		text-align: center;
		font-size:1.6rem;
		font-weight: 600;
		color:#3e3a39;
		margin-bottom:40px;
		padding:50px 0;
		letter-spacing: 5px;
		background:url(../images/bg4.png) no-repeat;
		background-size: contain;
		background-position: center center;
	}
	.shop .shop_box
	{
		width:800px;
		margin:0 auto 0;
		text-align: center;
		padding:0px 0 50px;
	}
	.shop .shop_box .info p
	{
		padding: 10px 0 30px;
		font-size:1.1rem;
		text-align: center;
		margin-bottom: 0px;
		line-height: 1.8;
	}
	.shop .shop_box .info figure
	{
		text-align: center;
	}
	.shop .shop_box .btn_wrap
	{
		margin-top:0;
	}
	.shop .shop_box .btn_wrap a
	{
		padding: 15px 50px;
		font-size: 0.9rem;
		text-decoration: none;
		color: #fff;
		background: #1b0833;
		border: 2px solid #1b0833;
		transition: 0.3s;
		line-height: 1;
	}
	.shop .shop_box .btn_wrap a:hover
	{
		color: #1b0833;
   		background: #fff;
	}