footer {
    position: relative;
    margin-top: 10rem;
    _background-color: #f2f3f8;
    text-align: center;
}
footer .social {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    width: 100%;
    color: #fff;
}
footer .social .column {
    display: block;
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    margin-left: 0;
    max-width: 100%;
    width: 100%;
}
footer .social .column {
    background: #5a6472;
    transition: background 0.3s;
    &:hover {
        background: #4c5563;
    }
}
footer .cta {
    display: grid;
    background: #f7f7fb;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    width: 100%;
    color: #2a3037;
}
footer .social .column {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2.3rem 1.5rem 2rem;
}
footer .social .btn {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 1rem;
    padding: 0;
    border-radius: 50%;
    width: 6.7rem;
    height: 6.7rem;
    color: #2a3037;
}
footer .social .btn [class^="icon-"] {
    font-size: 4rem;
}
footer .cta .btn {
    margin-left: auto;
    margin-right: auto;
    max-width: 36rem;
}
footer .footer-nav {
    padding-top: 3rem;
    background-color: #2a3037;
    color: #fff;
}
footer .footer-nav .column {
    display: inline-block;
    -webkit-box-flex: 0;
    -ms-flex: none;
    flex: none;
    width: auto;
}
footer .footer-nav .list-unstyled {
    margin-right: 2rem;
    text-align: left;
}
footer .footer-nav a {
    display: inline-block;
    padding: 0.5rem 1rem;
    color: #fff;
    text-decoration: none;
}
footer .footer-nav a:hover,
footer .footer-nav a:focus {
    text-decoration: underline;
}
footer .copyright {
    margin: 6rem 0 0;
    padding: 1.3rem 0;
    color: #fff;
    font-size: 1.2rem;
    line-height: 1.25;
    text-align: center;
    width: 100%;
}
@media (max-width: 959px) {
    footer .social {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }
    footer {
        margin-top: 16rem;
    }
    footer .social .column {
        padding: 2.5rem 1rem;
        width: 50%;
        font-size: clamp(15px, 1.75vw, 16px);
    }
    footer .social .column:nth-child(n + 3) {
        border-top: 1px solid #7b8496;
    }
    footer .social .column:nth-child(even) {
        border-left: 1px solid #7b8496;
    }
    footer .social .btn {
        width: 5.4rem;
        height: 5.4rem;
    }
    footer .social .btn [class^="icon-"] {
        font-size: 3.6rem;
    }
    footer .cta .column {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }
    footer .cta .column:not(:first-child) {
        border-top: 1px solid #e2e6ee;
    }
}
@media (min-width: 960px) {
    footer .social {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
    }
    footer .social .column {
        font-size: clamp(15px, 1.35vw, 17px);
    }
    footer .social .column:not(:first-child) {
        border-left: 1px solid #7b8496;
    }
    footer .cta .column:not(:first-child) {
        border-left: 1px solid #e2e6ee;
    }
}
@media screen and (max-width: 767px) {
    footer {
        margin-top: 12rem;
    }
}
@media screen and (max-width: 480px) {
    footer {
        margin-top: 10rem;
    }
}
@media screen and (min-width: 960px) {
    .br__footer_cta {
        display: none;
    }
}
@media screen and (min-width: 768px) {
    .br__footer_cta2 {
        display: none;
    }
}
.footer2025 {
    .cta {
        .column {
            display: grid;
            place-content: center;
            place-items: center;
            min-height: 275px;
            p.p__column_title {
                font-size: clamp(25px, 2.15vw, 28px);
                font-weight: 600;
            }
            p {
                margin: 0 auto 20px;
            }
            .p__column_guide {
                margin-bottom: 20px;
                font-size: clamp(17px, 1.35vw, 19px);
                width: 100%;
                padding-left: 30px;
                padding-right: 30px;
            }
            .btn {
                max-width: 40rem;
                width: clamp(305px, 72.5vw, 365px);
                border-radius: 99rem;
                font-size: clamp(15.5px, 1.75vw, 17px);
                height: 5.5rem;
                line-height: 5.2rem;
            }
            a.btn-common {
                margin: 0 auto;
                width: clamp(300px, 32.5vw, 425px);
            }
        }
    }
    .cta.cta-en {
        .column {
            .p__column_guide {
                font-size: clamp(18px, 1.35vw, 19px);
                width: 85%;
                padding-left: 30px;
                padding-right: 30px;
                max-width: 625px;
            }
        }
    }
    .footer-nav {
        padding: 60px 0 20px;
        .container {
            max-width: 1400px;
            display: grid;
            grid-template-columns: 1fr;
            justify-content: initial;
            transition: initial;
            flex-wrap: initial;
            padding: 0 30px;
            .wrap_row1 {
                display: flex;
                height: auto;
                a {
                    width: 220px;
                    display: block;
                    padding: initial;
                    color: initial;
                    text-decoration: none;
                }
            }
            .wrap_row2 {
                padding: 40px 0;
                .row {
                    .column {
                        .p_title {
                            text-align: initial;
                            font-weight: 600;
                            margin-bottom: 5px;
                        }
                        ul {
                            li {
                                &:before {
                                    content: "";
                                    display: block;
                                    width: 4px;
                                    height: 4px;
                                    min-width: 4px;
                                    min-height: 4px;
                                    background-color: #fff;
                                    border-radius: 99px;
                                    top: 17px;
                                    position: relative;
                                }
                                a {
                                    display: inline-block;
                                    padding: 3px 10px 3px 15px;
                                    color: #fff;
                                    text-decoration: none;
                                }
                            }
                        }
                    }
                }
            }
            .wrap_row3 {
                display: flex;
                justify-content: center;
                padding: 10px 0;
                .wrap_icons {
                    max-width: 300px;
                    width: 100%;
                    display: flex;
                    justify-content: space-around;
                    a {
                        width: 40px;
                        height: 40px;
                        background: #fff;
                        border-radius: 999px;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        padding: 0;
                        img {
                            width: 100%;
                        }
                    }
                    a.a_sns_icon_no_bg {
                        background: initial;
                    }
                }
            }
            .wrap_row4 {
                display: flex;
                justify-content: center;
                padding: 40px 0 0;
                p.p_iso_footer img {
                    width: 195px;
                    border-radius: 10px;
                }
            }
            .copyright {
                margin: 6rem 0 0;
                padding: 1.3rem 0;
                color: #fff;
                font-size: 14px;
                line-height: 1.25;
                text-align: center;
                width: 100%;
            }
        }
    }
}
@media screen and (max-width: 959px) {
    .footer2025 {
        .cta {
            grid-template-columns: 1fr;
        }
        .cta .column {
            min-height: initial;
            p {
                max-width: 100%;
                width: 100%;
            }
            p.p__column_title {
                font-size: clamp(25px, 3.75vw, 28px);
                font-weight: 600;
            }
            .btn {
                height: 4.8rem;
                line-height: 4.6rem;
            }
            a.btn-common {
                width: clamp(300px, 72.5vw, 425px);
            }
        }
        & .footer-nav {
            & .container {
                & .wrap_row2 {
                    .row {
                        display: grid;
                        grid-template-columns: 1fr 1fr;
                        row-gap: 40px;
                        & .column {
                            & ul {
                                & li {
                                    &:before {
                                        top: 15px;
                                    }
                                    a {
                                        font-size: 13px;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
@media screen and (max-width: 767px) {
    .footer2025 {
        & .cta {
            & .column {
                .p__column_guide {
                    font-size: clamp(16px, 1.75vw, 17px);
                }
            }
        }
        .cta.cta-en {
            .column {
                .p__column_guide {
                    font-size: clamp(17px, 1.35vw, 18px);
                    width: 92.5%;
                }
            }
        }
        .social .column {
            font-size: clamp(14px, 2.75vw, 16px);
            line-height: 1.3;
        }
        & .footer-nav {
            & .container {
                & .wrap_row1 {
                    a {
                        width: 200px;
                    }
                }
                & .wrap_row2 {
                    & .row {
                        grid-template-columns: 1fr;
                        gap: 30px 0;
                        & .column {
                            & ul {
                                margin: initial;
                            }
                        }
                    }
                }
            }
        }
    }
}
@media screen and (max-width: 480px) {
    .footer2025 {
        & .cta .column {
            padding-top: 5rem;
            padding-bottom: 5rem;
            p.p__column_title {
                font-size: clamp(22.5px, 4.5vw, 24px);
            }
            .p__column_guide {
                font-size: clamp(14px, 3.75vw, 16px);
                margin-bottom: 25px;
                width: 100%;
            }
            p {
                max-width: 550px;
                line-height: 1.7;
            }
            a.btn-common {
                width: clamp(285px, 72.5vw, 350px);
            }
        }
        .cta.cta-en {
            .column {
                .p__column_guide {
                    font-size: clamp(15px, 3.75vw, 16px);
                    width: 100%;
                }
            }
        }
        .social {
            .column {
                padding: 2rem 1rem;
                font-size: clamp(11.5px, 3vw, 13px);
            }
            .btn {
                width: 5rem;
                height: 5rem;
            }
            .btn [class^="icon-"] {
                font-size: 2.75rem;
            }
            .icon-twitter:before {
                width: 23px;
                height: 23px;
            }
            .icon-resources:before {
                width: 30px;
                height: 30px;
            }
        }
        .footer-nav {
            padding: 40px 0 20px;
            & .container {
                padding: 0 20px;
                & .wrap_row3 {
                    & .wrap_icons {
                        max-width: 275px;
                        a {
                            width: 35px;
                            height: 35px;
                        }
                    }
                }
                & .wrap_row4 {
                    padding: 30px 0 0;
                    p.p_iso_footer img {
                        width: 165px;
                    }
                }
                .copyright {
                    margin: 4rem 0 0;
                    font-size: 12px;
                }
            }
        }
    }
}
