@charset "UTF-8";
.l-footer *{
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 16px;
}
.l-footer {
    padding: 60px 0 0px;
}
.l-footer .footer__inner {
    width: 100%;
    display: contents;
}
.footer__top {
    background-color: #004187;
    width: 100%;
}
.footer__top-inner {
    box-sizing: border-box;
    width: 1140px;
    max-width: 100%;
    margin: 0 auto;
    min-height: 219px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
}
.footer__brand {
    width: 485px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 19px;
}
.footer__name {
    margin: 0;
    width: 303px;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.5em;
    color: #FFFFFF;
}
.footer__name:hover {
opacity: 1;
}
.footer__brand-body {
    display: flex;
    flex-direction: column;
    gap: 11px;
    align-self: stretch;
}
.footer__address {
    margin: 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5em;
    color: #FFFFFF;
}
.footer__tel-block {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.footer__tel-row {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 4px;
}
.footer__tel-icon {
    display: flex;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
}
.footer__tel-icon svg {
    width: 18px;
    height: 18px;
    fill: #FFFFFF;
}
.footer__tel-num {
    font-family: "Roboto", sans-serif;
    font-weight: 500;
    font-size: 28px;
    line-height: 1em;
    color: #FFFFFF;
    text-decoration: none;
}
.footer__meta {
    margin: 0;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.3em;
    color: #FFFFFF;
}
.footer__nav {
    display: flex;
    flex-direction: row;
    gap: 92px;
}
.footer__nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 21px;
    align-items: stretch;
}
.footer__nav-item {
    margin: 0;
}
.footer__nav-link {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.2em;
    color: #FFFFFF;
    text-decoration: none;
}
.footer__nav-link::before {
    content: "";
    flex-shrink: 0;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background-color: #FFFFFF;
}
.footer__nav-link:hover {
    opacity: 1;
    color: #FADD0B;
}
.footer__bottom {
    background-color: #FFFFFF;
    width: 100%;
}
.footer__bottom-inner {
    box-sizing: border-box;
    width: 1140px;
    margin: 0 auto;
    padding: 10px 0px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.footer__legal {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 16px;
}
.footer__legal-link {
    font-size: 13px;
    font-weight: 400;
    line-height: 1.3em;
    color: #004187;
    text-decoration: none;
}
.footer__legal-link:hover {
    color: #00B3DB;
    opacity: 1;
}
.footer__copyright {
    margin: 0;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.3em;
    color: #004187;
}
.footer__extras {
    box-sizing: border-box;
    padding: 24px 390px 40px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 24px;
    background-color: #FFFFFF;
    border-top: 1px solid #E5E5E5;
}
.footer__contact {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: center;
}
.footer__contact > li {
    margin: 0;
}
.footer__contact-btn--mail,
.footer__contact-btn--tel {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #004187;
    text-decoration: none;
}
.footer__contact-btn--mail svg,
.footer__contact-btn--tel svg {
    width: 18px;
    height: 18px;
    fill: #004187;
}
.footer__contact-btn--mail:hover {
    text-decoration: underline;
}
.footer__snslink {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}
.footer__snslink > li {
    margin: 0;
}
.footer__linebnr {
    list-style: none;
    margin: 0;
    padding: 0;
}
/* ---------- フロート（トップ MV 通過後に表示 / footer.phtml） ----------
   位置は下記3つだけ変えればOK（単位は px / rem / % など任意）
   - --top-float-right : 画面右からの距離（大きいほど左へ）
   - --top-float-top   : 上からの距離（大きいほど下へ）
   下揃えにしたい場合は top を auto にして --top-float-bottom を使う
-------------------------------------------------------------- */
.top-float {
    --top-float-right: -7px;
    --top-float-top: 210px;
    --top-float-bottom: auto;
    position: fixed;
    right: var(--top-float-right);
    top: var(--top-float-top);
    bottom: var(--top-float-bottom);
    z-index: 2;
    box-sizing: border-box;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate3d(24px, 20px, 0) scale(0.97);
    transform-origin: right center;
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        visibility 0.45s linear;
}
.top-float.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate3d(0, 0, 0) scale(1);
}
@media (prefers-reduced-motion: reduce) {
    .top-float {
        transition-duration: 0.01ms;
        transition-delay: 0s;
        transform: translate3d(0, 0, 0) scale(1);
    }
    .top-float:not(.is-visible) {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
}
.top-float__inner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0px;
    margin: 0 auto;
}
.top-float__btn {
    width: 73px;
    height: 275px;
}
.top-float__btn img  {
    width: 100%;
    height: 100%;
}
.top-float__btn:hover {
    opacity: 0.92;
}
.top-float__btn--primary {
    height: 193px;
}
.top-float__btn--buy {
    margin-top: -25px;
}
