/*-------------------------------------------
border：中央から外へ広がるアニメーション
-------------------------------------------*/
.border-from-center:before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    width: 0;
    border-top: solid 2px #a7a7a7;
    transform: translateX(-50%);
    animation: border_anim 5s linear forwards;
}

@keyframes border_anim {
    0% {
        width: 0%;
    }

    100% {
        width: 100%;
    }
}

/*-------------------------------------------
スクロールトップボタンの設定
-------------------------------------------*/
.scroll-top {
    position: fixed;
    right: 25px;
    bottom: 25px;
    z-index: 100;
    background-color: #ddd;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    color: #fff;
    line-height: 50px;
    text-align: center;
}

.scroll-top:hover {
    cursor: pointer;
    opacity: 0.7;
}

.scroll-top {
    opacity: 0;
    transition: opacity 350ms ease;
}

.is-hide {
    pointer-events: none;
}

/*-------------------------------------------
下矢印アニメーション1
-------------------------------------------*/
.move-arrows {
    position: relative;
    display: flex;
    height: 100px;
    justify-content: center;
    align-items: center;
}

.move-arrows .arrow {
    /*矢印を配置するベースの設定*/
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 10px;
    opacity: 0;
}

.move-arrows .arrow:first-child {
    animation: arrow-move1 2s ease-in-out infinite;
}

.move-arrows .arrow:nth-child(2) {
    animation: arrow-move1 2s 1s ease-in-out infinite;
}

.move-arrows .arrow:before,
.move-arrows .arrow:after {
    /*矢印全体の設定*/
    position: absolute;
    content: '';
    top: 0;
    width: 30px;
    height: 3px;
    background: #383e45;
}

.move-arrows .arrow:before {
    /*矢印左の線の位置と傾斜*/
    left: 3px;
    transform: rotate(30deg);
}

.move-arrows .arrow:after {
    /*矢印左の線の位置と傾斜*/
    right: 3px;
    transform: rotate(-30deg);
}

@keyframes arrow-move1 {
    0% {
        opacity: 0;
        top: 40%;
        /*スタート地点(move-arrowsの高さの40%)*/
    }

    70% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

/*-------------------------------------------
下矢印アニメーション2
-------------------------------------------*/
.move-next-arrows {
    position: relative;
    display: flex;
    height: 100px;
    justify-content: center;
    align-items: center;
}

.move-next-arrows .next-arrow {
    /*矢印を配置するベースの設定*/
    position: absolute;
    top: 70%;
    left: 50%;
    transform: translateX(-50%);
    max-height: 70px;
    opacity: 0;
}

.move-next-arrows .next-arrow:first-child {
    animation: arrow-move2 4s ease-in-out infinite;
}

.move-next-arrows .next-arrow:nth-child(2) {
    animation: arrow-move2 4s 2s ease-in-out infinite;
}

@keyframes arrow-move2 {
    0% {
        opacity: 0;
        top: 0;
    }

    20% {
        opacity: 1;
    }

    80% {
        opacity: 0;
    }
}

@media screen and (max-width: 960px) {
    .move-next-arrows {
        margin-bottom: -100px;
    }

    .next-arrow {
        max-height: 140px;
    }
}