
/* RESET CSS */
article, aside, details, figcaption, figure, footer, header, hgroup, img, menu, nav, section {display: block;}
a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, output, p, pre, q, ruby, s, samp, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video {margin: 0;padding: 0;border: 0;font: inherit;vertical-align: baseline;}
body {line-height: 1;}
ol, ul {list-style: none;}
img {padding: 0;max-width: 100%;height: auto;}
* {-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;}
a[href^="tel:"] {text-decoration: none;}
/*---------basic-------*/
html{font-size: 62.5%; overflow-x: hidden;}
img{max-width: 100%;}
a{text-decoration: none;color: var(--main-color);}
:root{
    --main-color: #232323;
    --base-color: #F1F2CC;
    --accent-color: #b2cc31;
    --border-radius: 10px;
}
.pc{display: block;}
.sp{display: none;}
body{
    max-width:1920px;
    margin: 0 auto;
    font-family: -apple-system, BlinkMacSystemFont, "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    font-weight: 500;
    font-size: 2rem;
    color: var(--main-color);
    line-height: 1.8;
    -webkit-font-feature-settings: 'palt' 1;
    font-feature-settings: 'palt' 1;
}
section{
    position: relative;
    padding: 10rem 0;
}
.container{
    width: 90%;
    max-width:1000px;
    margin: 0 auto;
}
.sub-head{
    margin: 0 auto 10rem;
}
.sub-head img{
    margin: 0 auto;
}
.flex{
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
}
.bg-green{
    background: var(--base-color);
}
.bg-gray{
    background-color: #f2f4f1;
    background-image: radial-gradient(circle, #edf0eb 3.5px, transparent 3.5px), radial-gradient(circle, #edf0eb 3.5px, transparent 3.5px);
    background-position: 0 0, 11px 22px;
    background-size: 22px 44px;
}

/*-----------text-------------*/
.mark{
    padding: .05em .3em;
    background: var(--main-color);
    color: #fff;
    line-height: 1.8;
}
.wht{color: #fff;}
.gr{color: var(--accent-color);}
.b{font-weight: bold;}
.small{font-size: 80%;}
.txt-c{text-align: center;}
.wbr{
    word-break: keep-all;
    overflow-wrap: anywhere;
}
/*-----------animation-------------*/
.fade-up {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-up.is-visible {
    opacity: 1;
    transform: translateY(0);
}
/*-----------header-------------*/
.header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding-top: clamp(18px, -15322px + 2000vw, 38px);
  z-index: 10;
}
.header .container {
  max-width: 1372px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.header__logo {
  max-width: 276px;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}
.header__contact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(5px, -3.62px + 3.08vw, 20px);
  background: #000;
  border-radius: 5px;
  padding: 16px clamp(5px, -3.62px + 3.08vw, 20px) 12px;
  font-weight: 700;
  color: #fff;
  font-size: clamp(12px, 1.71px + 2.86vw, 16px);
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
.header__contact::before {
  content: "";
  min-width: clamp(15px, 9.25px + 2.05vw, 25px);
  aspect-ratio: 1;
  background: url("../img/top/icon-email.svg") no-repeat center/contain;
  display: inline-block;
}
.header__contact::after {
  content: "";
  min-width: clamp(5px, 1.55px + 1.23vw, 11px);
  aspect-ratio: 0.69;
  background: url("../img/top/btn-arr.svg") no-repeat center/contain;
  display: inline-block;
}
.header__contact:hover {
  background: #fff;
  color: initial;
  outline: solid 2px #000;
}
.header__contact:hover::after, .header__contact:hover::before {
  -webkit-filter: invert(1);
          filter: invert(1);
}
.header__txt {
  font-weight: 700;
  font-size: clamp(8px, -4.73px + 4.55vw, 18px);
  line-height: 1.7;
}
.header.scroll {
  position: fixed;
  background: rgba(255, 255, 255, 0.8);
  padding: 10px 0;
}
.header.scroll .header__txt {
  font-size: clamp(8px, -4.73px + 4.55vw, 18px);
}
@media screen and (min-width: 768px) {
  .header__contact {
    padding: 22px 20px 18px;
  }
  .header__contact::before, .header__contact::after {
    -webkit-transform: translateY(-0.1em);
            transform: translateY(-0.1em);
  }
  .header__txt {
    font-size: 25px;
  }
  .header.scroll .header__logo {
    max-width: 200px;
  }
  .header.scroll .header__txt {
    font-size: 18px;
  }
}
@media screen and (max-width: 767px) {
  .header__logo {
    max-width: 160px;
  }
}

#page-top .header:not(.scroll) .header__contact {
  display: none;
}
:root {
  --secondary-font: "LOGOG_EG";
}

.to__top {
  position: fixed;
  bottom: 15px;
  right: 15px;
  z-index: 9;
  display: none;
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
  text-align: center;
}

/*----------- MV -------------*/
.head{
    padding: 0;
}
.head h1{
    background: url(../img/lp6/header-bg.jpg)no-repeat center/ cover;
}
.head h1 img{
    margin: 0 auto;
}
/*-----------johnson-box-------------*/
.turtle{
    width: 110px;
    position: absolute;
    top: 40%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
}
.plan-item-wrap{
    position: relative;
}
.plan-item{
    width: 45%;
    border-radius: var(--border-radius);
    overflow: hidden;
}
.plan-item-ttl{
    background: var(--main-color);
    color: #fff;
    font-size: 2.6rem;
    letter-spacing: .1em;
    text-align: center;
}
.plan-item .flex{
    background: #fff;
    justify-content: center;
    align-items: center;
    padding: 3rem;
    line-height: 1;
}
.plan-item .flex p:first-of-type{
    writing-mode: vertical-rl; 
}
.percent{
    margin-left: 2rem;
    font-size: 7rem;
    color: #fd7b23;
}
.percent span{
    font-size: 50%;
}
/*-----------service-------------*/
.service-item-wrap{
    margin: 13rem auto 0;
}
.service-item{
    width: 47%;
    padding: 5rem;
    position: relative;
    background: #fff;
    border-radius: var(--border-radius);
}
.service-item-ttl{
    width: fit-content;
    margin: 0 auto 2rem;
    border-bottom: 4px solid var(--base-color);
    font-size: 3rem;
    font-weight: 600;
    letter-spacing: .1em;
}
.service-item-txt{
    margin-top: 2rem;
    text-align: center;
}
.pin{
    width:10%;
    position: absolute;
    top: -5rem;
    left: 50%;
    transform: translateX(-50%);
}

/*-----------plan-------------*/
.plan-wrap{
    margin-top: 10rem;
}
.plan-wrap + .plan-wrap{
    margin-top: 10rem;
}
.plan-ttl{
    margin: 0 auto;
}
.plan-step{
    background: #fff;
    padding: 8rem 5rem;
    border-radius: var(--border-radius);
} 
.plan-step li{
    align-items: center;
    justify-content: center;
}
.plan-step li + li{
    margin-top: 7rem;
}
.plan-step-img{
    position: relative;
    width: 20%;
}
.plan-step-img img{
    position: relative;
    z-index: 2;
}
.plan-step .flex:not(:first-of-type) .plan-step-img:after{
    content: '';
    z-index: 1;
    width: 2px;
    height: 150px;
    background: var(--main-color);
    position: absolute;
    top: -7rem;
    left: 50%;
    transform: translateX(-50%);
}
.plan-step-txt{
    width: 62%;
    margin-left: 5%;
}
.plan-step-num{
    margin-bottom: .5em;
    color: var(--accent-color);
    font-size: 3rem;
    font-family: "Comfortaa", sans-serif;
    font-optical-sizing: auto;
    font-weight: 500;
    letter-spacing: .1em;
    line-height: 1;
}
.plan-step-num span{
    font-size: 140%;
}
/*-----------point-------------*/
.point .flex{
    align-items: center;
}
.point li:nth-of-type(even).flex{
    flex-direction: row-reverse;
}
.point li + li{
    margin-top: 5rem;
}
.point-img{
    width: 50%;
}
.point-txt-wrap{
    width:50%;
}
.point-ttl{
    margin-bottom: 2rem;
    padding:0 0 2rem 3rem;
    border-bottom: 1px solid var(--accent-color);
    font-size: 3.5rem;
    font-weight: 600;
    line-height: 1.4;
}
.point-ttl p:first-child{
    margin-bottom: .5em;
    color: var(--accent-color);
    font-size: 3.5rem;
    font-family: "Comfortaa", sans-serif;
    font-optical-sizing: auto;
    font-weight: 500;
    letter-spacing: .1em;
    line-height: 1;
}
.point-txt{
    padding-left: 3rem;
}
.point-ttl span{
    color: var(--accent-color);
}
/*-----------voice-------------*/
.voice-item-wrap{
    margin-top: 16rem;
}
.voice-item{
    width: 30%;
    position: relative;
    background: #fff;
    border-radius: var(--border-radius);
    padding: 8rem 3rem 8rem;
}
.voice-item img{
    position: absolute;
    top: -7rem;
    left: 50%;
    transform: translateX(-50%);
}
.voice-item-ttl{
    position: relative;
    width: 100%;
    /*height: 4em;*/
    margin-bottom: 2rem;
    text-align: center;
    font-size: 2.3rem;
    font-weight: bold;
}
.voice-item-ttl span{
    background: var(--base-color);
    padding: .1em .3em;
}
.voice-item-txt {
    font-size: 80%;
}
.voice-item-inner {
    overflow: hidden;
    height: 7.7em;
    transition: height 0.4s ease;
}
.voice-item-inner.open {
    -webkit-line-clamp: unset;
    max-height: none;
}
.read-more-btn {
    display: block;
    position: absolute;
    width: 100%;
    left: 50%;
    bottom: 2rem;
    transform: translateX(-50%);
    margin: 2rem auto 0;
    background: none;
    border: none;
    color: var(--accent-color);
    cursor: pointer;
    font-size: 2.5rem;
    padding: 0;
    line-height: 1;
    user-select: none;

}
/*-----------faq-------------*/
.faq-item-wrap{
    margin-top: 13rem;  
    align-items: stretch;
}
.faq-item{
    width: 30%;
    border-radius: var(--border-radius);
    position: relative;
    background: #fff;
    padding: 5rem 3rem 3rem;
    box-shadow: 0 -5px 0 #f4ca51, 0 5px 0 #f4ca51;
}
.faq-item:nth-child(odd){
    box-shadow: 0 -5px 0 var(--accent-color), 0 5px 0 var(--accent-color);
}
.faq-item:nth-child(odd){
    border-color:var(--accent-color);
}
.faq-item img{
    position: absolute;
    top: -3rem;
    left: 50%;
    transform: translateX(-50%);
}
.faq-item-ttl{
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    font-weight: bold;
    text-align: center;
    border-bottom: 1px solid;
}
.faq-list{
    margin: 2rem 0;
}
.faq-list li{
    border-left: 2px solid var(--accent-color);
    padding: 0 0 0 2rem;
    font-weight: bold;
    line-height: 1.4;
}
.faq-list li + li{
    margin-top: 2rem;
}
/*-----------btn-------------*/
.btn-wrap{
    margin: 8rem auto 0;
}
.btn{
    width: 550px;
    height: 80px;
    display: block;
    margin: 0 auto 2rem;
    position: relative;
    background: #FCAF32;
    background: linear-gradient(to right, #FFE036, #FCAF32);
    border-radius: 100px;
    border:1px solid #fff;
    box-shadow: 3px 3px 0 #a6a6a6;
    text-align: center;
    font-size: 3rem;
    font-weight: 600;
    line-height: 80px;
    z-index: 1;
    overflow: hidden;
    transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
}
.btn:hover{
    border: 2px solid var(--main-color);
}
 .btn:after{
    content:'';
    position: absolute;
    top: 50%;
    right: 2rem;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-style: solid;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-left: 13px solid var(--main-color);
    border-right: 0;
}
.btn:before {
    background: #fff;
    position: absolute;
    top: 0;
    left: 0;
    content: '';
    width: 100%;
    height: 100%;
    transform-origin: left top;
    transform: scale(0, 1);
    transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
    z-index: -1;
}
.btn:hover:before {
    transform: scale(1, 1);
}
.btn-copy{
    text-align: center;
}
.btn-wrap .logo{
    width: 15%;
    margin: 4rem auto 0;
}
/*-----------footer-------------*/
footer{
    background: #090a0c;
    color: #fff;
    padding: 4rem 0;
    font-size: 1.5rem;
    line-height: 1.5;
}
footer .flex{
    justify-content: center;
}
.footer-right{
    margin-left: 3rem;
}
.tel{
    display: block;
    margin-bottom: 2rem;
    font-family: "Oswald", sans-serif;
    font-weight: 400;
    font-size: 5rem;
    letter-spacing: .04em;
    line-height: 1;
    color: #fff;
}
.tel img{
    display: inline;
}
.footer-list{
    font-size: 2.1rem;
}
.navi{
    margin: 3rem auto;
    opacity: .6;
}
.navi li + li{
    margin-left: 5rem;
}
.navi a{
    color: #fff;
}
.copyright{
    text-align: center;
    opacity: .6;
}
/*-----------------------------------
 tablet
-----------------------------------*/
@media screen and (max-width: 959px) {
    /*---------basic-------*/
    .pc{display: none;}
    .tablet, .pc.tablet{display: block;}
    .sp{display: none;}
    .sub-head{margin: 0 auto 8rem;}
    /*-----------johnson-box-------------*/
    .percent {
        font-size: 5.5rem;
    }
    /*-----------service-------------*/
    .service-item-wrap{
        margin: 8rem auto 0;
    }
    .service-item{
        padding: 3rem;
    }
    .pin{
        top: -3rem;
    }
    /*-----------plan-------------*/
    .plan-step{
        padding: 5rem 3rem;
    }
    .plan-step li + li{
        margin-top: 10rem;
    }
    .plan-step-img{
        width: 100%;
    }
    .plan-step-img img{
        margin: 0 auto;
    }
    .plan-step-txt{
        width: 80%;
        margin-left: 0;
        text-align: center;
    }
    .plan-step-num{
        margin-top: 2rem;
        margin-bottom: .3em;
        font-size: 2.5rem;
        text-align: center;
    }
    /*-----------point-------------*/
    .point-ttl{
        font-size: 2.7rem;
    }
    /*-----------voice-------------*/
    .voice-item-wrap{
        margin-top: 10rem;
    }
    .voice-item{
        width: 100%;
        padding: 8rem 3rem 6rem;
    }
    .voice-item + .voice-item{
        margin-top: 10rem;
    }
    .voice-item img{
        width: 35%;
    }
    .voice-item-inner{
        height: 7.9em;
    }
    .voice-item-txt{
        font-size: 90%;
    }
    .voice-item-ttl{
        font-size: 2.7rem;
    }
    /*-----------faq-------------*/
    .faq-item{
        width: 100%;
    }
    .faq-item + .faq-item{
        margin-top: 10rem;
    }
    .faq-item-ttl{
        font-size: 2.7rem;
    }
}
/*-----------------------------------
SP
-----------------------------------*/
@media screen and (max-width: 480px) {
        /*---------basic-------*/
        body{
            font-size: 4.5vw;
        }
        .tablet, .pc.tablet{
            display:none;
        }
        .sp{
            display: block;
        }
        section{
            padding: 15vw 0;
        }
        .container{
            width: 90%;
            max-width:100%;
        }
        .sub-head{
            margin: 0 auto 15vw;
        }
        .sub-head img{
            width: 70%;
        }
        .bg-gray{
            background-position: 0 0, 11px 22px;
            background-size: 22px 44px;
        }
        /*-----------header-------------*/
        header h1{
            background: none;
        }
        /*-----------johnson-box-------------*/
        .turtle{
            width: 14%;
            top: 70%;
        }
        .plan-item{
            width: 45%;
            border-radius: 5px;
        }
        .plan-item-ttl{
            font-size: 4.6vw;
        }
        .plan-item .flex{
            padding: 5vw;
        }
        .plan-item .flex p:first-of-type{
            width: 100%;
            writing-mode:unset;
            text-align: center;
        }
        .percent{
            width: 100%;
            margin-left: 0;
            font-size: 8vw;
            text-align: center;
        }
        /*-----------service-------------*/
        .service-item-wrap{
            margin: 20vw auto 0;
        }
        .service-item{
            width: 100%;
            padding: 5vw;
        }
        .service-item +.service-item{
            margin-top: 20vw;
        }
        .service-item-ttl{
            margin: 0 auto 5vw;
            border-bottom: 4px solid var(--base-color);
            font-size: 7vw;
        }
        .service-item-txt{
            margin-top: 5vw;
        }
        .pin{
            top: -8vw;
        }
        /*-----------plan-------------*/
        .plan-wrap{
            margin-top: 15vw;
        }
        .plan-wrap + .plan-wrap{
            margin-top: 10vw;
        }
        .plan-ttl{
            width: 80%;
        }
        .plan-step{
            padding: 10vw 5vw;
        }
        .plan-step:after{
            width: 2px;
            height: calc(100% - 10vw);
            left: 14vw;
            top: 5vw;
        }
        .plan-step li{
            align-items: flex-start;
        }
        .plan-step li + li{
            margin-top: 18vw;
        }
        .plan-step-img{
            z-index: 2;
        }
        .plan-step-img img{
            width: 40%;
        }
        .plan-step .flex:not(:first-of-type) .plan-step-img:after{
            width: 2px;
            height: 18vw;
            top: -15vw;
        }
        .plan-step-txt{
            width: 100%;
            text-align: left;
        }
        .plan-step-num{
            margin-top: 5vw;
            font-size: 5vw;
            text-align: center;
        }
        /*-----------point-------------*/
        .point li:nth-of-type(even).flex{
            flex-direction: unset;
        }
        .point li + li{
            margin-top: 15vw;
        }
        .point-img{
            width: 80%;
            margin: 0 auto;
        }
        .point-txt-wrap{
            width:100%;
            text-align: center;
        }
        .point-ttl{
            width: fit-content;
            margin-bottom: 3vw;
            margin: 5vw auto 3vw;
            padding: 0 0 1vw 0;
            font-size: 5vw;
        }
        .point-ttl p:first-child{
            font-size: 5vw;
        }
        .point-txt{
            padding-left: 0;
        }
        /*-----------voice-------------*/
        .voice-item-wrap{
            margin-top: 25vw;
        }
        .voice-item{
            padding: 14vw 5vw 15vw;
        }
        .voice-item + .voice-item{
            margin-top: 20vw;
        }
        .voice-item img{
            width: 60%;
            top: -14vw;
        }
        .voice-item-inner{
            height: 6.7em;
        }
        .voice-item-ttl{
            margin-bottom: 5vw;
            font-size: 5.5vw;
            text-align: center;
        }
        /*-----------faq-------------*/
        .faq-item-wrap{
            margin-top: 20vw;
        }
        .faq-item{
            padding: 10vw 5vw 5vw;
        }
        .faq-item + .faq-item{
            margin-top: 15vw;
        }
        .faq-item img{
            width: 15%;
            top: -6vw;
        }
        .faq-item-ttl{
            margin-bottom: 5vw;
            padding-bottom: 3vw;
            font-size: 5.5vw;
        }
        .faq-list{
            margin: 5vw 0;
        }
        .faq-list li{
            padding: 0 0 0 5vw;
        }
        .faq-list li + li{
            margin-top: 5vw;
        }
        /*-----------btn-------------*/
        .btn-wrap{
            margin: 15vw auto 0;
        }
        .btn{
            width: 90%;
            height: 14vw;
            margin: 0 auto 5vw;
            font-size: 6vw;
            line-height: 13vw;
        }
        .btn:after{
            right:3vw;
            border-top: 2vw solid transparent;
            border-bottom: 2vw solid transparent;
            border-left: 3vw solid var(--main-color);
        }
        .btn-copy{
            text-align: center;
        }
        .btn-wrap .logo{
            width: 40%;
        }
        /*-----------footer-------------*/
        footer{
            padding: 10vw 0;
            font-size: 4vw;
        }
        .footer-left img{
            margin: 0 auto;
            width: 50%;
        }
        .footer-right{
            margin-left: 0;
        }
        .tel{
            display: block;
            margin: 5vw auto;
            font-size: 10vw;
        }
        .tel img{
            transform: scale(.7);
            vertical-align: bottom;
        }
        .footer-list{
            font-size: 4vw;
            text-align: center;
        }
        .navi{
            margin: 10vw auto ;
        }
        .navi li{
            width: 100%;
            text-align: center;
        }
        .navi li + li{
            margin-left: 0;
            margin-top: 3vw;
        }
}