.trigger_in,
.trigger_left,
.trigger_right,
.trigger_up {
    opacity: 0;
}

.trigger_in.active {
    animation-name: fadeIn_anime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
}

@keyframes fadeIn_anime {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}


.trigger_left.active {
    animation-name: scrollLeftAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
}

@keyframes scrollLeftAnime {
    from {
        opacity: 0;
        transform: translateX(-50%);

    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.trigger_right.active {
    animation-name: scrollRightAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
}

@keyframes scrollRightAnime {
    from {
        opacity: 0;
        transform: translateX(50%);

    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.trigger_up.active {
    animation-name: fadeUpAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
}

@keyframes fadeUpAnime {
    from {
        opacity: 0;
        transform: translateY(30px);

    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


.page_ttl {
    margin-bottom: 0;
}

.all_wrap {
    overflow: hidden;
    max-width: 1054px;
    margin: 0 auto;
    background-color: #000000;
    padding: 0 0 60px;
    color: #fff;
}

.box01 .box_txt {
    width: 15%;
    margin: 40px auto 0;
}


.box02 .image_wrap {
    width: 60%;
    margin: 40px auto 0;
}

.box02 .box_txt {
    width: 15%;
    margin: 40px auto 0;
}

.box03 {
    display: flex;
    justify-content: space-between;
    margin-top: 70px;
}

.box03 .image {
    width: 50%;
}

.box03 .image img {
    display: block;
    width: 80%;
    margin: 0 0 0 auto;
}

.box03 .box_txt {
    width: 5%;
    margin: 0 auto;
}

.box04 {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.box04 .image {
    width: 50%;
}

.box04 .box_txt {
    width: 12%;
    margin: 0 auto;
}

.box05 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 50%;
    margin: 40px 0 0 15%;
}

.box05 .image {
    width: 50%;
}

.box05 .box_txt {
    width: 10%;
    margin: 0 auto;
}

.box06 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 50%;
    margin: 40px 0 0 40%;
}

.box06 .image {
    width: 45%;
}

.box06 .box_txt {
    width: 23%;
    margin: 0 auto;
}

.box07 {
    display: flex;
    justify-content: space-between;
    margin-top: 60px;
}

.box07 .img01 {
    order: 3;
    width: 48%;
}

.box07 .box_txt {
    width: 8%;
}

.box07 .img02 {
    order: -1;
    width: 30%;
}

.box07 .img02 .img02-02 {
    width: 80%;
    margin: 20px 0 0 auto;
}

.box07 .img02 .img02-02 .cap {
    width: 90px;
    right: 70%;
    bottom: 10%;
}

.box08 {
    width: 95%;
    margin: 20px 0 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr 2fr 3fr;
}

.box08 .img01 {
    grid-column: 3;
    grid-row: 1;
}

.box08 .img02 {
    grid-column: 2;
    grid-row: 2;
}

.box08 .img03 {
    grid-column: 1;
    grid-row: 3;
}

.box08 .txt01 {
    width: 28%;
    margin: 0 auto;
    grid-column: 4;
    grid-row: 1/5;
}

.box08 .txt02 {
    width: 43%;
    margin: 30px auto 0;
    grid-column: 3;
    grid-row: 2/5;
}

.box09 {
    display: flex;
    justify-content: space-between;
    margin-top: 40px;
}

.box09 .box_txt {
    width: 8.5%;
    margin: 0 auto;
}

.box09 .box_txt02 {
    order: 0;
    align-self: flex-end;
}

.box09 .image {
    width: 50%;
    order: 1;
}

.box09 .box_txt01 {
    order: 2;
}

.box10 {
    width: 80%;
    margin: 60px 0 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.box10 .img01 {
    width: 40%;
}

.box10 .box_txt {
    width: 10.5%;
}

.box10 .img02 {
    width: 25%;
}



.bottom_img {
    margin-top: 50px;
}

.bottom_txt {
    width: 60%;
    margin: 50px 0 0 auto;
}

.bottom_note {
    margin-top: 40px;
}


/* SP調整 */
@media screen and (max-width:730px) {

    .all_wrap {
        padding-bottom: 50px;
    }

    .box01 .box_txt {
        width: 35%;
        margin-top: 30px;
    }

    .box02 .image_wrap {
        width: 100%;
        margin-top: 30px;
    }

    .box02 .box_txt {
        width: 35%;
        margin-top: 0;
    }

    .box03 {
        margin-top: 50px;
    }

    .box03 .image {
        width: 60%;
    }

    .box03 .image img {
        width: 100%;
        margin-top: 0;
    }

    .box03 .box_txt {
        width: 12%;
    }

    .box04 {
        flex-direction: column;
        gap: 30px 0;
        margin-top: 20px;
    }

    .box04 .box_txt {
        width: 28%;
    }

    .box04 .image {
        width: 100%;
    }

    .box05 {
        width: 100%;
        margin-left: 0;
    }

    .box05 .image {
        width: 60%;
    }

    .box05 .box_txt {
        width: 11.5%;
    }

    .box06 {
        width: 100%;
        margin-left: 0;
    }

    .box06 .image {
        order: 2;
        width: 60%;
    }

    .box06 .box_txt {
        width: 12%;
    }

    .box07 {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 40px 0;
    }

    .box07 .img01 {
        grid-column: 1/3;
        width: 100%;
        order: -1;
    }

    .box07 .img02 {
        width: 100%;
    }

    .box07 .img02 .img02-02 .cap {
        right: 50%;
        bottom: -5%;
    }

    .box07 .box_txt {
        width: 38%;
        margin: 0 auto;
    }

    .box08 {
        width: 100%;
        grid-template-columns: 1fr 1fr;
        margin-top: 50px;
    }

    .box08 .img01 {
        grid-column: 2;
        grid-row: 1;
    }

    .box08 .img02 {
        width: 90%;
        margin: 40px 0 0 auto;
        grid-column: 1;
        grid-row: 3;
    }

    .box08 .img03 {
        width: 90%;
        margin: 0 0 0 auto;
        grid-column: 1;
        grid-row: 4;
    }

    .box08 .txt01 {
        width: 53%;
        grid-column: 1;
        grid-row: 1/3;
    }

    .box08 .txt02 {
        align-self: flex-end;
        width: 22%;
        grid-column: 2;
        grid-row: 2/6;
    }

    .box09 {
        flex-direction: column;
        gap: 30px 0;
    }

    .box09 .box_txt {
        width: 19.5%;
    }

    .box09 .box_txt02 {
        order: 2;
        margin-top: 10px;
    }
    
    .box09 .image {
        width: 100%;
        order: 1;
    }
    
    .box09 .box_txt01 {
        order: 0;
    }

    .box10 {
        width: 100%;
        flex-wrap: wrap;
        gap: 40px 0;
    }

    .box10 .img01 {
        width: 100%;
        padding: 0 8%;
        margin: 0 auto;
    }

    .box10 .box_txt {
        width: 19.5%;
        margin: 0 auto;
    }

    .box10 .img02 {
        width: 45%;
    }

    .bottom_txt {
        margin-top: 40px;
        width: 68%;
    }
}