@charset "utf-8";
/* CSS Document */

/* =========================================================
 * unique-common
 * =========================================================*/
.width_box {
	width: 95vw;
	margin: 0 auto;
}
footer {
	margin-top: 2rem;
}
.shippori {
	font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}
.noto {
	font-family: "Noto Sans JP", "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
}
.pink {
	color: #bb7c8e !important;
}
.l_blue {
	color: #5881a2;
}
.new {
	position: relative;
}
.new::before {
	position: absolute;
	content: "＊";
	top: -13px;
	right: 10px;
	color: #bb7c8e;
	text-shadow: 0.5px 0.5px 0px #f5f7f9;
	font-style: italic;
	font-weight: normal;
	font-size: 1rem;
}
.title2_1 {
	border-top: 1px solid;
	border-bottom: 1px solid;
	padding: 1rem 0 0.8rem;
	font-size: 1.5rem;
	margin: 2rem auto 1rem;
	line-height: 1.1rem;
}
.title2_1 span {
	font-size: 60%;
}
.title3_1 {
	position: relative;
	font-size: 1.25rem;
	margin: 1rem auto auto;
	padding: 0 0 0.5rem 1rem;
	letter-spacing: 1px;
	font-weight: bold;
	color: #294664;
}
.title3_1::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 4px;
	height: 90%;
	background-image: repeating-linear-gradient(#416380, #416380 1px,rgba(0,0,0,0) 0,rgba(0,0,0,0) 4px);
}
.title3_2 {
	position: relative;
	font-size: 1.2rem;
	margin: 1rem auto 0.5rem;
	padding: 0.2rem 0.5rem 0.3rem;
	letter-spacing: 1px;
	color: #f5f7f9;
	background-image: linear-gradient(90deg, rgb(9 32 63) 0%, rgb(83 120 149 / 50%) 70%, rgb(83 120 149 / 0%) 100%);
	border-left: 8px double #bb7c8e;
}
.title4_1 {
	margin-bottom: 0.3rem;
	position: relative;
	border-bottom: solid 3px #0f2746;
	font-size: 1.15rem;
	clear: both;
}
.title4_1::after {
	position: absolute;
	content: " ";
	display: block;
	border-bottom: solid 3px #6e91ad;
	width: 15%;
	bottom: -3px;
}
.title5_1::before {
	content: "";
	width: calc(95% + 1rem);
	height: 20px;
	background-image: linear-gradient(-75deg, #f5f7f9 0%, #d5dce2 20%, #c0d8ec 50%, #d5dce2 100%);
	position: absolute;
	z-index: -1;
	transform: rotate(-3deg);
	top: 25%;
	left: -0.5rem;
	line-height: 1.4rem;
}
.title5_1 {
	letter-spacing: 1px;
	font-size: 1.2rem;
	font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
	font-weight: bold;
	position: relative;
	color: #13345f;
	display: inline-block;
	margin: 1rem 0 0 1.5rem;
	text-shadow: 0.5px 0.5px 0 #f5f7f9;
}
.outline::before {
	content: "あらすじ";
	position: absolute;
	top: -0.9rem;
	left: 0.9rem;
	color: #294664;
	font-size: 1.1rem;
	font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
	font-weight: bold;
	background: #f5f7f9;
	padding: 0 1rem;
}
.outline {
	position: relative;
	padding: 1rem 2rem;
	font-size: 95%;
	margin: 1rem 1rem 1.5rem;
	border: 1px dotted #294664;
	border-radius: 1rem;
	color: #5881a2;
}
.outline p.expand {
	max-height: 45px;
	overflow: hidden;
	position: relative;
	transition: .5s;
}
.expand::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 50%;
	bottom: 0;
	background-image: linear-gradient(rgba(255, 255, 255, 0), #f5f7f9);
	pointer-events: none;
	transition: 1s;
}
.outline input {
	visibility: hidden;
	display: none;
}
.outline label {
	position: absolute;
	bottom: -0.8em;
	right: 1rem;
	display: block;
	font-size: .9em;
	padding: .20em 10px;
	background: #bb7c8e;
	color: #fff;
	z-index:999;
	cursor: pointer;
	text-transform: uppercase;
	transition: 0.3s;
}
.outline label:hover {
	background: #07344e;
}
.outline label:before {
	content: "続きを読む";
}
.outline input:checked + label:before {
	content: "閉じる"
}
input[type=checkbox]:checked ~ .expand {
 max-height: 500px;
}
input[type=checkbox]:checked ~ .expand:before {
 opacity: 0
}
a:visited > .dl_1 dt {
	background: #c0d8ec;
}
.dl_1 {
	margin: 1rem 0.5rem;
	box-shadow: 1px 1px 2px 0px #aaa;
	border-left: 1px solid #e0e0e0;
	border-radius: 0.2rem;
}
.dl_1 > * {
	padding: 0.3rem 0.5rem;
}
.dl_1 dt {
	background: #d5dce2;
	border-top-left-radius: 0.2rem;
	border-top-right-radius: 0.2rem;
}
.dl_1 dt h5 {
	font-size: 1.1rem;
	font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
	font-weight: bold;
}
.dl_1 dt h5::before {
	font-family: "Font Awesome 5 Free";
	content: "\f105";
	padding: 0 0.5rem;
	font-weight: bold;	
	color: #07344e;
}
.dl_1 dd p {
	font-size: 90%;
}
.dl_1 dd p span {
	color: #5881a2;
}
.dl_2 {
	display: flex;
	border-bottom: 1px dotted #aaa;	
}
.dl_2 dt, .dl_2 dd {
	padding: 0.3rem 0.2rem;
	line-height: 1.3rem;
}
.dl_2 dt {
	position: relative;
}
.dl_2 dt h5 {
	margin-right: 0.5rem;
	font-size: 1.1rem;
	font-weight: bold;
	color: #07344e;
}
.dl_2 dd {
	min-width: 70px;
}
.dl_2 ul {
	display: flex;
}
.dl_2 ul a {
	padding: 0 0.2rem;
	font-style: italic;
	font-size: 1.5rem;
	color: #6e91ad;
}
.dl_2 ul a:visited {
	color: #bb7c8e;
}
.dl_2 ul .new::before{
	top: -10px;
	right: -5px;
	font-size: 0.6rem;
}
.longnovel ul {
	overflow: hidden;
	padding: 1rem 0;
}
.longnovel ul > a {
	float: left;
	width: calc(100% - 4rem);
	display: block;
	margin: 0.5rem 1rem;
	padding: 1rem;
}
.ul_1 a:visited {
	background: #5881a2;
}
.ul_1 a {
	background: #07344e;
	color: #f5f7f9;
	border-radius: 0.4rem;
	box-shadow: 1px 1px 2px 0px #aaa;
}
.ul_2 {
	counter-reset: longnovel_num;   
}
.longnovel .ul_2 > a {
	margin-top: 1rem;
	padding: 0 1rem 0.5rem;
}
.ul_2 li::before {
	counter-increment: longnovel_num;
	content: counter(longnovel_num) ". ";
	position: absolute;
	top: -7px;
	left: 0;
	font-style: italic;
	font-size: 1.5rem;
	color: #6e91ad;
	font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}
.ul_2 a:visited li::before {
	color: #bb7c8e;
}
.ul_2 li {
	position: relative;
	padding-left: 1.5rem;
	border-bottom: 1px dotted #07344e;
}
.ul_2 h5 {
	font-size: 1.1rem;
	font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
	font-weight: bold;
}
.ul_2 p {
	font-size: 90%;
	position: absolute;
	right: 0;
	text-align: right;
}
.table1 {
	width: 90%;
	max-width: 600px;
	margin: 0.5rem auto;
}
.table1 th, .table1 td {
	border: 6px solid #f5f7f9;
	border-radius: 15px;
}
.table1 th {
	background: #6e91ad;
	color: #f5f7f9;
	min-width: 60px;
	font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}
.table1 td {
	padding: 0.2rem 0.5rem;
	background: #d5dce2;
}
.table1 li a::before {
	font-family: "Font Awesome 5 Free";
	content: "\f105";
	padding: 0 0.5rem;
	font-weight: bold;	
	color: #07344e;
}

/* =========================================================
 * sec-mainvisual
* =========================================================*/
.sec-mainvisual {
	height: 15vh;
	min-height: 40px;
	background-image: linear-gradient(-45deg, #09203f 0%, #537895 100%);	color: #fff;
	position: relative;
	box-shadow: 0px -3px 10px 0px rgb(0 0 0 / 40%) inset;
}
.sec-mainvisual div.absolute {
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	width: 100%;
	height: 45px;
}
.sec-mainvisual h1 {
	font-size: 1.6rem;
	}

/* =========================================================
 * sec-topicpath
* =========================================================*/
.sec-topicpath .ul_topicpath {
	font-size: 0.8rem;
	margin: 1rem auto;
}
.sec-topicpath .ul_topicpath li:not(:last-child)::after {
	font-family: "Font Awesome 5 Free";
	content: "\f105";
	padding: 0 0.5rem;
	font-weight: bold;	
	color: #07344e;
}

/* =========================================================
 * sec-list
* =========================================================*/
.sec-list .ul_list {
	font-size: 0.9em;
	margin-bottom: 1rem;
}
.sec-list .ul_list li::after {
	font-family: "Font Awesome 5 Free";
	content: "\f107";
	font-weight: bold;	
	color: #07344e;
}
.sec-list .ul_list li a {
	border-bottom: 1px solid; 
}

/* =========================================================
 * sec-image
* =========================================================*/
.sec_image {
	display: block;
	margin-bottom: 0.7rem;
}

/* =========================================================
 * sec-403error
* =========================================================*/
.sec-403error {
	min-height: 80vh;
}

/* =========================================================
 * sec-other
* =========================================================*/
.sec-other .width_box .other_box {
	position: relative;
	margin-top: 2rem;
}
.sec-other .width_box .other_box:not(:first-of-type)::before {
	content: "";
	border-top: 1px dotted #aaa;
	width: 100%;
	height: 1px;
	position: absolute;
	margin-top: -1rem;
}

/* =========================================================
 * sec-novel
* =========================================================*/
#NOVEL {
	background: #ced6dc;
}
#NOVEL footer {
	margin-top: 4rem;
}
.sec-novel .width_box {
	width: calc(100% - 40px);
}
.sec-novel .title2_1 {
	padding: 0.9rem 0;
	line-height: 2rem;
}
.sec-novel .title2_1 span {
	color: #5881a2;
	line-height: 1rem;
}
.sec-novel .title2_1 span.r18 {
	color: #bb7c8e;
}
.sec-novel p {
	font-size: 1.05rem;
	line-height: 1.8rem;
}

/* =========================================================
 * sec-pager
* =========================================================*/
.sec-pager {
	margin-top: 3rem;
	font-size: 1.5rem;
}
.sec-pager .pager {
	max-width: 250px;
	margin: 0 auto;
}
.sec-pager .pager .pager_gotop a {
	margin: 2rem auto;
	font-size: 65%;
	color: #5881a2;
	display: block;
	width: 150px;
}

/* =========================================================
 * responsive
 * =========================================================*/
@media screen and (min-width:768px) {
	.sec-list {
		width: 500px;
		margin: 0 auto;
	}
	.site_ori, .site_fan {
		overflow: hidden;
	}
	.dl_1 {
		float: left;
		width: calc(50% - 1rem);
		margin: 0.5rem 0.5rem 0.7rem;
	}
	section a:nth-child(odd) .dl_1 {
		width: calc(50% - 1.2rem);
	}
	.longnovel ul > a {
		width: calc(50% - 4rem);
	}
}
@media screen and (min-width:1024px) {
	.sec-mainvisual {
		min-height: 60px;
	}
	.width_box,
	.sec-novel .width_box {
		max-width: 1000px;
	}
	.sec-novel p {
		font-size: 1.15rem;
		line-height: 2.2rem;
	}
	.longnovel ul > a {
		width: calc(33.3% - 4rem);
	}
}