@charset "utf-8";

/* * * Reset * * */
html, body, div, section, article, aside, header, footer, main, nav,
h1, h2, h3, h4, h5, h6, p, dl, dt, dd, ul, ol, li, blockquote, pre,
table, th, td, form, figure, fieldset, input, textarea, button {
    margin: 0;
    padding: 0;
}

ol, ul {
    list-style: none;
    list-style-type: none;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}

a img {
    border: none;
}

*, *::before, *::after {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

button {
    background-color: transparent;
    border: none;
    cursor: pointer;
    outline: none;
    padding: 0;
    appearance: none;
}

/* * * Setting * * */
html {
    scroll-behavior: smooth;
}
html, body {
    overflow-x: hidden;
}
body {
    background: #FFF;
    font-family: "Zen Maru Gothic", sans-serif;
    font-size: clamp(16px, 2vw, 20px);
    line-height: 1.75;
    color: #333;
    text-align: center;
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
}

a {
    color: inherit;
    text-decoration: none;
}

.PC {
    display: none;
}

/* * * general * * */
.inner {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1em;
    text-align: left;
}








/*** header ***/
#header {
    width: 100%;
    background-color: #f8e4ed;
}
#g_logo img{
	margin: 0.7em 0;
	height: 1.5em;

}

#header h1 {
    padding-bottom: 0.4em;
}
#header h1 img{
    margin:0 auto;
	width:98%;
	max-width: 700px;
}




/*** blocks ***/
.blocks {
    padding: 40px 20px;
}

.blocks h2 img{
	display: block;
    margin:0 auto;
	width: 100%;
	max-width: 650px;
}

.blocks p {
    line-height: 1.8em;
}

.bg_pink{
    background-color: #f8e4ed;
}


/*mokumoku*/
.top_mokumoku{
	background: url("../img/bk_pink01.png") no-repeat;
	background-position: top center;
	background-size: contain;
}
.bottom_mokumoku{
	background: url("../img/bk_pink01_rev.png") no-repeat;
	background-position: bottom center;
	background-size: contain;
}

.both_mokumoku {
  background:
    url("../img/bk_pink01.png") top center / contain no-repeat,
    url("../img/bk_pink01_rev.png") bottom center / contain no-repeat;
}


.last_mokumoku{
  background:
    url("../img/bk_pink01.png") top center / contain no-repeat,
    url("../img/bk_pink02.png") bottom center / contain no-repeat;
}


/*main_slide*/

#main_slide h2{
	margin: 0 10px;
}
#main_slide h2 img{
	width:100%;
	max-width: 800px;
}

#main_slide h3{
	padding: 1.5em 0 1.5em 0;
}
#main_slide h3 img{
	height: 1.8em;
	width: auto;
}



/**nav**/
#nav .inner{
	padding: 2rem 0.2rem;
}
#nav ul{
	display: flex;
	gap:1rem;
	max-width: 1000px;
	margin: 0 auto;
}


/**series**/

#series{
	padding: 3em 0 2em 0;
}
#series h3{
	
}
#series h3 img{
	display: block;
	width: 100%;
	max-width: 800px;
	height: auto;
	margin: 0 auto;

}

.text_type_A{
	text-align: center;
	margin: 2em 0;
}
.text_type_A strong{
	font-size: 110%;
	text-align: center;
}

strong{
	color: #E64290;
}


/*point*/

#point_list{
	max-width: 800px;
	margin: 0 auto;
}
#point_list li{
	display: flex;
	margin: 0.5em 0;
	gap:20px;
    min-height: 5em;
    align-items: center;
	
}
#point_list li img{
	height: 4.5em;
	
}



/**linenp**/
.book{
    border-bottom: 2px solid #FFF;
    padding-bottom: 3em;
    margin-bottom: 3em;
}
.book:last-of-type {
    padding-bottom: 3em;
    margin-bottom: 1em;
}

.rank_area{
    display: flex;
    gap:0.5em;
    margin: 0.5em 0;
}
.rank_area img{
    width:30%;
	max-width: 200px;
}


/**sub_slider_wrap**/
.sub_slider_wrap{
    display: flex;
    flex-direction: column;
    /*border: 1px solid blue;*/
	position: relative;
    
}
.sub_slider_wrap figure img{
    border: 3px solid #FFF;
}

.wrap{
   /* border: 1px solid red;*/

}

/*i_yoyaku*/
.i_yoyaku{
    position: absolute;
    top: -6%;
    left: -3%;
    width: 30%;
}
.i_yoyaku img{
    width: 100%;
    height: auto;
}









.book_titles{
    padding: 1em 0;
    font-size: 110%;
}
.book_title{
    font-weight: 600;
    margin-bottom: 0.5em;
}
.book_credit{
    font-size: 80%;
    line-height: 1.5em !important;
    margin-bottom: 0.5em;
}


/* =========================
   メインカルーセル
========================= */

.carousel_main{
 /* max-width:1200px;*/
  margin:auto;
}

/* スライド幅 */
#main_slider .splide__slide{
  width:260px;
}

/* 画像 */
#main_slider img{
  width:100%;
  height:auto;
  display:block;
}

#main_slider{
  position: relative;
  padding-bottom: 10px;/*A*/
}

/* ドットを外に出す */
#main_slider .splide__pagination{
  bottom: -10px;/*A*/
}



/* =========================
   サブカルーセル
========================= */

/* スライド画像 */

.sub_slider img{
  width:100%;
  display:block;
}

/* 左矢印を消す */
.sub_slider .splide__arrow--prev{
  display:none;
}

.sub_slider .splide__arrow{
  background: rgba(0,0,0,0.5);
  width:40px;
  height:40px;
}

.sub_slider .splide__arrow svg{
  fill:#fff;
}

.sub_slider{
  position: relative;
  margin-bottom: 25px;/*B*/
}

/* ドットを外に出す */
.sub_slider .splide__pagination{
  bottom: -25px;/*B*/
}

/* >を右に出す */
/* 丸背景を消す */
.sub_slider .splide__arrow{
  background: none;
  width: 24px;
  height: 24px;
}

/* 矢印の色 */
.sub_slider .splide__arrow svg{
  fill: #666;
}

/* 右側に少し出す */
.sub_slider .splide__arrow--next{
  right: -20px;
}







/*btns*/
.btns{
    display: flex;
    justify-content:space-around;
    margin: 1em 0;
    gap:0.5rem;
}
.btns li {
    flex: 1;
    min-width: 0; /*はみ出し防止*/
}
.btns li a{
    display: block;
    color: #FFF;
    padding: 0.3em 1em;
    border-radius: 0.5em;
    white-space: nowrap; 
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: clamp(10px, 3vw, 30px);
    text-align: center;
}

.btns li a:hover{
     filter: brightness(1.1);
}

.btns .b_gakken a{
    background-color: #8dc21f;
}
.btns .b_amazon a{
    background-color: #ed7700;
}
.btns .b_rakuten a{
    background-color: #e50012;
}





/**message**/
.list_msg{
	background-color: #F8E4ED;
	padding: 1.5em 1em 1em 1em;
	border-radius: 1em;
	position: relative;
	margin-bottom: 2em;
}
.list_msg::before {
	background: url("../img/i_ribon.webp") no-repeat center / contain;
	content: "";
	position: absolute;

	top: -3%;
	left: 50%;
	transform: translateX(-50%);

	width: 100%; 
	height: 2em;
	/*border:1px solid red;*/

}

.list_msg dt{
	color: #E64290;
	font-size: 140%;
	text-align: center;
	font-weight: 500;
	border-bottom: 3px dotted  #E64290;
	margin-bottom: 0.5em;
    line-height: 1.3em;
    padding-bottom: 0.2em;

}

.list_msg dd > div{
	margin: 1em 0;
}

/*msg_last_wrap*/
.msg_last_wrap{
	display: flex;
	flex-direction: column; 
}

.msg_credit p:first-child{
}
.msg_credit p:last-child{
	font-size: 80%;
}





/***animation***/

.ani_fade {
  opacity: 0;
  transition: opacity 0.8s ease-out;
}
.ani_fade.show {
  opacity: 1;
}



.ani_fadeUp {
  opacity: 0;
  transform: translateY(20px);
  transition: 0.8s ease;
}
.ani_fadeUp.show {
  opacity: 1;
  transform: translateY(0);
}


.ani_blink {
  opacity: 0;
  animation: none;
}

.ani_blink.show {
  opacity: 1;
  animation: blinkDouble 1s ease-out forwards;
}

@keyframes blinkDouble {
  0%   { opacity: 1; }

  20%  { opacity: 0; }  /* 1回目 消える */
  40%  { opacity: 1; }  /* 戻る */

  60%  { opacity: 0; }  /* 2回目 消える */
  80%  { opacity: 1; }  /* 戻る */

  100% { opacity: 1; }  /* そのまま終了 */
}








/** page_top **/
#page_top {
    height: 60px;
    position: fixed;
    bottom: 16px;
    right: 16px;
    z-index: 100;
}

#page_top a {
    position: relative;
    display: block;
    width: 60px;
    height: 60px;
    text-decoration: none;
    background: gray;
    opacity: 0.6;
    border-radius: 9999px;
    transition: background-color 0.3s ease, opacity 0.3s ease;
}

#page_top a:hover {
    background: #08b9d4;
    opacity: 1;
}



@media screen and (max-width: 750px) and (orientation: landscape) {
    #page_top a {
        width: 52px;
        height: 52px;
    }
}













/*** footer ***/
#footer {
    padding: 2em 0;
    text-align: center;
    background-color: #e64290;
    color: #FFF;
}
#footer .inner{
    display: flex;
    justify-content: space-between;
}
#footer .inner p{
    flex: 1;
    font-size: 0.875em;
    line-height: 1.2em;
}

#footer #copy {
}

/*** 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;
}

.flex_wrap {
    display: flex;
    flex-wrap: wrap;
}

a.hover80:hover img {
    opacity: 0.8;
    transition: opacity 0.3s ease;
}

/*** ul_type ***/
.ul_type01 li {
    text-indent: -1em;
    padding-left: 1em;
}

.small{
	font-size: 80%;
}

















/*------------------------------------------------------
    mediaQuery
*-------------------------------------------------------*/
@media screen and (min-width: 640px) {
    body {
        font-size: 150%;/*130%*/
    }

    .SP {
        display: none;
    }

    .PC {
        display: block;
    }



    #main_slide h3 img{
        height: 2.2em;
        margin: 0.8em 0;
    }

    /**nav**/
    #nav .inner{
        padding: 3rem 0.2rem;
    }

    /*** blocks ***/
    .blocks {
        padding: 80px 20px;
    }


    /**sub_slider_wrap**/
    .sub_slider_wrap{
        flex-direction: row;
        gap:1em;
    }


    /* それぞれを 1:1 にする */
    .sub_slider_wrap > figure,
    .sub_slider_wrap > .wrap{

      flex-grow: 1;
      flex-shrink: 1;
      flex-basis: 0;
      min-width: 0; /*はみ出し防止*/
    }


    #point_list{
        padding-bottom: 5vw;

    }




    /*series*/
    #series{
        padding: 5em 0 4em 0;
    }
    /**message**/
    #series h2{
        padding-top: 1em;
    }

    /**linenp**/
    .book{
        border-bottom: 3px solid #FFF;
        padding-bottom: 5em;
        margin-bottom: 5em;
    }


    #book01{
        margin-top: 2em;
    }


    /*i_yoyaku*/
    .i_yoyaku{
        position: absolute;
        top: -14%;
        left: -3%;
        width: 15%;
    }

    /*
    .sub_img{
      width:40%;
    }

    .sub_slider{
      width:60%;
    }
    */

    /**message**/
    #message h2{
        padding: 2em 0 1em 0;
    }
    .list_msg{
        padding: 1.7em 5vw 1.7em 5vw;
        margin-bottom: 4em;
    }


    .msg_last_wrap{
        flex-direction: row;
        gap:0.5em;
        justify-content:space-around;
        align-items: flex-end;
    }

    
    .msg_last_wrap .msg_credit {
        width:30%;
    }



    /*btns*/
    .btns{
        margin: 2em 0;
        gap:2vw;
    }






}