@charset "UTF-8";

.box__btn {
    margin-top: 40px;
    @media only screen and (max-width: 767px) {
        margin-top: 30px;
    }
    .c-btn {
        margin-bottom: 40px;
        @media only screen and (max-width: 767px) {
            margin-bottom: 30px;
        }
        &:last-child {
            margin-bottom: 0;
        }
    }
}

.plan {
    padding: 70px 0 80px;
    position: relative;
    @media only screen and (max-width: 767px) {
        padding: 70px 0 60px;
    }
    &:before {
        content: "";
        background: url(../assets/img_premium_mv.jpg) no-repeat center center / cover;
        width: 100%;
        height: 515px;
        position: absolute;
        left: 0;
        top: 0;
        z-index: -1;
        @media only screen and (max-width: 767px) {
            height: 390px;
        }
    }
    .c-ttl {
        color: #fff;
        margin-top: 0;
        margin-bottom: 40px;
        line-height: calc(50 / 36);
        @media only screen and (max-width: 767px) {
            line-height: 1.5;
        }
    }
    .plan__list {
        display: flex;
        flex-wrap: wrap;
        gap: 30px 10px;
    }
    .plan__item {
        width: calc(25% - (30px / 3));
        height: 516px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        border: 1px solid #cccccc;
        background: #fff;
        padding: 0 18px;
        position: relative;
        @media only screen and (max-width: 999px) and (min-width: 768px) {
            width: calc(50% - 10px);
        }
        @media only screen and (max-width: 767px) {
            width: 100%;
            height: 460px;
        }
        .current {
            font-size: 20px;
            color: #fff;
            font-weight: 700;
            letter-spacing: 0.04em;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            padding: 5px 0 0 2px;
            position: absolute;
            width: 100px;
            height: 100px;
            left: -10px;
            top: -10px;
            background: #000;
            border-radius: 50%;
            strong {
                font-family: var(--font--nimbus);
            }
        }
        .label {
            font-size: 16px;
            font-weight: 700;
            max-width: 200px;
            width: 100%;
            height: 30px;
            display: flex;
            align-items: center;
            justify-content: center;
            border: 1px solid #cccccc;
            border-radius: 9999px;
            margin: 0 auto 15px;
            padding-top: 2px;
        }
        .ttl {
            font-size: 28px;
            font-weight: 700;
            text-align: center;
            line-height: 1;
            margin-bottom: 15px;
            span {
                font-size: 30px;
                font-family: var(--font--nimbus);
                letter-spacing: 0.06em;
                margin-left: 5px;
            }
        }
        .price {
            display: flex;
            align-items: center;
            justify-content: center;
            dt {
                font-size: 18px;
                font-weight: 700;
                display: flex;
                align-items: center;
                justify-content: center;
                flex-direction: column;
                width: 51px;
                height: 51px;
                border: 1px solid #cccccc;
                margin-right: 12px;
                line-height: calc(20 / 18);
                letter-spacing: 0;
            }
            dd {
                font-size: 50px;
                font-family: var(--font--nimbus);
                font-weight: 700;
                line-height: 1;
                strong {
                    font-size: 67px;
                    font-family: var(--font--nimbus);
                    line-height: 1;
                    letter-spacing: -0.05em;
                }
                span {
                    font-family: var(--font-gothic);
                }
            }
        }
        .sub {
            font-size: 14px;
            text-align: center;
            margin-bottom: 16px;
            margin-bottom: 13px;
            strong {
                font-size: 18px;
                font-family: var(--font--nimbus);
                font-weight: 700;
            }
        }
        .txt {
            font-size: 14px;
            text-align: center;
            line-height: calc(22 / 14);
            min-height: 45px;
            margin-bottom: 20px;
            letter-spacing: 0;
        }
        .en {
            font-size: 30px;
            color: #cccccc;
            font-family: var(--font--nimbus);
            font-weight: 700;
            letter-spacing: 0.06em;
            line-height: 1;
            margin-top: -5px;
            text-align: center;
        }
        .c-btn {
            border-radius: 3px;
            &:after {
                display: none;
            }
            span {
                padding-right: 0;
            }
        }
        &.main {
            border: 8px solid #f9e258;
            @media only screen and (max-width: 767px) {
                padding-top: 30px;
            }
            .stl {
                font-size: 25px;
                font-weight: 700;
                letter-spacing: 0;
                text-align: center;
                width: 100%;
                height: 53px;
                display: flex;
                align-items: center;
                justify-content: center;
                position: absolute;
                left: 0;
                top: 0;
                background: #f9e258;
                @media only screen and (max-width: 767px) {
                    font-size: 22px;
                    height: 40px;
                }
            }
            .price {
                dt {
                    background: #f9e258;
                    border: none;
                }
            }
        }
    }
}

.method {
    padding: 0 0 80px;
    @media only screen and (max-width: 767px) {
        padding: 0 0 60px;
    }
    .method__inner {
        padding: 45px 15px 40px;
        background: #f6f6f6;
        max-width: 1100px;
        margin: 0 auto;
        @media only screen and (max-width: 767px) {
            padding: 35px 15px;
            margin: 0 -15px;
        }
    }
    .ttl {
        font-size: 24px;
        font-weight: bold;
        text-align: center;
        margin-bottom: 25px;
        @media only screen and (max-width: 767px) {
            font-size: 20px;
        }
    }
    .method__list {
        max-width: 940px;
        margin: 0 auto;
        li {
            margin-bottom: 10px;
            &:last-child {
                margin-bottom: 0;
            }
            dl {
                background: #fff;
                height: 61px;
                display: flex;
                align-items: center;
                flex-wrap: wrap;
                @media only screen and (max-width: 767px) {
                    height: auto;
                    padding: 25px 0 15px;
                }
                dt {
                    font-size: 16px;
                    font-weight: 700;
                    padding-left: 100px;
                    width: 40%;
                    @media only screen and (max-width: 767px) {
                        width: 100%;
                        padding-left: 0;
                        margin-bottom: 10px;
                        text-align: center;
                    }
                }
                dd {
                    width: 60%;
                    @media only screen and (max-width: 767px) {
                        width: 100%;
                    }
                    img {
                        width: auto;
                        height: 51px;
                        @media only screen and (max-width: 767px) {
                            height: 40px;
                            margin: 0 auto;
                            display: block;
                        }
                    }
                }
            }
        }
    }
}

.graph {
    padding: 0 0 100px;
    @media only screen and (max-width: 767px) {
        padding: 0 0 60px;
    }
    .graph__table {
        max-width: 1100px;
        margin: 0 auto 40px;
        @media only screen and (max-width: 767px) {
            max-width: auto;
            overflow-y: scroll;
            margin: 0 -15px 25px 0;
            padding: 2px;
        }
        .row {
            display: flex;
            align-items: flex-end;
            width: 100%;
            text-align: center;
            @media only screen and (max-width: 767px) {
                width: 505px;
            }
            &:last-child {
                align-items: flex-start;
            }
            .col {
                font-weight: 700;
                height: 76px;
                padding: 0;
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 25px;
                border: none;
                width: 30%;
                @media only screen and (max-width: 767px) {
                    font-size: 20px;
                    letter-spacing: 0;
                }
                &.premium {
                    width: 40% !important;
                    color: #fff;
                }
                &.premium-bg01 {
                    background: #f4715b !important;
                }
                &.premium-bg02 {
                    background: #ff7c60 !important;
                }
                &:first-child {
                    font-size: 16px;
                    @media only screen and (max-width: 767px) {
                        font-size: 14px;
                    }
                }
                .circle {
                    width: 27px;
                    display: block;
                    margin: 0 auto;
                }
                .batsu {
                    width: 23px;
                    display: block;
                    margin: 0 auto;
                }
            }
            &:first-child {
                .col {
                    font-size: 20px;
                    color: #fff;
                    font-weight: 700;
                    height: 70px;
                    padding: 0;
                    vertical-align: middle;
                    border: none;
                    width: 30%;
                    @media only screen and (max-width: 767px) {
                        font-size: 16px;
                    }
                    &.premium {
                        font-size: 28px;
                        height: 90px;
                        background: #ff5d3b;
                        @media only screen and (max-width: 767px) {
                            font-size: 20px;
                        }
                    }
                    &.free {
                        background: #666666;
                    }
                }
            }
            &:last-child {
                .col {
                    &.premium {
                        height: 90px;
                    }
                }
            }
            &:nth-child(2n - 1) {
                .col {
                    background: #f6f6f6;
                }
            }
            &:nth-child(2n) {
                .col {
                    background: #eaeaeb;
                }
            }
        }
    }
    .graph__note {
        font-size: 14px;
        max-width: 823px;
        margin: 0 auto 90px;
        @media only screen and (max-width: 767px) {
            margin-bottom: 50px;
        }
    }
    .c-btn {
        max-width: 660px;
        height: 66px;
        border-radius: 3px;
        &:after {
            display: none;
        }
        span {
            font-size: 18px;
            padding-right: 0;
            @media only screen and (max-width: 767px) {
                font-size: 16px;
            }
        }
    }
}
