@charset "utf-8";
/* CSS Document */
/*リセット*/
* {box-sizing: border-box;}
html, body, div, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, sub, sup, tt, var, u, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-style: inherit;
	font-weight: normal;
	text-rendering: optimizeLegibility;
	-webkit-font-feature-settings: "palt" 1;
	font-feature-settings: "palt" 1;
	line-height:1;
	}
html{
	font-size: 16px;
	}
	@media screen and (min-width: 1440px) {
		html{font-size: 18px;}
	}
html {
	height: 100%;
	scroll-behavior: smooth;
	}/*
html.smooth{
	scroll-behavior: smooth;
	}
html.no-smooth{
	scroll-behavior:auto;
	}*/
body {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight:400;
	font-style: normal;
	color: rgba(33, 33, 33,1);
	}
img {
	width: 100%;
	max-width: 100%;
	height: auto;
	/*image-rendering: -webkit-optimize-contrast;
	-ms-interpolation-mode: bicubic;*/
	vertical-align: bottom;
	}
img[src*='.svg']{min-width: 100%;}
img[src$='.svg']{min-width: 100%;}
input, button {
	border-radius: 0;
	-webkit-appearance: none;
	outline: none;
	}
p{
	overflow-wrap: anywhere;
	margin: 0 auto;
	}
ul,li{list-style-type: none;}
a {
	word-wrap: break-word;
	word-break: break-all;
	outline: none;
	-webkit-appearance: none;
	border-color: rgba(0,0,0,0);
	text-decoration: none;
	color: #333;
	}
a:focusa:hover, a:focus, a:visited {
	color: #333;
	}
s {
	user-select: none;
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	}
sub{
	font-optical-sizing: none;
	vertical-align: baseline;
	}
.Prompt,i{
	font-family: "Prompt", sans-serif;
	font-optical-sizing: auto;
	font-style: italic;
	}
.noto-sans-jp{
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	}


/*全体レイアウト*/
.wrap{}
main{
	/*overflow-x: hidden;*/
	}
/*.outer{
	padding: 0 4vw;
	margin: 0 auto;
	}*/
.inner{
	max-width:56.5rem;/*904px*/
	margin: 0 auto;
	}
main{
	}

/*ヘッダー #global-nav（TOP）は途中から固定*/
header{
	z-index: 999;
	width: 100%;
	height: 64px;
	background-color: rgba(255,255,255,0.96);
	position: fixed;
	top: 0;
	}
header#global-nav {
	z-index: 999;
	width: 100%;
	height: 64px;
	background-color: rgba(255,255,255,0.96);
	position: fixed;
	top: -64px;
	transition: all 0.3s ease 0s;/**/
	}
#global-nav.m_fixed {
	display: block;
	position: fixed;
	top: 0;
	}
.nav_inner{
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 1560px;
	margin: 0 auto;
	}
	header.m_fixed .nav_inner{
		justify-content: space-between;
	}
header a{
	display: inline-block;
	height: 64px;
	}
a.hd_top{
	width: 45%;/**/
	max-width: 220px;
	background-image: url("../img/logo_header.png");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	}
a.hd_top:hover,a.hd_top:active{
	filter: brightness(120%);
	}
header ul{
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: flex-end;
	width: 52%;/**/
	max-width: 320px;
	}
header li{
	width: 50%;
	padding: 0 8px;
	}
header li a{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 0 1em;
	font-size: .75rem;
	line-height: 1.1;
	font-weight:700;
	letter-spacing: 0.1em;
	white-space: nowrap;
	}
header li a i{
	display: block;
	font-size: 0.64rem;
	font-weight:300;
	}
header li a:hover{
	color: #e72e2e;
	}
header li a.hd_disable{
	pointer-events: none;
	color: #ccc;
	}

/*TOPリード*/
#lead{
	margin: 10vw auto;
	}
.leadtxt p{
	text-align: center;
	font-weight: 500;
	line-height: 2.62;
	letter-spacing: 0.06em;
	word-break: keep-all; 
	overflow-wrap: break-word;
	margin: 1.62em auto;
	padding: 0 1em;
	font-size: 16px;
	}
.leadtxt p strong{
	font-weight: 900;
	font-size: 1.125em;
	display: inline-block;
	position: relative;
	line-height: 1.62;
	}
.leadtxt p strong::after{
	display: block;
	content: "";
	background-color: rgba(231, 46, 46, .9);
	height: 0.2em;
	}
	@media (min-width: 640px) {
		.leadtxt p{
			font-size: 18px;
			}
		}
	@media screen and (min-width: 768px) {
		#lead{
			margin: 8vw auto;
			}
		.leadtxt p{
			font-size: 20px;
			}
		}
	@media screen and (min-width: 1024px) {
		#lead{
			margin: 80px auto;
			}
		.leadtxt p{
			font-size: 22px;
			}
		}

/*youtube*/
.youtube_outer{
	width: 61.8%;
	margin: 0 auto;
	}
.youtube{
	position: relative;
	width: 100%;
	padding-top: 56.25%;
	}
.youtube iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	}

/*TOP動画ありレイアウト*/
@media screen and (min-width: 1440px) {
	#lead.movflex .inner{
		display: flex;
		flex-direction: row;
		align-items: center;
		max-width: 1240px;
		}
	.mov{
		width: 57.74%;
		}
	.youtube_outer{
		width: 100%;
		}
	#lead.movflex .leadtxt{
		width: 42.27%;
		padding-left: 1em;
		}
	#lead.movflex .leadtxt p{
		}
	}



/*ボタン*/
.btns{
	padding: 0;
	display: flex;
	justify-content: center;
	flex-direction: column;
	align-items: center;
	}
a.btn{
	width: 80%;
	max-width: 360px;
	height: 3.2rem;
	font-size: .9375rem;
	line-height: 1;
	margin: .31rem auto;
	display: flex;
	justify-content: center;
	align-items: center;
	letter-spacing: .1em;
	background-color: #fff;
	border: 3px solid #555;
	border-radius: 1.6rem;
	color: #333;
	font-weight: 700;
	}

	@media screen and (min-width: 640px) {
		a.btn{
			height: 3.6em;
			font-size: 18px;
			border-radius: 1.8em;
			line-height: 1;
			margin: .31em .62em;
			}
		}
	@media screen and (min-width: 1024px) {
		a.btn{
			font-size: 20px;
			}
		.btns{
			flex-direction: row;
			}
		}
.btns a:hover, a.btn:hover{
	background-color: #e72e2e;
	border-color: #000;
	color: #fff;
	}
.btns a.btn_disable{
	pointer-events: none;
	background-color: #ddd/*cfd8dc*/;
	border-color: #ccc/*ccc b0bec5*/;
	color: #fff;
	}
.btns a.btn_disable small{
	font-size: 0.8em;
	letter-spacing: normal;
	margin-left: .62em;
	}


/*試し読み・購入するボタン*/
a.btn.btn_review,a.btn.btn_detail{
	border-radius: 0;
	border: none;
	}

.btn_review::after,.btn_detail::after{
	content: "";
	/*background-color: rgba(255,0,4,0.1);*/
	width: 1.1em;
	height: 1.1em;
	display: inline-block;
	background-position: center bottom;
	background-repeat: no-repeat;
	background-size: 1em;
	margin-left: 0.29em;
	margin-right: -0.71em;
	}
.btn_review::after{
	background-image: url("../img/icon/book-open-01.svg");
	}
.btn_detail::after{
	background-image: url("../img/icon/link-external-02.svg")
	}


/*区切りNNN*/
.hrNNN{
	display: block;
	position: relative;
	width: 100%;
	height: 10vw;
	}
.hrNNN::before{
	content: "";
	background-color: #fff;
	display: inline-block;
	width: 61.8%;
	height: 100%;
	position: absolute;
	right: 0;
	}
.hrNNN::after{
	content: "";
	background-image: url("../img/NNN_white.png");
	background-position: top right;
	background-repeat: repeat-x;
	background-size: auto 100%;
	display: inline-block;
	width: 38.2%;
	height: 100%;
	position: absolute;
	left: 0;
	}
	@media screen and (min-width: 768px) {
		.hrNNN{
			height: 5.48vw;
			}
		.hrNNN::before{
			height: 5.48vw;
			}
		.hrNNN::after{
			height: 5.48vw;
			}
		}
	@media screen and (min-width: 1440px) {
		.hrNNN{
			height: 80px;
			}
		.hrNNN::before{
			height: 80px;
			}
		.hrNNN::after{
			height: 80px;
			}
		}
.hrNNN.hrNNN_gray::before{
	background-color: #eceff1;
	}
.hrNNN.hrNNN_gray::after{
	background-image: url("../img/NNN_gray.png");
	}

/*BG NNN*/
.c_bgNNN{
	background-image: url("../img/cNNN_gray.png");
	background-position: center bottom;
	background-repeat: no-repeat;
	background-size: auto 46vw;
	}
	@media screen and (min-width: 768px) {
		.c_bgNNN{
			background-size: auto 32vw;
			}
		}
	@media screen and (min-width: 1440px) {
		.c_bgNNN{
			background-size: auto 374px;
			}
		}



/*TOP最新ラインナップ*/
#new_release{
	padding-bottom: 1px;
	background-color: #eceff1/*rgb(245, 245, 247)*/;
	}
#new_release hgroup{
	text-align: center;
	}
#new_release h2{
	margin: 10vw auto 1rem;
	font-weight: 900;
	font-size: 1.5rem;
	letter-spacing: 1px;
	}
	@media screen and (min-width: 768px) {
		#new_release h2{
			font-size: 26px;
			}
		}
	@media screen and (min-width: 1024px) {
		#new_release h2{
			margin: 90px auto 1rem;
			}
		}
	@media screen and (min-width: 1440px) {
		#new_release h2{
			margin: 130px auto 1rem;
			}
		}
#new_release h2 i{
	display: block;
	font-weight: 300;
	font-size: 0.5em;
	margin-top: 0.62em;
	}
.new_date{
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 5.5rem;
	height: 5.5rem;
	border-radius: 50%;
	border: 1px solid #333;
	font-size: 2rem;
	font-weight: 900;
	margin: 0 auto 1rem;
	background-color: rgba(255,255,255,0.75);
	}
.new_date span{
	display: block;
	font-size: 0.75rem;
	font-style: italic;
	font-weight: 500;
	}
#new_release ul{
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	padding: 0 4.14vw;
	}
#new_release li{
	width: calc( 100% / 2 );
	padding: 1rem 4.14vw;
	}

#new_release li a{
	text-decoration: none;
	}
#new_release li a:hover,#new_release li a:active{
	filter: brightness(108%);
	}
/*20251027*/
#new_release li a{
	pointer-events: none;
	}

#new_release li img{
	display: block;
	margin: 0 auto;
	box-shadow: 0px 2px 1px -1px rgba(38, 50, 56, 0.4), 0px 1px 1px 0px rgba(38, 50, 56, 0.28), 0px 1px 3px 0px rgba(38, 50, 56, 0.24);
	}
#new_release li p{
	font-size: .9em;
	display: table;
	line-height: 1.125;
	word-break: keep-all;
	overflow-wrap: break-word;
	}
	@media screen and (min-width: 640px) {
		#new_release ul{
			padding: 0 1.75rem;
			}
		#new_release li{
			width: calc( 100% / 3 );
			padding: 1rem 1.75rem;
			}
		}
	@media screen and (min-width: 768px) {
		#new_release ul{
			padding: 0 2rem;
			}
		#new_release li{
			padding: 1rem 2rem;
			}
		}
	@media screen and (min-width: 1024px) {
		#new_release .inner{
			max-width: 2000px;
			}
		#new_release ul{
			max-width: 1600px;
			padding: 0 1.25rem;
			}
		#new_release li{
			width: calc( 100% / 6 );
			padding: 1rem 1.25rem;
			}
		}
	@media screen and (min-width: 1440px) {
		#new_release .inner{}
		#new_release ul{
			padding: 0 1.5rem;
			}
		#new_release li{
			padding: 1.5rem 1.5rem;
			}
		}
#new_release li p.booktitle{
	font-weight: 700;
	font-size: 0.95rem;
	margin: 0.62em auto 0;
	text-align: center;
	}
#new_release li p.author{
	font-weight: 400;
	font-size: 0.8em;
	margin: 0.5em auto 0;
	}


/*TOP次回発売予定*/
#coming_soon{
	padding: 4vw 1rem 0 1rem;
	}
	@media screen and (min-width: 640px) {
		#coming_soon .inner{
			width: 80%;
			}
		}
	@media screen and (min-width: 768px) {
		#coming_soon.c_bgNNN {
			background-size: auto 328px;
			}
		}
	@media screen and (min-width: 1024px) {
		#coming_soon{
			padding-top: 40px;
			}
		#coming_soon .inner{
			width: 68%;
			max-width: 640px;
			}
		}

/*nav*/
nav.linecon{
	margin: 8vw auto;
	padding: 0 1.6rem;
	}
.linecon a.btn[target="ssdb"]{
	letter-spacing: normal;
	}
/*ページ内ロゴリンク*/
.totop{
	margin: 15vw auto;
	}
.home .totop{
	margin: 15vw auto 8vw;
	}
.totop a{
	text-align: center;
	display: block;
	width: 50%;
	max-width: 320px;
	margin: 0 auto;
	-webkit-tap-highlight-color: transparent;
	}
.totop a:hover,.totop a:active{
	filter: brightness(120%);
	}
/*TOP 公式SNS*/
#official_sns{
	margin:8vw auto 15vw ;
	}
ul.ico_sns{
	margin: 0 auto;
	display: flex;
	flex-direction: row;
	justify-content: center;
	}
.ico_sns li{
	margin: 0 0.5rem;
	}
.ico_sns a{
	display: block;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 46%;
	}
.ico_sns a[title="X"]{
	background-image: url("../img/ico_x.svg");
	}
.ico_sns a[title="Instagram"]{
	background-image: url("../img/ico_instagram.svg");
	}
.ico_sns a:hover{
	filter: brightness(120%);
	}
.ico_sns a[title="X"]{
	background-color: rgba(0,0,0,1.00);
	background-size: 46%;
	}
.ico_sns a[title="Instagram"]{
	background-image:
		url("../img/ico_instagram.svg"),
		url("../img/bg_instagram_gradient.png");
	background-size: 46%,100%;
	}
	@media screen and (min-width: 768px) {
		nav.linecon{
			margin: 6vw auto;
			}
		.totop{
			margin: 12vw auto;
			}
		.home .totop{
			margin: 12vw auto 6vw;
			}
		#official_sns{
			margin:6vw auto 12vw ;
			}
		}
	@media screen and (min-width: 1024px) {
		nav.linecon{
			margin: 60px auto;
			}
		.totop{
			margin: 120px auto;
			}
		.home .totop{
			margin: 120px auto 60px;
			}
		#official_sns{
			margin:60px auto 120px;
			}
		}
	@media screen and (min-width: 1440px) {
		nav.linecon{
			margin: 80px auto;
			}
		.totop{
			margin: 144px auto;
			}
		.totop a {max-width: 360px;}
		.home .totop{
			margin: 144px auto 80px;
			}
		#official_sns{
			margin:80px auto 144px;
			}
		}


/******************************************************/
/*ポップアップ*/
/*remodal上書き*/
.remodal-overlay{
	background: rgba(18, 23, 26, 0.9);
	}
.remodal-wrapper{
	padding: 3vw 3vw;
	}
.remodal{
	background-color: rgba(0,0,0,0.8);
	color: rgba(255,255,255,0.96);
	margin-bottom: 5rem;
	padding: 6vw 4vw;
	max-width: 640px;
	}
.remodal-close{
	right: 0;
	left: auto;
	width: 40px;
	height: 40px;
	}
.remodal-close:before{
	font-size: 28px;
	line-height: 40px;
	width: 40px;
	}


/*モーダル内書誌情報*/
.remodal figure.books{
	display: flex;
	flex-direction: column;
	align-items: center;
	align-content: center;
	}
.remodal figure.books>figcaption{
		width: 100%;
	}
.remodal figure.books img{
	display: block;
	width: 70%;
	margin: 0 auto;
	box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.4), 0px 1px 1px 0px rgba(0, 0, 0, 0.28), 0px 1px 3px 0px rgba(0, 0, 0, 0.24);
	border: 1px solid rgba(255,255,255,0.12);
	border-radius: 1px;
	}
.remodal .books h4 {
	position: relative;
	padding: .5rem 1rem;
	width: calc(80% - 2px);
	margin: 1rem auto 0.75rem;
	text-align:center;
	min-height: 3rem;
	letter-spacing: 1px;
	}
.remodal .books h4 small{
	display: block;
	font-size: 0.8em;
	}
.remodal .books h4 span{
	display: block;
	font-weight: 900;
	font-size: 1.75em;
	word-break: keep-all;
	overflow-wrap: break-word;
	width: auto;
	/*max-width: calc(100% - 1rem);*/
	line-height: 1.162;
	/*margin-top: .41em;*/
	}
.remodal .books h4 b{
	display: block;
	margin: .5em auto;
	}
.remodal .books h4::before,.remodal .books h4::after {
	content: "";
	width: .38em;
	height: 100%;
	position: absolute;
	}
.remodal .books h4::before {
	border-left: solid 1px rgba(255, 255, 255, 0.6);
	border-top: solid 1px rgba(255, 255, 255, 0.6);
	border-bottom: solid 1px rgba(255, 255, 255, 0.6);
	top: 0;
	left: 0;
	}
.remodal .books h4::after {
	border-right: solid 1px rgba(255, 255, 255, 0.6);
	border-top: solid 1px rgba(255, 255, 255, 0.6);
	border-bottom: solid 1px rgba(255, 255, 255, 0.6);
	top: 0;
	right: 0;
	}
.remodal .books p{
	margin: 1.41em auto;
	padding: 0 1rem;
	}
.remodal .books .booklead{
	font-weight: 600;
	line-height: 1.62;
	margin: 1.62em auto;
	word-break: keep-all;
	overflow-wrap: break-word;
	/*font-size: 1.25rem;*/
	}
.remodal .books .author{
	letter-spacing: 1px;
	padding: 0 0.25em;
	}
.remodal .books .price{
	font-weight: 300;
	font-size: .85rem;
	}

	/*横長*/
	@media screen and (orientation: landscape) {
		.remodal{
			max-width: 1320px;
			padding: 3rem 2rem;
			}
		.remodal figure.books{
			flex-direction: row;
			justify-content: center;
			}
		.remodal figure.books>figcaption{
			width: 50%;
			}
		.remodal figure.books>div{
			width: 50%;
			max-height: 96vh;
			}
		.remodal figure.books img{}
		.remodal .btns{
			flex-direction: column;
			}
		}
/*横長かつ、横幅がXXXpx以上の場合*/
	@media screen and (orientation: landscape) and (min-width: 1024px) {
		.remodal .books h4 {
			font-size: 1.25rem;
		}
		.remodal .books p{
			font-size: 1.125rem;
			}
		
		
		}

/*ラインナップリスト内書誌情報*/
.lu figure.books{
	display: flex;
	border-bottom: 1px solid rgba(38, 50, 56,0.12);
	padding: 3.8vw 0;
	}
.lu figure.books>div{
	width: 30%;
	}
.lu figure.books>figcaption{
	width: 70%;
	}
.lu figure.books img{
	display: block;
	width: 70%;
	margin: 0 auto;
	border: 1px solid rgba(38, 50, 56,0.12);
	}
.lu .books h4 {
	position: relative;
	margin-bottom: .62rem;
	font-size: 1rem;
	}
.lu .books h4 small{
	font-size: 0.75em;
	display: block;
	}
.lu .books h4 b{
	margin-top: .41em;
	margin-right: .5em;
	font-size: 0.85rem;
	}
.lu .books h4 span{
	font-weight: 800;
	font-size: 1.125em;
	word-break: keep-all;
	overflow-wrap: break-word;
	line-height: 1.162;
	margin-top: .41em;
	}
.lu .books p{
	font-size: .9rem;
	margin-bottom: .41em;
	}
.lu .books .booklead{
	font-size: .8rem;
	line-height: 1.41;
	word-break: keep-all;
	overflow-wrap: break-word;
	}
.lu .books .author{
	margin-bottom: .62rem;
	}
.lu .books .price{
	font-weight: 300;
	font-size: .8rem;
	}
.lu .books .btns{
  flex-direction: row;
	justify-content: flex-end;
	padding: .31rem 0 0 0;
	}
.lu .books .btns a.btn{
	width: 42%;
	border: 1px solid #555;
	letter-spacing:normal; 
	font-size: 0.8rem;
	margin: .31rem .31rem 0 .31rem;
	}

/*ポップアップ動画　モーダル不使用*/
/*
#movie .remodal-close{
	top: -40px;
	}
#movie.remodal{
	margin: 0;
	padding: 0;
	max-width: inherit;
	}
*/



/******************************************************/
/*footer*/
footer{
	background-color: rgba(33, 33, 33,1);
	color: rgba(255, 255, 255,1);
	padding: 3rem 1.5rem 0.5rem;
	}
footer>div{max-width: 1920px;}
@media (min-width: 640px) {
	footer>div{
		display: flex;
		justify-content: space-between;
		}
	}
@media (min-width: 1440px) {
	footer{
		padding: 2rem 4rem 0.5rem;
		}
	}
footer a{
	color: rgba(255, 255, 255,1);
	opacity: 0.72;
	}
footer a:hover{
	opacity: 1;
	}
footer p{
	font-size: 0.625rem;
	line-height: .875rem;
	font-weight: 300;
	margin-bottom: 1rem;
	}
footer p.Prompt{
	opacity: 0.87;
	letter-spacing: 1px;
	margin-bottom: 2rem;
	}
footer p.copytxt{
	margin-bottom: 2.5rem;
	font-weight: 200;
	}
footer ul{
	margin-bottom: 2.5rem;
	}
footer li{
	font-size: 0.625rem;
	font-weight: 400;
	display: flex;
	align-items: center;
	flex-direction: row;
	margin-bottom: 0.5rem;
	}
footer li::before{
	content: "";
	display: inline-block;
	width: 0.75rem;
	height: 0.75rem;
	margin-right: 0.375rem;
	background-image: url("../img/ico_circle-right.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	opacity: 0.75;
	}
.foot_link a{
	display: inline-block;
	margin-right: 1.5rem;
	}
.foot_link img{
	height: 1.375rem;
	width: auto;
	}
.abj{
	display: flex;
	align-items: center;
	opacity: .72;
	margin-bottom: 1.5rem;
	}
.abj span{
	flex: 1;
	}
.abj::before{
	content: "";
	display: inline-block;
	width: 4rem;
	height: 3.5rem;
	margin-right: 1rem;
	background-image: url("../img/abj.svg");
	background-position: center left;
	background-repeat: no-repeat;
	background-size:contain;
	}
