@charset "utf-8";

/*
reset
================================================ */
body, div, h1, h2, h3, h4, h5, h6, p, dl, dt, dd, ul, ol, li, blockquote, pre, table, th, td, form, figure, fieldset, input, textarea {
    margin: 0;
    padding: 0;
}
h1{
    line-height: 0;
}
img {
    vertical-align: baseline;
}
a img {
    border: none;
}
ol, ul {
    list-style: none;
    list-style-type: none;
}
*, *:before, *:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

/*
colors
================================================ */
:root {
    --g-yellow: #c3bd1f;
    --beige: #c4a274;
    --red-brown: #540000;
    --brown: #ad533b;
    --light-grey:#fffefa;
    --black: #000000;
    --white: #ffffff;
}


/*
setting
================================================ */
body {
    background: var(--g-yellow);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 3.5vw;
    color: #333;
    line-height: 1.7;
    text-align: center;
　　text-size-adjust: 100%;
　　-webkit-text-size-adjust: 100%;/*Chrome,Safari*/
　　-ms-text-size-adjust: 100%;/*EgdeMobile*/
　　-moz-text-size-adjust: 100%;/*firefox*/
}


/*
general
================================================ */

.inner{
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    padding: 0;
    text-align: left;
}

@media (min-width: 960px) {
    .inner{
        padding: 0;
        max-width: 1300px;
        width: 100%;
    }
}

img {
    vertical-align: baseline;
    max-width: 100%;
    width: 100%;
    height: auto;
}
.g_logo{
    display: flex;
    justify-content: flex-end;
    width: 100%;
    padding: 5px 2rem 0 0;
}

.g_logo img{
    width: 10%;
}

@media (min-width: 600px){
    .g_logo{
        padding: 0.4rem 2rem 0 0rem;
    }

}
@media (min-width: 768px){
    .g_logo{
        padding: 4rem .4rem 0 2rem;
        max-width: 2000px;
        width: 100%;
    }
    .g_logo img{
        width: 8%;
    }
}
/*
header
================================================ */
#header{
   position: fixed;
    top: 0;
    /*left: 0;*/
    width: 100%;
    z-index: 999;
}

#header .header-contents{
    background-image: url("../img/bg_arrow.png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center top;
    max-width: 800px;
    width: 100%;
    margin: 1rem auto 0;
    text-align: center;
}


#header nav ul{
    margin: 0 1rem;
    padding-top: 0;
    display: flex;
    justify-content: center;
    gap: .2em;
}
#header nav li{
    padding-top: 0.5rem;
}
@media (min-width: 1024px){
    #header .header-contents{
        max-width: 1000px;
        width: 100%;
    }
}
@media (min-width: 690px){
    #header .header-contents{
        max-width: 1200px;
        width: 100%;
    }
    #header nav ul{
        margin: 0 4rem;
    }

    #header nav li{
        padding-top: 1.5rem;
    }
}



#header nav ul a:hover img{
    filter: hue-rotate(-15deg);
    -webkit-filter: hue-rotate(-15deg);
    -moz-filter: hue-rotate(-15deg);
    -o-filter: hue-rotate(-15deg);
    -ms-filter: hue-rotate(-15deg);
}

@media (hover: hover) {
        a:any-link:hover {
            transform: translateY(-5px);
 }
}
/*
hero
================================================ */
#hero{
    margin: 2rem 0 0;
    padding-top :1rem 0 0;
}
@media (min-width: 690px){
    #hero{
    border-bottom: var(--white) 10px solid;
}
}

#hero .hero-contents{
    /*max-width: 800px;*/s
    width: 100%;
    margin: 0 auto;
    padding: 0;
}
#hero .PC{
    display: none;
}

@media (min-width: 1280px){
    #hero .hero-contents{
        width: 100%;
        max-width: 2800px;
    }
}
@media (min-width: 600px){
    #hero .PC{
        display: block;
    }
    #hero .SP{
        display: none;
    }
}
/*
main
================================================ */
#main{
    margin: 0 auto;
    background-color: var(--g-yellow);

}
#contents{
    margin: 0 auto;
    padding: 0;
    background-color: var(--light-grey);
}
@media (min-width: 768px) {
    #main{
        margin: 4rem auto 0;
    }
    #contents {
        display: -webkit-flex;
        display: flex;
    }
    .contents_box {
        margin: 0;
        -webkit-flex: 2;
        flex: 2;
    }
    .side_l, .side_r {
        -webkit-flex: 1;
        flex: 1;
    }
}

.side_l{
    background: url(../img/bg_side_l.png) repeat-y;
    max-width: 200px;
    width: 100%;
    z-index: 10;
}
.side_r{
    background: url(../img/bg_side_r.png) repeat-y;
    max-width: 200px;
    width: 100%;
    z-index: 10;
}



/*
contents_box
================================================ */
.contents_box{
    padding: 0 4%;
}
.contents_box h2{
    padding: 1rem 0;
}
.contents_box h3{
    background: url(../img/subttl_base.png) no-repeat center bottom;
    background-size: contain;
    position: relative;
    margin-top: 1.5rem;
    width: 100%;  
}
.contents_box h3 p{
    padding-bottom: 1em;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    text-align: center;
}
.pct_btm_container{
        background: none;
        margin-top:-12.8rem;
        padding: 0;
        line-height: 0;
        position: relative;
        z-index: 800;
}
@media (min-width: 620px) { 
    .pct_btm_container{
       /*background-color: var(--light-grey);*/
       margin-top:-22rem;
   }
}

@media (min-width: 768px) { 
    .pct_btm_container{
       /*background-color: var(--light-grey);*/
       margin-top:-21rem;
   }
}

@media (min-width: 1024px) { 
     .pct_btm_container{
        background: none;
        margin-top:-32rem;
        padding: 0;
        width: 120%;
    }
}



.contents_box p{
    font-weight: 100;
    margin-bottom: 1rem;
}
.contents_box figure{
    text-align: center;
}
.contents_box .al_r{
    margin-bottom: -.4em;
    margin-left: auto;
    width: 8%;
}
.contents_box .al_r_bk{
    margin-bottom: -.4em;
    margin-left: auto;
    width: 18%;
    right: 0;
}
.contents_box .al_l{
    text-align: left;
    width: 8%;
}
.novel_lst li{
    list-style-position: inside;
    list-style-image: url(../img/ico_crown.png);
    text-indent: -1.5rem;
    margin-bottom: 1rem;
    padding-left:1.5rem;
}

.book_container{
    margin: 2rem auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 25px;
}
@media (min-width: 768px) {
    .book_container{
        gap: 32px 65px;
    }
}

.book_container .book_buy a:hover img{
    transform: scale(1.1,1.1);
    -webkit-transition: all .3s;
    transition: all .3s;
}
.book_container .book_pct{
    text-align: center;
}

.book_container .book_pct #stick{
    margin: 0 auto;
    width: 60%;
}

/*
character
================================================ */
#character{
    padding-bottom: 5rem;
}



#character .name{
    background: url(../img/chara_arrow.png) no-repeat center bottom;
    background-size: contain;
    position: relative;
    margin-top: auto;
    margin-bottom: 0;
    width: 100%;
    font-size: 1rem;
    font-weight: 700;
    text-align: center;
}
#character .name .lng{
    padding-top: 1.75em;
}


#character .name p{
    color: var(--beige);
    font-weight: 700;
    margin-top: .4rem;
    padding-bottom: .6em;
    
}

#character .chara_container_top{
    background: url(../img/bg_chara.png) repeat-y;
    background-size: cover;
    background-position: center center;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 55px;
    margin-bottom: 2rem;
}
#character .chara_container_btm{
    background: url(../img/bg_chara.png) repeat-y;
    background-size: cover;
    background-position: center center;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px 10px;
    margin-bottom: 2rem;
}
@media (min-width: 768px) {
    #character{
        padding-bottom: 20rem;
    }
    #character .name{
        font-size: 1.75rem;
    }

    #chacharacterra .chara_container_btm{
        gap: 32px 25px;
        margin-bottom: 2rem;
    }
}

#character .chara_container_btm article .name{
    margin-top: auto;
}

#character #pct_broom{
    margin-left: auto;
    width: 50%;
    text-align: right;
}

/*
special
================================================ */
#special{
    margin-bottom: 0;
    padding-bottom: 2rem;
}
#special .mov_container {
    width: 100%;
    aspect-ratio: 16 / 9;
}
#special .mov_container iframe {
    width: 100%;
    height: 100%;
}


/*
chara
================================================ */
#chara .chara_container{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px 25px;
    margin-bottom: 2rem;
}



/*
	page_top
================================================ */
#page_top{
	width: 50px;
	height: 50px;
	position: fixed;
    bottom: 10PX;
    right: 1%;
    z-index: 1000;
}
#page_top a{
	position: relative;
	display: block;
	width: 50px;
	height: 50px;
}

#page_top a:hover{
      opacity:inherit;
      transform: translateY(-5px);
      cursor: pointer;
  }
@media screen and (max-width: 750px) and (orientation: landscape) { /*横向きの際に適用*/
    .page_top {
        width: 8%;
    }
}



/*
footer
================================================ */
#footer {
    background-color: var(--brown);
    color: var(--white);
    margin-top: 0;
    z-index: 200;
    
}
#footer .inner{
    display: grid;
    /*grid-template-columns: 3fr 1fr;*/
    grid-template-columns: 1fr 1fr 1fr;
    padding: 1em;
    font-size: 80%;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    font-weight: 400;
}
#footer a{
    color: var(--white);
    text-decoration: none;
}
#footer li{
    font-size: .8rem; 
    vertical-align: middle;
}
#footer li::last-child{
    text-align: right;
}
#footer #copy {
    text-align: center;
}
#footer #info{
    text-align: right;
}
#footer #info a:hover{
    border-bottom: var(--white) solid 1px;
}
@media (min-width: 620px) { 
    #footer #info{
        font-size: .8rem;
    } 
}



/*** class ***/
.none {
    display: none;
}
.t1em {
    margin-top: 1em;
}
.t2em {
    margin-top: 2em;
}
.t3em {
    margin-top: 3em;
}
.b1em {
    margin-bottom: 1em;
}
.b2em {
    margin-bottom: 2em;
}
.b3em {
    margin-bottom: 3em;
}

.txt_center{
    text-align: center;
}

.flex_wrap {
    display: flex;
}

a.hover80:hover img {
    opacity: 0.8;
    filter: alpha(opacity=80);
    -ms-filter: "alpha( opacity=80 )";
    transition: all 0.5s;
}

/*fadeInUp*/
.fadeInUp {
  opacity : 0;
  transform: translateY(20px);
  transition: 1s;
}


/*fuwafuwa*/
.fuwafuwa{
  animation: an_fuwafuwa 3s linear infinite;
  transform-origin: 50% 50%;
  margin: 1rem 0 !important;
}
 
@keyframes an_fuwafuwa {
  0% { transform: translateY(0) }
  33.33333% { transform: translateY(-10px) }
  66.66667% { transform: translateY(0) }
  100% { transform: translateY(0) }
}


.pyonpyon {
  animation: an_pyonpyon 3s infinite ease;
}

@keyframes an_pyonpyon {
  0% {
    transform: translate(0, 0);
  }
  5% {
    transform: translate(0, 0);
  }
  10% {
    transform: translate(0, 0);
  }
  20% {
    transform: translate(0, -5px);
  }
  25% {
    transform: translate(0, 0);
  }
  30% {
    transform: translate(0, -5px);
  }
  50% {
    transform: translate(0, 0);
  }
  100% {
    transform: translate(0, 0);
  }
}

.animate__flipInX{
    animation-timeline: scroll(); /* スクロール量に応じてアニメーション */
    /* animation-timeline: view();  要素が画面に入ったらアニメーション */
    animation-name: slide-in; /* アニメーション名 */
    animation-duration: 1s;   /* アニメーション時間 */
    animation-fill-mode: both; /* アニメーション終了後も状態を維持 */ 
}

/*** ul_type ***/
.ul_type01 li {
    text-indent: -1em;
    padding-left: 1em;
}


.b_back{
    text-align: center;
}


.b_back img{
    transition: .5s ;
    transform: rotateY( 0deg ) ;
    max-width:20%;
}

 .b_back a:hover img{
    transform: rotateY( 360deg ) ;
}

/*------------------------------------------------------
	mediaQuery
*-------------------------------------------------------*/
@media screen and (min-width: 640px) {

    body{
        font-size: 140%;
    }

    .SP {
        display: none;
    }
    .PC {
        display: block;
    }
    
    /** container **/
    #container {
    }
    

    
    /** page_top **/
    .page_top {
        width: 60px;
        right: 0;
    }
}

/*
MOVE
================================================ */
/* up&down*/

.upanddown_r {
    animation: move-r .8s infinite alternate ease-in-out;
    display: inline-block;
  }
  @keyframes move-r {
    from {
      transform: translateY(25px);
    }
    to {
      transform: translateY(0);
    }
  }
  
  .fadeInUp {
    opacity : 0;
    transform: translateY(20px);
    transition: 1s;
  }