/* ======================================================
    Floating Action
====================================================== */

.floating-action{

    position:fixed;

    left:50%;

    bottom:16px;

    transform:translateX(-50%) translateY(20px);

    display:flex;

    gap:10px;

    width:calc(100% - 32px);

    max-width:380px;

    padding:8px;

    background:rgba(255,255,255,.82);

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

    border:1px solid rgba(255,255,255,.5);

    border-radius:999px;

    box-shadow:0 12px 32px rgba(0,0,0,.12);

    opacity:0;

    visibility:hidden;

    transition:all .35s ease;

    z-index:9999;

}

.floating-action.show{

    opacity:1;

    visibility:visible;

    transform:translateX(-50%) translateY(0);

}


/* -----------------------------
    Button
------------------------------ */

.floating-btn{

    display:flex;

    flex:1;

    align-items:center;

    justify-content:center;

    min-height:52px;

    padding:0 14px;

    border:none;

    border-radius:999px;

    font-size:12px;

    font-weight:700;

    line-height:1.3;

    text-align:center;

    text-decoration:none;

    transition:all .25s ease;

    cursor:pointer;

    font-family:inherit;

    letter-spacing:0;

}


/* ご解約 */

.floating-action a.floating-btn{

    flex:0.9;

    background:#004ea2;

    color:#fff;

    border:1px solid #004ea2;

}


/* 代替カード */

.floating-card-btn{

    flex:1.1;

    background:#6eba44;

    color:#fff;

}


/* Hover */

.floating-btn:hover{

    transform:translateY(-2px);

}

.floating-action a.floating-btn:hover{

    background:#2f83db;

}

.floating-card-btn:hover{

    background:#63ad3d;

}

/* ======================================================
    Modal
====================================================== */

.floating-modal{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.35);

    display:flex;

    align-items:flex-end;

    justify-content:center;

    opacity:0;

    visibility:hidden;

    transition:.3s;

    z-index:10000;

}

.floating-modal.show{

    opacity:1;

    visibility:visible;

}

.floating-modal-inner{

    width:100%;

    max-width:520px;

    background:#fff;

    border-radius:24px 24px 0 0;

    padding:30px 24px;

    max-height:80vh;

    overflow:auto;

    animation:floatingSlide .35s ease;

}

@keyframes floatingSlide{

    from{

        transform:translateY(40px);

        opacity:0;

    }

    to{

        transform:translateY(0);

        opacity:1;

    }

}

.floating-close{

    float:right;

    border:none;

    background:none;

    font-size:30px;

    color:#888;

    cursor:pointer;

}

.floating-modal h2{

    font-size:22px;

    color:#004ea2;

    margin-bottom:24px;

    padding-bottom:12px;

    border-bottom:2px solid #e8eef6;

}

.floating-group{

    margin-top:24px;

}

.floating-group h3{

    margin-bottom:12px;

    padding-left:12px;

    border-left:4px solid #6eba44;

    color:#004ea2;

    font-size:16px;

    font-weight:700;

}

.floating-group a{

    display:block;

    padding:14px 18px;

    margin-bottom:10px;

    background:#f8fbfd;

    border:1px solid #e7edf3;

    border-radius:12px;

    color:#333;

    text-decoration:none;

    transition:.2s;

}

.floating-group a:hover{

    background:#eef7ea;

    border-color:#6eba44;

}


/* ======================================================
    PC
====================================================== */

@media (min-width:768px){

    .floating-action{

        display:none;

    }

}

