@keyframes fadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

@keyframes fade_out {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

.firstView {
    position: relative;
    height: calc(1780vw * 100 / 1125);
}

.firstView img {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    z-index: -1;
}

.firstView_img.show {
    animation: fade_out 0.8s ease 4.2s;
    opacity: 1;
    z-index: 2;
}
.firstView_img.prev_show {
    opacity: 1;
    z-index: 1;
}

.mainTitle {
    font-size: 4.5vw;
    color: #2B2AA7;
    margin-bottom: 5.2vw;
    text-align: center;
    font-family: "Avenir Next", "游ゴシック体", YuGothic;
}

.mainTitle span {
    font-size: 3vw;
    color: #877282;
    margin-top: 1vw;
    display: block;
}

.message {
    padding-top: 20vw;
}

.message .main_brief {
    font-size: 4.5vw;
    color: #434448;
    line-height: 1.6;
    text-align: center;
}

.message .main_img {
    width: 100%;
    display: block;
    margin: 12vw 0 13vw;
}

.message .main_text {
    font-size: 3.4vw;
    line-height: 2;
    text-align: center;
}

.message .detail {
    margin: -15vw 0 8vw;
    padding-top: 32vw;
}

.message .openDetailBtn {
    width: 90%;
    text-align: center;
    margin: auto;
    border: solid thin #A76F46;
    padding: 6vw 0 8vw;
    font-size: 3.6vw;
    color: #A76F46;
    position: relative;
}

.message .openDetailBtn img {
    width: 3vw;
    position: absolute;
    bottom: 4.5vw;
    left: 50%;
    transform: translateX(-50%);
}

.message .detail_main {
    /* display: none; */
}

@keyframes detail_main_anime {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.message .detail_main.show {
    animation: detail_main_anime 1s;
    animation-fill-mode: forwards;
    opacity: 0;
}

.message .dmain_title {
    font-size: 5vw;
    color: #A76F46;
    text-align: center;
    margin-bottom: 11vw;
}

.message .dmain_img {
    width: 100%;
}

.message .dmain_text {
    margin: 5vw;
    text-align: left;
    font-size: 3.4vw;
}

.message .detail_main .items {
    margin: 8vw 5vw 0;
}

.message .detail_main .item {
    margin-bottom: 9vw;
}

.message .detail_main .item_head {
    background: #FFFAEB;
    padding: 4.5vw 0;
    font-size: 3.3vw;
    position: relative;
    text-align: center;
}

.message .detail_main .head_icon {
    position: absolute;
    width: 5vw;
    left: 3vw;
    top: 50%;
    transform: translateY(-50%);
}

.message .detail_main .item_text {
    font-size: 3.4vw;
    color: #666666;
    margin-top: 3.4vw;
    display: none;
    line-height: 1.8;
}
.item_text span{
    color: #000000;
}

.salon_img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 2vw auto 0;
}

.message .detail_main .head_subText {
    font-size: 2.7vw;
    margin: 1.5vw 0 -1vw;
}

.message .detail_main .item:nth-child(3) .head_icon {
    transform: translateY(0);
    top: 5.2vw;
}

.message .detail_main .text_line {
    background: #FBFFD0;
    color: #00B900;
    font-size: 2.8vw;
    text-align: center;
    margin-top: 6vw;
    margin-bottom: 12vw;
}

.message .dmain_moreBtn {
    font-size: 3.5vw;
    color: #2B2AA7;
    text-align: center;
    width: 50vw;
    height: 3.5vw;
    margin: 6vw auto;
    position: relative;
}

.message .dmain_moreBtn .wrapper {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 50vw;
}

.message .dmain_moreBtn span {
    font-size: 3vw;
}

@keyframes moveMoreBtn {
    0% {
        left: 50%;
        opacity: 1;
    }
    80% {
        left: calc(50% + 20% * 0.8);
        opacity: 0.8;
    }
    100% {
        left: 70%;
        opacity: 0;
    }
}

@keyframes longerMoreBtnBefore {
    0% {
        width: 0;
        opacity: 1;
    }
    80% {
        width: calc(18vw * 0.8);
        opacity: 0.8;
    }
    100% {
        width: 18vw;
        opacity: 0;
    }
}

.message .dmain_moreBtn.hide .wrapper {
    animation: moveMoreBtn 0.4s;
    animation-fill-mode: forwards;
}

.message .dmain_moreBtn.hide::before {
    content: '';
    position: absolute;
    height: 0.1vw;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background: #2B2AA7;
    animation: longerMoreBtnBefore 0.4s;
    animation-fill-mode: forwards;
}

.message .detail_main .text_line .text1 {
    position: relative;
    padding: 3vw 0 2vw;
}

.message .detail_main .text_line .text1::first-line {
    font-size: 3vw;
    font-weight: bold;
}

.message .detail_main .text_line .text2 {
    padding: 3vw 0 4vw;
}

.message .detail_main .text_line .beginnerIcon {
    position: absolute;
    width: 5vw;
    top: 54%;
    left: 6vw;
    transform: translateY(-50%);
}

.message .detail_main .text_line a {
    display: flex;
    align-items: center;
    background: #fff;
    color: #666666;
    font-size: 3.4vw;
    border: solid 0.7vw #00B900;
    padding: 1.5vw 0;
    width: 75%;
    margin: auto;
    border-radius: 1.5vw;
}

.message .detail_main .text_line a .lineIcon {
    width: 9vw;
    margin: 0 3.5vw 0 2.5vw;
}

.firstTel {
    background: #FFFAEB;
    margin: 27vw 5vw 27vw;
    color: #2B2AA7;
    text-align: center;
}

.ft_head {
    position: relative;
    font-size: 3.4vw;
    padding: 6vw 0 8vw;
    font-weight: bold;
}

.ft_head .beginnerIcon {
    width: 5vw;
    position: absolute;
    top: 6.3vw;
    left: 9vw;
}

.ft_main {
    background: #FFEDBE;
    padding: 6.5vw 0 5vw;
    position: relative;
}

.ft_main .attention {
    position: absolute;
    top: -2.7vw;
    left: 50%;
    transform: translateX(-50%);
    font-size: 3.4vw;
    font-weight: bold;
}

.ft_main .attention .before,
.ft_main .attention .after {
    position: absolute;
    width: 3vw;
    top: 0;
}

.ft_main .attention .before {
    left: -4vw;
}

.ft_main .attention .after {
    right: -4vw;
    transform: scale(-1, 1);
}

.ft_main .phoneCharaIcon {
    width: 14vw;
    position: absolute;
    top: -5.7vw;
    right: 4vw;
}

.ft_main .text1 {
    font-size: 3.4vw;
}

.ft_main .text2 {
    font-size: 5.4vw;
    margin: -1vw 0 1.5vw;
    font-weight: bold;
}
.ft_main .text2 a.tel{
    color: #2B2AA7;
}
.ft_main .text3 {
    font-size: 2.8vw;
    line-height: 1.8;
}

.ft_reserve {
    padding: 6vw 0;
    font-size: 3.6vw;
    position: relative;
    display: block;
    color: #2B2AA7;
}

.ft_reserve .btnArrow {
    width: 3vw;
    position: absolute;
    right: 21vw;
    top: 50%;
    transform: translateY(-50%) rotate(-90deg);
}

.trial {
    margin-top: -20vw;
    padding-top: 20vw;
}

.trial .mainImg {
    width: 100%;
    display: block;
    margin-bottom: -9vw;
    position: relative;
    z-index: -1;
}

.trial_main {
    margin: 0 2.5vw;
    border: solid thin #4C42A8;
    background: #fff;
}

.tm_head {
    padding: 9vw 7vw 8vw;
    text-align: center;
}

.tm_head .brief {
    color: #4C42A8;
    font-size: 5.4vw;
    margin-right: -3vw;
}

.tm_head .brief span {
    font-size: 4.5vw;
    margin-right: -1vw;
    display: block;
    margin-bottom: 1vw;
    font-weight: bold;
}
.tm_head .brief span.bold{
    font-weight: bold;
    font-size: 5.4vw;
}
.tm_head span{
    font-weight: bold;  
}
.tm_head .rounded {
    background: #DED7EC;
    border-radius: 5vw;
    padding: 2vw 5vw;
    margin: 4vw auto;
    display: inline-block;
}

.tm_head .price .text1 {
    font-size: 5vw;
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    margin-bottom: 3vw;
}

.tm_head .price .text1 .l {
    font-size: 6.5vw;
}

.tm_head .price .text1 .s {
    font-size: 4vw;
    margin-left: -4vw;
}

.tm_head .price .text2 {
    font-size: 3.4vw;
    padding: 4vw;
    color: #877282;
    background: #FFFAEB;
    text-align: left;
    line-height: 1.6;
}

.tm_items {
    padding: 0 4vw;
}

.tm_items .item {
    padding-bottom: 12vw;
}

.tm_items .item_title {
    display: flex;
    align-items: flex-end;
    color: #4C42A8;
}

.tm_items .item_title .num {
    font-size: 5vw;
    margin-right: 2vw;
}

.tm_items .item_title .title_text {
    font-size: 3.6vw;
    padding-bottom: 0.9vw;
    font-weight: bold;
}

.tm_items .item_text {
    font-size: 3.4vw;
    color: #666666;
    margin: 1vw 0 3vw;
    line-height: 1.6;
}

.tm_items .item_img {
    width: 100%;
}

.tm_items .loopCare {
    text-align: right;
    margin-top: 4vw;
}

.tm_items .loopCare a {
    color: #666666;
    font-size: 3vw;
}

.tm_foot {
    padding: 0vw 7vw 20vw;
}

.tm_foot .text {
    font-size: 3.4vw;
    padding: 4vw;
    color: #877282;
    background: #FFFAEB;
    text-align: left;
    line-height: 1.6;
}

.tm_foot .reserveBtn {
    background: #DED7EC;
    padding: 6vw;
    color: #4C42A8;
    font-size: 4vw;
    position: relative;
    display: block;
    text-align: center;
    margin-top: 7vw;
}

.tm_foot .reserveBtn img {
    position: absolute;
    right: 13vw;
    top: 50%;
    transform: translateY(-50%) rotate(-90deg);
    width: 2.8vw;
}

.lineUp {
    margin: -20vw 0 25vw;
    padding-top: 42vw;
}

.lineUp_main {
    position: relative;
}

.lm_img {
    width: 100%;
}

.lm_link {
    font-size: 3.2vw;
    background: #fff;
    width: 100%;
    padding: 4.5vw 0;
    position: absolute;
    bottom: 6vw;
    left: 0;
    text-align: center;
    color: #000;
}

.instagram {
    margin-bottom: 13vw;
}

.instagram .title {
    position: relative;
    text-align: center;
    color: #2B2AA7;
    font-size: 5vw;
    margin-bottom: 8vw;
    font-family: "Avenir Next", "游ゴシック体", YuGothic;
}

.instagram .title img {
    width: 4.2vw;
    position: absolute;
    top: 50%;
    left: 30vw;
    transform: translateY(-50%);
}

.insta_cach {
    font-size: 3.1vw;
    color: #877282;
    text-align: center;
    margin-bottom: 4vw;
}
.insta_pic img {
    width: 100%;
}
.insta_link {
    font-size: 3vw;
    color: #2B2AA7;
    font-family: "Avenir Next", "游ゴシック体", YuGothic;
    text-align: center;
    margin: 3vw auto;
}
.insta_follow {
    width:100%;
    text-align: center;
    margin: 5vw asuto;
}
.insta_follow a {
    font-size: 3.1vw;
    color: #877282;
    padding: 5px 20px;
    border: solid 1px #99999970;
    border-radius: 5px;        
}