@charset "utf-8";
/*------基本CSS（PC用記述記載）------*/
#rakutenpay {
    color: #666;
    font-size: 13px;
}

#rakutenpay img {
    width: 100%;
    height: auto;
}

#rakutenpay .pcBnr {
    margin-bottom: 0px;
}

#rakutenpay .fvText {
    margin: 4% auto 0;
    width: 60%;
    text-align: left;
    font-size: 13px;
    letter-spacing: normal;
}

/* ボタン */
#rakutenpay .button {
    width: 50%;
    position: relative;
    -webkit-border-radius: 45px;
    border-radius: 45px;
    display: flex;
    justify-content: center;
    margin: 0 auto 40px;
    background-color: #BF0000;
}

#rakutenpay .button:hover {
    opacity: 0.75;
}

#rakutenpay .button a {
    font-size: 20px;
    padding: 10px 15px;
    color: #fff !important;
    display: block;
    width: 100%;
    text-align: center;
    text-decoration: none;
}

#rakutenpay .button:after {
    display: block;
    content: " ";
    position: absolute;
    top: 0;
    right: 0;
    width: 10px;
    height: 10px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: rotate(45deg);
    pointer-events: none;
    margin: 20px 20px 0 auto;
}

/* キャンペーン概要 */
#rakutenpay .overview {
    margin-bottom: 40px;
}

#rakutenpay h2 {
    font-size: 24px;
    border-bottom: #b2b2b2 solid 2px;
    color: #333333;
    margin: 0 0 10px 0;
    line-height: 1.6;
}

#rakutenpay .overview ul {
    margin-bottom: 30px;
}

#rakutenpay .overview li {
    list-style: none;
    margin-bottom: 15px;
    display: flex;
}

#rakutenpay .overview .detail_1 {
    background: #333;
    color: #fff;
    width: 190px;
    text-align: center;
    margin: 0 10px 0 0;
    padding: 5px;
    height: fit-content;
}

#rakutenpay .overview .detail_2 {
    width: 880px;
}

#rakutenpay .overview .small {
    font-size: 13px;
}

#rakutenpay .overview li a {
    color: #000dee!important;
}

#rakutenpay .overview li a:hover {
    text-decoration: underline;
}

/* ステップ */
#rakutenpay .procedure {
    margin-bottom: 40px;
}

#rakutenpay .procedure .stepBox {
    border: 3px solid #152E82;
    border-radius: 8px;
    padding: 14px 40px 25px;
    position: relative;
    width: 550px;
    margin: 0 auto 30px;
    background: #fff;
    box-sizing: content-box;
}

#rakutenpay .procedure .stepBox p {
    padding-left: 17px;
    margin-bottom: 15px;
    font-size: 20px;
}

#rakutenpay .procedure .stepBox .text {
    margin: 10px 0 0 0;
    padding: 0;
    font-size: 15px;
}

#rakutenpay .procedure .step_num {
    background: #152E82;
    color: #fff;
    border-radius: 20px;
    display: block;
    width: 38px;
    height: 38px;
    font-size: 22px;
    font-weight: bold;
    text-align: center;
    padding-top: 4px;
    box-sizing: border-box;
    position: absolute;
    top: 11px;
    left: 11px;
    line-height: 1.4;
}

#rakutenpay .procedure .p_step {
    color: #152E82;
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 40px;
}

/*------横幅が520px以下CSS（SP用記述記載）------*/
@media screen and (max-width: 520px) {
    /*------基本CSS（PC用記述記載）------*/
    #rakutenpay {
        font-size: 14px;
    }

    #rakutenpay .contentsWrap {
        padding: 0 2%;
    }

    #rakutenpay .fvBnr {
        margin-bottom: 5%;
    }

    #rakutenpay .fvText {
        margin: 5% auto 0!important;
        font-size: 11px;
        width: 90%;
    }

    #rakutenpay .procedure {
        margin: 0 10px;
    }

    #rakutenpay .button {
        width: 80%;
        margin: 0 auto 8%;
    }

    #rakutenpay .button:after {
        top: 0;
        width: 7px;
        height: 7px;
        margin: 17px 20px 0 auto;
    }

    #rakutenpay .button a {
        padding: 10px 15px;
        font-size: 14px;
    }

    #rakutenpay .overview {
        margin-bottom: 10%;
    }

    #rakutenpay h2 {
        font-size: 22px;
        font-weight: bold;
        margin-bottom: 5px;
        text-align: center;
        border: none;
    }

    #rakutenpay .overview li {
        margin-bottom: 0;
        display: block;
    }

    #rakutenpay .overview .detail_1 {
        width: 100%;
        text-align: left;
        line-height: 2.0;
        padding: 0 0 0 5px;
    }

    #rakutenpay .overview .detail_2 {
        width: 100%;
        margin-bottom: 10px;
        padding-top: 5px;
    }

    #rakutenpay .overview .small {
        font-size: 12px;
    }

    #rakutenpay .procedure .stepBox {
        padding: 15px;
        margin: 0 0 15px;
        width: 100%;
        box-sizing: border-box;
    }

    #rakutenpay .procedure .stepBox p {
        padding-left: 40px;
        margin-bottom: 15px;
        font-size: 16px;
        line-height: 1.5;
    }

    #rakutenpay .procedure .stepBox .text {
        color: #333;
        font-size: 14px;
        margin-top: 5px;
    }

    #rakutenpay .procedure .p_step {
        margin: 40px 0;
    }

    #rakutenpay .spr_encloseMain .use .stepbox:nth-of-type(n+2) .step_text {
        padding-top: 2px;
    }

    #rakutenpay .spr_encloseMain .use .stepbox .step_num {
        background-color: #152E82;
        color: #fff;
        border-radius: 20px;
        display: block;
        width: 38px;
        height: 38px;
        font-size: 22px;
        font-weight: bold;
        text-align: center;
        padding-top: 2px;
        box-sizing: border-box;
        position: absolute;
        top: 10px;
        left: 10px;
    }

    #rakutenpay .procedure .stepBox img {
        border: 1px solid #999;
        padding: 5px;
        box-sizing: border-box;
        margin-bottom: 0!important;
    }

    #rakutenpay .spr_encloseMain .p_step {
        color: #152E82;
        font-size: 24px;
        font-weight: bold;
        text-align: center;
        margin: 40px 0;
    }

}