.card-product-item {
    position: relative;
    border: 1px solid transparent;
    box-shadow: 0 4px 16px 0 rgba(230, 230, 230, 0);
    background-color: rgb(255 255 255 / 1);
    border-radius: 4px;
    transition: box-shadow .3s, border .3s;
    padding: 16px;
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;

    &.restricted {
        .product-photo {
            img {
                filter: blur(12px);
            }
        }
    }

    @media (max-width: 639px) {
        grid-template-columns: min(40%, 200px) auto 50px;
        column-gap: 15px;
        margin: 0 -15px -15px;
        padding: 15px;
        border: unset;

        &:before {
            content: '';
            position: absolute;
            height: 1px;
            background-color: #ededed;
            width: calc(100% - 30px);
            bottom: 0;
            left: 15px;
        }
    }

    &.sold {
        --bg-sold: 250 250 250;
        background-color: rgb(var(--bg-sold, 255 255 255) / 1);

        .product-photo {
            img {
                filter: brightness(0.98) grayscale(1);
            }
        }
    }

    & > div {
        grid-column: 1 / 3;
    }

    .block-labels {
        height: 23px;
        margin: -12px -10px 0 -15px;
        position: relative;

        @media (max-width: 639px) {
            grid-column: 1/2;
            margin: -4px 0 0 -13px;
            position: relative;
        }

        .toggle-labels {
            display: flex;
            flex-wrap: wrap;
            position: absolute;
            width: calc(100% + 7px);
            margin: 0 -1px;
            z-index: 2;
            height: 26px;
            overflow: hidden;
            padding: 0 3px 5px;

            &:before {
                content: '';
                position: absolute;
                width: 100%;
                height: 100%;
                left: 0;
                top: 0;
                z-index: -1;
                backdrop-filter: blur(3px);
                background-color: rgb(var(--bg-sold, 255 255 255)/ .5);
            }

            & > .label {
                margin-left: 4px;
                margin-top: 4px;
                border-radius: 2px;
                padding: 4px;
                font-weight: 600;
                font-size: 12px;
                line-height: 1;
                text-align: center;
                align-items: center;
                background-color: var(--bg, #f00);
                color: var(--color, #fff);
                border: 1px solid var(--border, var(--bg, #f00));

                &.uk-grid-margin {
                    &:last-of-type {
                        max-width: calc(100% - 36px) !important;
                    }
                }

                svg {
                    margin: -6px 4px -3px 0;
                    width: 12px;
                    min-width: 12px;
                }
            }

            button {
                display: none;
                position: absolute;
                right: 6px;
                bottom: 0;
                border: 1px solid #d9d9d9;
                border-radius: 2px;
                padding: 2px;
                width: 22px;
                height: 22px;
                background: #f4f4f4;
                align-items: center;
                justify-content: center;
                cursor: pointer;
                transition: border-color .3s;

                span {
                    margin: unset;

                    svg {
                        transition: transform .3s;
                    }
                }
            }

            &:has(.label.uk-grid-margin) {
                padding-right: 33px;

                button {
                    display: flex;
                }
            }

            &.show {
                height: unset;
                padding-right: unset !important;

                button {
                    bottom: 5px;

                    span {
                        svg {
                            transform: rotateX(180deg);
                        }
                    }
                }
            }
        }

        &:hover {
            button {
                border-color: #898989;
            }
        }
    }

    .product-photo {
        padding: 0 0 80%;
        position: relative;
        margin: 10px -16px 20px;

        @media (max-width: 639px) {
            grid-column: 1/2;
            grid-row: 2/6;
            margin: 10px 0 0;
            padding: 0 0 100%;
        }

        &:before {
            content: "";
            position: absolute;
            background-image: var(--bg-hover, none);
            opacity: 0;
            transition: .5s opacity .1s;
            width: 100%;
            height: 100%;
            z-index: 1;
            background-position: center;
            background-size: cover;
        }

        img {
            padding: 20px 20px 0;
            width: 100%;
            height: 100%;
            object-fit: contain;
            object-position: center;
            position: absolute;
            left: 0;
            top: 0;

            @media (max-width: 639px) {
                padding: unset;
            }
        }
    }

    .block-rating {
        margin: -1px 0;
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 5px;

        @media (max-width: 639px) {
            grid-column: 2/3;
            grid-row: 1/2;
            flex-direction: column-reverse;
            gap: 0;
        }

        .review-wrapper {
            z-index: 2;
            width: 135px;
            position: relative;

            @media (max-width: 639px) {
                width: 100%;
            }

            a {
                color: #919191;
                font-size: 12px;
                display: inline-flex;
                padding: 2px 5px;
                align-items: center;
                border-radius: 4px;
                transition: background-color .3s;

                @media (max-width: 639px) {
                    flex-wrap: wrap;
                    max-height: 18px;
                    overflow: hidden;
                }

                svg {
                    margin-top: -2px;
                }

                svg,
                p {
                    font-weight: 800;
                    color: var(--main-color-red);
                    margin-right: 4px;
                    transition: color .3s;
                }

                p {
                    margin-right: 8px;
                }

                &:hover {
                    color: #232323;
                    background-color: #eee;
                }
            }
        }

        .uk-logo {
            width: 80px;
            height: 19px;

            img {
                height: 100%;
                width: 100%;
                object-fit: contain;
                object-position: left center;
            }

            span {
                font-size: 12px;
                font-weight: 700;
                display: block;
                padding: 2.5px 0;
            }
        }
    }

    .product-info {
        margin-top: 8px;
        font-family: var(--font-family);
        font-weight: 400;
        font-size: 14px;
        line-height: 1.25;
        color: var(--main-color-anthracite);
        overflow: hidden;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        height: 2.5em;

        @media (max-width: 639px) {
            grid-column: 2/4;
            grid-row: 2/3;
            -webkit-line-clamp: 4;
            height: unset;
            max-height: 5em;
        }

        a {
            &:after {
                content: "";
                position: absolute;
                z-index: 1;
                width: 100%;
                height: 100%;
                left: 0;
                top: 0;
            }
        }
    }

    .product-price {
        margin-top: 10px;
        display: flex;
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
        height: 32px;
        overflow: hidden;

        @media (max-width: 639px) {
            grid-column: 2/4;
            grid-row: 3/4;
        }

        .price,
        & span {
            font-family: var(--second-family);
            font-weight: 700;
            font-size: 32px;
            line-height: 1;
            color: #232323;
            white-space: nowrap;

            .sold {
                color: #919191;
            }
        }

        .old-price {
            font-size: 16px;
            position: relative;
            color: #919191;
            margin: 8px 7px;

            &:after {
                content: '';
                width: 100%;
                height: 1px;
                position: absolute;
                top: 50%;
                left: 0;
                transform: translateY(-50%);
                background-color: #f00;
            }
        }

        .sale {
            border-radius: 16px;
            padding: 4px 8px;
            background: #f00;
            font-size: 16px;
            color: #fff;
        }
    }

    .product-cashback {
        margin-top: 5px;
        height: 20px;
        min-width: 0;

        @media (max-width: 639px) {
            grid-column: 2/4;
            grid-row: 4/5;
        }

        & > * {
            font-family: var(--second-family);
            font-weight: 700;
            font-size: 16px;
            line-height: 1;
            color: #232323;
        }

        svg {
            margin-top: -3px;
        }

        .product-partner-info {
            border-radius: 16px;
            display: flex;
            background-color: #f0f0f0;
            padding: 2px 10px;
            justify-content: space-between;
            flex-wrap: wrap;
            height: 20px;
            align-content: flex-end;
            overflow: hidden;

            &:before {
                content: attr(data-text);
                position: absolute;
                font-family: var(--font-family);
                font-weight: 600;
                font-size: 10px;
                line-height: 1.6;
                color: #919191;
            }

            span {
                font-family: var(--font-family);
                font-weight: 600;
                font-size: 10px;
                line-height: 1.6;
                color: #919191;
                white-space: nowrap;
                background-color: #f0f0f0;
                z-index: 1;

                &.product-partner-name {
                    padding-left: 20px;
                    background-color: transparent;
                }
            }
        }
    }

    .product-pickup {
        height: 19px;
        margin-top: 10px;

        @media (max-width: 639px) {
            display: none;
        }

        & > * {
            font-weight: 600;
            font-size: 14px;
            line-height: 1;
            color: #919191;

            &.link-pickup {
                font-weight: 400;
                color: #0073e6;
                position: relative;
                z-index: 1;
                transition: color .3s;

                &:hover {
                    color: #f00;
                }
            }
        }
    }

    .button-cart {
        font-size: 12px;
        margin-top: 15px;
        position: relative;
        border: 1px solid #ededed;
        border-radius: 40px;
        padding: 12px 10px;
        height: unset;
        display: flex;
        grid-column: 1 / 2;
        justify-content: center;
        background-color: #fff;

        &[type="submit"] {
            z-index: 1;
            cursor: pointer;
        }

        &:before {
            content: '';
            display: block;
            height: 16px;
            min-width: 16px;
            background-repeat: no-repeat;
            background-size: contain;
            background-position: 50% 50%;
            margin-right: 10px;
            background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIiBmaWxsPSJyZWQiPjxwYXRoIGQ9Ik0xMC42NTggMTQuNzJhMS4zMzYgMS4zMzYgMCAxIDAtMi42NzEtLjAwNyAxLjMzNiAxLjMzNiAwIDAgMCAyLjY3LjAwN3pNNCAxMy4zOGExLjMzNiAxLjMzNiAwIDEgMCAwIDIuNjcyIDEuMzM2IDEuMzM2IDAgMCAwIDAtMi42NzJ6TTQuMDE2IDMuOTQ5di0uNTE0YTIuMTA1IDIuMTA1IDAgMCAwLTIuMTAyLTIuMTAySDB2MS4zNTVoMS45MTRjLjQxMyAwIC43NDguMzM1Ljc0OC43NDh2OC41MjloOS4xMjZjLjkyIDAgMS43MzctLjU5IDIuMDI4LTEuNDYyTDE2IDMuOTQ5SDQuMDE2eiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoMTZ2MTZIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=");
        }

        &:hover {
            background-color: #ededed;
        }

        &.uk-active {
            color: var(--main-color-white);
            background-color: var(--main-color-red);
            box-shadow: inset 0 8px 16px -8px #a70000;
            border: 1px solid var(--main-color-red);
            font-size: 0;

            &:after {
                content: attr(data-alternative);
                font-size: 12px;
            }

            &:before {
                background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTAuNjU4IDE0LjcyYTEuMzM2IDEuMzM2IDAgMSAwLTIuNjcxLS4wMDcgMS4zMzYgMS4zMzYgMCAwIDAgMi42Ny4wMDd6TTQgMTMuMzhhMS4zMzYgMS4zMzYgMCAxIDAgMCAyLjY3MiAxLjMzNiAxLjMzNiAwIDAgMCAwLTIuNjcyek00LjAxNiAzLjk0OXYtLjUxNGEyLjEwNSAyLjEwNSAwIDAgMC0yLjEwMi0yLjEwMkgwdjEuMzU1aDEuOTE0Yy40MTMgMCAuNzQ4LjMzNS43NDguNzQ4djguNTI5aDkuMTI2Yy45MiAwIDEuNzM3LS41OSAyLjAyOC0xLjQ2MkwxNiAzLjk0OUg0LjAxNnoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJtNS41NjUgNi4zMy0uNDkzLS41NjUtMS4xMy45ODYuNDkzLjU2NSAxLjEzLS45ODV6TTcuNzcgMTBsLS41NjUuNDkzYS43NS43NSAwIDAgMCAxLjEzIDBMNy43NyAxMHptNS43OTYtNS41MDdhLjc1Ljc1IDAgMSAwLTEuMTMtLjk4NmwxLjEzLjk4NnptLTkuMTMgMi44MjMgMi43NjkgMy4xNzcgMS4xMy0uOTg2LTIuNzY5LTMuMTc2LTEuMTMuOTg1em0zLjkgMy4xNzcgNS4yMy02LTEuMTMtLjk4Ni01LjIzMSA2IDEuMTMuOTg2eiIgZmlsbD0icmVkIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgxNnYxNkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==");
            }
        }

        &.btn-preorder,
        &.btn-coming-soon {
            border-color: #0079bc;
            background-color: #0079bc;
            color: var(--main-color-white);

            &:before {
                background-image: url("data:image/svg+xml,%3Csvg width='17' height='16' viewBox='0 0 17 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_527_33523)'%3E%3Cpath d='M11.1579 14.7196C11.1597 13.9819 10.5632 13.3824 9.82553 13.3806C9.08789 13.3788 8.48846 13.9754 8.48666 14.7131C8.48486 15.4508 9.08137 16.0503 9.819 16.0521C10.5566 16.0539 11.1561 15.4573 11.1579 14.7196Z' fill='white'/%3E%3Cpath d='M4.49918 13.3801C3.76152 13.3801 3.16357 13.9782 3.16357 14.7159C3.16357 15.4535 3.76152 16.0516 4.49918 16.0516C5.23683 16.0516 5.83478 15.4535 5.83478 14.7159C5.83478 13.9782 5.23683 13.3801 4.49918 13.3801Z' fill='white'/%3E%3Cpath d='M4.51616 3.94877V3.43536C4.51616 2.27646 3.57296 1.33325 2.41392 1.33325H0.5V2.68742H2.41392C2.82662 2.68742 3.16199 3.02279 3.16199 3.43549V11.9647H12.2879C13.2081 11.9647 14.025 11.3758 14.3159 10.5028L16.4999 3.9489L4.51616 3.94877Z' fill='white'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_527_33523'%3E%3Crect width='16' height='16' fill='white' transform='translate(0.5)'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
            }
        }

        &.btn-coming-soon {
            border-color: #F9BC00;
            background-color: #F9BC00;
        }

        @media (max-width: 959px) {
            padding: 5px;
            min-width: unset;
        }

        @media (max-width: 639px) {
            grid-column: 2/4;
            grid-row: 5/6;
        }
    }

    .buttons {
        grid-column: 2 / 3;
        justify-content: flex-end;
        margin-top: 15px;
        position: relative;
        z-index: 1;

        @media (max-width: 959px) {
            & > * {
                height: 30px;
                width: 25px;
            }
        }

        @media (max-width: 639px) {
            grid-column: 3/4;
            grid-row: 1/2;
            height: 19px;
            margin-top: unset;
        }
    }

    @media (min-width: 640px) {
        @media (pointer: fine) {
            &:hover {
                border-color: #f4f4f4;
                box-shadow: 0 4px 16px 0 rgba(230, 230, 230, 0.25);

                .product-photo {
                    &:before {
                        opacity: 1;
                    }
                }

                .product-info {
                    color: var(--main-color-red);
                }
            }
        }
    }

    @media (pointer: coarse) {
        border-color: #f4f4f4;
        box-shadow: 0 4px 16px 0 rgba(230, 230, 230, 0.25);
    }
}