@charset "utf-8";
@import url('https://fonts.googleapis.com/css?family=Roboto:400,700');

/* RESET
----------------------------------------------------------------------------------------------------*/
a,article,body,dd,div,dl,dt,em,form,footer,header,h1,h2,h3,h4,h5,h6,html,i,iframe,img,label,legend,li,nav,ol,p,section,main,span,table,tbody,tfoot,thead,time,tr,th,td,ul,video{font-family:inherit;font-size:100%;font-weight:inherit;font-style:inherit;vertical-align:baseline;white-space:normal;margin:0;padding:0;border:0;outline:0;background:transparent;line-height:1.6;text-align:left}textarea{font-family:inherit;font-size:100%;font-weight:inherit;font-style:inherit;vertical-align:baseline;margin:0;padding:0;border:0;outline:0;background:transparent;line-height:1.6;text-align:left}article,footer,header,nav,section,main{display:block}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}

/* ----------------------------------------------

 * 設定をしなおす

---------------------------------------------- */
body {
  margin: 0 auto;
  padding: 0;
  font-size: 13px;
  line-height: 1.6em;
  font-family: 'Roboto',"游ゴシック Medium", "Yu Gothic Medium","游ゴシック",YuGothic,"ヒラギノ角ゴ ProN W3","Hiragino Old Mincho ProN","メイリオ",Meiryo,sans-serif;
  font-weight: 500;
  color: #535761;
  -webkit-text-size-adjust: 100%;
}

@media only screen and ( max-width : 900px ) {
  body {font-size: 14px;}
}

table {
  margin : 0;
  border-collapse: collapse;
  border-spacing: 0;
  empty-cells: show;
}
td{
  border: #25486b solid 1px;
  padding:5px;
}
th{
  border:#25486b solid 1px;
  padding:5px;
  background-color:#729ed3;
  color: #fff;
}

img {
  vertical-align: middle;
  border: none;
}

html{
  scroll-behavior: smooth;
}

p{
  padding: 10px;
}

hr{
  height:0;
  margin:5px;
  padding:0;
  border-top: 1px solid #fff;
  
}

/* ----------------------------------------------

 * アンカータグの設定

---------------------------------------------- */
a {
  outline:none;
  color: rgb(15, 51, 79);
}

a:hover {
  text-decoration: none;
}


a,a:hover,a:hover img {
  -webkit-transition: 0.5s;
  -moz-transition: 0.5s;
  -o-transition: 0.5s;
  transition: 0.5s;
  text-decoration: none;
}

a:hover {
  filter: alpha(opacity=80);
  -moz-opacity:0.80;
  opacity:0.80;
}


/* ----------------------------------------------

 * 要素を左右中央寄せ

---------------------------------------------- */

.taC {
  text-align: center !important;
}

.taR {
  text-align: right !important;
}

.taL {
  text-align: left !important;
}



*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;*behavior:url(/scripts/boxsizing.htc)}.container{margin:0 auto}.clr:after,.col:after,.container:after,.group:after,.row:after{content:"";display:table;clear:both}.row{padding-bottom:0}.col{display:block;float:left;width:100%}@media (min-width:901px),print{.gutters .col{margin-left:2%}.gutters .col:first-child{margin-left:0}.gutters .colR:first-child{margin-right:0}.sp{display:none}}@media(max-width:900px){.sp_none{display:none !important;}}


@media only screen and ( max-width : 900px ) {
  .sbox {
    margin-bottom: 20px;
  }
  .container {
    padding: 0 30px;
  }
  section {
    padding: 100px 0;
  }
}

@media only screen and ( max-width : 480px ) {
  .container {
    padding: 0 20px;
  }
}
@media only screen and ( max-width : 374px ) {
  .container {
    padding: 0 10px;
  }
}

@media print, screen and ( min-width : 901px ) {
  .sbox {
    margin-bottom: 25px;
  }
  section {
    padding: 100px 0;
  }
}

/* ---------------------------------------------------------------------------------------------

　   HEADER

--------------------------------------------------------------------------------------------- */

#header {
  box-shadow: 0px 3px 15px rgba(0,0,0,0.2);
  z-index: 99;
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  background: #fff;
  padding-left:10px;
  padding-right: 50px;
}
#gNav a:hover {
  color: #999;
}
nav li a {
  font-size: 15px;
  letter-spacing: 0.2em;
}
nav .sub-menu,.mean-container .mean-nav ul ul {
  background: rgba(211, 238, 255, 0.8);
}
@media only screen and ( max-width : 900px ) {
  #header {
    padding: 5px 0;
    height: 60px;
  }
  .h_logo {
    position: absolute;
    left: 10px;
    z-index: 100;
  }
  #gNav .nav {
    overflow-y: auto;
    height: 100vh;
  }
  .mean-nav .container {
    padding: 0;
  }
  nav li .fa {
    display: none;
  }
}

@media only screen and ( min-width : 901px ) {
  #header {
    height: 60px;
  }

  .flex-left{
    margin-right:auto;
  }

  .h_logo {
    z-index: 100;
    margin-right: auto;
  }

  #h_top {
    display: flex;
    align-items: center;
  }
  #gNav ul {
    position: relative;
    display: flex;
  }
  #gNav li {
    position: relative;
    margin-right: 3em;
    font-family: 'Josefin Slab', serif;
  }
  #gNav li:last-child {
    margin-right: 0;
  }
  #gNav li i {
    font-size: 13px;
    margin-left: 5px;
  }
  #gNav li a {
    position: relative;
    display: block;
    text-align: center;
    line-height: 60px;
  }
  #gNav .sub-menu {
    visibility: hidden;
    opacity: 0;
    z-index: 1;
    display: block;
    position: absolute;
    top: 50px;
    left: 25%;
    margin-left: -40px;
    width: 120px;
    -webkit-transition: all .2s ease;
    transition: all .2s ease;
  }

  #gNav .sub-menu a {
    padding: 5px;
    display: block;
    border-bottom: none;
    padding: 20px;
    line-height: 1.2em;
  }
  
  #gNav .sub-menu a:hover:after {
    content: none;
  }
  #gNav .sub-menu li {
    display: block;
    font-size: 15px;
    font-weight: 600;
    padding: 0;
    margin: 0;
  }
  #gNav .sub-menu li:last-child {
    border-bottom: none;
  }
  #gNav ul > li:hover {
    -webkit-transition: all .5s;
    transition: all .5s;
  }
  #gNav ul > li:hover a,#gNav .current-menu-item a,#gNav .current-menu-parent a {
    color: #7583a6;
  }
  #gNav li:hover ul.sub-menu {
    top: 60px;
    visibility: visible;
    opacity: 1;
    z-index: 9999;
  }
  #gNav li ul li:after {
    content: none;
  }
 #gNav li:hover ul.sub-menu a {
    color: #111;
  }
  #gNav .sub-menu li a:hover {
    background: #fff;
  }
  #gNav .contact_btn a:hover {
    color: #fff;
  }

}

/* ---------------------------------------------------------------------------------------------

　   FOOTER

--------------------------------------------------------------------------------------------- */
#footer {
  width: 100%;
  background-color: #95d9e6;
  font-size: 14px;
}
.f_logo,.f_logo p {
  text-align: center;
}
.copy {
  text-align: center;
}
@media only screen and ( max-width : 900px ) {
  #footer {
    padding: 10px 0;
  }
  .f_logo {
    padding: 0 20px;
    text-align: center;
  }
  .f_logo p {
    text-align: center;
  }
  .f_logo img {
    margin-bottom: 20px;
  }
}


@media print, screen and ( min-width : 901px ) {
  #footer {
    padding: 30px 0;
  }

  .f_logo img {
    margin-bottom: 20px;
    border-radius: 10px;
  }
 
  .copy {
    text-align: center;
  }
}

/* ---------------------------------------------------------------------------------------------

　   CONTENTS

--------------------------------------------------------------------------------------------- */
#main p {
  word-break: break-all;
}

section {
  text-align: center;
}

#sec01 {
  padding:0px;
}
#sec02 {
  width: 100%;
  background-image: linear-gradient(0deg, #fff, rgb(178, 245, 255) 100%);
  font-family: 'Zen Old Mincho', sans-serif;
}
.con{
  width:80%;
  max-width: 750px;
  margin: auto;
  margin-top: 10px;
  margin-bottom: 30px;
}

#sec03 {
  width: 100%;
  padding-top: 30px;
  background-image: linear-gradient(0deg, #fff, rgb(221, 250, 255) 100%);
  font-family: 'Zen Old Mincho', sans-serif;
}
.gallery {
 text-align: center;
}
.btn {
  display: block;
  background: #fff;
  color: #618bbe;
  padding: 0.8em 1em;
  text-align: center;
  margin: 0 auto;
  border-radius: 100px;
}
.btn:before {
  content: "\f104";
  font-family: "FontAwesome";
  margin-right: 5px;
}

.top_btn{
  display: block;
  width:200px;
  margin-left: auto;
  margin-bottom: 20px;
}

.he-eng{
  font-family: 'Josefin Slab', serif;
  font-weight: bold;
  text-align: center;
  font-size: 32px;
  margin: 30px;
}

.space{
  padding: 40px;
}

.space-half{
  padding: 20px;
}

@media only screen and ( max-width : 900px ) {
  #main {
    padding-top: 58px;
  }
  .btn {
    width: 60%;
  }
}

@media only screen and ( max-width : 480px ) {
  .btn {
    width: 100%;
  }
}

@media print, screen and ( min-width : 900px ) {
  #main {
    padding-top: 60px;
  }
  .btn {
    width: 300px;
  }
}

/* ---------------------------------------------------------------------------------------------

　   Character

--------------------------------------------------------------------------------------------- */

.chara{
	display: flex;
	flex-flow: row wrap;
	justify-content: space-around;
  width:80%;
  margin: auto;
}

.prof{
	align-self: flex-start;
  padding: 20px;
  width: 350px;
}

.profami{
	align-self: flex-start;
  padding: 10px;
  font-size: 0.9em;
}

.visual{
	align-self: center;
}

.detail{
	align-self: center;
  padding: 30px;
  background: rgba(255, 255, 255, 0.5);
  font-size: 0.9em;
  border-radius: 30px;
  text-align:justify;
  word-break:break-all; 
  text-justify:inter-ideograph;
  text-justify:inter-character;
  word-wrap:break-word;
  overflow-wrap:break-word;
}

li{
    list-style: none;
}

body{
    font-family: 'Zen Old Mincho', sans-serif;
    color: #422e22;
}

.prof-line{
    border-top: 2px solid skyblue;
}

.name-ruby{
    font-size: 0.8em;
    padding:0px;
    margin:0px;
}

.chara-name{
    font-weight: bold;
    font-size: 1.5em;
    padding:0px;
    margin-top:5px;
    margin-bottom: 5px;
}

.keywords{
  font-weight: bold;
  font-size: 1.2em;
  padding:0px;
  margin-top:15px;
  margin-bottom: 0px;
}

.prof-item{
    display: inline-block;
    background: rgb(96, 179, 224);
    color: white;
    font-size: 0.9em;
    border-radius: 10px;
    padding: 5px 10px;
}

.prof-item-ans{
    font-size: 0.9em;
}

.prof-item-p{
    margin:5px;
    padding:0px;
}

.talk-head{
    background: #c1e0ff;
    font-weight: bold;
    font-size: 0.9em;
    padding: 10px;
    border-radius: 10px;
}

.talk-ans{
    font-size: 0.9em;
    padding: 10px;
    margin-bottom: 20px;
}

@media only screen and ( max-width : 1150px ) {
  .detail{
    width:100%;
    margin-top: 30px;
    order: 3;
  }

  .visual{
    margin: auto;
    order: 1;
  }

  .prof{
    order: 2;
  }

  .profami{
    width:100%;
    order: 2;
  }

  .box-010{
    width: 100%;
    order: 4;
}
}

@media print, screen and ( min-width : 1151px ) {
  .detail{
    width:500px;
  }

  .profami{
    width: 70%;
  }
}

/* ---------------------------------------------------------------------------------------------

　   Novel

--------------------------------------------------------------------------------------------- */
pre {
	white-space: pre-wrap ;
  font-family: 'Zen Old Mincho', sans-serif;
}

.back-next{
  display: flex;
  width:250;
  margin: auto;
  justify-content: space-around;
}

.back-non img{
  visibility: hidden;
}
.next-non img{
  visibility: hidden;
}

.nov-title-head{
  display: flex;
  width:100%;
  min-height:220px;
  margin: auto;
  margin-bottom: 30px;
  background-image: url(img/head.png);
  background-repeat: no-repeat;
  object-fit: cover;
}

.nov-title{
  font-family: 'Zen Old Mincho', sans-serif;
  font-size: 1.4em;
  padding-top: 120px;
  padding-left: 180px;
  font-weight: bold;
}


.nov_link_cont{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  width:100%;
}

.nov_link{
  position: relative;
  width:300px;
  height: 120px;
  margin: 20px;
  background-color: #111;
}

.nov_link img{
  width:100%;
  margin: auto;
}

.nov_link:hover img{
  opacity: 0.5;
  transition: 0.5s;
}

.nov_link:hover p{
  color: #fff;
  transition: 0.5s;
}

.nov_link p{
  position: absolute;
  top:80px;
  left:20px;
  padding:0;
  margin:0;
}

.chara_link_cont{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width:100%;
}
.chara_link{
  margin: 10px;
}

.chara_link:hover img{
  opacity: 0.5;
  transition: 0.5s;
}

@media print, screen and ( max-width : 1150px ) {

.nov-title-head{
  display: flex;
  width:100%;
  min-height:220px;
  margin: auto;
  margin-bottom: 30px;
  background-image: url(img/head.png);
  background-repeat: no-repeat;
  object-fit: cover;
  justify-content: end; 
}

.nov-title{
  padding-left: 0px;
  padding-right: 20px;
}

}

.gallery-con{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width:100%;
  margin: auto;
  padding: 10px;
}

.illust-link:hover img{
  opacity: 0.5;
  transition: 0.5s;
}

.illust-link{
  width: 152px;
  height: 152px;
  margin: 10px;
  border: solid 1px #535761;
}

.log-link:hover img{
  opacity: 0.5;
  transition: 0.5s;
}

.log-link{
  width: 102px;
  height: 102px;
  margin: 5px;
  border: solid 1px #535761;
}

.illust-box{
  display: flex;
  flex-wrap: wrap;
  margin:auto;
  padding-left: 10px;
  padding-right: 10px;
  }
  
  .thumbnail{
    padding:0px;
    margin: 5px;
  }

  /* summary {
    background-color: rgb(44, 139, 165);
    color: #fff;
    padding: 5px;
    padding-left: 20px;
    border-radius: 10px;
    width: 300px;
    margin: 10px;
    font-size: 0.9em;
    }
  
  summary:hover{
    background-color: rgb(57, 172, 203);
  } */

  @media screen and (min-width: 900px) {
  .gallery-con{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width:70%;
    margin: auto;
    padding: 5px;
  }
  }
  .wrapper{
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
  }
  .box{
    display:flex;
    justify-content: start;
    flex-wrap: wrap;
    align-items: center;
    width:100%;
    padding:20px;
    background-color: rgba(255, 255, 255, 0.8);
    margin: 5px;
    border-radius: 10px;
  }
  .box img{
    margin:auto;
  }
  .border-dash{
    border-bottom: 1px dashed #729ed3;
    margin-top: 5px;
    margin-bottom: 10px;
    width: 100%;
  }
  .novel-list::before{
    content:'■ ';
    color: #618bbe;
  }
  .novel-list-box{
    width: 100%;
    margin: auto;
    padding: 10p;
  }


.box-010 {
    position: relative;
    max-width: 350px;
    margin: 1.5em auto;
    padding: 2.5em 1.5em 1.5em;
    box-shadow: 0 2px 3px rgb(0 0 0 / 20%);
    background-color: #ffffff;
    color: #333333;
    font-size: 0.9em;
}

.box-010 span.head {
    position: absolute;
    top: -15px;
    padding: .5em 2em;
    border-right: 2px dotted rgb(0 0 0 / 10%);
    border-left: 2px dotted rgb(0 0 0 / 10%);
    box-shadow: 0 0 5px rgb(0 0 0 / 20%);
    background-color: rgb(255 255 255 / 60%);
    font-weight: 600;
}

.box-010 p {
    margin: 0;
}

span.marker {
     background: linear-gradient(transparent 50%, rgba(159, 208, 255,0.4) 50%);
     font-weight: 600;
}

.accordion-006 {
    max-width: 500px;
    margin-bottom: 7px;
    background-color: #f2f2f2;
    border-radius: 25px;
}

.accordion-006 summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 1em 2em;
    color: #333333;
    font-weight: 600;
    cursor: pointer;
}

.accordion-006 summary::-webkit-details-marker {
    display: none;
}

.accordion-006 summary::after {
    transform: translateY(-25%) rotate(45deg);
    width: 7px;
    height: 7px;
    margin-left: 10px;
    border-bottom: 3px solid #c2c2c2;
    border-right: 3px solid #c2c2c2;
    content: '';
    transition: transform .3s;
}

.accordion-006[open] summary::after {
    transform: rotate(225deg);
}

.accordion-006 p {
    transform: translateY(-10px);
    opacity: 0;
    margin: 0;
    padding: .3em 2em 1.5em;
    color: #333333;
    transition: transform .5s, opacity .5s;
}

.accordion-006[open] p {
    transform: none;
    opacity: 1;
}