
        /*
         * Shared product card foundations. These selectors cover the WoodMart
         * shop, taxonomy, search, Elementor product widgets and recommendation
         * grids without changing their WooCommerce links or add-to-cart logic.
         */
        body .wd-products .wd-product,
        body .related-and-upsells .wd-product,
        body .upsells .wd-product {
            display: flex;
            min-width: 0;
        }

        body .wd-products .wd-product .wd-product-wrapper,
        body .related-and-upsells .wd-product .wd-product-wrapper,
        body .upsells .wd-product .wd-product-wrapper {
            display: flex;
            flex: 1 1 auto;
            flex-direction: column;
            min-width: 0;
            height: 100%;
            overflow: hidden;
            border: 1px solid #dce6de;
            border-radius: 18px;
            background: #fff;
            box-shadow: 0 2px 8px rgba(25, 58, 44, .045);
            transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
        }

        body .wd-products .wd-product:hover .wd-product-wrapper,
        body .wd-products .wd-product:focus-within .wd-product-wrapper,
        body .related-and-upsells .wd-product:hover .wd-product-wrapper,
        body .upsells .wd-product:hover .wd-product-wrapper {
            border-color: #8eaf98;
            box-shadow: 0 14px 28px rgba(25, 58, 44, .13);
            transform: translateY(-3px);
        }

        /* WoodMart's hover shadow copy is unnecessary once the card owns its elevation. */
        body .wd-products .wd-product .content-product-imagin,
        body .related-and-upsells .wd-product .content-product-imagin,
        body .upsells .wd-product .content-product-imagin {
            display: none !important;
        }

        /* A white stage joins naturally with original photos that already have a white background. */
        body .wd-products .wd-product .product-element-top,
        body .related-and-upsells .wd-product .product-element-top,
        body .upsells .wd-product .product-element-top {
            position: relative;
            display: flex;
            align-items: stretch;
            aspect-ratio: 1.28 / 1;
            overflow: hidden;
            padding: 8px;
            border-bottom: 1px solid rgba(25, 58, 44, .08);
            background: #fff;
        }

        body .wd-products .wd-product .product-element-top > .product-image-link,
        body .related-and-upsells .wd-product .product-element-top > .product-image-link,
        body .upsells .wd-product .product-element-top > .product-image-link {
            position: relative;
            z-index: 1;
            display: flex;
            flex: 1 1 auto;
            align-items: center;
            justify-content: center;
            min-width: 0;
            overflow: hidden;
            background: transparent;
        }

        body .wd-products .wd-product .product-element-top img,
        body .related-and-upsells .wd-product .product-element-top img,
        body .upsells .wd-product .product-element-top img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: contain;
            object-position: center;
            transform: scale(1);
            transition: transform .28s ease;
        }

        body .wd-products .wd-product:hover .product-element-top img,
        body .wd-products .wd-product:focus-within .product-element-top img,
        body .related-and-upsells .wd-product:hover .product-element-top img,
        body .upsells .wd-product:hover .product-element-top img {
            transform: scale(1);
        }

        body .wd-products .wd-product .wd-product-grid-slider,
        body .related-and-upsells .wd-product .wd-product-grid-slider,
        body .upsells .wd-product .wd-product-grid-slider {
            border-radius: 10px;
        }

        /* Sale and utility actions sit in clear, independent controls. */
        body .wd-products .wd-product .product-labels,
        body .related-and-upsells .wd-product .product-labels,
        body .upsells .wd-product .product-labels {
            z-index: 3;
        }

        body .wd-products .wd-product .product-labels .product-label,
        body .related-and-upsells .wd-product .product-labels .product-label,
        body .upsells .wd-product .product-labels .product-label {
            min-height: 27px;
            padding: 5px 9px;
            border: 1px solid rgba(255, 255, 255, .8);
            border-radius: 999px;
            background: #c36e45;
            box-shadow: 0 3px 9px rgba(104, 53, 32, .13);
            color: #fff;
            font-size: 11px;
            font-weight: 750;
            letter-spacing: .01em;
            line-height: 1.1;
        }

        body .wd-products .wd-product .wd-buttons,
        body .related-and-upsells .wd-product .wd-buttons,
        body .upsells .wd-product .wd-buttons {
            z-index: 4;
            gap: 7px;
        }

        body .wd-products .wd-product .wd-buttons .wd-action-btn > a,
        body .related-and-upsells .wd-product .wd-buttons .wd-action-btn > a,
        body .upsells .wd-product .wd-buttons .wd-action-btn > a {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 34px;
            height: 34px;
            border: 1px solid rgba(211, 224, 214, .98);
            border-radius: 10px;
            background: rgba(255, 255, 255, .94);
            box-shadow: 0 4px 11px rgba(25, 58, 44, .07);
            color: #315b49;
            opacity: 1;
        }

        body .wd-products .wd-product .wd-buttons .wd-action-btn > a:hover,
        body .wd-products .wd-product .wd-buttons .wd-action-btn > a:focus-visible,
        body .related-and-upsells .wd-product .wd-buttons .wd-action-btn > a:hover,
        body .upsells .wd-product .wd-buttons .wd-action-btn > a:hover {
            border-color: #7ea58a;
            background: #fff;
            color: #173f34;
        }

        /* Content stays aligned even when names and price formats vary. */
        body .wd-products .wd-product .product-element-bottom,
        body .related-and-upsells .wd-product .product-element-bottom,
        body .upsells .wd-product .product-element-bottom {
            display: flex;
            flex: 1 1 auto;
            flex-direction: column;
            min-width: 0;
            padding: 15px 16px 16px;
        }

        body .wd-products .wd-product .wd-entities-title,
        body .related-and-upsells .wd-product .wd-entities-title,
        body .upsells .wd-product .wd-entities-title {
            display: -webkit-box;
            overflow: hidden;
            min-height: 2.7em;
            margin: 0 0 8px;
            color: #213c30;
            font-size: 15px;
            font-weight: 700;
            line-height: 1.35;
            text-overflow: ellipsis;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;
        }

        body .wd-products .wd-product .wd-entities-title a,
        body .related-and-upsells .wd-product .wd-entities-title a,
        body .upsells .wd-product .wd-entities-title a {
            color: inherit;
        }

        body .wd-products .wd-product .wd-product-cats,
        body .wd-products .wd-product .star-rating,
        body .wd-products .wd-product .wd-product-sku,
        body .related-and-upsells .wd-product .wd-product-cats,
        body .related-and-upsells .wd-product .star-rating,
        body .related-and-upsells .wd-product .wd-product-sku,
        body .upsells .wd-product .wd-product-cats,
        body .upsells .wd-product .star-rating,
        body .upsells .wd-product .wd-product-sku {
            display: none !important;
        }

        body .wd-products .wd-product .wd-product-stock,
        body .related-and-upsells .wd-product .wd-product-stock,
        body .upsells .wd-product .wd-product-stock {
            min-height: 17px;
            margin: 0 0 8px;
            color: #5f7968;
            font-size: 11px;
            font-weight: 650;
            line-height: 1.35;
        }

        body .wd-products .wd-product .wd-product-stock.out-of-stock,
        body .wd-products .wd-product .wd-product-stock .out-of-stock,
        body .related-and-upsells .wd-product .wd-product-stock.out-of-stock,
        body .upsells .wd-product .wd-product-stock.out-of-stock {
            color: #a54b3d;
        }

        body .wd-products .wd-product .wrap-price,
        body .related-and-upsells .wd-product .wrap-price,
        body .upsells .wd-product .wrap-price {
            min-height: 27px;
            margin: 0 0 13px;
        }

        body .wd-products .wd-product .price,
        body .related-and-upsells .wd-product .price,
        body .upsells .wd-product .price {
            color: #1c5745;
            font-size: 17px;
            font-weight: 750;
            letter-spacing: -.012em;
            line-height: 1.25;
        }

        body .wd-products .wd-product .price del,
        body .related-and-upsells .wd-product .price del,
        body .upsells .wd-product .price del {
            color: #829087;
            font-size: .84em;
        }

        body .wd-products .wd-product .price ins,
        body .related-and-upsells .wd-product .price ins,
        body .upsells .wd-product .price ins {
            color: #b45639;
        }

        body .wd-products .wd-product .wd-add-btn,
        body .related-and-upsells .wd-product .wd-add-btn,
        body .upsells .wd-product .wd-add-btn {
            display: block !important;
            margin-top: auto;
            opacity: 1 !important;
            transform: none !important;
        }

        body .wd-products .wd-product .wd-add-btn > .button,
        body .wd-products .wd-product .wd-add-btn > a,
        body .related-and-upsells .wd-product .wd-add-btn > .button,
        body .related-and-upsells .wd-product .wd-add-btn > a,
        body .upsells .wd-product .wd-add-btn > .button,
        body .upsells .wd-product .wd-add-btn > a {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            min-height: 40px;
            padding: 8px 12px;
            border: 1px solid #1f5b49 !important;
            border-radius: 10px !important;
            background: #1f5b49 !important;
            box-shadow: none !important;
            color: #fff !important;
            font-size: 12px;
            font-weight: 750;
            letter-spacing: 0;
            line-height: 1.2;
            text-align: center;
            text-transform: none;
        }

        body .wd-products .wd-product .wd-add-btn > .button:hover,
        body .wd-products .wd-product .wd-add-btn > .button:focus-visible,
        body .wd-products .wd-product .wd-add-btn > a:hover,
        body .wd-products .wd-product .wd-add-btn > a:focus-visible,
        body .related-and-upsells .wd-product .wd-add-btn > a:hover,
        body .upsells .wd-product .wd-add-btn > a:hover {
            border-color: #173f34 !important;
            background: #173f34 !important;
            color: #fff !important;
        }

        /* WoodMart slides this label out on hover. Keep the product action readable. */
        body .wd-products .wd-product .wd-add-btn .wd-action-text,
        body .related-and-upsells .wd-product .wd-add-btn .wd-action-text,
        body .upsells .wd-product .wd-add-btn .wd-action-text {
            display: block;
            opacity: 1 !important;
            transform: none !important;
            transition: none !important;
        }

        body .wd-products .wd-product .wd-add-btn .wd-action-icon,
        body .related-and-upsells .wd-product .wd-add-btn .wd-action-icon,
        body .upsells .wd-product .wd-add-btn .wd-action-icon {
            display: none;
        }

        /* The old expanded attribute layer causes card-height jumps in grids. */
        body .wd-products .wd-product .wd-product-card-hover,
        body .related-and-upsells .wd-product .wd-product-card-hover,
        body .upsells .wd-product .wd-product-card-hover {
            display: none !important;
        }

        body .wd-products .wd-product a:focus-visible,
        body .related-and-upsells .wd-product a:focus-visible,
        body .upsells .wd-product a:focus-visible {
            outline: 3px solid rgba(49, 111, 84, .34);
            outline-offset: 3px;
        }

        @media (max-width: 767px) {
            body .wd-products .wd-product .wd-product-wrapper,
            body .related-and-upsells .wd-product .wd-product-wrapper,
            body .upsells .wd-product .wd-product-wrapper {
                border-radius: 14px;
            }

            body .wd-products .wd-product .product-element-top,
            body .related-and-upsells .wd-product .product-element-top,
            body .upsells .wd-product .product-element-top {
                aspect-ratio: 1 / 1;
                padding: 6px;
            }

            body .wd-products .wd-product .product-element-top img,
            body .related-and-upsells .wd-product .product-element-top img,
            body .upsells .wd-product .product-element-top img {
                transform: scale(1);
            }

            body .wd-products .wd-product .product-element-bottom,
            body .related-and-upsells .wd-product .product-element-bottom,
            body .upsells .wd-product .product-element-bottom {
                padding: 11px 11px 12px;
            }

            body .wd-products .wd-product .wd-entities-title,
            body .related-and-upsells .wd-product .wd-entities-title,
            body .upsells .wd-product .wd-entities-title {
                min-height: 2.78em;
                margin-bottom: 6px;
                font-size: 13px;
                line-height: 1.39;
            }

            body .wd-products .wd-product .wd-product-stock,
            body .related-and-upsells .wd-product .wd-product-stock,
            body .upsells .wd-product .wd-product-stock {
                min-height: 14px;
                margin-bottom: 6px;
                font-size: 10px;
            }

            body .wd-products .wd-product .wrap-price,
            body .related-and-upsells .wd-product .wrap-price,
            body .upsells .wd-product .wrap-price {
                min-height: 21px;
                margin-bottom: 9px;
            }

            body .wd-products .wd-product .price,
            body .related-and-upsells .wd-product .price,
            body .upsells .wd-product .price {
                font-size: 14px;
            }

            body .wd-products .wd-product .wd-add-btn > .button,
            body .wd-products .wd-product .wd-add-btn > a,
            body .related-and-upsells .wd-product .wd-add-btn > a,
            body .upsells .wd-product .wd-add-btn > a {
                min-height: 36px;
                padding: 7px 6px;
                border-radius: 8px !important;
                font-size: 10px;
            }

            body .wd-products .wd-product .wd-buttons,
            body .related-and-upsells .wd-product .wd-buttons,
            body .upsells .wd-product .wd-buttons {
                gap: 5px;
            }

            body .wd-products .wd-product .wd-buttons .wd-action-btn > a,
            body .related-and-upsells .wd-product .wd-buttons .wd-action-btn > a,
            body .upsells .wd-product .wd-buttons .wd-action-btn > a {
                width: 29px;
                height: 29px;
                border-radius: 9px;
            }

            body .wd-products .wd-product:hover .wd-product-wrapper,
            body .related-and-upsells .wd-product:hover .wd-product-wrapper,
            body .upsells .wd-product:hover .wd-product-wrapper {
                box-shadow: 0 5px 16px rgba(25, 58, 44, .09);
                transform: none;
            }

            body .wd-products .wd-product:hover .product-element-top img,
            body .related-and-upsells .wd-product:hover .product-element-top img,
            body .upsells .wd-product:hover .product-element-top img {
                transform: scale(1);
            }
        }

        @media (prefers-reduced-motion: reduce) {
            body .wd-products .wd-product .wd-product-wrapper,
            body .wd-products .wd-product .product-element-top img,
            body .related-and-upsells .wd-product .wd-product-wrapper,
            body .related-and-upsells .wd-product .product-element-top img,
            body .upsells .wd-product .wd-product-wrapper,
            body .upsells .wd-product .product-element-top img {
                transition: none;
            }
        }
    