@charset "utf-8";
/* CSS Document */

/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
フッター
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/
footer {

    padding-bottom: 5rem;
}

@media screen and (max-width:1024px) {
    footer {
        padding-bottom: 10rem;
    }
}

/*----------------------------------------*/
/* カテゴリメニュー */

.footer_cat_menu_wrap {
    border-top: 2px solid #c80032;
    border-bottom: 2px solid #c8c8c8;
}

.footer_cat_menu_wrap h4 {
    text-align: center;
    font-size: 2rem;
    font-weight: normal;
    letter-spacing: 0.12em;
    padding: 1.5em 0;
    transition: all 0.2s ease;
}

.footer_cat_menu_wrap h4 span {
    position: relative;
    padding-left: 2em;
}

.footer_cat_menu_wrap h4 span::before {
    content: '＋';
    font-size: 1em;
    width: 1em;
    height: 1em;
    position: absolute;
    left: 0;
}

/* メニューが開いた状態 */
.footer_cat_menu_wrap h4.open span::before {
    transform: rotate(45deg);
    transition: all 0.2s ease;
}

/* メニューが閉じた状態 */
.footer_cat_menu_wrap h4.close span::before {
    transform: rotate(0);
    transition: all 0.2s ease;
}

.footer_cat_menu_wrap h4:hover {
    opacity: 0.6;
    cursor: pointer;
}

.footer_cat_menu_wrap h4.open {
    background-color: #eee;

}

.footer_cat_menu_wrap .accordion {
    display: none;
}

.footer_cat_menu_wrap .footer_cat_menu {
    display: none;
    max-width: 880px;
    margin: auto;
    padding: 2rem 1rem 3rem;
    display: flex;
    box-sizing: content-box;
    justify-content: space-between;
}

.footer_cat_menu_wrap .footer_cat_menu dl {
    font-size: 1.8rem;
    line-height: 1.5;
    margin: 1rem;
}

.footer_cat_menu_wrap .footer_cat_menu dl a {
    text-decoration: none;
}

.footer_cat_menu_wrap .footer_cat_menu dl a:link {
    color: #000;
}

.footer_cat_menu_wrap .footer_cat_menu dl dt,
.footer_cat_menu_wrap .footer_cat_menu dl dd {
    margin: 0.5em 0;
}

.footer_cat_menu_wrap .footer_cat_menu dl dd {
    padding-left: 3em;
    position: relative;
}

.footer_cat_menu_wrap .footer_cat_menu dl dd::before {
    content: '─';
    font-weight: 700;
    position: absolute;
    left: 1.5em;
}

@media screen and (max-width:768px) {
    .footer_cat_menu_wrap .footer_cat_menu dl {
        font-size: 1.6rem;
    }
}

@media screen and (max-width:480px) {

    .footer_cat_menu_wrap h4 {
        font-size: 1.4rem;
        padding: 1.25em 0;
    }

    .footer_cat_menu_wrap .footer_cat_menu {
        flex-direction: row;
        flex-wrap: wrap;
        padding: 2rem;
    }

    .footer_cat_menu_wrap .footer_cat_menu dl {
        width: 48%;
        font-size: 1.2rem;
        margin: 0 0 2rem;
    }

    .footer_cat_menu_wrap .footer_cat_menu dl.width-max {
        max-width: 100%;
        width: 100%;
        padding-bottom: 0;
        margin: 0;
    }

    .footer_cat_menu_wrap .footer_cat_menu dl dt,
    .footer_cat_menu_wrap .footer_cat_menu dl dd {
        margin: 0.5em 0;
    }

    .footer_cat_menu_wrap .footer_cat_menu dl dd {
        padding-left: 2em;
    }

    .footer_cat_menu_wrap .footer_cat_menu dl dd::before {
        content: '─';
        left: 0.5em;
    }

}

/* サイトマップ */
.sitemap_nav_wrap .footer_cat_menu_wrap {
    border: none;
}

.sitemap_nav_wrap .footer_cat_menu_wrap .footer_cat_menu {
    max-width: 100%;
    padding: 0;
}



/*----------------------------------------*/
/* バナー */

footer nav.footer_banner_list_wrap {
    margin: 5.6rem auto;
    max-width: 1200px;

}

footer nav.footer_banner_list_wrap ul {
    display: flex;
    flex-wrap: wrap;
    padding: 0 1rem;
}

footer nav.footer_banner_list_wrap ul li {
    height: 7.2rem;
    width: 33.33%;
    text-align: center;
    margin: 2rem 0;
}

footer nav.footer_banner_list_wrap ul li a img {
    height: 100%;
    width: auto;
}

@media screen and (max-width:768px) {
    footer nav.footer_banner_list_wrap ul li {
        width: 50%;
    }
}

@media screen and (max-width:480px) {
    footer nav.footer_banner_list_wrap {
        margin: 2rem auto;
    }

    footer nav.footer_banner_list_wrap ul li {
        height: 4rem;
        margin: 1rem 0;
    }
}

/*----------------------------------------*/
/* グローバルフッタメニュー */

footer nav.glo_footer_nav_wrap {
    border-top: 2px solid #c8c8c8;
    background-color: #eee;
    padding: 2.7rem 2rem;
    margin-bottom: 3.4rem;
}

footer nav.glo_footer_nav_wrap ul.glo_footer_nav {
    max-width: 1200px;
    display: flex;
    flex-wrap: wrap;
    margin: auto;
}

footer nav.glo_footer_nav_wrap ul.glo_footer_nav li {
    display: block;
    width: 20%;
    font-size: 1.8rem;
    padding: 0.25em 0;
}

footer nav.glo_footer_nav_wrap ul.glo_footer_nav li {
    line-height: 1.5;
}

@media screen and (max-width:768px) {
    footer nav.glo_footer_nav_wrap ul.glo_footer_nav li {
        width: 33%;
    }
}

@media screen and (max-width:480px) {
    footer nav.glo_footer_nav_wrap {
        padding: 2rem 1.4rem;
        margin-bottom: 2.4rem;
    }

    footer nav.glo_footer_nav_wrap ul.glo_footer_nav li {
        width: 50%;
        font-size: 1.4rem;
    }
}

/*----------------------------------------*/
/* 登録番号 */
footer .touroku_bango {
    font-size: 1.4rem;
    line-height: 1.5;
    margin: 0.5em 0;
    text-align: center;
}

@media screen and (max-width:480px) {
    footer .touroku_bango {
        font-size: 1rem;
    }
}

/*----------------------------------------*/
/* 著作権表記 */
footer .copyright {
    font-size: 1.6rem;
    line-height: 1.5;
    text-align: center;
    margin: 0.5em 0;
    color: #4d4d4d;
}

@media screen and (max-width:480px) {
    footer .copyright {
        font-size: 1rem;
    }
}

/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
フロートメニュー
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/

#float_menu_wrap {
    position: relative;
    /* メニューが入る分の余白確保 */
    padding: 0 11.2rem;
    overflow: hidden;
}

#float_menu_wrap ul#float_menu {
    position: absolute;
    right: 0;
    top: 0;
    transition: top ease-out 0.6s;
    z-index: 500;
    display: flex;
    flex-direction: column;
    background-color: #fff;
}

#float_menu_wrap ul#float_menu.is-end {
    top: auto;
    bottom: 2rem;
}

/*----------------------------------------*/
/* ボタン部分 */
#float_menu_wrap ul#float_menu>li {
    width: 11.2rem;
    height: 11.2rem;
}

#float_menu_wrap ul#float_menu li>a {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    font-size: 1.8rem;
    line-height: 1.5;
    font-weight: 700;
    color: #fff;
    text-decoration: none;
    background-color: #c80032;
    text-align: center;
}

#float_menu_wrap ul#float_menu li>a span {
    position: absolute;
    display: block;
    width: 100%;
}

#float_menu_wrap ul#float_menu li>a span em.inner_tex {
    font-style: normal;
}


/* 店舗ATM ログイン共通 */
#float_menu_wrap ul#float_menu li.atm>a svg,
#float_menu_wrap ul#float_menu li.login>a svg,
#float_menu_wrap ul#float_menu li.search>a svg {
    fill: #fff;
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
}

#float_menu_wrap ul#float_menu li.atm>a span,
#float_menu_wrap ul#float_menu li.login>a span,
#float_menu_wrap ul#float_menu li.search>a span {
    top: 6.4rem;
}

/* 検索　店舗ATM*/
#float_menu_wrap ul#float_menu li.atm>a::after,
#float_menu_wrap ul#float_menu li.search>a::after {
    content: '';
    display: block;
    width: 68%;
    height: 2px;
    background-color: #fff;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
}

#float_menu_wrap ul#float_menu li.atm>a svg,
#float_menu_wrap ul#float_menu li.search>a svg {
    top: 2.2rem;
    width: 4rem;
}

#float_menu_wrap ul#float_menu li.atm>a span,
#float_menu_wrap ul#float_menu li.search>a span {
    top: 7rem;
}

/* ログイン */

#float_menu_wrap ul#float_menu li.login>a svg {
    width: 3.4rem;
    top: 2.4rem;
}


/* よくある質問 */
#float_menu_wrap ul#float_menu li.faq a {
    background-color: #323232;
}

#float_menu_wrap ul#float_menu li.faq a span {
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
}


/* トップへ */

#float_menu_wrap ul#float_menu li.gotop a {
    border: 4px solid #323232;
    background-color: #fff;
    box-sizing: border-box;
    color: #323232;
}

#float_menu_wrap ul#float_menu li.gotop a span {
    top: 0.2rem;
}

#float_menu_wrap ul#float_menu li.gotop a img {
    position: absolute;
    width: 5.3rem;
    top: 3rem;
    left: 0;
    right: 0;
    margin: auto;
}

/*検索ボタンの非表示*/
@media screen and (min-width:1025px) {
    #float_menu_wrap ul#float_menu li.search {
        display: none;
    }
}



@media screen and (max-width:1024px) {
    #float_menu_wrap {
        padding: 0;
    }

    #float_menu_wrap ul#float_menu {
        position: fixed;
        left: 0;
        bottom: 0 !important;
        top: auto !important;
        width: 100%;
        transition: none;
        flex-direction: row;
        z-index: 2000;
    }

    /*----------------------------------------*/
    /* ボタン部分 */
    #float_menu_wrap ul#float_menu>li {
        height: 7.5rem;
    }

    #float_menu_wrap ul#float_menu li.atm,
    #float_menu_wrap ul#float_menu li.login,
    #float_menu_wrap ul#float_menu li.search {
        --width_faq_menu: calc(100% - 7.5rem);
        width: calc(var(--width_faq_menu) / 3);
    }

    #float_menu_wrap ul#float_menu li.faq {
        width: 7.5rem;
    }

    #float_menu_wrap ul#float_menu li>a {
        font-size: 1.2rem;
    }

    /* 店舗ATM ログイン共通 */
    #float_menu_wrap ul#float_menu li.atm>a svg,
    #float_menu_wrap ul#float_menu li.login>a svg,
    #float_menu_wrap ul#float_menu li.search>a svg {
        position: absolute;
        left: 1rem;
        right: auto;
    }

    #float_menu_wrap ul#float_menu li.atm>a,
    #float_menu_wrap ul#float_menu li.login>a,
    #float_menu_wrap ul#float_menu li.search>a {
        display: flex;
        justify-content: center;
        align-items: center;
        text-align: left;
        font-size: 2rem;
    }

    #float_menu_wrap ul#float_menu li.atm>a span,
    #float_menu_wrap ul#float_menu li.login>a span,
    #float_menu_wrap ul#float_menu li.search>a span,
    #float_menu_wrap ul#float_menu li.atm>a svg,
    #float_menu_wrap ul#float_menu li.login>a svg,
    #float_menu_wrap ul#float_menu li.search>a svg {
        position: static;
        width: auto;
        margin: 0.4rem;
    }

    /*検索 店舗ATM*/
    #float_menu_wrap ul#float_menu li.atm>a::after,
    #float_menu_wrap ul#float_menu li.search>a::after {
        width: 2px;
        height: 68%;
        top: 0;
        left: auto;
    }

    #float_menu_wrap ul#float_menu li.atm>a svg,
    #float_menu_wrap ul#float_menu li.search>a svg {
        width: 2.4rem;
    }

    /* ログイン */

    #float_menu_wrap ul#float_menu li.login>a svg {
        width: 2.04rem;
    }

    /* トップへ */

    #float_menu_wrap ul#float_menu li.gotop {
        display: none;
    }

    /* よくある質問 */
    #float_menu_wrap ul#float_menu li.faq a {
        background-color: #fff;
        color: #333;
        border: 3px solid #333;
        box-sizing: border-box;
    }

    #float_menu_wrap ul#float_menu li.faq a span {
        top: 50%;
        left: 50%;
        transform: translateX(-50%) translateY(-50%);
    }
}

@media screen and (max-width:768px) {
    #float_menu_wrap ul#float_menu {
        width: calc(100% - 7.5rem);
    }

    #float_menu_wrap ul#float_menu li.atm,
    #float_menu_wrap ul#float_menu li.login,
    #float_menu_wrap ul#float_menu li.search {
        --width_faq_menu: calc(100% - 7.5rem);
        width: calc(var(--width_faq_menu) / 3);
    }
}

@media screen and (max-width:480px) {
    #float_menu_wrap ul#float_menu {
        width: calc(100% - 6rem);
        background-color: #333;
    }

    /* ボタン部分 */
    #float_menu_wrap ul#float_menu>li {
        height: 6rem;
    }

    #float_menu_wrap ul#float_menu li.atm,
    #float_menu_wrap ul#float_menu li.login,
    #float_menu_wrap ul#float_menu li.search {
        --width_faq_menu: calc(100% - 6rem);
        width: calc(var(--width_faq_menu) / 3);
    }

    #float_menu_wrap ul#float_menu li.faq {
        width: 6rem;
    }

    #float_menu_wrap ul#float_menu li.atm>a,
    #float_menu_wrap ul#float_menu li.login>a,
    #float_menu_wrap ul#float_menu li.search>a {
        flex-direction: column;
        font-size: 1.2rem;
    }

    #float_menu_wrap ul#float_menu li.atm>a span,
    #float_menu_wrap ul#float_menu li.login>a span,
    #float_menu_wrap ul#float_menu li.search>a span,
    #float_menu_wrap ul#float_menu li.atm>a svg,
    #float_menu_wrap ul#float_menu li.login>a svg,
    #float_menu_wrap ul#float_menu li.search>a svg {
        position: static;
        margin: 0.2rem;
    }

    #float_menu_wrap ul#float_menu li.atm>a svg,
    #float_menu_wrap ul#float_menu li.search>a svg {
        width: 2rem;
    }

    /* ログイン */

    #float_menu_wrap ul#float_menu li.login>a svg {
        width: 1.7rem;
    }
}

/*----------------------------------------*/
/* sns */

footer nav.sns_wrap {
    background-color: #fafad2;
    display: flex;
    position: relative;
    padding: 5.4rem 1rem;
}


footer nav.sns_wrap ul {
    display: flex;
    position: relative;
    left: 50%;
    margin-left: -2.6rem;
}

footer nav.sns_wrap ul::before {
    content: 'follow us';
    font-size: 3rem;
    letter-spacing: 0.04em;
    font-weight: 300;
    line-height: 5rem;
    position: absolute;
    transform: translateX(-135%);
}

footer nav.sns_wrap ul li {
    margin-right: 4.6rem;
}

footer nav.sns_wrap ul li a {
    display: block;
    width: 5.2rem;
    height: 5.2rem;
}

@media screen and (max-width:768px) {
    footer nav.sns_wrap {
        padding: 3rem 1rem;
    }


    footer nav.sns_wrap ul {
        display: flex;
        position: relative;
        left: 50%;
        margin-left: -2rem;
    }

    footer nav.sns_wrap ul::before {
        font-size: 2rem;
        line-height: 3.8rem;
    }

    footer nav.sns_wrap ul li {
        margin-right: 4rem;
    }

    footer nav.sns_wrap ul li a {
        display: block;
        width: 4rem;
        height: 4rem;
    }
}

@media screen and (max-width:480px) {
    footer nav.sns_wrap {
        padding: 2rem 1rem;
    }

    footer nav.sns_wrap ul::before {
        font-size: 1.8rem;
        line-height: 2.8rem;
    }

    footer nav.sns_wrap ul li {
        margin-right: 3rem;
    }

    footer nav.sns_wrap ul li a {
        display: block;
        width: 3rem;
        height: 3rem;
    }
}

/*----------------------------------------*/


/* ログインサブメニュー */
#login_submenu ul,
#login_submenu ul li,
#login_submenu dl,
#login_submenu dl dt,
#login_submenu dl dd {
    padding: 0;
    margin: 0;
    list-style: none;
}

#login_submenu {
    position: absolute;
    visibility: hidden;
    opacity: 0;
}


li.login:hover #login_submenu {
    visibility: visible;
    opacity: 1;
    transition: 0.3s;
}

#login_submenu ul.sub_menu {
    background-color: #eee;
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.3));
    display: flex;
    justify-content: space-between;
    padding: 4rem 5rem;
    position: relative;
}

#login_submenu ul.sub_menu li {
    width: 30%;
}

#login_submenu ul.sub_menu li dl {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    font-size: 2.2rem;
}

#login_submenu ul.sub_menu li dl.densai {
    justify-content: space-around;
}

#login_submenu ul.sub_menu li dl dt {
    width: 100%;
    text-align: center;
    letter-spacing: 0.18em;
    font-weight: 700;
    line-height: 2;
    border-bottom: 4px solid #000;
    margin-bottom: 0.5em;
}

#login_submenu ul.sub_menu li dl.kojin dt {
    letter-spacing: 0;
    color: #c80032;
    border-color: #c80032;
}

#login_submenu ul.sub_menu li dl.hojin dt {
    letter-spacing: 0;
    color: #fa7d00;
    border-color: #fa7d00;
}

#login_submenu ul.sub_menu li dl.densai dt {
    letter-spacing: 0;
    color: #333;
    border-color: #333;
    margin-bottom: 0.25em;
}

#login_submenu ul.sub_menu li dl dd a {
    display: block;
    line-height: 1.75;
    text-decoration: none;
    letter-spacing: 0.1em;
    color: #000;
}

#login_submenu ul.sub_menu li dl dd a span {
    display: inline-block;
    padding-left: 1em;
    position: relative;
}

#login_submenu ul.sub_menu li dl dd a span::before {
    content: '';
    display: block;
    position: absolute;
    width: 0.3em;
    height: 0.3em;
    border-top: 2px solid #666;
    border-right: 2px solid #666;
    left: -0.15em;
    top: 50%;
    transform: rotate(45deg) translateY(-49%);
}

/* フロートメニュー内 */
@media screen and (min-width:1025px) {
    #float_menu_wrap #login_submenu {
        width: 108.8rem;
        padding-right: 3rem;
        left: 0rem;
        transform: translateX(-100%);
        box-sizing: content-box;
    }

    #float_menu_wrap #login_submenu ul.sub_menu::after {
        content: '';
        display: block;
        position: absolute;
        width: 2.2rem;
        height: 3.8rem;
        box-sizing: border-box;
        border-left: 2.2rem solid #eee;
        border-top: 1.9rem solid transparent;
        border-bottom: 1.9rem solid transparent;
        right: 0;
        top: 4rem;
        transform: translateX(100%);
    }
}


@media screen and (max-width:1024px) {
    #float_menu_wrap li.login:hover {
        cursor: pointer;

    }

    #float_menu_wrap li.login:hover a.trigger_button {
        opacity: 0.7;
    }

    #float_menu_wrap li a.trigger.open {
        background-color: #323232 !important;
    }


    #float_menu_wrap li a.trigger.open em.inner_tex {
        display: none !important;
    }

    #float_menu_wrap li a.trigger.open span.title_wrap::after {
        content: 'とじる';
    }

    #float_menu_wrap #login_submenu {
        visibility: hidden;
        opacity: 0;
    }

    #float_menu_wrap #login_submenu.open {
        visibility: visible;
        opacity: 1;
    }

    #float_menu_wrap #login_submenu {
        position: fixed;
        bottom: 0rm;
        left: 0rem;
        top: auto;
        width: 100%;
        padding: 0 0 2rem;

        transform: translateX(0) translateY(-100%);
        box-sizing: content-box;
    }

    #float_menu_wrap #login_submenu ul.sub_menu::after {
        content: '';
        display: block;
        position: absolute;
        width: 2.2rem;
        height: 3.8rem;
        box-sizing: border-box;
        border-left: 2.2rem solid #eee;
        border-top: 1.9rem solid transparent;
        border-bottom: 1.9rem solid transparent;
        left: auto;
        right: 20%;
        top: auto;
        bottom: -2.2rem;
        transform: translateX(0) rotate(90deg);
    }

    /*メニュー調整*/
    #login_submenu ul.sub_menu {
        flex-direction: column;
        padding: 2rem;
    }

    #login_submenu ul.sub_menu li {
        width: 100%;
    }

    #login_submenu ul.sub_menu li dl {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-around;
        font-size: 2.2rem;
        margin-bottom: 1rem;
    }

    #login_submenu ul.sub_menu li dl dt {
        width: 100%;
        text-align: center;
        letter-spacing: 0.18em;
        font-weight: 700;
        line-height: 2;
        border-bottom: 4px solid #000;
        margin-bottom: 0.25em;
    }

}

@media screen and (max-width:768px) {
    #float_menu_wrap #login_submenu ul.sub_menu::after {
        right: 30%;
    }
}

@media screen and (max-width:480px) {
    #float_menu_wrap #login_submenu ul.sub_menu::after {
        right: 41%;
    }

    #login_submenu ul.sub_menu li dl {
        font-size: 1.6rem;
    }
}

/* フロートメニュー内 ヘッダ*/

header ul.login_atm_wrap li.login {
    position: relative;
}

header ul.login_atm_wrap li.login #login_submenu {
    width: 108.8rem;
    padding-top: 2rem;
    right: 0rem;
    box-sizing: content-box;
    z-index: 20;
}

header ul.login_atm_wrap li.login #login_submenu ul.sub_menu::after {
    content: '';
    display: block;
    position: absolute;
    width: 2.2rem;
    height: 3.8rem;
    box-sizing: border-box;
    border-left: 2.2rem solid #eee;
    border-top: 1.9rem solid transparent;
    border-bottom: 1.9rem solid transparent;
    right: 10rem;
    top: -2.2rem;
    transform: rotate(-90deg);
}

@media screen and (max-width:1024px) {
    header ul.login_atm_wrap li.login #login_submenu {
        width: 90rem;

    }

    header ul.login_atm_wrap li.login #login_submenu ul.sub_menu {
        padding: 3rem;
    }

    header ul.login_atm_wrap li.login #login_submenu ul.sub_menu li dl {
        font-size: 1.8rem;
    }
}