@charset "utf-8";

/* =================================================================================
　footer フッター　※一部ヘッダーと共通
================================================================================= */

/* ---------------------------
　固定背景
--------------------------- */
.bg {
    filter: blur(5px);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: -999;

    /* ↓ 画像 */
    & img {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    transform: translate(-50%, -50%);
    object-fit: cover;
    }
}

/* ---------------------------
　フッター
--------------------------- */
footer {
    box-shadow: 0 30px 30px #F6EFE4;
    box-sizing: border-box;
    padding: 2rem 1rem 0;
}

footer .f_title {
    text-align: center;
    position: relative;
    & span {
        font-size: 2rem;
        font-weight: 700;
        letter-spacing: .1rem;
        line-height: 2.2rem;
        /* あしらい */
        &::after {
            content: "";
            background: url(../img/h2_bg.png) no-repeat center / contain;
            display: block;
            margin-top: 1rem;
            height: 12px;
            width: 100%;
        }
    }
    & p {
        font-weight: normal;
        margin-top: 1rem;
    }
}

/* -----------------------------------------
　フッター ナビ
-------------------------------------------- */
/* あしらい */
footer nav::before {
    content: "";
    background: url(../img/line.png) repeat-x left / 420px 12px;
    display: block;
    margin: 2rem auto;
    height: 12px;
    width: 100%;
}

/* ナビゲーション部分 */
footer .menu {
    padding: 0;
    opacity: 1;
    visibility: visible;
    margin: auto;
    transform: translateY(0);
}

footer .menu ul li a,
footer .menu ul li div {
        margin-bottom:  .6rem;
    }

/* -----------------------------------------
　div .banner バナー（ヘッダー・フッター兼用）
-------------------------------------------- */
.banner {
    margin: 2rem auto 0;
    max-width: 360px;
    /* 枠 */
    & a {
        border-radius: 15px;
        box-shadow: var(--shadow);
        color: var(--blue);
        display: block;
        font-family: var(--ZenMaru);
        font-size: 1.4rem;
        font-weight: 500;
        margin-bottom: 1.1rem;
        padding: 1rem;
        text-align: center;
        z-index: 1;
        /* 枠 背景画像 */
        &::before,
        &::after {
            content: "";
            border-radius: 15px;
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: -1;
        }
        &::after {
            background: url(../img/btn_texture.jpg) center / 100%;
            mix-blend-mode: overlay;
        }
        &::before {
            background: var(--bg_blue);
        }
    }
    /* 枠 文字 */
    & p {
        background: var(--fff);
        border-radius: 2rem;
        box-shadow: var(--shadow);
        color: var(--blue);
        display: block;
        font-family: var(--ZenMaru);
        font-size: 1rem;
        margin: .5rem auto 0;
        padding: 0.25rem;
        transition: all .2s ease-out;
    }
    & span {
        color: var(--blue);
        font-family: var(--ZenMaru);
        font-size: 1.6rem;
    }
}

/* 赤字 バナー */
.banner .red {
    & p {
        box-shadow: var(--shadow_red) !important;
        color: var(--red) !important;
    }
    &::before {
        background: var(--bg_red) !important;
    }
    &::after {       
        box-shadow: var(--shadow_red) !important;
    }
    /* ボタン */
    & .button p {
        border: none;
        box-shadow: var(--shadow_red);
        /* 丸 */
        &::before,
        &::after {
            background: var(--red);
        }
    }
    &:hover .button p {
    background: var(--red) !important;
    color: var(--fff) !important;
    }
}

/* ---------------------------
　div .button ボタン
--------------------------- */
.button a,
.button p {
    background: var(--fff);
    border: 1px solid var(--blue);
    border-radius: 2rem;
    box-shadow: var(--shadow);
    color: var(--blue);
    display: block;
    font-family: var(--ZenMaru);
    font-size: 1.1rem;
    font-weight: 500;
    margin: 0.5rem auto 0;
    padding: 0.5rem;
    position: relative;
    text-align: center;
    /* 丸 */
    &::before,
    &::after {
        content: "";
        background: var(--blue);
        border-radius: 50%;
        position: absolute;
        width: 8px;
        height: 8px;
        top: 50%;
        right: 5.5%;
        transform: translateY(-50%);
        transform-origin: center center;
    }
    &::before {
        animation: pulsate 2.5s infinite;
    }
}

a:hover {
    & p,
    & .button a,
    & .button p {
    background: var(--blue);
    color: var(--fff);
    }
    & span {
        color: var(--fff);
    }
    /* 丸 */
    & .button p::before,
    & .button p::after {
        transform-origin: center center;
        background: var(--fff) !important;
        }
}

/* footer お問い合わせ テキスト化 */
.a_none {
    pointer-events: none;
}

/* -----------------------------------------
    section #pagetop TOPに戻る
-------------------------------------------- */
#pagetop {
    position: fixed;
    bottom: 0;
    right: .5rem;
    padding: 0 !important;
    z-index: 99;
    opacity: 0;
    transform: translateY(60px);
    transition: opacity .3s, transform .3s;
    & a {
        background: var(--blue);
        border-radius: 2rem 2rem 0 0;
        box-shadow: var(--shadow);
        font-family: var(--ZenMaru);
        font-size: .8rem;
        font-weight: 700;
        padding: .8rem 1rem .2rem;
        color: var(--fff);
        display: block;
        &::before {
            content: "";
            background: var(--fff);
            display: block;
            margin: auto;
            width: 10px;
            height: 10px;
            transform: rotate(-90deg);
            /* SVGをマスクに使う */
            -webkit-mask: url("../img/triangle.svg") no-repeat center / contain;
            mask: url("../img/triangle.svg") no-repeat center / contain;
        }
        /* ホバー */
        &:hover {
            border-radius: 2rem 2rem .5rem .5rem;
            margin-bottom: .5rem;  
            }
    }
    /* スクロールして表示 */
    &.show {
    opacity: 1;
    transform: translateY(0);
    }
}

/* -----------------------------------------
    small コピーライト
-------------------------------------------- */
small {
    background: var(--blue);
    color: var(--fff);
    display: block;
    margin: 2rem -2rem 0;
    padding: 0.5rem;
    text-align: center;
}

/* =================================================================================
    pc用
================================================================================= */
@media screen and (min-width: 1124px) {

    /* ---------------------------
    　フッター
    --------------------------- */
    footer {
        padding: 2rem 2rem 0;
    }
    /* -----------------------------------------
    section #pagetop TOPに戻る
    -------------------------------------------- */
    #pagetop {
        right: calc(50% - 250px - 4.5rem);
    }

}