@charset "UTF-8";

.l-footer {
    background-color: inherit;
    padding: 0;
}

/*===============================
Float
===============================*/
.float__box {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 40px;
    position: fixed;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    z-index: 3;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    pointer-events: none;
}
.float__box.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
    .float__list {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 5px;
        margin: 0;
        padding: 0;
        list-style: none;
    }
        .float__item {
            display: block;
            margin: 0;
        }
            .float__link {
                position: relative;
                z-index: 2;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                gap: 5px;
                box-sizing: border-box;
                width: 50px;
                padding: 12px 0 20px;
                overflow: hidden;
                border-radius: 4px;
                box-shadow: 3px 3px 2px rgba(0, 0, 0, 0.1);
                color: #fff;
                text-decoration: none;
                transition-duration: 0.4s;
                pointer-events: auto;
            }
            .float__link::after {
                content: "";
                position: absolute;
                top: 50%;
                left: 50%;
                z-index: -1;
                display: block;
                width: 100%;
                height: 0;
                padding-top: 100%;
                border-radius: 50%;
                background-color: #fff;
                opacity: 0;
                transform: translate(-50%, -50%) scale(0.1);
                transition: opacity 0.5s, transform 0s;
                transition-delay: 0s, 0.4s;
                pointer-events: none;
            }
            .float__link:hover {
                opacity: 1;
            }
            .float__link:hover::after {
                opacity: 1;
                transform: translate(-50%, -50%) scale(5);
                transition: opacity 0.8s, transform 0.6s ease-in-out;
                transition-delay: 0s;
            }
            .float__item--contact .float__link {
                background-color: #00c3ce;
            }
            .float__item--contact .float__link:hover {
                color: #00c3ce;
            }
            .float__item--reserve .float__link {
                background-color: #ff8000;
            }
            .float__item--reserve .float__link:hover {
                color: #ff8000;
            }
                .float__icn {
                    position: relative;
                    z-index: 1;
                    display: block;
                    width: 24px;
                    height: 24px;
                    background-color: currentColor;
                    transition: background-color 0.4s;
                    -webkit-mask-repeat: no-repeat;
                    mask-repeat: no-repeat;
                    -webkit-mask-position: center;
                    mask-position: center;
                    -webkit-mask-size: contain;
                    mask-size: contain;
                }
                .float__icn--contact {
                    -webkit-mask-image: url("/images/top/float_contact.svg");
                    mask-image: url("/images/top/float_contact.svg");
                }
                .float__icn--reserve {
                    -webkit-mask-image: url("/images/top/float_reserve.svg");
                    mask-image: url("/images/top/float_reserve.svg");
                }
                .float__text {
                    position: relative;
                    z-index: 1;
                    display: block;
                    width: 16px;
                    font-family: "Noto Sans JP", sans-serif;
                    font-size: 16px;
                    font-weight: 700;
                    line-height: 1.1;
                    color: inherit;
                    text-align: center;
                    writing-mode: vertical-rl;
                    text-orientation: upright;
                    transition: color 0.4s;
                }
    .float__brokerage {
        display: block;
    }
        .float__brokerage-link {
            display: block;
            line-height: 0;
            transition: transform 0.3s ease, opacity 0.3s ease;
            pointer-events: auto;
        }
        .float__brokerage-link:hover{
            opacity: 1;
            transform: translateY(-10px);
        }
            .float__brokerage-img {
                display: block;
                width: 138px;
                height: auto;
            }

/*===============================
Footer
===============================*/
.org-footer {
    position: relative;
    z-index: 4;
    padding: 92px 0 80px;
    background-color: #dcfafb;
}
.org-footer.bkn-footer{
    margin-top: 150px;
}
.org-footer::before {
    content: "";
    width: 100%;
    height: 787px;
    background: url(/images/top/footer-bg.webp) no-repeat center top / 1920px 787px;
    position: absolute;
    top: -170px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 0;
    pointer-events: none;
}
    .org-footer__inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0;
        width: 1140px;
        margin: 0 auto;
        padding: 23px 60px 40px;
        border-radius: 20px;
        background-color: #fff;
        box-shadow: 3px 3px 2px rgba(0, 0, 0, 0.1);
        position: relative;
        z-index: 1;
    }
        .org-footer__logo {
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 0 23px;
        }
            .org-footer__logo-link {
                display: block;
                line-height: 0;
                width: 302px;
                height: auto;
            }
                .org-footer__logo-link img {
                    display: block;
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                }
        .org-footer__navs {
            display: flex;
            align-items: flex-start;
            gap: 40px;
            width: 100%;
            padding-bottom: 60px;
        }
            .org-footer__nav {
                display: flex;
                flex: 1 0 0;
                flex-direction: column;
                align-items: flex-start;
                gap: 16px;
                min-width: 0;
            }
                .org-footer__nav-head {
                    display: flex;
                    align-items: center;
                    gap: 8px;
                    width: 100%;
                }
                    .org-footer__nav-ttl {
                        flex-shrink: 0;
                        margin: 0;
                        font-family: "Noto Sans JP", sans-serif;
                        font-size: 16px;
                        font-weight: 700;
                        line-height: 1;
                        color: #00c3ce;
                        white-space: nowrap;
                    }
                    .org-footer__nav-line {
                        flex: 1 0 0;
                        min-width: 0;
                        height: 0;
                        border-top: 2px dotted rgba(7, 75, 159, 0.4);
                    }
                .org-footer__link-list {
                    display: grid;
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                    row-gap: 15px;
                    width: 100%;
                    margin: 0;
                    padding: 0;
                    list-style: none;
                }
                    .org-footer__link-item {
                        display: block;
                    }
                        .org-footer__link {
                            display: block;
                            text-decoration: none;
                        }
                        .org-footer__link:hover {
                            opacity: 1;
                        }
                            .org-footer__link-text {
                                display: inline-block;
                                position: relative;
                                font-family: "Noto Sans JP", sans-serif;
                                font-size: 13px;
                                font-weight: 500;
                                line-height: 1.181;
                                color: #0d294b;
                            }
                            .org-footer__link-text::after {
                                content: "";
                                position: absolute;
                                left: 0;
                                bottom: -2px;
                                width: 100%;
                                height: 1px;
                                background-color: #0d294b;
                                transform: scaleX(0);
                                transform-origin: right center;
                                transition: transform 0.35s ease;
                            }
                            .org-footer__link:hover .org-footer__link-text::after {
                                transform: scaleX(1);
                                transform-origin: left center;
                            }
        .org-footer__legal {
            display: flex;
            align-items: center;
            justify-content: space-between;
            width: 100%;
        }
            .org-footer__legal-list {
                display: flex;
                align-items: center;
                gap: 20px;
                margin: 0;
                padding: 0;
                list-style: none;
            }
                .org-footer__legal-item {
                    display: block;
                }
                    .org-footer__legal-link {
                        display: block;
                        text-decoration: none;
                    }
                    .org-footer__legal-link:hover {
                        opacity: 1;
                    }
                        .org-footer__legal-text {
                            display: inline-block;
                            position: relative;
                            font-family: "Noto Sans JP", sans-serif;
                            font-size: 13px;
                            font-weight: 500;
                            line-height: 1.2;
                            color: #0d294b;
                            white-space: nowrap;
                        }
                        .org-footer__legal-text::after {
                            content: "";
                            position: absolute;
                            left: 0;
                            bottom: -2px;
                            width: 100%;
                            height: 1px;
                            background-color: #0d294b;
                            transform: scaleX(0);
                            transform-origin: right center;
                            transition: transform 0.35s ease;
                        }
                        .org-footer__legal-link:hover .org-footer__legal-text::after {
                            transform: scaleX(1);
                            transform-origin: left center;
                        }
            .org-footer__copy {
                margin: 0;
                font-family: "Noto Sans JP", sans-serif;
                font-size: 11px;
                font-weight: 400;
                line-height: 1;
                color: #455a64;
                text-align: center;
                white-space: nowrap;
            }
