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

body{
    margin: 0;
}

.sp{
    display: none;
}

.pc{
    display: inherit;
}


/*動き*/
.fadein_element {
    opacity: 0;
    visibility: hidden;
    transform: translateY(30px);
    transition: opacity 1s, visibility 1s, transform 1s;
}

.fadein_element_is_fadein {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
    left: 0;
    right: 0;
}


/*共通*/
section#top{
    background: #002801;
    text-align: left;
    color: #fff;
    width: 100%;
    padding: 0;
    word-break: break-all;
    font-family: "dnp-shuei-mincho-pr6n", sans-serif;
    font-weight: 500;
    font-style: normal;
}

.asterisk{
    text-indent: -1em;
    margin-left: 1em;
}

.asterisk::before{
    content: '※';
}

section .inner{
    margin: 0 auto;
    max-width: 930px;
    width: 86.67%;
    position: relative;
    z-index: 1;
}

#top img{
    width: 100%;
}

#top a{
    display: block;
    width: 100%;
    height: 100%;
}

.font_sans{
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
}

/*kv*/

/*about*/
#about{
    background: url(../img/about_bg.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    text-align: center;
    padding: 100px 0 160px 0;
    overflow: hidden;
    position: relative;
}

#about .inner{
    width: 89.6%;
}

.about_title{
    max-width: 335px;
    width: 100%;
    margin: 0 auto;
}

#about p{
    max-width: 770px;
    width: 100%;
    margin: 70px auto auto auto;
    position: relative;
}

#about p::before{
    content: '';
    background: url(../img/about_l.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: 179px;
    height: 589px;
    position: absolute;
    top: -220px;
    left: -11.5vw;
    z-index: -1;
}

#about p::after{
    content: '';
    background: url(../img/about_r.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: 613px;
    height: 807px;
    position: absolute;
    top: -429px;
    right: -23.8vw;
    z-index: -1;
}


/*product_detail*/
#product_detail{
    padding: 90px 0 95px 0;
    position: relative;
}

#product_detail::before{
    content: '';
    background: linear-gradient(0deg,rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0) 100%);
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

#product_detail::after{
    content: '';
    background: url(../img/product_l_01_bg.png);
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
    width: 448px;
    height: 688px;
    position: absolute;
    top: 0;
    left: 0;
}

/*product*/
#product{
    position: relative;
}

#product::before{
    content: '';
    background: url(../img/product_detail_01_img.png);
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
    width: 98px;
    height: 134px;
    position: absolute;
    top: -140px;
    left: 2.5vw;
    z-index: 1;
}

#product .inner{
    max-width: 1108px;
}

.product_box{
    width: 95%;
    margin: 0 auto;
}

.product_box ul{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}

.product_box ul li{
    width: 50%;
    display: block;
}

.product_box ul li:first-child img {
    width: 94% !important;
}

.product_box ul li:last-child{
    position: relative;
}

.product_box ul li:last-child::after{
    content: '';
    background: url(../img/product_r.png);
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
    width: 207px;
    height: 132px;
    position: absolute;
    top: -30px;
    right: -30px;
    z-index: -1;
}

.product_box .yellow{
    color: #E0BF35;
    font-size: 48px;
    letter-spacing: 0.12em;
    margin-bottom: 50px;
    display: block;
}

.product_box .text{
    font-size: 26px;
    letter-spacing: 0.07em;
    margin-bottom: 45px;
    line-height: 1.8;
    display: block;
}

.product_box .text span{
    font-size: 31px;
}

.product_box .maccha{
    max-width: 239px;
    width: 100%;
    display: block;
}

.product_box .release{
    background: #FFFCDB;
    display: block;
    padding: 20px;
    max-width: 464px;
    width: 100%;
    margin-top: 65px;
    margin-bottom: 30px;
}

.product_box .release .red{
    font-size: 22px;
    letter-spacing: 0.07em;
    color: #AD0000;
    margin-bottom: 8px;
    display: block;
}

.product_box .release .asterisk{
    font-size: 16px;
    letter-spacing: 0.002em;
    color: #002801;
    display: block;
}

/*detail*/
#detail{
    margin-top: 90px;
    position: relative;
    overflow-x: clip;
}

#detail::before{
    content: '';
    background: url(../img/product_r_01_bg.png);
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
    width: 544px;
    height: 906px;
    position: absolute;
    top: -470px;
    right: 0;
    z-index: 0;
}

#detail::after{
    content: '';
    background: url(../img/product_detail_02_img.png);
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
    width: 235px;
    height: 206px;
    position: absolute;
    top: -220px;
    right: -30px;
    z-index: 0;
}

#detail .inner{
    max-width: 1152px;
}

.detail_box .detail_title{
    max-width: 616px;
    width: 80%;
    margin: 0 auto;
}

.detail_img.pc{
    width: 100%;
    margin-top: 35px;
}

/*teacher*/
#teacher{
    padding: 100px 0 35px 0;
    position: relative;
}

#teacher::before{
    content: '';
    background: url(../img/product_l_02_bg.png);
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
    width: 461px;
    height: 974px;
    position: absolute;
    top:  -480px;
    left: 0;
    z-index: 0;
}

#teacher::after{
    content: '';
    background: url(../img/product_detail_03_img.png);
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
    width: 127px;
    height: 174px;
    position: absolute;
    top:  -40px;
    left: 40px;
    z-index: 0;
}

.teacher_voice_title{
    font-size: 35px;
    text-align: center;
    letter-spacing: 0.12em;
    position: relative;
    max-width: 930px;
    width: 100%;
    margin: auto auto 50px auto;
}

.teacher_voice_title::after{
    content: '';
    background: url(../img/line.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: 100%;
    height: 20px;
    display: block;
    margin-top: 15px;
}

.teacher_voice_title span{
    color: #E0BF35;
    font-size: 46px;
}

.teacher_name{
    text-align: center;
    font-size: 25px;
    letter-spacing: 0.12em;
    margin-bottom: 30px;
}

.teacher_box{
    background: #FFFCDB;
    display: block;
}

.teacher_box.first{
    margin-bottom: 40px;
}

.teacher_box_title{
    text-align: center;
    font-size: 25px;
    letter-spacing: 0.12em;
    background: #C3942F;
    line-height: 1;
    padding: 15px 5px;
}

.teacher_box_text{
    color: #002801;
    max-width: 838px;
    width: 89.54%;
    margin: 0 auto;
    padding: 25px 0;
    line-height: 1.875;
    letter-spacing: 0.08em;
    font-size: 16px;
}

.teacher_box_text span{
    font-size: 20px;
    font-weight: bold;
}

.teacher_box_text span.red{
    color: #AD0000;
}

.teacher_box_text span.mt15{
    margin-top: 15px;
    font-size: 16px;
    display: block;
}

#teacher .asterisk,
#voice .asterisk{
    font-size: 13px;
    text-align: right;
    margin-top: 10px;
    font-weight: 300;
    letter-spacing: 0.07em;
}

.decoration{
    position: relative;
}

.decoration::before{
    content: '';
    background: url(../img/teacher_01_img.png);
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
    width: 126px;
    height: 105px;
    position: absolute;
    top:  410px;
    right: 20px;
    z-index: 0;
}

.decoration::after{
    content: '';
    background: url(../img/teacher_02_img.png);
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
    width: 135px;
    height: 176px;
    position: absolute;
    bottom:  -110px;
    left: 20px;
    z-index: 0;
}


/*voice*/
#voice{
    padding: 35px 0 70px 0;
}

#voice .inner{
    max-width: 1108px;
}

@media screen and (max-width:1500px){
    #about::after{
        right: 7px;
    }
}

@media screen and (max-width:1200px){
    #detail::before,
    #teacher::before{
        opacity: 0.5;
    }
    .product_box ul li:last-child::after {
        top: -6vw;
    }
}

@media screen and (max-width:1160px){
    #teacher::after {
        width: 9vw;
    }
}

@media screen and (max-width:1100px){
    #detail::after {
        display: none;
    }
}

@media screen and (max-width:960px){
    .product_box ul li:last-child::after,
    .decoration::after{
        display: none;
    }
}

@media screen and (max-width:784px){
    .product_box .yellow {
        font-size: 6vw;
    }
}


@media screen and (max-width:767px){
    .sp{
        display: inherit;
    }

    .pc{
        display: none;
    }

    /*about*/
    #about{
        background: url(../img/sp/about_bg.png);
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
        padding: 35px 0 45px 0;
        position: relative;
    }
    
    #about::after{
        content: '';
        background: url(../img/about_r.png);
        background-size: contain;
        background-repeat: no-repeat;
        width: 113.87vw;
        height: 150vw;
        position: absolute;
        top: -16vw;
        right: -19vw;
        opacity: 0.75;
    }
    
    #about .inner {
        width: 94%;
    }

    .about_title{
        width: 51.2%;
    }

    #about p{
        margin: 20px auto auto auto;
    }

    #about p::before{
        display: none;
    }

    #about p::after{
        display: none;
    }

    /*product_detail*/
    #product_detail{
        padding: 20px 0 50px 0;
    }

    #product_detail::after{
        content: '';
        background: url(../img/sp/product_l_01_bg.png);
        background-size: contain;
        background-repeat: no-repeat;
        display: block;
        width: 138px;
        height: 163px;
        position: absolute;
        top: 0;
        left: 0;
    }

    /*product*/
    #product::before{
        width: 40px;
        height: 60px;
        position: absolute;
        top: -60px;
        left: 2.5vw;
        z-index: 1;
    }
    
    .product_box{
        width: 100%;
    }

    .product_box ul{
        display: block;
        text-align: center;
    }

    .product_box ul li{
        width: 100%;
        display: block;
    }

    .product_box ul li:first-child img {
        width: 100% !important;
    }

    .product_box ul li:last-child::after{
        display: none;
    }

    .product_box .yellow{
        font-size: 27px;
        margin-bottom: 27px;
        margin-top: -7px;
    }

    .product_box .text{
        font-size: 18px;
        letter-spacing: 0.05em;
        margin-bottom: 0;
        line-height: 1.5;
    }

    .product_box .text span{
        font-size: 23px;
    }

    .product_box .release{
        padding: 15px 15px 10px 15px;
        margin: 19px auto auto auto;
    }

    .product_box .release .red{
        font-size: 20px;
        margin-bottom: 5px;
    }

    .product_box .release .asterisk{
        font-size: 14px;
        letter-spacing: 0.004em;
        text-align: left;
        line-height: 1.5;
    }

    /*detail*/
    #detail{
        margin-top: 50px;
    }

    #detail::before{
        display: none;
    }

    #detail::after{
        content: '';
        background: url(../img/product_detail_02_img.png);
        background-size: contain;
        background-repeat: no-repeat;
        display: block;
        width: 87px;
        height: 76px;
        top: -410px;
        right: -8px;
    }

    .detail_box .detail_title{
        width: 100%;
    }
    
    .slider-wrapper {
        position: relative;
        overflow: hidden;
        margin: 25px auto auto auto;
    }

    .slider{
    /*    width: 89.54%;*/
        margin: 0 auto;
    }
    li.slider_img {
        max-width: 500px;
        width: 100% !important;
        display: block !important;
        margin: 0 auto;
    }
    
    .slider_img img{
        margin: 0 auto;
    }
    
    .slider-buttons {
      position: absolute;
      top: 50%;
      width: 100%;
      display: flex;
      justify-content: space-between;
      transform: translateY(-50%);
      pointer-events: none;
    }
    
    .slider-buttons button {
      background: none;
      border: none;
      cursor: pointer;
      pointer-events: all;
    }
    
    .slider-buttons img {
      width: 30px;
      height: auto;
    }
    
    .slick-prev:before,
    .slick-next:before{
        display: none;
    }
    
    .slick-prev {
        left: -10px!important;
        width: 25px!important;
        height: 26px!important;
        top: 50px!important;
    }
    
    .slick-next {
        right: -10px!important;
        width: 25px!important;
        height: 26px!important;
        top: 50px!important;
    }
    
    /*teacher*/
    #teacher{
        padding: 50px 0 25px 0;
    }

    #teacher::before{
        content: '';
        background: url(../img/sp/product_l_02_bg.png);
        background-size: contain;
        background-repeat: no-repeat;
        display: block;
        width: 193px;
        height: 252px;
        position: absolute;
        top:  -145px;
        left: 0;
        z-index: 0;
        opacity: 1;
    }

    #teacher::after{
        content: '';
        background: url(../img/product_detail_03_img.png);
        background-size: contain;
        background-repeat: no-repeat;
        display: block;
        width: 60px;
        height: 75px;
        position: absolute;
        top:  -35px;
        left: 10px;
        z-index: 0;
    }

    .teacher_voice_title{
        font-size: 19px;
        margin: auto auto 25px auto;
        line-height: 1.4;
    }

    .teacher_voice_title::after{
        content: '';
        background: url(../img/sp/line.png);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        width: 89.54%;
        height: 20px;
        margin: 15px auto auto auto;
    }

    .teacher_voice_title span{
        font-size: 25px;
    }

    .teacher_name{
        font-size: 18px;
        letter-spacing: 0.07em;
        margin-bottom: 20px;
    }

    .teacher_box.first{
        margin-bottom: 20px;
    }

    .teacher_box_title{
        font-size: 20px;
        padding: 10px 5px;
    }

    .teacher_box_text{
        padding: 15px 0;
        letter-spacing: 0.07em;
        font-size: 15px;
    }

    .teacher_box_text span{
        font-size: 18px;
    }

    .teacher_box_text span.mt15{
        font-size: 15px;
    }

#teacher .asterisk,
#voice .asterisk{
    font-size: 12px;
    text-align: left;
    letter-spacing: 0.04em;
}

.decoration::before,
.decoration::after{
    display: none;
}


/*voice*/
#voice{
    padding: 25px 0 25px 0;
}
    
.sp.voice_02{
    margin-top: 15px;
}

    
    
    
    
    
    
    
    
    
    
    
    
    
}









