/*----------------------------------------------------
    料金表スタイル
    ファイル数削減のため、spファイルは作成せずスマホ定義も記述。
----------------------------------------------------*/
/* 上段文章 */
.product_desc_upper {
    display: block;
}

/* 下段文章 */
.product_desc_lower {
    margin: 30px 0 0;
}

/* 料金表＆選択項目の大枠 */
.product_form {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    @media screen and (max-width: 1024px) {
        display: block;
    }

    /* 右側、選択項目 */
    .product_form_cart {
        /* width: 400px; */
        width: 28%;
        height: fit-content;
        @media screen and (max-width: 1024px) {
            width: auto;
        }

        /* ---------------------------- */
        /* 納期タイプbox */
        /* ---------------------------- */
        .price_any_number_box {
            /* 「カートに入れる」ボタン */
            .btn.btn_primary {
                width: 100%;
                text-align: center;
                margin: 20px 0 00;
            }
            /* 納期タイプの項目 */
            .filter_items {
                border-bottom: 1px solid black;
                padding-bottom: 5px;
                margin-bottom: 10px;

                /* プルダウン */
                #default_delivery_id {
                    border: none !important;
                    box-shadow: none;
                    padding: 0 10px;
                    /* @media screen and (max-width: 1024px) {
                        padding: 0;
                    } */
                }
            }
            .filter_items .name {
                width: 100%;
                padding: 0;
                background-color: transparent;
                padding-left: 12px;
                font-size: 0.8rem;
                font-weight: bold;
                text-align: left;
                margin: 0;
                /* @media screen and (max-width: 1024px) {
                    padding: 0;
                } */
            }

            /* 数量検索 */
            /* .price_any_number_box > select,
            .price_any_number_box > a {
                width: auto;
            } */
            /* 数量と商品価格の2カラム */
            .price-quantity-box {
                display: flex;
                justify-content: space-between;

                .inner {
                    /* width: 40%;
                    padding-left: 12px; */
                    .name {
                        width: 100%;
                        padding: 0;
                        background-color: transparent;
                        font-size: 0.8rem;
                        font-weight: bold;
                        text-align: left;
                    }
                    /* 商品価格のテキスト */
                    .text {
                        color: #d4145a;
                        font-size: 1.5rem;
                    }
                }
                .inner:nth-child(1) {
                    width: 48%;
                    padding-left: 12px;
                }
                .inner:nth-child(2) {
                    min-width: 30%;
                }
            }
        }

        /* ---------------------------- */
        /* 選択項目 */
        /* ---------------------------- */
        #filter_box {
            padding: 20px 0 0;

            .filter_items {
                overflow: hidden;
                margin: 0 0 10px;
                padding: 0 0 5px;
                border-bottom: 1px solid black;

                .filter_items_top {
                    display: -webkit-flex;
                    display: flex;
                    flex-wrap: wrap;
                    justify-content: space-between;

                    .name {
                        display: flex;
                        align-items: center;
                        width: 100%;
                        padding: 0 0 0 12px;
                        font-weight: 700;
                        font-size: 0.8rem;
                        background-color: transparent;
                        /* @media screen and (max-width: 1024px) {
                            padding: 0 0 0 0;
                        } */
                    }
                    .name .help {
                        display: inline-flex;
                        align-items: center;
                        justify-content: center;
                        width: 16px;
                        height: 16px;
                        margin: 0 0 0 6px;
                        background-color: #c03061;
                        color: #ffffff;
                        border-radius: 100%;
                        font-size: 0.7em;
                        text-align: center;
                        line-height: 16px;
                    }
                    /* .name .hissu {
                        display: none;
                    } */
                    /* プルダウン枠 */
                    .choice {
                        width: 100%;
                    }
                    .choice .one {
                        padding: 0 10px;
                        /* @media screen and (max-width: 1024px) {
                            padding: 0;
                        } */
                    }
                    .choice select {
                        width: 100%;
                        padding: 0 10px;
                        border: none !important;
                        box-shadow: none;
                        font-size: 1rem;
                        /* @media screen and (max-width: 1024px) {
                            padding: 0;
                        } */
                    }
                }

                /* 文章 */
                /* .filter_items_bottom {
                    display: none;
                } */
            }
        }
    }

    /* 左側、料金表 */
    .product_form_price {
        /* width: 830px; */
        width: 70%;
        max-width: 100%;
        overflow: hidden;

        /* 「単価を表示」チェックボックス */
        .price_tanka_info {
            @media screen and (max-width: 1024px) {
                display: none;
            }
            /* チェックボックス */
            #chk_price_tanka {
                margin: 0 5px 0 0;
                position: relative;
                top: -2px;
            }
            label span {
                color: #cc3367;
            }
        }

        /* 料金表大枠 */
        .product_form_price_table {
            position: relative;
            overflow: hidden;
            height: calc(100% - 24px);

            #in2cartPriceTableWrapper {
                position: relative;
                overflow: auto;
                width: 100%;
                height: 100%;
                @media screen and (max-width: 1024px) {
                    display: none;
                    top: 0;
                    left: 0;
                    z-index: 102;
                    width: 100%;
                    height: 100dvh;
                    padding: 60px 20px 30px;
                    background-color: rgba(0, 0, 0, 0.5);
                    /* overflow: hidden; */

                    #in2cart_price_table_box {
                        overflow: auto;
                        position: relative;
                        width: 100%;
                        height: 100%;
                        min-width: auto !important;
                        min-height: auto !important;
                        max-height: 100%;
                        white-space: nowrap;
                    }
                }
                /*料金表の横スクール*/
                .tbl_scroll {
                    /* overflow: auto;*/
                    white-space: nowrap;
                    position: relative;

                    /* 料金表テーブル */
                    #in2cart_price_table {
                        width: auto;
                        min-width: 100%;
                        margin: 0;
                        /* FIXME */
                        table-layout: fixed;
                        border-collapse: separate;
                        @media screen and (max-width: 1024px) {
                            background-color: #fff;
                            th:first-child,
                            td:first-child {
                                width: 110px;
                            }
                        }
                        a {
                            color: #036eb8;
                        }
                        a:hover {
                            text-decoration: none;
                        }
                        th {
                            text-align: center;
                            position: sticky;
                            top: 0;
                            left: 0;
                            @media screen and (max-width: 1024px) {
                                display: table-cell;
                                width: auto;
                                background: none;
                            }
                        }
                        th.quantity {
                            @media screen and (max-width: 1024px) {
                                position: sticky;
                                background-color: #efefef;
                            }
                        }
                        th.quantity .day {
                            display: block;
                            font-weight: bold;
                        }
                        /* 納期タイプと数量の2分割 */
                        th.diagonal-header {
                            position: relative;
                            background: #efefef;
                            z-index: 10;
                            height: 72px;
                            min-width: 150px;
                            max-width: 150px;
                            width: 150px;
                            overflow: hidden;
                            white-space: nowrap;
                            text-align: center;
                            @media screen and (max-width: 1024px) {
                                width: 110px !important;
                                min-width: 110px;
                            }
                        }
                        th.diagonal-header::before {
                            content: "";
                            position: absolute;
                            top: 0;
                            left: 0;
                            width: 100%;
                            height: 100%;
                            transform: skewY(24deg);
                            transform-origin: top left;
                            z-index: 0;
                            border-top: 1px solid grey;
                            @media screen and (max-width: 1024px) {
                                transform: skewY(32deg);
                            }
                        }
                        th.diagonal-header .top-text {
                            position: absolute;
                            top: 5px;
                            right: 5px;
                            font-weight: bold;
                            font-size: 14px;
                            z-index: 1;
                        }
                        th.diagonal-header .bottom-text {
                            position: absolute;
                            bottom: 5px;
                            left: 20px;
                            font-weight: bold;
                            font-size: 14px;
                            z-index: 1;
                        }
                        td {
                            text-align: center;
                            cursor: pointer;
                            @media screen and (max-width: 1024px) {
                                display: table-cell;
                                width: auto;
                                background: none;
                            }
                        }
                        td del {
                            display: block;
                        }
                        .tanka {
                            display: none;
                            margin: 0 0 0 5px;
                        }
                        th:first-child,
                        td.quantity {
                            background-color: #efefef;
                            position: sticky;
                            left: 0;
                            width: 150px;
                        }
                        td.quantity.cross,
                        td.cross {
                            background-color: #fff5cb;
                        }
                        /* 選択中 */
                        td.selected {
                            background-color: #ffcd04;
                        }
                        td.selected span,
                        td.selected a {
                            color: #222222;
                            font-weight: bold;
                        }
                    }
                }
                .tbl_scroll::-webkit-scrollbar {
                    height: 5px;
                }
                .tbl_scroll::-webkit-scrollbar-track {
                    background: #f1f1f1;
                }
                .tbl_scroll::-webkit-scrollbar-thumb {
                    background: #bcbcbc;
                }
                .tbl_scroll::-webkit-scrollbar {
                    display: none;
                }
                /* .table-wrapper:hover .scroll-btn {
                    display: block;
                } */

                /* スマホ、価格表モーダルの閉じるボタン */
                .price-tb-close {
                    display: none;
                    @media screen and (max-width: 1024px) {
                        position: absolute;
                        top: 15px;
                        right: 5px;
                        width: 30px;
                        height: 30px;
                        border-radius: 50%;
                        background-color: #036eb8;
                        cursor: pointer;
                    }

                    i {
                        color: #ffffff;
                        position: relative;
                        left: 9px;
                        top: 4px;
                    }
                }
            }
            @media screen and (max-width: 1024px) {
                #in2cartPriceTableWrapper.fullscreen {
                    position: fixed !important;
                }
            }
            /* 左右スクロールボタン */
            .scroll-btn {
                position: absolute;
                top: 72px;
                transform: translateY(-50%);
                background-color: #036eb8;
                opacity: 0.8;
                color: white;
                border: none;
                border-radius: 50%;
                font-size: 20px;
                cursor: pointer;
                padding: 0;
                z-index: 11;
                width: 30px;
                height: 30px;
                display: block;
                text-align: center;
                line-height: 30px;
                box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.2);
            }
            .scroll-btn.left {
                left: 160px;
                @media screen and (max-width: 1024px) {
                    left: 115px;
                    z-index: 103;
                    top: 132px;
                    display: none;
                    position: fixed;
                }
            }
            .scroll-btn.right {
                right: 10px;
                @media screen and (max-width: 1024px) {
                    right: 5px;
                    z-index: 103;
                    top: 132px;
                    display: none;
                    position: fixed;
                }
            }
        }
    }
}
@media screen and (max-width: 1024px) {
    /* bodyタグにスクロールバー対策のクラスを付与 */
    body.modal-open {
        overflow: hidden;
        height: 100%;
    }
    /* 「価格表を表示」リンクの制御 */
    .price-tb-open {
        margin: 10px 0 0;
        cursor: pointer;
        i {
            color: #036eb8;
        }
    }
}

/* macの場合 */
body.mac #filter_box .filter_items .filter_items_top .choice select {
    height: 48px;
}

/* FIXME */
/* 「modaal_price_any_number_box」の記述が必要か不明 */
.modaal_price_any_number_box #any_number {
    width: 120px;
}
.modaal_price_any_number_box .inner {
    width: 40%;
    text-align: center;
    margin: 0 auto;
}
.modaal_price_any_number_box #any_range_number {
    margin: 20px 0 0 0;
}
.modaal_price_any_number_box #any_number_price {
    width: 300px;
    margin: 0 auto;
}
