@charset "UTF-8";

.l-footer {
    padding: 0;
    background-color: #0f318d;
    border-top: none;
}

.org-footer * {
    font-family: "Noto Sans JP", sans-serif;
    box-sizing: border-box;
}

.org-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 36px;
    background-color: #0f318d;
}
    .org-footer__inner {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 1140px;
        max-width: 100%;
        margin: 0 auto;
    }
        .org-footer__copyright {
            margin: 0;
            color: #fff;
            font-size: 12px;
            font-weight: 400;
            line-height: 1.5;
            letter-spacing: 0.6px;
            text-align: center;
            white-space: nowrap;
        }

/* ============================
サイドフロート（ご相談）
============================ */
.float__box {
    position: fixed;
    top: 30%;
    right: 0;
    z-index: 3;
    transform: translateY(-50%);
    transition: opacity 0.2s ease, visibility 0.2s ease;
}
.float__box.is-hidden {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}
    .float__contact {
        position: relative;
        z-index: 0;
        display: flex;
        flex-direction: column;
        gap: 5px;
        align-items: center;
        box-sizing: border-box;
        width: 50px;
        height: 183px;
        overflow: hidden;
        background-color: #0f318d;
        border: 1px solid #0f318d;
        text-decoration: none;
        padding-top: 12px;
    }
    .float__contact:hover{
        opacity: 1;
    }
    .float__contact::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        background-color: #fff;
        transform: scaleX(0);
        transform-origin: center;
        transition: transform 0.35s ease;
    }
    .float__contact:hover::before {
        transform: scaleX(1);
    }
        .float__contact-icon {
            position: relative;
            z-index: 1;
            display: block;
            flex-shrink: 0;
            width: 24px;
            height: 24px;
            background-color: #fff;
            transition: background-color 0.35s ease;
            -webkit-mask: url("/images/top/float_mail.svg") no-repeat center / contain;
            mask: url("/images/top/float_mail.svg") no-repeat center / contain;
        }
        .float__contact:hover .float__contact-icon {
            background-color: #0f318d;
        }
        .float__contact-text {
            position: relative;
            z-index: 1;
            color: #fff;
            font-size: 14px;
            font-weight: 500;
            line-height: 1.2;
            text-align: center;
            writing-mode: vertical-rl;
            letter-spacing: 3px;
            transition: color 0.35s ease;
        }
        .float__contact:hover .float__contact-text {
            color: #0f318d;
        }

/* ============================
ページトップ
============================ */
.float__page-top-box {
    position: fixed;
    right: 10px;
    bottom: 10px;
    z-index: 3;
}
    .float__page-top {
        position: relative;
        z-index: 0;
        display: flex;
        flex-direction: column;
        gap: 3px;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        width: 80px;
        height: 80px;
        overflow: hidden;
        background-color: #091f59;
        border: 1px solid #091f59;
        border-radius: 40px;
        text-decoration: none;
    }
    .float__page-top:hover{
        opacity: 1;
    }
    .float__page-top::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        background-color: #fff;
        border-radius: inherit;
        transform: scaleX(0);
        transform-origin: center;
        transition: transform 0.35s ease;
    }
    .float__page-top:hover::before {
        transform: scaleX(1);
    }
        .float__page-top-icon {
            position: relative;
            z-index: 1;
            display: block;
            flex-shrink: 0;
            width: 6px;
            height: 10px;
            background-color: #fff;
            transition: background-color 0.35s ease;
            -webkit-mask: url("/images/top/icon_page_top.svg") no-repeat center / contain;
            mask: url("/images/top/icon_page_top.svg") no-repeat center / contain;
        }
        .float__page-top:hover .float__page-top-icon {
            background-color: #091f59;
        }
        .float__page-top-text {
            position: relative;
            z-index: 1;
            color: #fff;
            font-size: 14px;
            font-weight: 500;
            line-height: 1.5;
            text-align: center;
            white-space: nowrap;
            transition: color 0.35s ease;
        }
        .float__page-top:hover .float__page-top-text {
            color: #091f59;
        }
