/* =========================================================
   PWT - DJ-Catalog2 Products Page
   Brand Colors:
   Primary Blue: #0E75B8
   Light Cyan:  #1CACE3
   ========================================================= */


/* =========================================================
   SUB CATEGORIES
   ========================================================= */

.djc_subcategories_set {
    width: 100%;
    margin: 0 auto 45px;
}

.djc_subcategories_grid {
    width: 100%;
}

.djc_subcategory_row {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.djc_subcategory {
    width: calc(50% - 10px) !important;
    margin: 0 !important;
}

.djc_subcategory_bg {
    background: #ffffff;
    border: 1px solid #dceaf3;
    border-radius: 14px;
    padding: 22px 25px;
    transition: all 0.3s ease;
}

.djc_subcategory_bg:hover {
    border-color: #1CACE3;
    box-shadow: 0 10px 30px rgba(14, 117, 184, 0.10);
    transform: translateY(-3px);
}

.djc_subcategory .djc_title {
    margin: 0;
}

.djc_subcategory .djc_title h3 {
    margin: 0;
    font-size: 19px;
    line-height: 1.4;
    font-weight: 600;
}

.djc_subcategory .djc_title h3 a {
    color: #0E75B8;
    text-decoration: none;
    transition: color 0.3s ease;
}

.djc_subcategory .djc_title h3 a:hover {
    color: #1CACE3;
}


/* =========================================================
   PRODUCTS WRAPPER
   ========================================================= */

.djc_items {
    width: 100%;
    margin: 0 auto;
}


/* =========================================================
   PRODUCTS GRID
   ========================================================= */

.djc_item_row {
    display: flex;
    flex-wrap: wrap;
    gap: 28px;
    margin: 0 0 28px !important;
}


/*
   DJ-Catalog2 adds inline width:49.99%.
   !important forces the 3-column layout.
*/

.djc_item {
    width: calc(33.333% - 19px) !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}


/* =========================================================
   PRODUCT CARD
   ========================================================= */

.djc_item_bg {
    height: auto !important;
    min-height: 100%;

    background: #ffffff;

    border: 1px solid #dceaf3;
    border-radius: 16px;

    overflow: hidden;

    display: flex;
    flex-direction: column;

    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease,
        border-color 0.35s ease;
}

.djc_item_bg:hover {
    transform: translateY(-5px);

    border-color: rgba(28, 172, 227, 0.55);

    box-shadow:
        0 14px 35px rgba(14, 117, 184, 0.12);
}


/* =========================================================
   PRODUCT CONTENT
   ========================================================= */

.djc_item_in {
    display: flex;
    flex-direction: column;
    height: 100%;
}


/* =========================================================
   PRODUCT IMAGE AREA
   ========================================================= */

.djc_item .djc_image {
    width: 100%;
    height: 240px;

    margin: 0 !important;
    padding: 20px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #f7fbfd;

    overflow: hidden;
}


/*
   IMPORTANT:
   Do NOT force a fixed image height.
   This prevents low-resolution thumbnails
   from being unnecessarily enlarged.
*/

.djc_item .djc_image img {
    display: block;

    width: auto !important;
    height: auto !important;

    max-width: 100%;
    max-height: 200px;

    object-fit: contain;

    image-rendering: auto;

    transition: transform 0.4s ease;
}


/* Subtle hover only */

.djc_item_bg:hover .djc_image img {
    transform: scale(1.03);
}


/* =========================================================
   PRODUCT TITLE
   ========================================================= */

.djc_item .djc_title {
    padding: 22px 22px 8px;
    margin: 0 !important;
}

.djc_item .djc_title a {
    color: #0E75B8;

    font-size: 19px;
    line-height: 1.4;

    font-weight: 600;

    text-decoration: none;

    transition: color 0.3s ease;
}

.djc_item .djc_title a:hover {
    color: #1CACE3;
}


/* =========================================================
   PRODUCT CATEGORY / DESCRIPTION
   ========================================================= */

.djc_item .djc_description {
    padding: 0 22px 22px;

    margin: 0 !important;

    color: #6b7785;

    font-size: 13px;
    line-height: 1.6;
}

.djc_item .djc_description a {
    color: #1CACE3;
    text-decoration: none;
}

.djc_item .djc_description a:hover {
    color: #0E75B8;
}


/* =========================================================
   CLEAR FIX
   ========================================================= */

.djc_item_row::after,
.djc_items::after,
.djc_subcategory_row::after {
    display: none !important;
}

.djc_clear {
    display: none !important;
}


/* =========================================================
   PAGINATION
   ========================================================= */

.djc_pagination {
    margin-top: 40px;
    margin-bottom: 20px;
}

.djc_pagination ul,
.djc_pagination ol {
    display: flex;

    justify-content: center;
    align-items: center;

    gap: 6px;

    padding: 0;
    margin: 0;

    list-style: none;
}

.djc_pagination li {
    margin: 0 !important;
    padding: 0 !important;
}

.djc_pagination a,
.djc_pagination span {
    min-width: 40px;
    height: 40px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    border: 1px solid #dce8ef;
    border-radius: 8px;

    background: #ffffff;

    color: #0E75B8;

    text-decoration: none;

    font-size: 14px;

    transition: all 0.25s ease;
}

.djc_pagination a:hover {
    background: #1CACE3;

    border-color: #1CACE3;

    color: #ffffff;
}

.djc_pagination .active a,
.djc_pagination .active span {
    background: #0E75B8;

    border-color: #0E75B8;

    color: #ffffff;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 991px) {

    .djc_item {
        width: calc(50% - 14px) !important;
    }

    .djc_item_row {
        gap: 28px;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    /* Categories */

    .djc_subcategory {
        width: 100% !important;
    }

    /* Products */

    .djc_item {
        width: 100% !important;
    }

    .djc_item_row {
        gap: 20px;

        margin-bottom: 20px !important;
    }

    /* Image */

    .djc_item .djc_image {
        height: 220px;
    }

    .djc_item .djc_image img {
        max-height: 180px;
    }

    /* Title */

    .djc_item .djc_title {
        padding: 20px 20px 7px;
    }

    .djc_item .djc_title a {
        font-size: 18px;
    }

    /* Description */

    .djc_item .djc_description {
        padding: 0 20px 20px;
    }

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 480px) {

    .djc_subcategory_bg {
        padding: 18px;
    }

    .djc_item .djc_image {
        height: 200px;
    }

    .djc_item .djc_image img {
        max-height: 165px;
    }

}



/* =========================================================
   PWT - SINGLE PRODUCT DETAILS ONLY
   DJ-Catalog2
   IMPORTANT: Everything is scoped to #djcatalog
   ========================================================= */


/* =========================================================
   MAIN PRODUCT DETAILS
   ========================================================= */

#djcatalog {
    width: 100% !important;
    max-width: 1180px !important;

    margin: 0 auto !important;
    padding: 20px 0 60px !important;

    box-sizing: border-box !important;

    float: none !important;
}


/* =========================================================
   PRODUCT TITLE
   ========================================================= */

#djcatalog > .djc_title {
    display: block !important;

    width: 100% !important;

    margin: 0 0 35px !important;
    padding: 0 !important;

    color: #0E75B8 !important;

    font-size: 42px !important;
    line-height: 1.2 !important;

    font-weight: 700 !important;

    letter-spacing: -0.5px !important;

    text-align: left !important;
}


/* =========================================================
   PRODUCT IMAGE
   ========================================================= */

#djcatalog > .djc_images {
    float: left !important;

    width: 52% !important;

    height: 480px !important;

    margin: 0 !important;
    padding: 30px !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box !important;

    background: #f7fbfd !important;

    border: 1px solid #dceaf3 !important;

    border-radius: 20px !important;

    overflow: hidden !important;
}


/* Image wrapper */

#djcatalog .djc_mainimage {
    width: 100% !important;
    height: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;
}


/* Image link */

#djcatalog .djc_mainimage > a {
    width: 100% !important;
    height: 100% !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;
}


/* Actual product image */

#djcatalog #djc_mainimage {
    display: block !important;

    width: auto !important;
    height: auto !important;

    max-width: 100% !important;
    max-height: 410px !important;

    margin: 0 !important;

    object-fit: contain !important;

    border: 0 !important;

    box-shadow: none !important;
}


/* =========================================================
   HIDE ASK ABOUT THIS PRODUCT
   ========================================================= */

#djcatalog #djc_contact_form_button {
    display: none !important;
}

#djcatalog .djc_toolbar {
    display: none !important;
}


/* =========================================================
   PRODUCT DESCRIPTION
   ========================================================= */

#djcatalog > .djc_description {
    float: right !important;

    width: 43% !important;

    margin: 0 !important;
    padding: 35px 0 0 55px !important;

    box-sizing: border-box !important;

    color: #68798a !important;

    font-size: 17px !important;

    line-height: 1.85 !important;
}


/* Description paragraphs */

#djcatalog .djc_description p {
    margin: 0 0 20px !important;
}


/* =========================================================
   CLEAR FLOATS
   ========================================================= */

#djcatalog::after {
    content: "";
    display: block;
    clear: both;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 991px) {

    #djcatalog {
        width: 90% !important;
        max-width: 90% !important;
    }

    #djcatalog > .djc_title {
        font-size: 36px !important;
        margin-bottom: 30px !important;
    }

    #djcatalog > .djc_images {
        float: none !important;

        width: 100% !important;

        height: 420px !important;
    }

    #djcatalog .djc_mainimage {
        height: 100% !important;
    }

    #djcatalog #djc_mainimage {
        max-height: 360px !important;
    }

    #djcatalog > .djc_description {
        float: none !important;

        width: 100% !important;

        padding: 30px 0 0 !important;

        font-size: 16px !important;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    #djcatalog {
        width: 100% !important;
        max-width: 100% !important;

        padding: 10px 20px 50px !important;
    }

    #djcatalog > .djc_title {
        font-size: 30px !important;

        margin-bottom: 25px !important;
    }

    #djcatalog > .djc_images {
        width: 100% !important;

        height: 330px !important;

        padding: 20px !important;

        border-radius: 16px !important;
    }

    #djcatalog #djc_mainimage {
        max-width: 100% !important;
        max-height: 290px !important;
    }

    #djcatalog > .djc_description {
        width: 100% !important;

        padding: 25px 0 0 !important;

        font-size: 15px !important;

        line-height: 1.75 !important;
    }

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 480px) {

    #djcatalog {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    #djcatalog > .djc_title {
        font-size: 26px !important;
    }

    #djcatalog > .djc_images {
        height: 280px !important;
    }

    #djcatalog #djc_mainimage {
        max-height: 245px !important;
    }

}