
html {
    font-size: 62.5%;
    scroll-behavior: smooth;
}

a {
    display: block;
}

img {
    display: block;
    max-width: 100%;
}

.sp-view {
    display: none;
}

@media screen and (max-width:768px) {
    .pc-view {
        display: none;
    }

    .sp-view {
        display: block;
    }

}

.mv-pc {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-image: url(../images/bg-pc.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    z-index: -1;

    .wrap {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: 21.5vw;

        h1 {
            width: 19.5vw;
            min-width: 374px;
            margin-bottom: 33px;
        }

        .btn-wrap {
            width: 15.3vw;
            min-width: 294px;
            margin-left: auto;
            margin-right: auto;

            ul {
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 1.25vw;

                li {
                    transition: 0.3s;

                    &:hover {
                        transition: 0.3s;
                        opacity: 0.8;
                    }
                }

            }
        }

    }

    &::before,&::after {
        content: "";
        display: block;
        background-repeat: repeat-y;
        background-size: contain;
        height: 100vh;
        position: absolute;
        top: 0;
    }

    &::before {
        width: 10.6vw;
        background-image: url(../images/bg-star-left.png);
        left: 0;
    }

    &::after {
        width: 13.7vw;
        background-image: url(../images/bg-star-right.png);
        right: 0;
    }

}


.container {
    position: absolute;
    top: 0;
    right: 23.7vw;
    width: 548px;
    box-shadow: -5px 0 20px rgba(0, 0, 0, 0.3),
    5px 0 20px rgba(0, 0, 0, 0.3);

    main {
        background-color: #043662;
        padding-bottom: 234px;
        position: relative;

    .fv {
        position: relative;

        .fv-logo {
            width: 2.9vw;
            max-width: 56px;
            height: 2.9vw;
            max-height: 56px;
            position: absolute;
            top: 1.25vw;
            left: 1.25vw;
        }
    }

    /* カテゴリ共通 */
    .cat {
        position: relative;
        padding-top: 70px;
        padding-bottom: 50px;

        &:last-child {
            margin-bottom: 0;
        }

        &::before {
            content: "";
            display: block;
            width: 100%;
            height: 1.85vw;
            max-height: 23.7px;
            background-repeat: no-repeat;
            background-size: cover;
            position: absolute;
            top: -23px;
            left: 0;
        }

        &::after {
            content: "";
            display: block;
            width: 100%;
            height: 1.85vw;
            max-height: 23.7px;
            background-repeat: no-repeat;
            background-size: cover;
            position: absolute;
            bottom: -23px;
            left: 0;
            z-index: 100;
        }

        h2 {
            width: 474px;
            margin-left: auto;
            margin-right: auto;
            margin-bottom: 45px;

            img {
                width: 100%;
            }
        }

        .cat-wrap {

            .inner {
                position: relative;
                padding-left: 20px;
                padding-right: 20px;
                margin-bottom: 30px;

                a {
                    position: absolute;
                    bottom: 30px;
                    left: 50%;
                    transform: translateX(-50%);
                    pointer-events: none;
                    width: 213px;
                    min-width: 152px;

                    img {
                        width: 100%;
                        display: block;
                        pointer-events: auto;
                        transition: 0.5s;
                    }

                    &:hover {
                        img {
                            transform: translateY(-5px);
                            transition: 0.5s;
                            opacity: 0.8;
                        }
                    }

                }
            }

            .last-inner {

                margin-bottom: 0;

                .bottom-bg {
                    width: 100%;
                    /* transform: translateY(-35px); */
                    bottom: -124px;
                    position: absolute;
                    bottom: -124px;
                    left: 0;
                    right: 0;
                    z-index: 0;
                }
            }
        }

    }

    #cat1 {
        background-color: #EEB12E;
        margin-top: 40px;

        &::before {
            background-image: url(../images/cat1/vector-top.svg);
        }

        &::after {
            background-image: url(../images/cat1/vector-btm.svg);
        }
    }

    #cat2 {
        background-color: #06734E;

        &::after {
            background-image: url(../images/cat2/vector-btm.svg);
        }

    }

    #cat3 {
        background-color: #563226;

            &::after {
            background-image: url(../images/cat3/vector-btm.svg);
        }

    }

    #cat4 {
        background-color: #C01D30;
        padding-bottom: 100px;

            &::after {
            background-image: url(../images/cat4/vector-btm.svg);
        }
    }

    .gototop {
        width: 231px;
        position: absolute;
        bottom: 46px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 999;
    }

    }

    footer {
        background-color: #fff;
        position: relative;
        z-index: 10;
        padding-top: 64px;
        padding-bottom: 64px;

        .footer-logo {
            width: 27vw;
            min-width: 373px;
            max-width: 373px;
            margin-left: auto;
            margin-right: auto;

            img {
                width: 100%;
            }

        }


    }
}



@media screen and (max-width:1800px) {

    .mv-pc {
        .wrap {
            left: 18vw;
        }
    }

    .container {
        right: 20vw;
    }

}

@media screen and (max-width:1600px) {

    .mv-pc {
        .wrap {
            left: 13vw;
        }
    }

    .container {
        right: 15vw;
    }

}

@media screen and (max-width:1366px) {

        .mv-pc {
        .wrap {
            left: 10vw;

            h1 {
                width: 27vw;
                min-width: auto;
            }

            .btn-wrap {
                width: 21.5vw;
                min-width: auto;

                ul {
                    gap: 1.75vw;
                }
            }

        }
    }

        .container {
        right: 12.9vw;
        width: 42.8vw;

        main {
            .cat {

                padding-bottom: 40px;

                &::before {
                    top: -1.7vw;
                }

                &::after {
                    bottom: -1.7vw;
                }

                h2 {
                    width: 88%;
                }

                .cat-wrap {
                    padding-bottom: 0;

                    .inner {
                        a {
                            width: 15.6vw;
                        }
                    }
                }
            }
        }

        footer {
            .gototop {
                img {
                    width: 8.2vw;
                    min-width: auto;
                    height: 8.2vw;
                    min-height: auto;
                }
            }

            .footer-logo {
                min-width: 200px;
            }
        }
    }

}

@media screen and (max-width:1100px) {

.container {
         main {
            .cat {
                .cat-wrap {

                    padding-bottom: 6vw;

                    .last-inner {
                        .bottom-bg {
                            bottom: -6vw;
                        }
                    }
                }
            }
        }
}

}

@media screen and (max-width:768px) {

    .container {
        position: static;
        width: 100%;
        box-shadow: none;

        main {

            padding-bottom: 180px;

            .fv {
                position: relative;

                h1 {
                    img {
                        width: 100%;
                    }
                }
            }

            .sp-menu {
                position: relative;
                z-index: 10;
                margin: 10vw 0;

                ul {
                    width: 75.4vw;
                    margin-left: auto;
                    margin-right: auto;
                    display: grid;
                    grid-template-columns: 1fr 1fr;
                    gap: 6.15vw;                    
                }
            }

            .cat {
                position: relative;
                z-index: 10;
                margin-bottom: 0;
                padding-top: 45px;
                padding-bottom: 40px;

                &::before {
                    height: 4.32vw;
                    max-height: none;
                    min-height: 17px;
                    top: -4.32vw;
                }

                &::after {
                    height: 4.32vw;
                    max-height: none;
                    min-height: 17px;
                    bottom: -4.32vw;
                }

                h2 {
                    margin-bottom: 32px;
                }

                .cat-wrap {

                    padding-bottom: 0;

                    .inner {
                        padding-left: 15px;
                        padding-right: 15px;
                        margin-bottom: 24px;

                        > img {
                            width: 100%;
                        }

                        a {
                            width: 152px;
                            bottom: 6vw;

                            img {
                                transition: 0s;

                                &:hover {
                                    transition: 0s;
                                    transform: translateY(0);
                                    opacity: 1;
                                }
                            }
                        }
                    }

                    .last-inner {
                        margin-bottom: 0;
                    }
                }
            }

            #cat1 {
                margin-top: 57px;
            }

            #cat2 {
                z-index: 9;
            }

            #cat3 {
                z-index: 8;
            }

            #cat4 {
                z-index: 7;
                padding-bottom: 80px;
            }

            .gototop {
                width: 166px;
                bottom: 43px;
            }
           
        }

        footer {
            padding-top: 16.4vw;
            padding-bottom: 16.4vw;

            .footer-logo {
                width: 68vw;
                min-width: 265px;
            }
        }

    }

}

@media screen and (max-width:450px) {
    .container {
        main {
                .cat {

                .cat-wrap {

                    .last-inner {
                        .bottom-bg {
                            bottom: -15vw;
                        }
                    }
                }
            }
        }
    }
}