@charset "utf-8";

/* CSS Document */

/* ------------------------------------------
  common
--------------------------------------------- */
/*title*/
.page-title{
    padding-bottom: 40px;
}

.page-lead{
    padding-bottom: 40px;
    text-align: center;
}

.head-lv2 {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 75px 0 20px;
    margin-bottom: 65px;
    text-align: center;
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    position: relative;
}

.head-lv2 small {
    font-size: 16px;
    display: block;
    width: 100%;
    line-height: 1;
}

.head-lv2 span {
    font-size: 24px;
    font-weight: 500;
    display: block;
    width: 100%;
    letter-spacing: 2px;
}

.head-lv2:before {
    content: "";
    display: block;
    width: 45px;
    height: 49px;
    position: absolute;
    top: 20px;
    background: url(../images/title-icon.svg) no-repeat;
    background-size: 45px;
}

.head-lv2.head-icon01:before {
    width: 65px;
    height: 35px;
    background: url(../images/title-icon01.png) no-repeat;
    background-size: cover;
}

.head-lv2.head-icon02:before {
    width: 62px;
    height: 38px;
    background: url(../images/title-icon02.png) no-repeat;
    background-size: cover;
}

.head-lv2.head-icon03:before {
    width: 56px;
    height: 40px;
    background: url(../images/title-icon03.png) no-repeat;
    background-size: cover;
}

.head-mb-small{
    margin-bottom: 45px;
}

.head-lv3 {
    font-size: 20px;
    line-height: 1.5;
    font-weight: 500;
    padding-bottom: 10px;
    margin-bottom: 10px;
    position: relative;
}

.head-lv3:after {
    content: "";
    display: block;
    width: 30px;
    height: 4px;
    background: #e0c6af;
    position: absolute;
    bottom: 0;
}

.head-lv3.head-lv3-center:after {
    left: 50%;
    margin-left: -15px;
}

.teiki-cmn-lead{
    text-align: center;
    padding-bottom: 40px;
}
/*btn*/
.btn-wrap{
    display: flex;
    justify-content: center;
    justify-content: center;
    flex-wrap: wrap;
}

.btn-wrap-campaign{
    width: 100%;
    text-align: center;
    padding-bottom: 5px;
    font-weight: 500;
    font-size: 16px;
    color: #a91414;
}

.btn-wrap-campaign span{
    position: relative;
}

.btn-wrap-campaign span:before,.btn-wrap-campaign span:after{
    content: "";
    display: block;
    width: 2px;
    height: 18px;
    background: #a91414;
    position: absolute;
    top: -1px;
}

.btn-wrap-campaign span:before{
    left: -20px;
    -webkit-transform: rotate( 135deg ) translateY(-50%);
    transform: rotate( 135deg ) translateY(-50%);
}

.btn-wrap-campaign span:after{
    right: -20px;
    -webkit-transform: rotate( -135deg ) translateY(-50%);
    transform: rotate( -135deg ) translateY(-50%);
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border: none;
    text-decoration: none;
    width: 340px;
    height: 60px;
    border-radius: 6px;
    color: #fff !important;
    background: #a91414;
    font-size: 16px;
    position: relative;
    padding-bottom: 1px;
}

.btn:after {
    content: "";
    display: block;
    width: 9px;
    height: 9px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    -webkit-transform: rotate(135deg) translateY(-50%);
    transform: rotate(135deg) translateY(-50%);
    position: absolute;
    top: 22px;
    right: 25px;
}

.btn.btn-cv:after{
     -webkit-transform: rotate(45deg) translateY(-50%);
    transform: rotate(45deg) translateY(-50%);
    top: 28px;   
}

/*fadein*/
.fadein {
  opacity: 0;
  transform : translate(0, 50px);
  transition : all 1500ms;
}

.fadein.scrollin{
  opacity: 1;
  transform: translate(0, 0);
}

.fadein-jikansa{
  opacity: 0;
  transform : translate(0, 50px);
  transition : all 1500ms;
}

.fadein-jikansa-active{
  opacity: 1;
  transform: translate(0, 0);
}

/* ------------------------------------------
  tokuten
--------------------------------------------- */
.tokuten{
    display: flex;
    justify-content: space-between;
    padding-bottom: 20px;
}
.tokuten-item{
    background: #fbf8d1;
    text-align: center;
    width: 250px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0;
    padding: 15px 20px 25px;
}

.tokuten-item-img{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100px;
}

.tokuten-item p small{
    font-size: 16px;
}

.tokuten-item p span{
    font-size: 20px;
    color: #a91414;
    text-decoration: underline;
    letter-spacing: 2px;
}

.tokuten-notice{
    font-size: 12px;
    line-height: 1.5;
    padding-bottom: 40px;
    text-align: right;
}

.tokuten-notice span{
    text-align: left;
    display: inline-block;
}

/* ------------------------------------------
  scene
--------------------------------------------- */
.scene-item{
    display: flex;
    justify-content: space-between;
    padding-bottom: 65px;
}

.scene-item-img{
    width: 385px;
}

.scene-item-img-line{
    position: relative;
}

.scene-item-img-line:after{
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    border: 1px solid #ccc;
    position: absolute;
    top: 7px;
    right: -7px;
    z-index: -1;
}

.scene-item-text{
    display: flex;
    align-items: center;
    width: 385px;
}

/* ------------------------------------------
  habit
--------------------------------------------- */
.habit-list{
    display: flex;
    justify-content: space-between;
    text-align: center;
    padding-bottom: 65px;
}

.habit-item{
    width: 224px;
}

.habit-item-img{
    margin-bottom: 20px;
}

.habit-item-img-line{
    position: relative;
}

.habit-item-img-line:after{
    content: "";
    display: block;
    width: 224px;
    height: 224px;
    border-radius: 112px;
    border: 1px solid #ccc;
    position: absolute;
    top: 7px;
    right: -7px;
    z-index: -1;
}

.habit-item-text p{
    line-height: 1.75;
    letter-spacing: 0;
}

/* ------------------------------------------
  Haiso-span
--------------------------------------------- */
.haiso-span-img{
    text-align: center;
    padding-bottom: 45px;
}

.haiso-span-text-wrap{
    display: flex;
    justify-content: space-between;
    margin-bottom: 60px;
}

.haiso-span-text{
    background: #f1f1f1;
    text-align: center;
    padding: 15px 20px 35px;
    width: 31.5%;
}

.haiso-span-text-title{
    font-weight: 500;
    border-bottom: 1px solid;
    letter-spacing: 0;
    padding-bottom: 0px;
    margin-bottom: 15px;
    display: inline-block;
}

.haiso-span-text-inner{
    line-height: 1.5;
    font-size: 12px;
}

.haiso-span-text-inner li{
    background: #676767;
    color: #fff;
    border-radius: 6px;
    padding: 10px;
    margin-bottom: 20px;
    position: relative;
}

.haiso-span-text-inner li:last-child{
    margin-bottom: 0;
}

.haiso-span-text-inner li:after {
    border: solid transparent;
    content: '';
    height: 0;
    width: 0;
    pointer-events: none;
    position: absolute;
    border-top-width: 10px;
    border-bottom-width: 10px;
    border-left-width: 10px;
    border-right-width: 10px;
    margin-left: -10px;
    border-top-color: #7c7c7c;
    bottom: -25px;
    left: 50%;
}

.haiso-span-text-inner li:last-child:before {
    border: solid transparent;
    content: '';
    height: 0;
    width: 0;
    pointer-events: none;
    position: absolute;
    border-top-width: 10px;
    border-bottom-width: 10px;
    border-left-width: 10px;
    border-right-width: 10px;
    margin-left: -10px;
    border-top-color: #7c7c7c;
    bottom: -32px;
    left: 50%;
}


/* ------------------------------------------
  FAQ
--------------------------------------------- */
.faq-item{
    background: #f1f1f1;
    margin-bottom: 15px;
    padding: 30px 40px;
    line-height: 1.5;
}

.faq-item dt{
    padding-bottom: 5px;
}

.faq-item dt,.faq-item dd{
    position: relative;
    padding-left: 20px;
}

.faq-item dt:before{
    content: "Q.";
    color: #87b1ca;
    position: absolute;
    left: 0;
}

.faq-item dd:before{
    content: "A.";
    color: #e43e3e;
    position: absolute;
    left: 0;
}

.faq-item dd a {
    text-decoration: underline;
    color: #0066CC;
}

/* ------------------------------------------
  course
--------------------------------------------- */
.course-item{
    padding-bottom: 60px;
}

.course-item-top{
    display: flex;
    justify-content: space-between;
    padding-bottom: 30px;
}

.course-item-img{
    width: 385px;
}

.course-item-img-line{
    position: relative;
}

.course-item-img-line:after{
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    border: 1px solid #ccc;
    position: absolute;
    top: 7px;
    right: -7px;
    z-index: -1;
}

.course-item-text{
    display: flex;
    align-items: center;
    width: 385px;
}

.course-copy{
    line-height: 1.75;
    padding: 0 0 20px;
}

/*course-price*/
.course-price{
    letter-spacing: 0;
    color: #a91414;
    line-height: 1;
    position: relative;
}

.course-price-normal{
    padding-bottom: 15px;
    position: relative;
}

.course-price-normal:after{
    border: solid transparent;
    content: '';
    height: 0;
    width: 0;
    pointer-events: none;
    position: absolute;
    border-top-width: 7px;
    border-bottom-width: 10px;
    border-left-width: 10px;
    border-right-width: 10px;
    border-top-color: #909090;
    bottom: -9px;
    left: 55px;
}

.course-price-normal > small{
    font-size: 11px;
    font-weight: 500;
}

.course-price-normal span{
    font-size: 18px;
    font-weight: 700;
}

.course-price-normal span small{
    font-size: 14px;
}

.course-price-teiki{
    position: relative;
    /* padding-left: 50px; */
    font-weight: 700;
    margin-bottom: 20px;
}

.course-price-teiki-top{
    position: absolute;
    top: 4px;
    left: 2px;
    font-size: 10px;
}

.course-price-teiki-month{
    /* position: absolute; */
    bottom: 0;
    left: 0;
    font-size: 20px;
}

.course-price-teiki > small{
    font-size: 16px;
    display: block;
    font-weight: 500;
    padding-bottom: 5px;
}

.course-price-teiki-kakaku{
    font-size: 38px;
}

.course-price-teiki-kakaku span{
    font-size: 24px;
}

.course-price-teiki-kakaku small{
    font-size: 16px;
}

.course-price-fukidashi{
    width: 65px;
    height: 65px;
    border-radius: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: #b73232;
    position: absolute;
    top: -17px;
    left: 180px;
    font-size: 14px;
    font-weight: 500;
    padding-bottom: 3px;
}

.course-price-fukidashi:after{
    border: solid transparent;
    content: '';
    height: 0;
    width: 0;
    pointer-events: none;
    position: absolute;
    border-top-width: 10px;
    border-bottom-width: 10px;
    border-left-width: 10px;
    border-right-width: 10px;
    margin-left: -10px;
    border-top-color: #b73232;
    bottom: -11px;
    left: -3px;
    -webkit-transform: rotate( 45deg ) translateY(-50%);
    transform: rotate( 45deg ) translateY(-50%);   
}

.course-price-fukidashi big{
    font-size: 24px;
}


.teiki-campaign{
    padding-left: 47px;
}

.teiki-campaign .course-price-teiki-month {
    position: absolute;
    bottom: 0px;
    left: 0;
    font-size: 18px;
}

.teiki-campaign .course-price-teiki-top {
    top: 3px;
}
.teiki-campaign .course-price-teiki-kakaku {
    font-size: 30px;
}

.teiki-campaign + .course-price-fukidashi{
    top: -10px;
    left: 200px;
}

.adoveCampaign{
    display: inline-block;
    position: relative;
    padding: 5px 10px;
    text-align: center;
    border: 1px solid;
    margin-top: -5px;
}

.adoveCampaign span{
    font-weight: 700;
}
.adoveCampaign:after,.adoveCampaign:before{
    border: solid transparent;
    content:'';
    height:0;
    width:0;
    pointer-events:none;
    position:absolute;
    top:100%;
    left:50%;
}
.adoveCampaign:after{
    border-color: rgba(255, 255, 255, 0);
    border-top-width: 6px;
    border-bottom-width: 6px;
    border-left-width: 6px;
    border-right-width: 6px;
    margin-left: -6px;
    border-top-color:#FFFFFF;
}
.adoveCampaign:before{
    border-color: rgba(33, 33, 33, 0);
    border-top-width: 8px;
    border-bottom-width: 8px;
    border-left-width: 8px;
    border-right-width: 8px;
    margin-left: -8px;
    margin-top: 0px;
    border-top-color:#a91414;
}

.course-price-teiki-campaign{
    position: relative;
    padding-left: 68px;
    font-weight: 700;
    margin: 5px 0 20px;
}

.course-price-teiki-campaign-top{
    position: absolute;
    top: 4px;
    left: 2px;
    font-size: 10px;
}

.course-price-teiki-campaign-shokai{
    position: absolute;
    bottom: 0;
    left: 0;
    font-size: 16px;
}

.course-price-teiki-campaign > small{
    font-size: 16px;
    display: block;
    font-weight: 500;
    padding-bottom: 5px;
}

.course-price-teiki-campaign-kakaku{
    font-size: 38px;
}

.course-price-teiki-campaign-kakaku span{
    font-size: 24px;
}

.course-price-teiki-campaign-kakaku small{
    font-size: 16px;
}

/*course-item-set*/
.course-item-set-title{
    background: #483507;
    color: #fff;
    letter-spacing: 1.5px;
    padding: 0 0 3px 0;
    font-size: 18px;
    font-weight: 500;
    position: relative;
    text-align: center;
}

.course-item-set-title span{
    font-size: 12px;
}

.course-item-set-title span big{
    font-size: 16px;
}

.course-item-set-inner{
    display: flex;
    justify-content: space-between;
    background: #fbf8d1;
    margin-bottom: 45px;
    padding: 30px 40px 10px;
    line-height: 1.5;
}

.course-item-set-list {
    display: flex;
    flex-wrap: wrap;
}

.course-item-set-list li{
    width: 12.5%;
    padding: 0 10px 20px;
    font-size: 12px;
    letter-spacing: 0;
    text-align: center;
    line-height: 1.25;
}

.course-item-set-list-img {
    height: 100px;
    padding: 0 5px;
}

/*accordion*/

.md-accordion{
    position: relative;
    pointer-events: initial;
}

.md-accordion:after,
.md-accordion:before {
    content: "";
    display: block;
    width: 12px;
    height: 2px;
    border: 0;
    background: #fff;
    position: absolute;
    top: 50%;
    right: 20px;
    margin-top: -2px;
    -webkit-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.md-accordion:after {
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
}

.md-accordion + .course-item-set-inner {
    display: none;
}

.md-accordion.is-open:after {
    -webkit-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    transform: rotate(180deg);
}

.md-accordion.is-open:before {
    -webkit-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    transform: rotate(180deg);
}

.md-accordion.is-open + .course-item-set-inner {
    display: block;
}


/* ========================================================
   for SP
===========================================================*/

@media screen and (max-width: 768px) {
    /*common*/
    body {
        font-size: 11px;
        min-width: 0;
        padding-top: 50px;
    }
    a:hover,a:not(.btn):hover {
        opacity: 1;
    }
    
    .btn-wrap {
    }
    input[type="submit"],
    input[type="button"] {
        border-radius: 40px;
        -webkit-box-sizing: content-box;
        -webkit-appearance: button;
        appearance: button;
        border: none;
        box-sizing: border-box;
        cursor: pointer;
    }
    input[type="submit"]::-webkit-search-decoration,
    input[type="button"]::-webkit-search-decoration {
        display: none;
    }
    input[type="submit"]::focus,
    input[type="button"]::focus {
        outline-offset: -2px;
    }
    .btn {
        max-width: 100%;
        height: 45px;
        font-size: 14px;
    }
    .btn:after {
        top: 34%;
        right: 30px;
        width: 8px;
        height: 8px;
    }
    .btn.btn-cv:after {
        top: 21px;
    }
    .btn-wrap-campaign {
        font-size: 14px;
        letter-spacing: 1px;
    }
    .pc-hide {
        display: block !important;
    }
    .sp-hide {
        display: none !important;
    }
    .block {
        padding: 0 20px 40px;
    }
    .inner {
        width: 100%;
        padding: 0 20px;
    }
    /*head*/
    .head-lv2 {
        padding: 50px 0 15px;
        margin-bottom: 25px;
    }
    .head-lv2 span{
        font-size: 16px;
        line-height: 1.5;
    }
    .head-lv2 small {
        font-size: 12px;
    }
    .head-lv2:before {
        top: 12px;
        width: 32px;
        height: 36px;
        background-size: 32px;
    }
    .head-lv3 {
        font-size: 14px;
    }
    .head-lv3:after {
        width: 25px;
        height: 3px;
    }
    .head-mb-small {
        margin-bottom: 15px;
    }
    .teiki-cmn-lead {
        padding-bottom: 20px;
    }
    /* ------------------------------------------
      mv
    --------------------------------------------- */
    .page-title {
        padding-bottom: 20px;
    }
    .page-lead {
        padding-bottom: 20px;
    }
    .mv {
        height: 350px;
        background: url(../images/mv02.png) no-repeat center;
        background-size: cover;
    }
    .mv-logos img{
        width: 280px;
        height: auto;
    }
    
    /* ------------------------------------------
      tokuten
    --------------------------------------------- */
    .tokuten{
        display: block;
        padding-bottom: 0;
    }
    .tokuten-item{
        width: 100%;
        padding: 15px 20px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 20px;
    }

    .tokuten-item-img{
        width: 35%;
        height: auto;
    }
    
    .tokuten-item p{
        width: 60%;
    }

    .tokuten-item p small{
        font-size: 12px;
    }

    .tokuten-item p span{
        font-size: 14px;
    }

    .tokuten-notice{
        font-size: 12px;
        padding-bottom: 25px;
    }
  
    /* ------------------------------------------
      scene
    --------------------------------------------- */    
    .scene-item{
        display: flex;
        flex-wrap: wrap;
        padding-bottom: 30px;
    }

    .scene-item-img{
        width: 100%;
        margin-bottom: 20px;
        order: 1;
    }

    .scene-item-img-line{
        position: relative;
    }

    .scene-item-img-line:after{
    }

    .scene-item-text{
        display: flex;
        align-items: center;
        width: 100%;
        order: 2;
    }

    /* ------------------------------------------
      habit
    --------------------------------------------- */
    .habit-list {
        display: block;
        padding-bottom: 0;
    }
    .habit-item {
        width: 100%;
        margin-bottom: 30px;
    }
    
    .habit-item-img {
        width: 224px;
        margin: 0 auto 20px;
    }
    
    /* ------------------------------------------
      haiso
    --------------------------------------------- */    
    .haiso-span-img {
        padding-bottom: 30px;
    }
    
    .haiso-span-text-wrap {
        display: block;
        margin-bottom: 30px;
    }
    
    .haiso-span-text {
        width: 100%;
        padding: 13px 25px 15px 15px;
        margin: 0 auto 20px;
    }
    
    .haiso-span-text-title{
        font-size: 12px;
        letter-spacing: 0px;
        margin-bottom: 10px;
    }

    .haiso-span-text-inner{
        padding-right: 0;
        display: flex;
        justify-content: space-between;
        font-size: 11px;
        letter-spacing: 0;
    }

    .haiso-span-text-inner li {
        padding: 10px 5px;
        margin-bottom: 0;
        position: relative;
        width: 28%;
    }
    
    .haiso-span-text-inner li:last-child {
        margin-bottom: 0;
    }
    .haiso-span-text-inner li:after {
        border-top-width: 8px;
        border-bottom-width: 8px;
        border-left-width: 8px;
        border-right-width: 8px;
        margin-left: -8px;
        bottom: initial;
        left: initial;
        right: -29px;
        top: 27px;
        -webkit-transform: rotate( 45deg) translateY(-50%);
        transform: rotate( 270deg) translateY(-50%);
    }
    
    .haiso-span-text-inner li:last-child:before {
        border-top-width: 8px;
        border-bottom-width: 8px;
        border-left-width: 8px;
        border-right-width: 8px;
        margin-left: -8px;
        bottom: initial;
        left: initial;
        right: -36px;
        top: 27px;
        -webkit-transform: rotate( 45deg) translateY(-50%);
        transform: rotate( 270deg) translateY(-50%);
    }



    /* ------------------------------------------
      faq
    --------------------------------------------- */
    .faq-item {
        padding: 20px 20px;
        line-height: 1.5;
    }
    
    /* ------------------------------------------
      course
    --------------------------------------------- */    
    .course-item {
        padding-bottom: 30px;
    }
    .course-item-top{
        display: block;
    }
    .course-item-img {
        width: 100%;
        margin-bottom: 20px;
    }
    .course-item-text {
        width: 100%;
        display: block;
    }
    .course-copy {
        line-height: 1.75;
        padding: 0 0 10px 0;
    }
    
    .course-item-set-title {
        font-size: 14px;
    }

    .course-item-set-title span{
        padding-bottom: 10px;
    }

    .course-item-set-title small{
        font-size: 10px;
        padding: 2px 8px 3px;
        display: block;
        margin-right: 0;
        top: 0;
        width: 75px;
        margin: 0 auto 5px;
    }

    .course-item-set-inner{
        display: block;
        padding: 30px 15px 0 15px;
        margin-bottom: 0;
    }

    .course-item-set-list {
        width: 100%;
    }

    .course-item-set-list li{
        width: 33%;
        padding: 0 5px 20px;
        font-size: 12px;
        letter-spacing: 0;
        text-align: center;
        line-height: 1.25;
    }

    .course-item-set-list-img {
        height: auto;
        padding: 0 10px;
        margin-bottom: 10px;
    }
    .course-price-teiki{
        padding-left: 0;
        margin-bottom: 20px;
    }

    .course-price-teiki-top{
        top: 2px;
        left: 2px;
        font-size: 10px;
    }

    .course-price-teiki-month{
        bottom: -2px;
        left: 0;
        font-size: 17px;
    }

    .course-price-teiki > small{
        font-size: 16px;
        display: block;
    }

    .course-price-teiki-kakaku{
        font-size: 32px;
    }

    .course-price-teiki-kakaku span{
        font-size: 24px;
    }

    .course-price-teiki-kakaku small{
        font-size: 16px;
    }
    .course-price-fukidashi{
        right: -20px;
        left: initial;
        top: -8px;
        width: 60px;
        height: 60px;
        font-size: 14px;
    }

    .course-price-fukidashi:after{  
    }

    .course-price-fukidashi big {
        font-size: 18px;
    }
    .adoveCampaign {
        width: auto;
    }
    
    .md-accordion:after, .md-accordion:before {
        right: 10px;
    }
    
}