/* ==========================================================================
   Pine Research Instrumentation
   
   WOOCOMMERCE (Overrides) - GLOBAL
   
   Author: Tim Paschkewitz
   ========================================================================== */

/* POSSIBLE DELETIONS */
table>tbody>tr.woocommerce-cart-form__cart-item.cart_item>td.product-quantity>div>a.minus,
table>tbody>tr.woocommerce-cart-form__cart-item.cart_item>td.product-quantity>div>a.plus {
    display: none;
}

/* PRICING */
div.wc-default-price p.price {
    display: none;
}

span.onsale {
    display: none;
}

.pri-cw.pri-price-block {
    display: flex;
    flex-flow: row nowrap;
    column-gap: 4em;
    font-size: 1.1em;
}

.upsells .pri-cw.pri-price-block {
    font-size: 0.8em;
    justify-content: center;
}

.pri-cw.pri-price-block .price-row {
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    text-align: center;
}

.pri-cw .price-row.regular-price .price-output,
.pri-cw .price-row.sale-price .price-output {
    position: relative;
    display: inline-block;
    padding: 0.25em 0.5em;
    z-index: 1;
    margin: 0.5em 0;
}

.pri-cw .price-row.sale-price .price-output {
    font-weight: 700;
}

.pri-cw .price-row.regular-price .price-output {
    color: #58595b;
}

.pri-cw .price-row.regular-price .price-output::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 110%;
    height: 110%;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 300 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10,50 C80,55 40,30 260,10' stroke='%23ba377d' stroke-width='15' fill='none' stroke-linecap='round' stroke-linejoin='round' opacity='0.7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    transform: rotate(-5deg);
    pointer-events: none;
    z-index: 2;
}

.pri-cw .price-row.sale-price .price-output {
    color: #00506c;
}

.pri-cw .price-row.sale-price .price-output::before {
    content: "";
    position: absolute;
    top: -0.9em;
    bottom: -0.75em;
    left: -1.6em;
    right: -1.5em;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 190 75' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M29,40 C15,0 180,10 165,55 C170,75 20,65 30,40 C25,35 25,55 40,55 L72,55' stroke='%2300506c' stroke-width='6' fill='none' stroke-linecap='round' stroke-linejoin='round' opacity='0.8'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 120% 100%;
    transform: rotate(-8deg);
    pointer-events: none;
    z-index: -1;
}

.pri-cw .price-row .label {
    color: var(--dark-pri-blue);
    font-weight: 700;
}

.loop-sku {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    column-gap: 5px;
    justify-content: center;
    font-size: 0.9em;
    color: var(--light-gray);
    padding: 0.2em 0 0.5em;
    border-bottom: 1px solid var(--dark-pri-blue);
}

.loop-sku .icon {
    font-size: 1.1em;
}

/* Product Loop */
.woocommerce-loop-product__title {
    text-align: center;
}

span.onsale {
    display: none;
}

div.single_variation_wrap {
    padding: 1em;
}

div.woocommerce-variation-price {
    margin-bottom: 30px;
}

.variation-section-text {
    color: var(--mid-blue-1);
    font-weight: bold;
    padding-bottom: 5px;
    border-bottom: 1px solid var(--mid-blue-1);
}

div#variation-sku-container {
    margin-bottom: 15px;
}

.variation-sku-wrapper {
    display: flex;
    flex-flow: row nowrap;
    padding-top: 10px;
    align-items: center;
}

.variation-sku {
    font-weight: bold;
}

div.woocommerce-variation-description p {
    font-size: 0.9em;
    font-style: italic;
    padding: 0 0.5em;
}

.product-legacy-no-cart .product-price-mod {
    display: none;
}

.product_tag-discontinued .price {
    display: none;
}

/* General/Divi Product*/
.et_pb_gutters3.et-db #et-boc .et-l .et_pb_column_4_4 .et_pb_shop_grid .woocommerce ul.products li.product {
    margin-bottom: 3%;
}

/* Buttons */
a.added_to_cart.wc-forward {
    background-color: var(--mid-blue-1);
    border: 1px solid var(--mid-blue-1);
    color: var(--white) !important;
    border-radius: 5px;
    width: fit-content;
    padding: 0.3em 1em;
    margin: auto;
    transition: color 300ms ease 0ms, background-color 300ms ease 0ms, border 300ms ease 0ms;
}

a.added_to_cart.wc-forward:hover {
    background-color: var(--white);
    color: var(--mid-blue-1) !important;
    cursor: pointer;
}

/* Javascript + and - buttons */
table>tbody>tr.woocommerce-cart-form__cart-item.cart_item>td.product-quantity>div>a.minus,
table>tbody>tr.woocommerce-cart-form__cart-item.cart_item>td.product-quantity>div>a.plus {
    display: none;
}

/* Pricing */
div.wc-default-price p.price {
    display: none;
}

.tmp-price-block {
    display: flex;
    flex-flow: column nowrap;
    padding-top: 0.5em;
    align-items: center;
}

.tmp-price-block.single-product {
    row-gap: 10px;
}

.tmp-price-block.category-page {
    align-items: center;
}

div.price-entry {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    column-gap: 5px;
}

div.regular-price {
    color: var(--light-gray);
}

div.sale-price {
    color: var(--mid-blue-1) !important;
    /*font-size: 1.2em;*/
}

div.sale-price .price-value {
    font-weight: bold;
}

.strikethrough-text {
    text-decoration: line-through;
    text-decoration-color: var(--pink);
    text-decoration-thickness: 1px;
    margin-left: 1px;
    margin-right: 3px;
}

.upsell-price {
    align-items: center;
}

span.onsale {
    display: none;
}

/* Up Sells */
section.upsells ul {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 2em;
    row-gap: 2em;
    line-height: 1em;
    padding: 0 30px !important;
}

section.upsells ul li {
    clear: unset !important;
    width: unset !important;
    margin: unset !important;
    float: none !important;
}

section.upsells ul::before {
    content: unset !important;
    display: unset !important;
}

.upsells .woocommerce-loop-product__title {
    font-size: 0.9em !important;
    padding: 1em 0 0.5em !important;
}

/* Upsells, Cross Sells, Related Products */

div#compatible-products div.tmp-price-block.single-product {
    row-gap: 0px;
}

.tmp-related-products {
    margin-bottom: 15px;
    padding-left: 20px;
}

/* Specifications (Attributes) */

.et_pb_wc_additional_info table.shop_attributes {
    margin-left: 20px;
    margin-right: 20px;
}

.woocommerce table.shop_attributes td {
    font-style: normal;
    border-bottom: 1px solid var(--lighter-gray);
}

.woocommerce table.shop_attributes th {
    border-bottom: 1px solid var(--lighter-gray);
    width: 40% !important;
}

.woocommerce table.shop_attributes {
    border-top: 1px solid var(--lighter-gray);
}

div#product-specifications a {
    color: var(--pri-blue);
}

div#product-specifications a:hover {
    color: var(--mid-blue-2);
    text-decoration: underline;
    cursor: pointer;
}

/* Long Description */

div#product-long-description-row {
    padding-top: 20px;
    padding-bottom: 20px;
}

.tmp-product-long-description-title {
    font-weight: bold;
    font-size: 30px;
    color: var(--gray);
    padding-bottom: 10px;
    line-height: 1em;
}

div#product-long-description {
    padding-left: 20px;
    padding-right: 20px;
}

div#product-long-description a {
    color: var(--pri-blue);
}

div#product-long-description a:hover {
    color: var(--mid-blue-2);
    text-decoration: underline;
    cursor: pointer;
}

.custom-element-wrap .text {
    margin-left: 20px;
}

/* Custom Elements Container */
.custom-elements-container {
    display: flex;
    flex-flow: column nowrap;
    row-gap: 3em;
}

/* Attributes */
.tmp-pa-title {
    font-size: 36px;
    font-weight: bold;
    margin-bottom: 30px;
    line-height: 1em;
}

.tmp-pa-subtext {
    margin-bottom: 30px;
}

/* Registration */
div.account-registration-wrapper>form {
    display: flex;
    flex-flow: column nowrap;
    row-gap: 5px;
}

div.account-registration-wrapper>form>p.form-row.form-row-first,
div.account-registration-wrapper>form>p.form-row.form-row-last {
    width: 100%;
}

p.form-row.form-row-country>span {
    width: unset;
}

/* References */

ol.zotero-references-list {
    list-style-position: outside !important;
    padding-left: 20px;
    padding-right: 20px;
    display: flex;
    flex-flow: column wrap;
    row-gap: 8px;
}

ol.zotero-references-list>li {
    line-height: 1.4em;
}

.custom-subsection {
    margin-bottom: 10px !important;
}

#product-references-section {
    margin-bottom: 10px !important;
}

/* Documents and Product Bundle List */
.custom-subsection,
.product-documents-list {
    padding-left: 20px;
    padding-right: 20px;
}

.document-item-wrapper {
    display: grid;
    grid-template-columns: 0.4fr 1.6fr 0.3fr 0.56fr 0.5fr;
    grid-template-rows: auto;
    align-items: center;
    justify-items: center;
    padding: 1em 0;
}

.doc-number {
    font-weight: 700;
    color: var(--mid-blue-1);
}

/* Related Bundles */
div#bundle-items-container .bundle-group .bundle-group-items .item {
    display: grid;
    grid-template-columns: 0.2fr 1.3fr 0.5fr 0.3fr;
    grid-template-rows: auto;
    align-items: center;
    padding: 5px 10px;
    column-gap: 0.7em;
}

div#bundle-items-container .bundle-group .title {
    font-size: 1.1em;
    font-weight: 700;
    color: var(--white);
    background-color: var(--dark-pri-blue);
    padding: 0.5em;
    border-top-right-radius: 5px;
    border-top-left-radius: 5px;
}

div#bundle-items-container .bundle-group-items {
    border-left: 1px solid var(--lighter-gray);
    border-right: 1px solid var(--lighter-gray);
    border-bottom: 1px solid var(--lighter-gray);
    padding: 1em 1.3em;
    border-bottom-right-radius: 5px;
    border-bottom-left-radius: 5px;
}

div#bundle-items-container .bundle-group {
    margin-bottom: 2em;
}

div#bundle-items-container .bundle-group .bundle-group-items .item.header {
    font-weight: 700;
}

div#bundle-items-container .bundle-group-items .item:not(.header):nth-of-type(odd) {
    background-color: #fff;
    /* White for odd rows */
}

div#bundle-items-container .bundle-group-items .item:not(.header):nth-of-type(even) {
    background-color: #f1f1f1;
    /* Light gray for even rows */
}

div#bundle-items-container .bundle-group-items .item .link {
    justify-self: end;
}

div#bundle-items-container .image-container {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 50px;
}

div#bundle-items-container .bundle-thumbnail {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

div#bundle-items-container .image-container .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.8);
    /* Semi-transparent white */
    opacity: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease-in-out;
    pointer-events: none;
    /* Prevents interaction with the overlay */
}

div#bundle-items-container .image-container .overlay svg {
    font-size: 2em;
    color: var(--pri-blue);
}

div#bundle-items-container .image-container:hover .overlay {
    opacity: 1;
    pointer-events: auto;
    /* Allows clicking the overlay */
}

/* Related Kits */
div#kit-items-container .item {
    display: grid;
    grid-template-columns: 0.2fr 1.3fr 0.5fr 0.3fr;
    grid-template-rows: auto;
    align-items: center;
    padding: 5px 10px;
    column-gap: 0.7em;
}

div#bundle-items-container .bundle-group {
    margin-bottom: 2em;
}

div#kit-items-container .item.header {
    font-weight: 700;
    border-bottom: 2px solid var(--light-gray);
    padding-bottom: 8px;
}

div#kit-items-container .item:not(.header):nth-of-type(odd) {
    background-color: #f1f1f1;
    /* White for odd rows */
    border-bottom: 1px solid var(--lighter-gray);
}

div#kit-items-container .item:not(.header):nth-of-type(even) {
    background-color: var(--white);
    /* Light gray for even rows */
}

div#kit-items-container .item .link {
    justify-self: end;
}

div#kit-items-container .image-container {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 50px;
}

div#kit-items-container .bundle-thumbnail {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

div#kit-items-container .image-container .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.8);
    /* Semi-transparent white */
    opacity: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease-in-out;
    pointer-events: none;
    /* Prevents interaction with the overlay */
}

div#kit-items-container .image-container .overlay svg {
    font-size: 2em;
    color: var(--pri-blue);
}

div#kit-items-container .image-container:hover .overlay {
    opacity: 1;
    pointer-events: auto;
    /* Allows clicking the overlay */
}

/* Kit, Bundle Products */
.aggregate-items-container .item {
    display: grid;
    grid-template-columns: 0.1fr 0.3fr 1.2fr 0.4fr 0.4fr;
    grid-template-rows: auto;
    align-items: center;
    justify-items: initial;
    padding: 5px;
}

.aggregate-items-container .item .qty,
.aggregate-items-container .item .image,
.aggregate-items-container .item .sku {
    align-items: center;
    justify-content: center;
    display: flex;
}

.aggregate-items-container .item .link {
    align-items: center;
    display: flex;
    justify-self: flex-end;
}

.aggregate-items-container .image-container {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 50px;
}

.aggregate-items-container .bundle-thumbnail {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.aggregate-items-container .image-container .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.8);
    /* Semi-transparent white */
    opacity: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease-in-out;
    pointer-events: none;
    /* Prevents interaction with the overlay */
}

.aggregate-items-container .image-container .overlay svg {
    font-size: 2em;
    color: var(--pri-blue);
}

.aggregate-items-container .image-container:hover .overlay {
    opacity: 1;
    pointer-events: auto;
    /* Allows clicking the overlay */
}

.product-element-title {
    margin-bottom: 0.5em;
}


/* Hide Weight and Dimensions from Attributes on Product Page section */
.woocommerce-product-attributes-item.woocommerce-product-attributes-item--weight,
.woocommerce-product-attributes-item.woocommerce-product-attributes-item--dimensions {
    display: none;
}

/* Divi Woo Commerce Product Image / Photoswipe */
div.pswp__bg {
    opacity: 0.7 !important;
}

.pswp__caption__center {
    text-align: center !important;
    font-size: 15px !important;
    color: var(--white) !important;
}

.pswp__ui--fit .pswp__caption {
    background-color: var(--dark-pri-blue) !important;
}

.woocommerce div.product div.images .flex-control-thumbs li img {
    box-shadow: 0px 12px 18px -6px rgba(0, 0, 0, 0.3) !important;
}

.image-box-shadow>img {
    box-shadow: 0px 12px 18px -6px rgba(0, 0, 0, 0.3) !important;
}


@media screen and (max-width:576px) {

    span.price .tmp-price-block .price-entry {
        flex-flow: column nowrap;
        line-height: 1.5em;
    }

    .strikethrough-text {
        margin: unset;
    }

    section.upsells ul {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 2em;
        width: 100% !important;
    }

    section.upsells ul li,
    .et_pb_wc_upsells ul.products.columns-5 li.product {
        width: 100% !important;
        padding: 0 0.5em !important;
        margin: 0 !important;
    }

    section.upsells h2.woocommerce-loop-product__title {
        padding: 1.2em 0 0.5em 0 !important;
    }

    .tmp-related-products {
        padding-left: 0 !important;
    }

    .tmp-mobile-block-title>div>h1 {
        font-size: 24px;
        margin-bottom: 8px;
        text-align: center;
    }

    div.tmp-woo-meta-container {
        justify-content: center;
    }

    .tmp-pa-title {
        font-size: 24px;
        font-weight: bold;
    }

    .tmp-product-long-description-title {
        font-size: 20px;
    }

    #product-documents-shortcode>h2 {
        font-size: 20px;
    }

    .document-item-wrapper {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
    }

    .download {
        text-align: center;
    }

    .doc-icon,
    .doc-icon-heading {
        display: none;
    }

    #product-references-section>div>h2 {
        font-size: 20px;
    }
}

/* UPSELLS */
section.upsells ul {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 2em;
    row-gap: 2em;
    line-height: 1em;
    padding: 0 30px !important;
}

section.upsells ul li {
    clear: unset !important;
    width: unset !important;
    margin: unset !important;
    float: none !important;
}

section.upsells ul::before {
    content: unset !important;
    display: unset !important;
}

@media screen and (max-width:576px) {

    section.upsells ul {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 2em;
        width: 100% !important;
    }

    section.upsells ul li,
    .et_pb_wc_upsells ul.products.columns-5 li.product {
        width: 100% !important;
        padding: 0 0.5em !important;
        margin: 0 !important;
    }

    section.upsells h2.woocommerce-loop-product__title {
        padding: 1.2em 0 0.5em 0 !important;
    }

    .tmp-related-products {
        padding-left: 0 !important;
    }
}

/* VARIATION PRODUCTS */
div.single_variation_wrap {
    padding: 1em;
}

div.woocommerce-variation-price {
    margin-bottom: 30px;
}

.variation-section-text {
    color: var(--mid-blue-1);
    font-weight: bold;
    padding-bottom: 5px;
    border-bottom: 1px solid var(--mid-blue-1);
}

div#variation-sku-container {
    margin-bottom: 15px;
}

.variation-sku-wrapper {
    display: flex;
    flex-flow: row nowrap;
    padding-top: 10px;
    align-items: center;
}

.variation-sku {
    font-weight: bold;
}

div.woocommerce-variation-description p {
    font-size: 0.9em;
    font-style: italic;
    padding: 0 0.5em;
}

/* SPECIFICATIONS (ATTRIBUTES) */
div#product-specifications a {
    color: var(--pri-blue);
}

div#product-specifications a:hover {
    color: var(--mid-blue-2);
    text-decoration: underline;
    cursor: pointer;
}

/* LONG DESCRIPTION */
div#product-long-description-row {
    padding-top: 20px;
    padding-bottom: 20px;
}

.tmp-product-long-description-title {
    font-weight: bold;
    font-size: 30px;
    color: var(--gray);
    padding-bottom: 10px;
    line-height: 1em;
}

div#product-long-description {
    padding-left: 20px;
    padding-right: 20px;
}

div#product-long-description a {
    color: var(--pri-blue);
}

div#product-long-description a:hover {
    color: var(--mid-blue-2);
    text-decoration: underline;
    cursor: pointer;
}

.custom-element-wrap .text {
    margin-left: 20px;
}

@media screen and (max-width:576px) {
    .tmp-mobile-block-title>div>h1 {
        font-size: 24px;
        margin-bottom: 8px;
        text-align: center;
    }

    div.tmp-woo-meta-container {
        justify-content: center;
    }

    .tmp-pa-title {
        font-size: 24px;
        font-weight: bold;
    }

    .tmp-product-long-description-title {
        font-size: 20px;
    }

    #product-documents-shortcode>h2 {
        font-size: 20px;
    }
}

/* DOCUMENTS */

.custom-subsection,
.product-documents-list {
    padding-left: 20px;
    padding-right: 20px;
}

.document-item-wrapper {
    display: grid;
    grid-template-columns: 0.4fr 1.6fr 0.3fr 0.56fr 0.5fr;
    grid-template-rows: auto;
    align-items: center;
    justify-items: center;
    padding: 1em 0;
}

.doc-number {
    font-weight: 700;
    color: var(--mid-blue-1);
}

@media screen and (max-width: 576px) {
    .document-item-wrapper {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
    }

    .download {
        text-align: center;
    }

    .doc-icon,
    .doc-icon-heading {
        display: none;
    }

    #product-references-section>div>h2 {
        font-size: 20px;
    }
}

/* RELATED BUNDLES */
div#bundle-items-container .bundle-group .bundle-group-items .item {
    display: grid;
    grid-template-columns: 0.2fr 1.3fr 0.5fr 0.3fr;
    grid-template-rows: auto;
    align-items: center;
    padding: 5px 10px;
    column-gap: 0.7em;
}

div#bundle-items-container .bundle-group .title {
    font-size: 1.1em;
    font-weight: 700;
    color: var(--white);
    background-color: var(--dark-pri-blue);
    padding: 0.5em;
    border-top-right-radius: 5px;
    border-top-left-radius: 5px;
}

div#bundle-items-container .bundle-group-items {
    border-left: 1px solid var(--lighter-gray);
    border-right: 1px solid var(--lighter-gray);
    border-bottom: 1px solid var(--lighter-gray);
    padding: 1em 1.3em;
    border-bottom-right-radius: 5px;
    border-bottom-left-radius: 5px;
}

div#bundle-items-container .bundle-group {
    margin-bottom: 2em;
}

div#bundle-items-container .bundle-group .bundle-group-items .item.header {
    font-weight: 700;
}

div#bundle-items-container .bundle-group-items .item:not(.header):nth-of-type(odd) {
    background-color: #fff;
    /* White for odd rows */
}

div#bundle-items-container .bundle-group-items .item:not(.header):nth-of-type(even) {
    background-color: #f1f1f1;
    /* Light gray for even rows */
}

div#bundle-items-container .bundle-group-items .item .link {
    justify-self: end;
}

div#bundle-items-container .image-container {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 50px;
}

div#bundle-items-container .bundle-thumbnail {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

div#bundle-items-container .image-container .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.8);
    /* Semi-transparent white */
    opacity: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease-in-out;
    pointer-events: none;
    /* Prevents interaction with the overlay */
}

div#bundle-items-container .image-container .overlay svg {
    font-size: 2em;
    color: var(--pri-blue);
}

div#bundle-items-container .image-container:hover .overlay {
    opacity: 1;
    pointer-events: auto;
    /* Allows clicking the overlay */
}

/* RELATED KITS */
div#kit-items-container .item {
    display: grid;
    grid-template-columns: 0.2fr 1.3fr 0.5fr 0.3fr;
    grid-template-rows: auto;
    align-items: center;
    padding: 5px 10px;
    column-gap: 0.7em;
}

div#bundle-items-container .bundle-group {
    margin-bottom: 2em;
}

div#kit-items-container .item.header {
    font-weight: 700;
    border-bottom: 2px solid var(--light-gray);
    padding-bottom: 8px;
}

div#kit-items-container .item:not(.header):nth-of-type(odd) {
    background-color: #f1f1f1;
    /* White for odd rows */
    border-bottom: 1px solid var(--lighter-gray);
}

div#kit-items-container .item:not(.header):nth-of-type(even) {
    background-color: var(--white);
    /* Light gray for even rows */
}

div#kit-items-container .item .link {
    justify-self: end;
}

div#kit-items-container .image-container {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 50px;
}

div#kit-items-container .bundle-thumbnail {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

div#kit-items-container .image-container .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.8);
    /* Semi-transparent white */
    opacity: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease-in-out;
    pointer-events: none;
    /* Prevents interaction with the overlay */
}

div#kit-items-container .image-container .overlay svg {
    font-size: 2em;
    color: var(--pri-blue);
}

div#kit-items-container .image-container:hover .overlay {
    opacity: 1;
    pointer-events: auto;
    /* Allows clicking the overlay */
}

/* KIT/BUNDLE PRODUCTS */
.aggregate-items-container .item {
    display: grid;
    grid-template-columns: 0.1fr 0.3fr 1.2fr 0.4fr 0.4fr;
    grid-template-rows: auto;
    align-items: center;
    justify-items: initial;
    padding: 5px;
}

.aggregate-items-container .item .qty,
.aggregate-items-container .item .image,
.aggregate-items-container .item .sku {
    align-items: center;
    justify-content: center;
    display: flex;
}

.aggregate-items-container .item .link {
    align-items: center;
    display: flex;
    justify-self: flex-end;
}

.aggregate-items-container .image-container {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 50px;
}

.aggregate-items-container .bundle-thumbnail {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.aggregate-items-container .image-container .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.8);
    /* Semi-transparent white */
    opacity: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease-in-out;
    pointer-events: none;
    /* Prevents interaction with the overlay */
}

.aggregate-items-container .image-container .overlay svg {
    font-size: 2em;
    color: var(--pri-blue);
}

.aggregate-items-container .image-container:hover .overlay {
    opacity: 1;
    pointer-events: auto;
    /* Allows clicking the overlay */
}

@media screen and (max-width:576px) {
    .loop-sku {
        padding: 0.5em;
    }

    #custom-tabs-module .custom-product-tabs .tabs {
        flex-flow: column wrap;
        padding-left: 0;
    }

    #custom-tabs-module .tabs-content .custom-tab-content {
        padding: 0.6em;
    }

    #custom-tabs-module .tabs-content .custom-tab-content .tab-note {
        display: none;
    }

    .zotero-reference-item {
        font-size: 0.9em;
    }

    #pri-checkout-section #order_review .shipping,
    #pri-checkout-section #order_review .subtotal,
    #pri-checkout-section #order_review .tax {
        display: flex !important;
        justify-content: space-between !important;
    }

    #pri-checkout-col-1 #order_review [data-grid-element="checkout-items"] {
        grid-template-columns: 1.3fr 0.2fr 0.25fr !important;
    }

    #pri-checkout-section #pri-checkout-col-1,
    #pri-checkout-section #pri-checkout-col-2 {
        width: 100% !important;
        border-radius: unset;
    }

    .woocommerce-checkout #pri-checkout-section .et_pb_row.et_pb_gutters1 {
        display: flex !important;
        flex-flow: column-reverse nowrap !important;
        width: 95% !important;
    }

    .woocommerce-checkout #pri-checkout-row-addresses,
    .woocommerce-checkout .et_pb_row_inner_1_tb_body {
        display: flex !important;
    }

    .woocommerce-checkout #ship-to-different-address {
        padding-top: 1em;
    }

    body.woocommerce-checkout .woocommerce-billing-fields,
    body.woocommerce-checkout .woocommerce-shipping-fields {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        height: auto !important;
        overflow: visible !important;
    }

    .woocommerce-cart #cart-section .et_pb_row.et_pb_gutters1 {
        width: 95% !important;
    }

    .woocommerce-cart .quote-request-inner-wrap {
        flex-flow: column nowrap;
        row-gap: 0.5em;
    }

    .woocommerce-cart .quote-request-inner-wrap button {
        margin: auto auto;
    }

    .pri-grid:not(.pri-grid-header)[data-grid-element="cart-list"] {
        row-gap: 1em;
    }

    .pri-grid[data-grid-element="cart-list"],
    .woocommerce-cart .pri-grid-header .product-subtotal,
    .woocommerce-cart .product-thumbnail,
    .woocommerce-cart .product-name,
    .woocommerce-cart .cart-sku,
    .woocommerce-cart .pri-grid-header .product-subtotal,
    .woocommerce-cart .cart-item .product-subtotal {
        text-align: center !important;
        align-self: center;
    }

    .woocommerce-cart .product-remove {
        justify-self: center;
    }
}

/* PRODUCT TAXONOMY */
.product-taxonomy-container {
    display: flex;
    flex-flow: column wrap;
    margin-top: 1.5em;
    padding-top: 1em;
    row-gap: 1em;
    border-top: 1px solid var(--mid-blue-2);
}

.product-taxonomy-wrapper {
    display: grid;
    grid-template-columns: 0.1fr 1fr;
    grid-template-rows: 1fr;
    margin-left: 10px;
    column-gap: 0.5em;
}

.product-taxonomy-wrapper>.icon {
    font-size: 1.3em;
    color: var(--mid-blue-1);
    text-align: center;
}

.product-taxonomy-wrapper>.list {
    font-size: 0.9em;
}

.product-taxonomy-wrapper>div.list>a {
    color: var(--pri-blue);
}

.product-taxonomy-wrapper>div.list>a:hover {
    color: var(--mid-blue-2);
    text-decoration: underline;
    cursor: pointer;
}

@media screen and (max-width:576px) {
    .product-taxonomy-wrapper>.icon {
        display: none;
    }

    .product-taxonomy-wrapper {
        display: flex;
        flex-flow: column wrap;
        align-items: center;
        row-gap: 5px;
        height: unset;
    }

    .product-taxonomy-wrapper>.list {
        text-align: center;
    }

    .show-on-mobile {
        font-size: 0.9em;
        color: var(--mid-blue-1);
        font-weight: 700;
    }

    .product-taxonomy-container {
        row-gap: 15px;
        margin-bottom: 1.5em;
    }

    .product-part-number-container {
        display: block !important;
        float: none !important;
    }

    .product-part-number-wrapper {
        display: flex !important;
        flex-flow: row nowrap !important;
        justify-content: center !important;
        align-items: center !important;
        column-gap: 8px !important;
    }

    .product-part-number-wrapper .icon {
        font-size: 1.5em;
        color: var(--mid-blue-1);
    }

    .product-part-number-wrapper .label {
        color: var(--mid-blue-1);
    }

    .product-part-number-wrapper .value {
        font-weight: 700;
        font-size: 1.2em;
        padding: 0 !important;
    }

    .show-on-mobile {
        display: none;
    }
}

/* HEADER PART NUMBER */
.product-part-number-container {
    display: block;
    float: right;
}

.product-part-number-wrapper {
    display: flex;
    flex-flow: column nowrap;
    text-align: center;
    justify-content: flex-end;
}

.product-part-number-wrapper .icon {
    font-size: 1.5em;
    color: var(--mid-blue-1);
}

.product-part-number-wrapper .label {
    color: var(--mid-blue-1);
}

.product-part-number-wrapper .value {
    font-weight: 700;
    padding-top: 10px;
    font-size: 1.2em;
}

/* ATTRIBUTE IMAGE */
.attribute-image {
    height: auto;
    width: auto;
    padding: 0.3em 0;
}