@charset "UTF-8";
/****************************************
    フッターのスタイル設定
****************************************/
.section-footer{
    padding: 100px 20px 350px;
    position: relative;
    background-color: #fff;
    z-index: -2;
}
.wrap-footer {
    max-width: var(--contents-width);
    margin: 0 auto ;
    display: flex;
    flex-direction: row;
    .box-logo,.gnavi-footer{
        width: 50%;
    }
    .gnavi-inner{
        margin: 0 auto;
    }
    .gnavi-menu a{
        font-size:clamp(16px, 16 / 500 * 100vw ,18px);
        font-weight: 500;
        letter-spacing: 0.04em;
    }
    .gnavi-menu a::after {
        font-size: 12px;
        font-size:clamp(7px, 7 / 500 * 100vw ,12px);
        font-family: "Roboto", sans-serif;
        font-weight: 300;
        letter-spacing: 0.06em;
    }
    .gnavi-menu .menu .menu-item{
        width: 130px;
    }
    .gnavi-menu .menu{
        gap: 40px 20px;
    }
    .gnavi-menu .sub-menu .menu-item a {
        font-size: 14px;
        font-size:clamp(13px, 13 / 500 * 100vw ,14px);
        font-weight: 400;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        position: relative;
        white-space: pre-wrap;
        width: 100%;
    }
    .gnavi-menu .sub-menu .menu-item a::before {
        width: 3px;
        height: 5px;
    }

    #ftmenu-item-1 { grid-area: 1 / 1 / 2 / 2; }
    #ftmenu-item-2 { grid-area: 1 / 2 / 2 / 3; }
    #ftmenu-item-3 { grid-area: 1 / 3 / 3 / 4; }
    #ftmenu-item-4 { grid-area: 2 / 1 / 3 / 2; }
    #ftmenu-item-5 { grid-area: 2 / 2 / 3 / 3; }
    #ftmenu-item-6 { grid-area: 3 / 1 / 4 / 4; }

    #ftmenu-item-3 {
        margin: auto;
        margin-right: 0;
    }
    #ftmenu-item-6 {
        width: 100%;
    }
    #ftmenu-item-6 {
        .sub-menu {
            display: grid;
            grid-template-columns: repeat(5, minmax(110px, 1fr)); /* 自動列調整 */
            gap: 10px 20px; /* 行間・列間 */
            padding: 0;
            width: 100%;
        }
        .sub-menu .menu-item {
            width: auto !important;
        }
        .sub-menu li {
            text-align: left;
        }

        .sub-menu a {
            text-decoration: none;
            display: inline-block;
        }
        .sub-menu .menu-item a::before {
            top: 10px;
            transform: unset;
        }
    }


    .gnavi-external-links {
        display: flex;
        gap: 20px;
        justify-content: flex-start;
        margin-top: 30px;
        margin-bottom: 40px;
        margin-right: unset;
    }
    .gnavi-link-corp, .gnavi-link-policy , .ft-btn-entry{
        font-size: 14px;
    }
    .gnavi-link-corp {
        padding: 18px 22px;
        width: 220px;
        height: 60px;
    }
    .ft-btn-entry{
        width: 150px;
        height: 60px;
    }
    .gnavi-link-policy{
        margin-top: 40px;
    }
    .gnavi-link-policy.icon-link-square {
        width: 15px;
        height: 15px;
        margin-left: 12px;
    }
}
.wrap-sns{
    display: flex;
    gap: 30px;
}
.wrap-copyright{
    margin: 84px auto 50px;
    .copyright{
        font-size: 14px;
        width: 50%;
        color: var(--text-color);
    }
}
.ft-city{
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 0;
    width: 100vw;
    height: auto;
}
.ft-pine{
    position: absolute;
    bottom: 0;
    left: 3.64vw;
    z-index: 0;
    aspect-ratio: 285/211;
    width: 15vw;
    height: auto;
}

.ft-bg{
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: -1;
    aspect-ratio: 1920/1080;
    width: 100vw;
    height: auto;
}
.section-footer::after{
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: -1;
    aspect-ratio: 1920/1080;
    width: 100vw;
    height: auto;
    background-image: url('./images/common/ft-bg.webp');
    background-size: cover;
    background-repeat: no-repeat;
    background-position-y: bottom;
    background-position-y: 200px;
}

/* ページトップボタン */
.top-flag{  
    background-color: #333;
    color: #fff;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    font-size: 20px;
    font-weight: 400;
    margin: auto;
    display: block;
    position: absolute;
    bottom: 260px;
    left: 50%;
    z-index: 10;
    transform: translate(-50%, -50%);
}


@media screen and (max-width: 1300px) {
    .section-footer{
        padding: 80px 20px 250px;
    }
    .wrap-footer {
        .box-logo{
            width: 40%;
        }
        .gnavi-footer {
            width: 60%;
            margin-left: 20px;
        }
        .gnavi-external-links {
            gap: 10px;
        }
    }
}


@media screen and (max-width: 1050px) {
    .section-footer{
        padding: 80px 20px 200px;
    }

    .wrap-footer {
        #ftmenu-item-6 {
            .sub-menu {
                grid-template-columns: repeat(4, minmax(110px, 1fr)); /* 自動列調整 */
                gap: 10px 20px; /* 行間・列間 */
            }
        }
        .gnavi-link-corp {
            padding: 18px 8px 18px 18px;
        }
        .icon-link-square {
            width: 15px;
            height: 15px;
            margin-left: 10px;
        }

    }
}


@media screen and (max-width: 880px) {
    .wrap-footer {
        flex-direction: column;
        .box-logo, .gnavi-footer,.copyright {
            width: 100%;
        }
        #ftmenu-item-2,#ftmenu-item-5 {
            margin: auto;
        }
        .pc-only{
            display: none;
        }
        .sp-only{
            display: block;
        }
        .wrap-sns{
            margin: 30px 0 55px;
        }
        .gnavi-external-links-sp {
            display: flex;
            gap: 8vw;
            justify-content: center;
            align-items: center;
            margin-top: 80px;
            margin-bottom: 0;
            margin-right: unset;
        }
        .gnavi-link-corp {
            aspect-ratio: 290 / 60;
            width: 39vw;
            height: auto;
            min-width: 150px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size:clamp(10px, 10 / 500 * 100vw ,20px);
            padding: 0;
        }
        .gnavi-link-policy {
            margin-top: unset;
           font-size:clamp(10px, 10 / 500 * 100vw ,20px);
        }
    }
    .ft-pine.pc-only{
        display: none;
    }
    .wrap-copyright {
        margin: 60px auto 38px;
        .copyright{
            text-align: center;
        }
    }
    .section-footer::after{
        aspect-ratio: 750/1186;
        background-image: url('./images/common/ft-bg-sp.webp');
    }

    .top-flag {
        bottom: 120px;
    }
}

@media screen and (max-width: 600px) {
    .section-footer{
        padding: 80px 20px 130px;
    }
    .wrap-footer {
        #ftmenu-item-6 {
            .sub-menu {
                grid-template-columns: repeat(3, minmax(110px, 1fr)); /* 自動列調整 */
                gap: 10px 20px; /* 行間・列間 */
            }
        }
        .footer-logo {
            width: 58vw;
        }
        .gnavi-external-links-sp {
            margin-top: 40px;
        }
    }
    .wrap-copyright {
        margin: 30px auto 20px;
        .copyright{
            font-size: 9px;
            font-size:clamp(9px, 9 / 500 * 100vw ,16px);
        }
    }

    .top-flag {
        width: 33px;
        height: 33px;
        padding: 0;
        bottom: 60px;
    }
    .top-flag img{
        aspect-ratio: 13 / 21;
        width: 9px;
        height: auto;
    }
}

@media screen and (max-width: 500px) {
    .section-footer{
        padding: 80px 20px 100px;
    }
    .wrap-footer {
        .gnavi-menu .menu {
            grid-template-columns: repeat(2, 1fr);
            grid-template-rows: repeat(4, auto);
        }

        #ftmenu-item-1 { grid-area: 1 / 1 / 2 / 2; }
        #ftmenu-item-2 { grid-area: 1 / 2 / 2 / 3; }
        #ftmenu-item-3 { grid-area: 2 / 1 / 4 / 2; }
        #ftmenu-item-4 { grid-area: 2 / 2 / 3 / 3; }
        #ftmenu-item-5 { grid-area: 3 / 2 / 4 / 3; }
        #ftmenu-item-6 { grid-area: 4 / 1 / 5 / 3; }
        #ftmenu-item-2, #ftmenu-item-3, #ftmenu-item-5 {
            margin: unset;
        }
        #ftmenu-item-5 a{
            margin-top: -50px;
        }
        #ftmenu-item-6 {
            .sub-menu {
                grid-template-columns: repeat(2, minmax(110px, 1fr)); /* 自動列調整 */
                gap: 6px 20px; /* 行間・列間 */
            }
        }
        .icon-link-square {
            width: 10px;
            height: 10px;
            margin-left:8px;
        }

    }

}
