@charset "utf-8";
/* Top */
#top {
    background: url(../img/topBg.webp) no-repeat center;
    height: 21.6rem;
    background-size: cover;
}
/* notice */
#notice {
    height: 24.6rem;
    background: url(../img/pinkBg01.webp) no-repeat center top;
    background-size: cover;
    z-index: 2;
    position: relative;
}
#noticeTtl {
    padding: 2rem 2rem 0 14rem;
}
/* thanks */
#thanks {
    height: 169rem;
    background: url(../img/goldBg.webp) no-repeat center top;
    background-size: cover;
    margin-top: -2.8rem;
    position: relative;
}
#thanksTtl01 {
    padding: 5rem 7rem 3rem 7rem;
}
#thanks #box1 {
    font-family: 'Noto Serif JP', Zen Old Mincho, Yu Mincho;
    position: absolute;
    top: 36.5rem;
    left: 13rem;
    color: #976A0F;
}
#thanks #box1 .count-up.count-size{
    font-size: 20rem;
    font-style: italic;
}
@keyframes infinity-scroll-left {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-100%);
    }
    }
    .scroll-infinity__wrap {
        display: flex;
      overflow: hidden;
    }
    .scroll-infinity__list {
        display: flex;
        list-style: none;
        padding: 0
    }
    .scroll-infinity__list--left {
        animation: infinity-scroll-left 80s infinite linear 0.5s both;
    }
    .scroll-infinity__item {
        width: 18rem;
    }
    .scroll-infinity__item>img {
        width: 100%;
    }
    #thanks #off {
        width: 28.7rem;
    }
    
/* thanskContent */
#thanksTop {
    height: 27.1rem;
    background: url(../img/pinkBg02.webp) no-repeat center top;
    background-size: cover;
}
#thanksTop #thanksLogo {
    width: 18rem;
    margin-bottom: -1rem;
}
#thanksContent{
    background: url(../img/goldBg02.webp) no-repeat center top;
    background-size: 101%;
    margin-top: -2.8rem;
    position: relative;
}
#thanksContent #thanksImg01 {
    padding-left: 27rem;
    padding-right: 4rem;
}
#thanksContent #thanksImg02 {
    padding-left: 31rem;
    padding-right: 6rem;
}
#thanksContentNotes {
    position: absolute;
    right: 3rem;
    bottom: 1.5rem;
}


/* Campaign */
#campaign{
    margin-top: 2rem;
}
#campaign .campaign_ttl{
    width: 69.5rem;
    display: block;
    margin: 0 auto;
}
#campaign .campain_box{
    background: #D3E3FF no-repeat bottom;
    margin-top: -9rem;
    padding-bottom: 3rem;
}
#campaign .campain_box .campaign_txt01{
    position: relative;
    padding-top: 7rem;
}
#campaign .campain_box .campaign_txt01 img:first-child{
    width: 48.7rem;
    display: block;
    margin: 0 auto;
}
#campaign .campain_box .campaign_txt01 img:last-child{
    width: 35rem;
    position: absolute;
    margin-left: auto;
    margin-right: auto;
    left: 0;
    right: 0;
    top: 8.5rem;
    text-align: center;
}
#campaign .campain_box .campaign_txt01 span{
    font-size: 6rem;
}
#campaign .campain_box .campaign_lst{
    padding-top: 1rem;
    /* position: relative; */
}
#campaign .campain_box .campaign_model {
    width: 31.5rem;
    height: 56rem;
    display: block;
    margin-left: auto;
    margin-right: 0;
    margin-top: -48rem;
    z-index: 2;
    position: sticky;
}
#campaign .campain_box .campaign_lst .campaign_txt05{
    width: 37.3rem;
    position: absolute;
    top: 1.5rem;
    left: 13rem;
    z-index: 3;
}
#campaign .campain_box .campaign_lst .campaign_item{
    position: relative;
}
#campaign .campain_box .campaign_lst .campaign_item01 img:last-child{
    width: 37.8rem;
    position: absolute;
    top: 1.5rem;
    left: 19rem;
    z-index: 3;
}
#campaign .campain_box .campaign_lst .campaign_item02 img:last-child{
    width: 40rem;
    position: absolute;
    top: 2rem;
    left: 18rem;
}
#campaign .campain_box .campaign_lst .campaign_item03 img:last-child{
    width: 33rem;
    position: absolute;
    top: 4rem;
    left: 19rem;
    z-index: 3;
}
/* #campaign .campain_box .campaign_lst .campaign_item01::after {
    content: '';
    position: absolute;
    background: url(../img/campaign_plus.webp) no-repeat center;
    background-size: 100%;
    width: 5.3rem;
    height: 5.3rem;
    display: inline-block;
    top: 19rem;
    left: 45%;
    z-index: 1;
} */
#campaign .campain_box .campaign_lst .campaign_item img{
    width: 63.4rem;
    display: block;
    margin: 0 auto;
}
/* End Campaign */
/* Reserver */
#reserve .reserve_ttl{
    padding-top: 2rem;
}
#reserve h2{
    font-size: 4.7rem;
    font-weight: 700;
    text-align: center;
    padding: 3rem 0;
    color: #1A1A1A;
}
#reserve h3{
    font-size: 3.2rem;
    font-weight: 700;
    text-align: center;
    padding: 2rem 0;
    color: #fff;
}
#reserve .reserve_ttl{
    width: 71rem;
    display: block;
    margin: 0 auto;
}
#reserve .reserve01,
#reserve .reserve02,
#reserve .reserve03{
    position: relative;
}
#reserve .reserve01 .reserve_model{
    width: 74rem;
    display: block;
    margin-left: 1rem;
}
#reserve .reserve01 .reserve_txt,
#reserve .reserve02 .reserve_txt,
#reserve .reserve03 .reserve_txt{
    width: 62rem;
    display: block;
    position: absolute;
    margin-left: auto;
    margin-right: auto;
    left: 0;
    right: 0;
    top: 3.5rem;
    text-align: center;
}
#reserve .reserve01 .reserver01_content{
    background: url(../img/reserve_bg01.webp) no-repeat center;
    background-size: 101% 100%;
    height: 143rem;
    margin-top: -8rem;
    position: relative;
}
#reserve .reserve01 .reserver01_content02{
    background: url(../img/reserve_bg01_02.webp) no-repeat center;
    background-size: 101% 100%;
    height: 145rem;
    margin-top: -8rem;
    position: relative;
    padding-left: 2rem;
    padding-right: 2rem;
}
#reserve .reserve01 .reserve_01_img01{
    width: 66.2rem;
}
#reserve .reserve01 .reserve_01_img02{
    width: 14.6rem;
}
#reserve .reserve01 .reserve_01_img03{
    width: 55.4rem;
}
#reserve .reserve02 .reserver02_content{
    background: url(../img/reserve_bg02.webp) no-repeat center;
    background-size: 101% 100%;
    height: 150rem;
    margin-top: -8.8rem;
    position: relative;
}
#reserve .reserve03 .reserver03_content{
    background: url(../img/reserve_bg03.webp) no-repeat center;
    background-size: 101% 100%;
    height: 250rem;
    margin-top: -4.8rem;
    position: relative;
}
.reserve01 .reserver01_content .reserve_chat img{
    width: 70.8rem;
    display: block;
    margin: 0 auto;
    padding-top: 2rem;
}
.reserve02 .reserver02_content .reserve_chat img{
    width: 70.8rem;
    display: block;
    margin: 0 auto;
    padding-top: 4.5rem;
}
.reserve03 .reserver03_content .reserve_chat img{
    width: 70.8rem;
    display: block;
    margin: 0 auto;
    padding-top: 6.5rem;
}
.reserve01 .reserver01_content02 .reserve_chat img{
    width: 70.8rem;
    display: block;
    margin: 0 auto;
    padding-top: 2rem;
}
.reserve_chat p{
    font-size: 4.5rem;
    font-weight: 700;
    margin: 0 1.5rem;
    color: #4D4D4D;
    position: absolute;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    left: 0;
    right: 0;
}
.reserve01 .reserver01_content .reserve_chat p,
.reserve01 .reserver01_content02 .reserve_chat p,
.reserve02 .reserver02_content .reserve_chat p,
.reserve03 .reserver03_content .reserve_chat p{
    top: 6rem;
}
.reserve02 .reserver02_content .reserve_chat p{
    top: 8.5rem;
}
.reserve03 .reserver03_content .reserve_chat p{
    top: 10.7rem;
}
.reserve01 .reserver01_content .reserve_chat span{
    font-size: 2.8rem;
    color: #29ABE2;
}
.reserve01 .reserver01_content .reserve_txt02{
    font-size: 2.8rem;
    font-weight: bold;
    line-height: 1.6;
    color: #4D4D4D;
    background: url(../img/reserve_contentBg.webp) no-repeat center;
    background-size: 100% 100%;
    padding: 5.5rem 3.5rem 5.5rem 3.5rem;
    margin-left: 2rem;
    margin-right: 2rem;
    margin-top: -4rem;
}
.reserve01 .reserver01_content02 .reserve_txt02_02{
    font-size: 2.8rem;
    font-weight: bold;
    line-height: 1.6;
    color: #4D4D4D;
    background-size: 100% 100%;
    padding: 5.5rem 1.5rem 3.5rem;
    margin-top: -110rem;
}
.reserve02 .reserver02_content .reserve_txt02{
    font-size: 2.8rem;
    font-weight: bold;
    line-height: 1.6;
    color: #4D4D4D;
    background: url(../img/reserve_contentBg02.webp) no-repeat center;
    background-size: 100% 100%;
    padding: 5.5rem 3.5rem 4rem 3.5rem;
    margin-left: 2rem;
    margin-right: 2rem;
    margin-top: -3rem;
}
.reserve03 .reserver03_content .reserve_txt02{
    font-size: 2.8rem;
    font-weight: bold;
    line-height: 1.6;
    color: #4D4D4D;
    background: url(../img/reserve_contentBg03.webp) no-repeat;
    background-size: 100% 100%;
    padding: 4rem 1rem 4rem;
    margin-left: 2rem;
    margin-right: 2rem;
    margin-top: -3rem;
}
.reserve01 .reserver01_content .reserve_txt02 span,
.reserve02 .reserver02_content .reserve_txt02 span{
    color: #FF7BAC;
}
.reserve01 .reserver01_content02 .stGel {
    border-radius: 1rem;
    height: 113rem;
    padding: 4rem 3rem 3rem;
}
.reserve01 .reserve01_item{
    background-color: #93C2FF;
    /* margin: 0 4.5rem; */
    border-radius: 1.6rem;
}
.reserve01 .reserve01_item .reserve01_itemBox{
    background-color: #fff;
    padding: 4rem 0 3rem 0;
    border: .3rem solid #58A9FF;
    border-bottom-left-radius: 1.6rem;
    border-bottom-right-radius: 1.6rem;
}
.reserve01 .reserve01_item .reserve01_itemBox img{
    width: 52rem;
    display: block;
    margin: 0 auto;
}

#reserve .reserve02 .reserve_txt{
    top: 7.7rem;
}
#reserve .reserve03 .reserve_txt{
    top: 8.5rem;
}

.rsHurt {
    width: 65rem;
    display: block;
    margin: 0 auto;
    margin-top: 3rem;
    background-color: #FFF3C7;
    border-radius: 1rem;
}
.rsHurtItem{
    color: #4D4D4D;
}
.rsHurt h4 {
    padding-top: 2rem;
    color: #4D4D4D;
}
.rsPower img {
    width: 59.8rem;
    display: block;
    margin: 0 auto;
    padding: 2rem 0 3rem 0;
}
.rsPower::before {
    content: '強い';
    position: absolute;
    font-size: 1.9rem;
    font-weight: 700;
    top: 2.5rem;
    left: 4.5rem;
    color: #fff;
    z-index: 1;
}
.rsPower::after {
    content: '弱い';
    position: absolute;
    font-size: 1.9rem;
    font-weight: 700;
    top: 2.5rem;
    right: 2.5rem;
    color: #58A9FF;
    z-index: 1;
}
.rsHurtCtn {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 0 3rem 4rem 3rem;
    white-space: nowrap;
}

.rsTxt2 {
    width: 17.9rem;
    height: 6.7rem;
    background-color: #58A9FF;
    border-radius: 1rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    line-height: 1;
}

.rsTxt2::after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 1.5rem 1rem 0 1rem;
    border-color: #58A9FF transparent transparent transparent;
    bottom: -1.4rem;
    left: 8rem;
    z-index: 1;
}

#reserve .reserve_banner{
    width: 69.4rem;
    display: block;
    margin: 0 auto;
    margin-top: -1rem;
}
#reserve .reserve_contentImg{
    padding-bottom: 1rem;
}
#reserve .reserve_03_txt02{
    width: 63rem;
    display: block;
    margin: 0 auto;
    padding-top: 2rem;
}
#reserve .reserve_model04{
    width: 70rem;
}
#reserve .reserve03 .reserve_txt03{
    width: 48.5rem;
    display: block;
    position: absolute;
    margin-left: auto;
    margin-right: auto;
    left: 20rem;
    right: 0;
    bottom: 58rem;
    text-align: center;
}
#reserve .reserve03 .reserve_03_no1{
    width: 70.6rem;
    display: block;
    margin: 0 auto;
}
/* End Reserver */
/* Clean */
#clean{
    background: url(../img/clean_bg.webp) no-repeat center;
    background-size: 101% 100%;
    padding-bottom: 15rem;
    margin-top: -.1rem;
}

#clean .clean_ttl{
    display: block;
    margin: 0 auto;
    width: 39.5rem;
    padding-top: 2rem;
    padding-bottom: 2rem;
}

#clean .clean_content{
    display: flex;
    justify-content: space-between;
    padding-left: 5rem;
    padding-right: 5rem;
    padding-bottom: 9.5rem;
}

#clean .clean_txt01{
    font-size: 3.3rem;
    font-weight: 500;
    text-align: right;
    display: block;
    margin-left: 35rem;
    padding: .3rem 1.3rem;
    padding-right: 1.8rem;
    background-color: #fff;
    margin-bottom: 5rem;
    white-space: nowrap;
}

#clean .clean_txt02{
    height: 24.1rem;
    margin: 0;
    -ms-transform: translateY(55%);
    transform: translateY(55%);
}

#clean .clean_txt03,
#clean .clean_txt04{
    height: 44.1rem;
}

#clean .clean_banner{
    width: 71rem;
    display: block;
    margin: 0 auto;
}
/* End Clean */
/* Part */
#parts {
    padding: 1rem 1rem 3rem 1rem;
}
#parts h3 {
    background: #58a9ff;
    border-radius: 1.6rem;
    font-weight: 400;
}
.parts_area {
    cursor: grab;
}
#parts_box {
    padding: 5.2rem 2rem 0 2rem;
}
#parts_box .slick-list {
    border: 2px solid #58a9ff;
}
#parts_box .slick-prev {
    left: -3rem;
}
#parts_box .slick-next {
    right: -3rem;
}
.slick-arrow {
    display: block;
    border: none;
    font-size: 0;
    position: absolute;
    z-index: 100;
    top: calc(50% - 4.6rem);
    width: 4.6rem;
    height: 9.2rem;
    cursor: pointer;
    transition: all 0.3s ease-in-out;
}
.slick-arrow:hover {
    opacity: 0.8;
}
.slick-prev {
    background: url(../img/common/prev.webp) no-repeat;
    background-size: 4.6rem;
    left: 2rem;
}
.slick-next {
    background: url(../img/common/next.webp) no-repeat;
    background-size: 4.6rem;
    right: 2rem;
}
.parts_img {
    width: 59rem;
}
.slick-dots {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    position: absolute;
    top: 0;
    width: 59rem;
}
.slick-dots li {
    margin: 0;
    position: relative;
}
.slick-dots li::after {
    content: "FRONT";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    text-align: center;
    line-height: 5.2rem;
    transition: 0.3s;
    cursor: pointer;
    background: #e6ebf5;
    border-radius: 0.6rem 0.6rem 0 0;
    font-weight: 400;
}
.slick-dots li:hover::after {
    opacity: 0.8;
}
.slick-dots li:nth-child(1):after {
    content: "FRONT";
}
.slick-dots li:nth-child(2):after {
    content: "BACK";
}
.slick-dots li:nth-child(3):after {
    content: "FACE";
}
.slick-dots li.slick-active:after {
    color: #fff;
    background: #58a9ff;
}
.slick-dots li button {
    width: 19rem;
    height: 5.2rem;
    visibility: hidden;
}
/* End Part */
/* Vio */
#vio{
    background: url(../img/vio_bg.webp) no-repeat;
    background-size: cover;
    margin-top: -12rem;
}

#vio .vio_chat{
    position: relative;
}

#vio .vio_chat .circle {
    width: 9.8rem;
    height: 9.8rem;
    color: #fff;
    background: #93C2FF;
    font-size: 3rem;
    margin-right: 5rem;
    margin-left: 1rem;
    display: inline-block;
    border-radius: 20rem;
    padding-top: 2.5rem;
    padding-left: 0.4rem;
}

#vio .vio_chat img{
    width: 41.6rem;
    padding-left: 2rem;
}

#vio .vio_chat p{
    position: absolute;
    top: 3rem;
    left: 5rem;
    font-weight: 700;
}
#vio .vio_chat span:last-child{
    font-size: 4.7rem;
}

#vio .vio_txt01{
    width: 35.3rem;
    padding-left: 5rem;
}
#vio .vio_banner{
    width: 71rem;
    display: block;
    margin: 0 auto;
    padding: 3.5rem 0 4.5rem 0;
}
/* End Vio */
/* Discount */
#discount{
    background: #C9F4FD;
    padding-bottom: 5.5rem;
}
#discount .discount_ttl{
    width: 55rem;
    display: block;
    margin: 0 auto;
    padding: 2rem 0;
}
#discount .discount_item{
    background-color: #fff;
    border-radius: 3.6rem;
    padding: 2rem 3rem;
    margin: 0 3rem;
    margin-top: 2rem;
}
#discount .discount_item .discount_banner{
    width: 57rem;
    display: block;
    margin: 0 auto;
}
#discount .discount_item .discount_banner:first-child{
    margin-top: -4.5rem;
}
#discount .discount_item .discount_banner:nth-child(2),
#discount .discount_item .discount_banner:last-child{
    margin-top: -2rem;
}
/* End Discount */
/* Lead */

#lead{
    position: relative;
    padding-top: 3rem;
    padding-bottom: 2rem;
}

#lead .lead_ttl {
    width: 51.5rem;
    display: block;
    top: -106.5rem;
    bottom: 0;
    margin: auto;
    position: absolute;
    left: 0;
    right: 0;
}

#lead .lead_box{
    margin: 0 2rem;
    border-radius: 2.9rem;
    padding-bottom: 2.5rem;
}

#lead .lead_box .lead_content{
    width: 61rem;
    display: block;
    margin: 0 auto;
    padding-top: 10rem;
    padding: 10rem 0 3rem 0;
}

#lead .lead_box .lead_note{
    font-size: 1.7rem;
    font-weight: 400;
    line-height: 1.4;
    color: #000;
    margin-left: 5rem;
    margin-right: 5rem;
    margin-top: 2rem;
    padding: 1rem 2rem;
    border: .2rem solid #58A9FF;
}
/* End Lead */

/* Promise */
#promise{
    background: url(../img/promise_bg.webp) no-repeat center;
    background-size: 100% 100%;
    /* position: relative; */
}

#promise .promise_ttl{
    width: 44.7rem;
    display: block;
    margin: auto auto auto 0;
    padding-top: 7rem;
}

#promise .promise_content{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
    align-items: center;
    position: relative;
    padding-top: 5.5rem;
    padding-bottom: 4.5rem
}

#promise .promise_content .promise_item img{
    width: 29.6rem;
}

#promise .promise_content .promise_item p{
    font-size: 4.4rem;
    font-weight: 700;
    color: #58A9FF;
    line-height: 1.25;
}

#promise .promise_content .promise_item span{
    font-size: 2.1rem;
}

#promise .promise_content .promise_item01 p{
    position: absolute;
    top: 20rem;
    left: 10rem;
}

#promise .promise_content .promise_item02 p{
    position: absolute;
    top: 19rem;
    right: 7rem;
}

#promise .promise_content .promise_item03 p{
    position: absolute;
    bottom: 11rem;
    left: 9.5rem;
}

#promise .promise_content .promise_item04 p{
    position: absolute;
    bottom: 7rem;
    right: 7rem;
}
/* End Promise */

/* Price */
#price{
    background-color: #93C2FF;
}

#price .price_ttl{
    width: 69.4rem;
    display: block;
    margin: 0 auto;
    padding: 3rem 0 3.5rem 0;
}

#price .price_table{
    width: 58.6rem;
    display: block;
    margin: 0 auto;
    padding: 0 0 3rem 0;
}
/* End Price */

/* No1 */
#no1 .no1_txt{
    width: 60rem;
    display: block;
    margin: 0 auto;
    padding-top: 4.5rem;
}
#no1 .no1{
    width: 59rem;
    display: block;
    margin: 0 auto;
    padding-top: 1rem;
    padding-bottom: 10.5rem;
}
/* End No1 */
/* Step */
#step {
    padding-bottom: 204rem;
}

#step .step_ttl {
    width: 63.2rem;
    display: block;
    margin: 0 auto;
    padding-top: 2rem;
}

#step .step_item {
    position: relative;
    padding-top: 2rem;
}

#step .step_item .step_item_ttl {
    position: absolute;
    font-weight: 700;
    font-size: 4rem;
    color: #69AEFF;
    background-color: #fff;
    padding: .5rem 2rem;
    top: 8.5rem;
    left: -29.5rem;
}

#step .step_item .step_item_ttl02 {
    position: absolute;
    font-weight: 700;
    font-size: 4rem;
    color: #69AEFF;
    background-color: #fff;
    padding: .5rem 2rem;
    right: 9.2rem;
    top: 50.5rem;
    letter-spacing: .5rem;
}

#step .step_item .step_item_ttl03 p:first-child {
    position: absolute;
    font-weight: 700;
    font-size: 4rem;
    color: #69AEFF;
    background-color: #fff;
    padding: .5rem 2rem;
    left: 4rem;
    top: 87rem;
    letter-spacing: .5rem;
}

#step .step_item .step_item_ttl03 p:last-child {
    position: absolute;
    font-weight: 700;
    font-size: 4rem;
    color: #69AEFF;
    background-color: #fff;
    padding: .5rem 2rem;
    left: 4rem;
    top: 94rem;
    letter-spacing: .5rem;
}

#step .step_item .step_item_ttl04 {
    position: absolute;
    font-weight: 700;
    font-size: 4rem;
    color: #69AEFF;
    background-color: #fff;
    padding: .5rem 1rem .5rem 3rem;
    right: 7rem;
    top: 133.5rem;
    letter-spacing: .5rem;
}

#step .step_item .step_item_ttl05 p:first-child {
    position: absolute;
    font-weight: 700;
    font-size: 4rem;
    color: #69AEFF;
    background-color: #fff;
    padding: .5rem 2rem;
    left: 4rem;
    top: 176rem;
    letter-spacing: .5rem;
}

#step .step_item .step_item_ttl05 p:last-child {
    position: absolute;
    font-weight: 700;
    font-size: 4rem;
    color: #69AEFF;
    background-color: #fff;
    padding: .5rem 2rem;
    left: 4rem;
    top: 183rem;
    letter-spacing: .5rem;
}

#step .step_item .step_number {
    width: 11.7rem;
    position: absolute;
    left: 5rem;
    top: -1rem;
}

#step .step_item .step_number02 {
    width: 11.7rem;
    position: absolute;
    right: 9rem;
    top: 40rem;
}

#step .step_item .step_number03 {
    width: 11.7rem;
    position: absolute;
    left: 5rem;
    top: 76.5rem;
}

#step .step_item .step_number04 {
    width: 11.7rem;
    position: absolute;
    right: 7rem;
    top: 123rem;
}

#step .step_item .step_number05 {
    width: 11.7rem;
    position: absolute;
    left: 5rem;
    top: 165.5rem;
}

#step .step_item .step_img {
    position: absolute;
    width: 43.5rem;
    height: 43.5rem;
    background: url(../img/step_img01.webp) no-repeat;
    background-position: -19rem 0;
    background-size: auto 100%;
    right: -2rem;
    top: 3rem;
    border-radius: 99rem;
}

#step .step_item .step_img02 {
    position: absolute;
    width: 43.5rem;
    left: -4rem;
    top: 32rem;
}

#step .step_item .step_img03 {
    position: absolute;
    width: 43.5rem;
    right: -3rem;
    top: 83rem;
}

#step .step_item .step_img04 {
    position: absolute;
    width: 43.5rem;
    left: -4rem;
    top: 116rem;
}

#step .step_item .step_img05 {
    position: absolute;
    width: 43.5rem;
    right: -3rem;
    top: 161rem;
}

#step .step_item .step_item_txt {
    position: absolute;
    top: 16.5rem;
    left: -28rem;
    color: #666;
}

#step .step_item .step_item_txt02 {
    position: absolute;
    top: 63.5rem;
    right: 9rem;
    color: #666;
    text-align: right;
}

#step .step_item .step_item_txt03 {
    position: absolute;
    top: 101rem;
    left: 4rem;
    color: #666;
}

#step .step_item .step_item_txt04 {
    position: absolute;
    top: 143rem;
    right: 7rem;
    color: #666;
    text-align: right;
}

#step .step_item .step_dot {
    height: 10.8rem;
    top: 42rem;
    bottom: 0;
    margin: auto;
    position: absolute;
    left: -35rem;
    right: 0;
    z-index: 1;
}

#step .step_item .step_dot02 {
    height: 10.8rem;
    top: 83rem;
    bottom: 0;
    margin: auto;
    position: absolute;
    left: 0;
    right: 0;
    z-index: 1;
}

#step .step_item .step_dot03 {
    height: 10.8rem;
    top: 128rem;
    bottom: 0;
    margin: auto;
    position: absolute;
    left: 0;
    right: 0;
    z-index: 1;
}

#step .step_item .step_dot04 {
    height: 10.8rem;
    top: 161rem;
    bottom: 0;
    margin: auto;
    position: absolute;
    left: 0;
    right: 0;
    z-index: 1;
}

/* End Step */

/* Shop */
#shop {
    font-family: 'Noto Sans JP', sans-serif;
}

#shop .shop_ttl {
    width: 62.3rem;
    display: block;
    margin: 0 auto;
    padding-bottom: 5rem;
}

.shop_area,
.shop_box,
.shop_info {
    display: none;
}

#shop .shop_ttl01 {
    font-weight: 400;
}

#shop_list li:first-child h3 {
    border-radius: 0.9rem 0.9rem 0 0;
}

#shop_list li:last-child h3 {
    border-radius: 0 0 0.9rem 0.9rem;
}

#shop_list li:last-child h3.active {
    border-radius: 0;
}

.shop_ttl01,
.shop_ttl02,
.shop_ttl03 {
    position: relative;
    cursor: pointer;
}

.shop_ttl01::after,
.shop_ttl01::before,
.shop_ttl02::after,
.shop_ttl02::before,
.shop_ttl03::after,
.shop_ttl03::before {
    content: "";
    display: block;
    background: #0143a4;
    border-radius: 0.2rem;
    position: absolute;
}

.shop_ttl03::after,
.shop_ttl03::before {
    background: #fff;
}

.shop_ttl01::before,
.shop_ttl02::before,
.shop_ttl03::before {
    width: 0.4rem;
    height: 2.4rem;
    top: calc(50% - 1.2rem);
    right: 4rem;
}

.shop_ttl01::after,
.shop_ttl02::after,
.shop_ttl03::after {
    width: 2.4rem;
    height: 0.4rem;
    top: calc(50% - 0.2rem);
    right: 3rem;
}

.shop_ttl01.active::before,
.shop_ttl02.active::before,
.shop_ttl03.active::before {
    display: none;
}

.shop_ttl01 {
    background: #fff;
    padding: 1.5rem 3rem;
    margin: 0 0 0.2rem 0;
}

.shop_area {
    background: #ffffffcc;
    padding: 3rem;
    margin: 0 0 0.2rem 0;
}

.shop_ttl02 {
    background: #ffffffcc;
    padding: 1.5rem 3rem;
    margin: 0 0 0.2rem 0;
}

.shop_ttl03 {
    background: #0143a4;
    color: #fff;
    padding: 1.5rem 3rem;
    margin: 0 0 0.2rem 0;
}

.shop_info {
    padding: 1.5rem 0 3rem 0;
}

.shop_search {
    width: 19.6rem;
}

/* End shop */

/* FAQ */
#faq .faq_Ttl {
    width: 53.1rem;
    display: block;
    margin: 0 auto;
    padding-bottom: 6rem;
}

#faq .faq_box .faq_box_ttl {
    font-size: 4.2rem;
    font-weight: 700;
    line-height: 1.66;
    text-align: center;
    color: #0143A4;
    padding-bottom: 4rem;
}

.faq_box h3 {
    position: relative;
}

.faq_ttl {
    cursor: pointer;
    padding: 2rem 4rem 2rem 7rem;
    position: relative;
    background: #c1d6ff;
    font-size: 2.8rem;
    line-height: 1.57;
    font-weight: 400;
}

.faq_ttl::before {
    content: "";
    display: block;
    width: 4.1rem;
    height: 4rem;
    background: url(../img/faq_q.svg) no-repeat center top;
    background-size: 4.1rem;
    position: absolute;
    top: 2rem;
    left: 2rem;
}

.faq_info {
    display: none;
    background: #fff;
    padding: 1.5rem 0 0 7rem;
    position: relative;
    font-size: 2.8rem;
    line-height: 1.57;
    font-weight: 400;
}

.faq_info::before {
    content: "";
    display: block;
    width: 3.7rem;
    height: 3rem;
    background: url(../img/faq_a.svg) no-repeat center top;
    background-size: 3.7rem;
    position: absolute;
    top: 2rem;
    left: 2rem;
}

.faq_ttl::after {
    content: "";
    position: absolute;
    width: 0.8rem;
    height: 1rem;
    background: url(../img/faq/arw.webp) no-repeat center top;
    background-size: 0.8rem;
    top: calc(50% - 0.5rem);
    right: 2rem;
    transition: 0.3s;
}

.faq_ttl.active::after {
    transform: rotate(90deg);
}

.f_notes_box {
    border: 1px solid #ccc;
    padding: 3rem;
    color: #4d4d4d;
}

.gb_btn{
    display: block;
    margin: 0 auto;
    text-align: center;
    font-size: 5rem;
    font-weight: 700;
    background: url(../img/pink_btn.webp) no-repeat center;
    background-size: 100% 100%;
    width: 71rem;
    padding: 1.5rem 0 2.8rem 0;
    color: #fff;
    cursor: pointer;
}

.gb_btn a{
    text-decoration: none;
    color: #fff;
    line-height: 1.1;
    display: block;
}

.gb_btn span{
    font-size: 4.5rem;
}

.btnshine {
    position: relative;
    display: inline-block;
    color: #fff;
    text-decoration: none;
    outline: none;
    overflow: hidden;
}

.btnshine::before {
    content: '';
    position: absolute;
    top: 0;
    left: -75%;
    width: 50%;
    height: 100%;
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .3) 100%);
    transform: skewX(-25deg);
    animation: shine 1.3s infinite;
}

@keyframes shine {
    100% {
        left: 125%;
    }
}
