﻿.container-xl {
    padding-right: 0;
    padding-left: 0;
}

.container-xl-global {
    padding-left: 0;
/*    padding-right: 48px;*/
}

.container-xl-header {
    padding: 0 38px;
}

.accordion-button span {
    display: none;
}

.accordion-button.collapsed span {
    display: inline;
}

th, td {
    white-space: nowrap;
    min-width: 72px;
}

table.dataTable thead th {
    text-align: center;
    background: #EAEAEA !important;
    color: #716F6F;
    font-size: 14px;
    text-transform: uppercase;
    padding: 8px;
}

table.dataTable tbody td {
    text-align: center;
    font-size: 14px;
    color: #716F6F;
    padding: 4px 0;
    white-space: normal !important;
    word-break: break-word;
}

td p, td h4 {
    text-align: left;
}

td img {
    background: white;
    border: none;
}

td p {
    font-size: 12px;
    text-decoration: wavy;
}

table thead th:first-child, table tbody td:first-child {
    min-width: 268px;
    max-width: 268px;
    box-sizing: border-box;
}

table thead th:nth-child(2), table tbody td:nth-child(2) {
    border-right: 1px solid #B2B2B2;
    min-width: 160px;
    max-width: 160px;
    width: 160px !important;
    box-sizing: border-box;
    padding-right: 10px !important;
}

table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
    border-top: 1px solid #DFDFDF;
}

table.dataTable thead th {
    border-bottom: none;
}

.DTFC_LeftWrapper .dataTables_scrollBody {
    overflow: hidden !important;
}

/* Ensure the DataTables wrapper fits the viewport */
.dataTables_wrapper {
    width: 100%;
    margin: 0 auto;
}

table p {
    /*word-break: break-all;*/
    white-space: normal;
    width: 200px;
    line-height: 14px;
}

td h4 {
    width: 200px;
    overflow: hidden;
}

table tbody tr td:nth-child(2), table thead tr th:nth-child(2) {
    left: 268px !important;
}

.dataTables_scrollBody {
    /*height: calc(100vh - 189px);*/
    overflow-y: scroll;
}

.dataTables_scrollHead {
    overflow: hidden !important;
    position: fixed !important;
    border: 0px;
    width: calc(100vw - 412px) !important;
    z-index: 9;
    margin-top: -14px;
}

@media (min-width: 1900px) {
    .dataTables_scrollHead {
        width: calc(1900px - 412px) !important;
    }
}

@media(min-width: 991px) {
    .title-bar.sticky-md-top {
        padding-top: 28px !important;
        padding-bottom: 30px !important;
        padding-right: 48px;
    }

    #productsTable {
        padding-top: 16px;
    }
}

@media(min-width: 991px) and (max-width: 1140px) {

    #productsTable {
        padding-top: 5px;
    }
}

.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
    overflow-x: auto !important;
    overflow-y: visible !important;
    height: calc(-206px + 100vh);
}
/* for scroll */
/* Optional: fix misalignment due to scrollbar size */
.dataTables_scrollBody {
    scrollbar-width: thin; /* Firefox */
}

    .dataTables_scrollBody::-webkit-scrollbar {
        margin-left: 200px;
        height: 8px; /* Chrome, Safari */
    }

table.dataTable {
    width: max-content;
    min-width: 100%;
}

    table.dataTable img.productImage {
        width: 60px;
        height: 60px;
        flex: 0 0 auto;
        margin-right: 8px;
    }

    table.dataTable tbody tr > .dtfc-fixed-left, table.dataTable tbody tr > .dtfc-fixed-right, table.dataTable.display > tbody tr > .sorting_1, table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1, table.dataTable.hover > tbody > tr:hover > *, table.dataTable.display > tbody > tr:hover > * {
        /*background: #F8F8F8;
        box-shadow: none;*/
        box-shadow: none !important;
        /*       background: #fff;*/
    }


    table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1, table.dataTable.hover > tbody > tr:hover > *, table.dataTable.display > tbody > tr:hover > * {
        background: #F8F8F8 !important;
    }


    table.dataTable thead tr > .dtfc-fixed-left, table.dataTable thead tr > .dtfc-fixed-right, table.dataTable tfoot tr > .dtfc-fixed-left, table.dataTable tfoot tr > .dtfc-fixed-right {
        background: #EAEAEA;
    }

    table.dataTable thead > tr > th.sorting, table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc {
        height: 30px;
        padding-top: 1px;
        padding-bottom: 0;
    }

        table.dataTable thead > tr > th.sorting:after {
            background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.80794 5.76953L1.09346 1.31215C0.659238 0.791085 1.02976 -4.31825e-07 1.70803 -4.02177e-07L8.29197 -1.14384e-07C8.97024 -8.47357e-08 9.34076 0.791085 8.90654 1.31215L5.19206 5.76953C5.09211 5.88947 4.90789 5.88947 4.80794 5.76953Z' fill='%23716F6F'/%3E%3C/svg%3E%0A");
            background-repeat: no-repeat;
            opacity: 1;
            width: 10px;
            height: 6px;
            content: "";
            /* transform: rotate(180deg); */
            position: relative !important;
            top: -1px !important;
            right: auto !important;
            left: auto !important;
            display: inline-block !important;
            vertical-align: middle;
            margin-left: 6px;
            /* Cancel this box's own contribution (margin-left 6px + width 10px)
               to the cell's shrink-to-fit/intrinsic width. DataTables' scrollX
               mode keeps two independent tables (the visible scrollHead and a
               hidden scrollBody clone used for native browser column-width
               auto-layout) in sync; because that native auto-layout pass
               ignores this pseudo-element regardless of display/visibility/
               opacity, letting the arrow add real width here made the visible
               header measure 16px wider than the hidden clone and drove the
               two tables' column widths out of sync. A matching negative
               margin-right keeps the arrow visually in place while making its
               net contribution to the cell's measured width zero, so both
               tables agree on the column width again. */
            margin-right: -16px;
            opacity: 0.6;
        }

        /* Keep the sort arrow hidden in the hidden scroll-body header clone
           (DataTables scrollX duplicates the header row off-screen for sizing;
           only the scrollHead copy should show the arrow). Safe to use
           display:none now that the arrow's width contribution is neutralized
           above -- hiding it here no longer changes the cell's measured width. */
        div.dataTables_scrollBody table.dataTable thead > tr > th.sorting:after,
        div.dataTables_scrollBody table.dataTable thead > tr > th.sorting_asc:after,
        div.dataTables_scrollBody table.dataTable thead > tr > th.sorting_desc:after {
            display: none !important;
        }

        table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:after {
            opacity: 1;
        }

        table.dataTable thead > tr > th.sorting_desc:after {
            content: "";
            transform: rotate(180deg);
        }

        table.dataTable thead > tr > th.sorting:before {
            content: "" !important;
        }

.content-with-sidebar {
    min-height: calc(100vh - 100px);
}

table h4 a {
    color: var(--bs-heading-color);
    text-decoration: none;
}

.wrap-all {
    white-space: normal !important;
    word-wrap: break-word !important;
    word-break: break-word !important;
}

.table-hover:hover, table.dataTable thead th:hover, .d-flex:has(input:hover) .table-hover {
    color: #414141;
}

.px-12px {
    padding-left: 12px;
    padding-right: 12px;
}

.btn.dropdown-toggle.btn-default {
    color: #716F6F;
    border: 1px solid #DFDFDF;
    background-color: #fff;
}

    .btn.dropdown-toggle.btn-default:hover, .btn.dropdown-toggle.btn-default:focus {
        border-color: #B2B2B2;
        color: #716F6F;
        background-color: #fff;
    }

    .btn.dropdown-toggle.btn-default:hover {
        color: #414141;
    }

.product-map-item .product-description.fst-italic {
    line-height: 110%;
}

.grid-buttons .btn:hover svg path {
    fill: #414141;
}

#table-grid:hover svg path {
    stroke: #414141;
}
/* #region Checkboxes css*/
.products-grid .checkbox-item label:before,
.products-grid .card-image-with-title.two-line-title .checkbox-item label:before {
    border-color: transparent !important;
    border-width: 0 !important;
    content: "";
    display: inline-block;
    width: 22px;
    height: 22px;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='18' height='18' fill='white'/%3E%3Crect x='1' y='1' width='18' height='18' stroke='%23F69362' stroke-width='2'/%3E%3C/svg%3E");
}

/* Hover effect for unchecked */
.products-grid .checkbox-item input[type=checkbox]:not(:checked) + label:hover:before, .products-grid .checkbox-item input[type=checkbox]:not(:checked):hover + label:before {
    background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='18' height='18' fill='white'/%3E%3Crect x='1' y='1' width='18' height='18' stroke='%23D98257' stroke-width='2'/%3E%3C/svg%3E");
}

/* Hover effect for checked */
.products-grid .checkbox-item input[type=checkbox]:checked + label:before {
    background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='18' height='18' fill='white'/%3E%3Crect x='1' y='1' width='18' height='18' stroke='%23D98257' stroke-width='2'/%3E%3Cpath d='M5 11L8 14L15 6' stroke='%23D98257' stroke-width='2' fill='none'/%3E%3C/svg%3E");
}

.products-grid .checkbox-item label:after,
.products-grid .card-image-with-title.two-line-title .checkbox-item label:after {
    border-width: 0 !important;
}

.products-grid.table-grid-active .checkbox-item label:before {
    width: 16px;
    height: 16px;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='14' height='14' fill='none'/%3E%3Crect x='1' y='1' width='14' height='14' stroke='%23F69362' stroke-width='2'/%3E%3C/svg%3E");
}

.products-grid.table-grid-active .checkbox-item input[type=checkbox]:not(:checked):hover + label:before {
    background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='14' height='14' fill='white'/%3E%3Crect x='1' y='1' width='14' height='14' stroke='%23D98257' stroke-width='2'/%3E%3C/svg%3E");
}

.products-grid.table-grid-active input[type=checkbox]:checked + label:before {
    width: 16px;
    height: 16px;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='14' height='14' fill='white'/%3E%3Crect x='1' y='1' width='14' height='14' stroke='%23D98257' stroke-width='2'/%3E%3Cpath d='M3 9L6 11.5L13 4' stroke='%23D98257' stroke-width='2'/%3E%3C/svg%3E");
}

.checkbox-item input[type=checkbox]:checked + label:before {
    background: unset;
    background-repeat: no-repeat;
    background-size: contain;
}
/* #endregion*/

@media(max-width: 991px) {
    .d-mobile-hide {
        display: none !important;
    }
}

.btn_loading {
    pointer-events: none;
    filter: opacity(0.6);
}

@media (min-width: 1199px) {
    .product-view-modal .modal-body .product-view-pop-content .tabs-content-right #product-tab-content {
        height: 790px;
    }
}

.checkbox-item label:before {
    background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='15' height='15' fill='white'/%3E%3Crect x='0.5' y='0.5' width='15' height='15' stroke='%23919191'/%3E%3C/svg%3E");
    border: 0;
}

.checkbox-item input[type=checkbox]:checked + label:before {
    background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='15' height='15' fill='white'/%3E%3Crect x='0.5' y='0.5' width='15' height='15' stroke='%23919191'/%3E%3Cpath d='M3.33 9.33L6 11.33L12 4.67' stroke='%23716F6F' stroke-width='1.8'/%3E%3C/svg%3E");
    background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='15' height='15' fill='white'/%3E%3Crect x='0.5' y='0.5' width='15' height='15' stroke='%23414141'/%3E%3Cpath d='M3.33 9.33L6 11.33L12 4.67' stroke='%23414141' stroke-width='1.8'/%3E%3C/svg%3E");
}

.checkbox-item input[type=checkbox]:checked + label:after {
    border: 0;
}

@media (max-width: 575px) {
    .checkbox-item label:before {
        width: 22px;
        height: 22px;
        background-image: url("data:image/svg+xml,%3Csvg width='22' height='22' viewBox='0 0 22 22' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='20' height='20' fill='white'/%3E%3Crect x='1' y='1' width='20' height='20' stroke='%23919191'/%3E%3C/svg%3E%0A");
    }

    .checkbox-item input[type=checkbox]:checked + label:before {
        background-image: url("data:image/svg+xml,%3Csvg width='22' height='22' viewBox='0 0 22 22' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='20' height='20' fill='white'/%3E%3Crect x='1' y='1' width='20' height='20' stroke='%23414141'/%3E%3Cpath d='M4.58333 12.8333L8.25 15.5833L16.5 5.5' stroke='%23414141' stroke-width='2'/%3E%3C/svg%3E%0A");
    }
}

@media (max-width: 575px) {
    .mobile-two-cols {
        display: grid !important;
    }
}

.filter-dropdown.pe-none, .grid-buttons.pe-none, #sidebar-slide-in-mobile.pe-none {
    opacity: 0.5;
}

body:has(#table-grid.active) .wideFooter {
    display: none;
}

.card-image-with-title:has(.card-img img:nth-child(2)) .card-img img:last-child {
    display: none;
}

@media (min-width: 576px) {

    .card-image-with-title:hover .card-img img:first-child {
        display: none
    }

    .card-image-with-title:hover .card-img img:last-child {
        display: block !important
    }
}

@media (max-width: 768px) {
    .container-xl-global, .container-xl-header {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

@media (max-width: 575px) {
    .heading-showing-in-mobile {
        background-color: transparent;
    }
}

@media (max-width: 601px) {
    .card-image-with-title.two-line-title .checkbox-item {
        display: none !important;
    }
}

.bg-lightgrey footer {
    padding-left: 40px;
}

.bg-lightgrey .footer-right-column .footer-logo {
    margin-right: 0;
}


table.dataTable thead > tr > th.sorting_desc::after,
table.dataTable thead > tr > th.sorting_asc::after {
    opacity: 0.6 !important;
}





.dataTable thead tr th.sorting {
    text-align: center;
    padding-left: 1.5em;
}


/* padding-left/margin-right hacks removed: they gave the arrow a different
   box width in the asc vs desc state (shifting the centered header text on
   sort change) and, combined with the default background-repeat, tiled a
   second faint copy of the arrow into the padding (the "two arrows" look). */



.dataTable thead tr th.sorting {
    padding-left: 20px;
    /* left:-6px !important removed -- it forced every sortable header
       (including the sticky "Product"/"Product Code" frozen columns) to the
       same -6px offset, overriding the distinct per-column left values
       DataTables' FixedColumns sets inline for sticky positioning, which
       made the frozen header columns overlap instead of staying pinned
       correctly during horizontal scroll. */
}


table.dataTable thead > tr > th.sorting::after {
    content:"" !important;
}
table.dataTable thead > tr > th.sorting{padding-right:25px !important;}
h4.title {max-width:95%
}

.table-hover p.wrap-all { max-width:95%; }

/* Banner above the filters and title bar (hidden on mobile and in the table view) */
.product-map-banner {
    height: 462px;
    background-color: #FFFFFF;
}

.product-map-banner-text {
    flex: 0 0 300px;
    width: 300px;
    display: flex;
    flex-direction: column;
    justify-content: end;
    align-items: flex-start;
    padding: 32px 12px;
}

@media (min-width: 991px) {
    .product-map-banner-text {
        padding: 32px 25px;
    }
}

.product-map-banner-title {
    color: #414141;
    font-size: 32px;
    font-weight: 600;
    line-height: 100%;
    margin: 0 0 12px 0;
}

.product-map-banner-description {
    color: #414141;
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
    margin: 0;
    white-space: pre-line;
}

.product-map-banner .product-map-banner-button {
    margin-top: 24px;
    padding: 8px 16px;
    border: 0;
    border-radius: 0;
    background-color: #414141;
    color: #F8F8F8;
    font-size: 14px;
    font-weight: 700;
    line-height: normal;
}

    .product-map-banner .product-map-banner-button:hover,
    .product-map-banner .product-map-banner-button:focus {
        background-color: #2B2B2B;
        color: #F8F8F8;
    }

.product-map-banner-image {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}

    .product-map-banner-image img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

/* The fixed sidebar would sit on top of the banner, so it sticks under the header instead
   and scrolls up together with the banner */
@media (min-width: 768px) {
    .content-with-sidebar.has-banner .sidebar {
        position: sticky;
        top: 68px;
        flex: 0 0 300px;
        align-self: flex-start;
        height: calc(100vh - 68px);
    }
}