@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Noto+Sans+JP:wght@100..900&family=Public+Sans:ital,wght@0,100..900;1,100..900&display=swap";

.link_anchor {
    position: relative;
    top: -60px
}

.object_sp {
    display: none
}

html {
    font-size: 62.5%;
    line-height: 1;
    color: #111;
    font-family: "Noto Sans JP",Meiryo,sans-serif;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility
}

body {
    font-size: 1.1vw;
    overflow: hidden
}

* a {
    transition: all .2s ease
}

    * a:hover {
        text-decoration: none
    }

    * a[href^=tel] {
        color: inherit;
        text-decoration: none;
        pointer-events: none
    }

*::-moz-selection {
    background-color: #e4002b;
    color: #fff
}

*::selection {
    background-color: #e4002b;
    color: #fff
}

header {
    position: fixed;
    z-index: 1001;
    top: 24px;
    left: 0;
    right: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 94%;
    transition: all .5s ease;
    background-color: #fff;
    border-radius: 6px;
    padding: 1.1vw 30px;
    margin: 0 auto
}

    header #ttl_site {
        width: 317px;
        height: 46px;
        text-indent: -9999px
    }

        header #ttl_site a {
            display: block;
            width: 100%;
            height: 100%;
            background-image: url(../images/common/ttl_site@2x.png);
            background-size: 315px
        }

    header #nav_global .nav_con {
        display: none
    }

    header #nav_global .list_global {
        display: flex;
        align-items: center;
        gap: 70px;
        width: auto;
        font-weight: 500;
        list-style: none
    }

        header #nav_global .list_global a {
            display: block;
            width: auto;
            color: inherit;
            text-decoration: none;
            padding: 10px 0
        }

            header #nav_global .list_global a:hover, header #nav_global .list_global a.is_current {
                color: #e4002b
            }

        header #nav_global .list_global .nav_contact {
            position: relative;
            background-color: #0b45a4;
            border-radius: 45px;
            overflow: hidden
        }

            header #nav_global .list_global .nav_contact a {
                position: relative;
                z-index: 2;
                display: block;
                width: auto;
                color: #fff;
                padding: 10px 24px
            }

            header #nav_global .list_global .nav_contact:before {
                position: absolute;
                z-index: 1;
                right: 100%;
                content: "";
                display: block;
                width: 100%;
                height: 60px;
                transition: all .4s ease;
                background-color: #e4002b
            }

            header #nav_global .list_global .nav_contact:hover:before {
                right: 0
            }

        header #nav_global .list_global .ttl_site_sp {
            display: none
        }

        header #nav_global .list_global .li_parent {
            position: relative
        }

            header #nav_global .list_global .li_parent .list_child {
                position: absolute;
                left: -80%;
                width: auto;
                transition: all .2s ease;
                list-style: none;
                white-space: nowrap;
                border: 1px solid #e4e4e4;
                background-color: #f1f1f1;
                border-radius: 6px;
                box-shadow: 0px 0px 13px 0px rgba(17,17,17,.1);
                padding: 15px 0;
                top: 25px;
                opacity: 0;
                visibility: hidden;
                pointer-events: none
            }

                header #nav_global .list_global .li_parent .list_child a {
                    display: block;
                    width: auto;
                    padding: 10px 20px
                }

            header #nav_global .list_global .li_parent:hover .list_child {
                top: 35px;
                opacity: 1;
                visibility: visible;
                pointer-events: all
            }

main {
    width: auto;
    min-height: 640px;
    line-height: 1.9
}

footer {
    width: auto;
    line-height: 1.6;
    background-color: #d9d9d7;
    padding: 60px 0;
    margin: 140px 0 0
}

    footer .box_inner {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        width: 86%;
        margin: 0 auto
    }

    footer .section_address {
        width: auto
    }

        footer .section_address h2 {
            font-weight: 600;
            font-size: 2.1rem;
            line-height: 1.2;
            margin: 0 0 15px
        }

        footer .section_address ul {
            width: auto;
            list-style: none;
            margin: 0 0 15px
        }

            footer .section_address ul li {
                display: inline-block
            }

                footer .section_address ul li:not(:last-child):after {
                    content: "・"
                }

    footer .nav_footer {
        display: flex;
        gap: 57px;
        width: auto;
        list-style: none
    }

        footer .nav_footer a {
            display: block;
            width: auto;
            color: inherit;
            text-decoration: none
        }

            footer .nav_footer a:hover {
                text-decoration: underline
            }

    footer .txt_copyright {
        width: 100%;
        font-size: 1.2rem;
        color: #555
    }

.btn_page_top {
    position: fixed;
    z-index: 1001;
    right: 25px;
    bottom: 25px;
    display: block;
    width: 62px;
    height: 62px;
    text-indent: -9999px
}

    .btn_page_top a {
        display: block;
        width: 100%;
        height: 100%;
        background-image: url(../images/common/icon_pagetop@2x.png);
        background-position: center center;
        background-size: 15px;
        background-color: #a3a3a3;
        border-radius: 50%
    }

        .btn_page_top a:hover {
            transform: translateY(-3px)
        }

@media screen and (max-width: 640px) {
    img {
        max-width: 100%;
        height: auto
    }

    .link_anchor {
        position: relative;
        top: -60px
    }

    .object_sp {
        display: block
    }

    .object_pc {
        display: none
    }

    body {
        font-size: 1.6rem
    }

    header {
        position: absolute;
        display: block;
        top: 10px;
        padding: 10px 4%;
        margin: 0 auto
    }

        header #ttl_site {
            width: 211.3333333333px;
            height: 30.6666666667px
        }

            header #ttl_site a {
                background-size: contain
            }

        header #nav_global .nav_con {
            position: fixed;
            z-index: 1001;
            top: 17px;
            right: 6%;
            display: block;
            width: 36px;
            height: 36px;
            list-style: none;
            background-color: #e4e4e4;
            border-radius: 50%;
            padding: 14px 8px 0
        }

            header #nav_global .nav_con li {
                width: auto;
                height: 1px;
                transition: all .2s ease;
                background-color: #111;
                margin: 0 0 6px
            }

            header #nav_global .nav_con.is_open li {
                transform: translatey(4px) rotate(45deg)
            }

                header #nav_global .nav_con.is_open li:nth-child(2) {
                    transform: translatey(-3px) rotate(-45deg)
                }

        header #nav_global .list_global {
            position: fixed;
            top: 10px;
            left: 0;
            right: 0;
            display: none;
            width: 94%;
            height: 97vh;
            font-size: 1.4rem;
            background-color: #fff;
            box-shadow: 0px 0px 13px 0px rgba(17,17,17,.1);
            border-radius: 6px;
            padding: 80px 20px 30px;
            margin: 0 auto
        }

            header #nav_global .list_global li:first-child a {
                border-top: 1px solid #ddd
            }

            header #nav_global .list_global a {
                display: block;
                background-image: url(../images/common/icon_arrow_right@3x.png);
                background-position: center right;
                background-size: 18px;
                border-bottom: 1px solid #ddd;
                padding: 18px 0
            }

                header #nav_global .list_global a:hover, header #nav_global .list_global a.is_current {
                    color: inherit
                }

            header #nav_global .list_global .nav_contact {
                display: block;
                width: 60%;
                line-height: 1;
                margin: 30px auto 0
            }

                header #nav_global .list_global .nav_contact a {
                    background-image: none;
                    text-align: center;
                    border: none;
                    padding: 16px 24px
                }

                header #nav_global .list_global .nav_contact:hover {
                    color: inherit;
                    background-color: rgba(0,0,0,0)
                }

            header #nav_global .list_global .ttl_site_sp {
                position: absolute;
                z-index: 2;
                top: 7px;
                left: 4.3%;
                display: block;
                text-indent: -9999px
            }

                header #nav_global .list_global .ttl_site_sp a {
                    display: block;
                    width: 211.3333333333px;
                    height: 30.6666666667px;
                    background-image: url(../images/common/ttl_site@2x.png);
                    background-size: contain;
                    background-position: center left;
                    border: none
                }

            header #nav_global .list_global .li_parent {
                position: relative;
                border-bottom: 1px solid #ddd
            }

                header #nav_global .list_global .li_parent a {
                    background-image: none;
                    border: none;
                    padding: 18px 0 5px
                }

                header #nav_global .list_global .li_parent .list_child {
                    position: static;
                    white-space: wrap;
                    border: none;
                    background-color: rgba(0,0,0,0);
                    border-radius: 0;
                    box-shadow: none;
                    list-style: disc;
                    padding: 0;
                    margin: 5px 0 15px 22px;
                    opacity: 1;
                    visibility: visible;
                    pointer-events: all
                }

                    header #nav_global .list_global .li_parent .list_child a {
                        display: block;
                        width: auto;
                        border: none;
                        padding: 8px 0
                    }

    main {
        min-height: 40vw
    }

    footer {
        padding: 30px 0;
        margin: 70px 0 0
    }

        footer .box_inner {
            display: block;
            width: 92%
        }

        footer .section_address {
            width: auto;
            font-size: 1.4rem
        }

            footer .section_address h2 {
                font-weight: 600;
                font-size: 1.8rem;
                line-height: 1.2;
                margin: 0 0 15px
            }

        footer .nav_footer {
            display: none
        }

        footer .txt_copyright {
            font-size: 1.1rem
        }

    .btn_page_top {
        position: fixed;
        z-index: 1001;
        right: 15px;
        bottom: 15px;
        display: block;
        width: 34px;
        height: 34px;
        text-indent: -9999px
    }

        .btn_page_top a {
            display: block;
            width: 100%;
            height: 100%;
            background-image: url(../images/common/icon_pagetop@2x.png);
            background-position: center center;
            background-size: 10px;
            background-color: #a3a3a3;
            border-radius: 50%
        }

            .btn_page_top a:hover {
                transform: translateY(-3px)
            }
}
