@charset "UTF-8";
#reserve-club {
    .item_bw {
        max-width:960px;
        margin: 0 auto;
        .club_title {
            font-size: 32px;
            line-height: 46px;
            margin-bottom: 28px;
            padding-bottom: 0;
            @media (max-width: 740px) {
                font-size: 24px;
                line-height: 40px;
                margin-bottom: 18px;
            }
        }
        .sub_title {
            font-size: 32px;
            line-height: 46px;
            margin-bottom: 32px;
            text-align: center;
            @media (max-width: 740px) {
                font-size: 24px;
                line-height: 40px;
                margin-bottom: 28px;
            }
        }
        .desc {
            margin-bottom: 64px;
            font-size: 16px;
            line-height: 28px;
            > p {
                font-size: 16px;
                line-height: 28px;
            }
        }
        .caution-block {
            background: #F3F3F3;
            padding: 22px 30px 30px;
            > h2 {
                color: #EC6300;
                margin-bottom: 12px;
                font-size: 16px;
                line-height: 28px;
            }
            > dl {
                display: flex;
                @media (max-width: 740px) {
                    display: block;
                }
                > dt,
                > dd {
                    font-size: 14px;
                    line-height: 28px;
                }
                > dt {
                    width: 12%;
                    padding-right: 10px;
                    font-weight: 900;
                    
                    
                    
                    
                    @media (max-width: 1239px) {
                        
                        
                        width: 15%;
                        margin-bottom: 4px;
                        
                        
                    }
                    @media (max-width: 740px) {
                        width: 100%;
                        padding-right: 0;
                    }
                }
                > dd {
                    width: calc(88% - 10px);
                    
                    
                    
                    
                    @media (max-width: 1239px) {
                        width: calc(85% - 10px);
                    }
                    @media (max-width: 740px) {
                        width: 100%;
                    }
                }
                &:not(:last-child) {
                    margin-bottom: 4px;
                    @media (max-width: 740px) {
                        margin-bottom: 8px;
                    }
                }
            }
        }
        .main-contents {
            margin-top: 64px;
            .product-info {
                > li {
                    > .products {
                        display: flex;
                        gap: 0 40px;
                        @media (max-width: 740px) {
                            display: block;
                        }
                        > li.img {
                            max-width: 360px;
                            @media (max-width: 740px) {
                                max-width: 100%;
                                margin-bottom: 24px;
                            }
                        }
                        .product-icons {
                            display: flex;
                            flex: wrap;
                            gap: 4px;
                            margin-bottom: 12px;
                            .icon-box {
                                font-size: 12px;
                                padding: 2px 8px;
                                line-height: 18px;
                                border-radius: 2px;
                                text-align: center;
                                display: flex;
                                align-items: center;
                                text-align: center;
                                &.pink-bg {
                                    background: #FEEEE8;
                                    color: #DD0000;
                                }
                                &.red-bg {
                                    background: #DD0000;
                                    color: #fff;
                                }
                            }
                        }
                        .ma-gen {
                            margin-bottom: 8px;
                            display: flex;
                            align-items: center;
                            gap: 6px;
                            > span {
                                font-size: 14px;
                                line-height: 28px;
                                &.slash {
                                    color: #ddd;
                                }
                            }
                        }
                        .model-name {
                            margin-bottom: 10px;
                            > P {
                                font-size: 18px;
                                font-weight: 900;
                                line-height: 28px;
                            }
                        }
                        .product-price {
                            margin-bottom: 23px;
                            > p {
                                font-size: 18px;
                                font-weight: 900;
                                line-height: 40px;
                                > span.yen {
                                    font-size: 15px;
                                    font-weight: 500;
                                    line-height: 40px;
                                    margin-right: 4px;
                                }
                                > span.tax {
                                    font-size: 11px;
                                    font-weight: 400;
                                    line-height: 28px;
                                    margin-left: 9px;
                                }
                            }
                        }
                        .club-id {
                            .select-field {
                                margin-bottom: 8px;
                                display: flex;
                                align-items: center;
                                @media (max-width: 740px) {
                                    display: block;
                                }
                                label {
                                    display: inline-block;
                                    width: 30%;
                                    padding-right: 18px;
                                    font-size: 14px;
                                    line-height: 28px;
                                    @media (max-width: 740px) {
                                        width: 100%
                                    }
                                }
                                select {
                                    width: 417px;
                                    position: relative;
                                    padding: 8px 13px;
                                    cursor: pointer;
                                    border: solid 1px #ccc;
                                    border-radius: 3px;
                                    font-size: 14px;
                                    line-height: 28px;
                                    @media (max-width: 740px) {
                                        width: 100%
                                    }
                                }
                            }
                            .btn-submit {
                                margin-top: 24px;
                                @media (max-width: 740px) {
                                    text-align: center;
                                    display: flex;
                                    justify-content: center;
                                }
                                button {
                                    display: flex;
                                    align-items: center;
                                    justify-content: center;
                                    color: #fff;
                                    background: #EC6300;
                                    transition: .3s all ease-out;
                                    font-weight: 900;
                                    font-size: 16px;
                                    border-radius: 25px;
                                    line-height: 50px;
                                    width: 280px;
                                    height: 50px;
                                    &:hover {
                                        opacity: .6;
                                    }
                                }
                            }
                        }
                    }
                    &:not(:last-child) {
                        margin-bottom: 40px;
                        padding-bottom: 40px;
                        border-bottom: solid 1px #ddd;
                    }
                }
                
            }
        }
    }
    .rs-block {
        border-top: solid 2px #ddd;
        margin-top: 32px;
        padding-top: 32px;
        h2 {
            font-size: 28px;
            text-align: center;
            padding-bottom: 48px;
        }
        .rs-info {
            li {
                h3 {
                    font-size: 18px;
                    font-weight: 900;
                    line-height: 28px;
                    margin-bottom: 16px;
                }
                .reserve-table {
                    margin-top: 8px;
                    @media (max-width: 740px) {
                        overflow-x: auto;
                    }
                    table,
                    th,
                    td {
                        border:1px solid #eee;
                    }
                    th,
                    td {
                        font-size: 14px;
                        text-align: center;
                    }
                    table {
                        border-collapse: collapse;
                        @media (max-width: 740px) {
                            width: 1200px;
                        }
                        th {
                            text-align: center;
                            vertical-align: middle;
                            background: #f5f5f5;
                        }
                        td[rowspan] {
                            vertical-align: middle;
                        }
                    }
                    tbody {
                        tr {
                            th {
                                width: 25%;
                            }
                        }
                    }
                }
                .reserve-table-ps {
                    margin-top: 4px;
                    font-size: 13px;
                    text-align: right;
                }
                &.non-title {
                    margin-bottom: 24px;
                    padding-bottom: 24px;
                    border-bottom: solid 1px #ddd;
                }
                &:last-child {
                    border-bottom: none;
                    margin-bottom: 0;
                    padding-bottom: 0;
                }
            }
        }
    }
}

#modal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    padding: 107px 0;
    z-index: -10;
    max-width: 560px;
    width: 100%;
    opacity: 0;
    transition: opacity .3s ease;
    @media (max-width: 740px) {
        max-width: 95%;
    }
    #modal-confirm,
    #modal-complete {
        display: none;
    }
    p {
        text-align: center;
        font-size: 18px;
        font-weight: 900;
        line-height: 26px;
        margin-bottom: 32px;
    }
    .buttons {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0 16px;

        a {
            cursor: pointer;
            width: 160px;
            height: 48px;
            line-height: 48px;
            font-size: 16px;
            font-weight: 900;
            text-align: center;
            border-radius: 25px;
            transition: .3s all ease-out;
            &:hover {
                opacity: .6;
            }
            &.yes {
                background: #EC6300;
                color: #fff;
            }
            &.no {
                background: #F3F3F3;
                color: #000;
            }
        }
    }
    #modal-close {
        position: absolute;
        top: 17px;
        right: 16px;
        z-index: 10000;
        width: 16px;
        height: 16px;
        cursor: pointer;
        transition: .3s all ease-out;
        transform: rotate(-45deg);
        &:hover {
            opacity: .6;
        }
        &:before,
        &:after {
            content: "";
            background: #A0A0A0;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 16px;
            height: 2px;
        }
        &:after {
            transform: translate(-50%, -50%) rotate(90deg);
        }
    }
}
#overlay {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #0000006f;
    z-index: -1;
    opacity: 0;
    transition: opacity .3s ease;
    overflow: hidden;
}
body[state="confirm"],
body[state="complete"] {
    position: relative;
    #modal{
        opacity: 1;
        z-index: 9999;
        transition: opacity .3s ease;
    }
    #overlay {
        z-index: 9998;
        opacity: 1;
        transition: opacity .3s ease;
    }
}
body[state="confirm"] {
    #modal{
        #modal-confirm{
            display: block;
        }
    }
}
body[state="complete"] {
    #modal{
        #modal-complete{
            display: block;
        }
    }
}
.set-item-text {
    margin-top: 15px;
}