.product-card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    align-items: stretch;
    height: 350px;
    width: 100%;
    cursor: pointer;
}

.product-card.left {
    grid-template-areas: "image content";
}

.product-card.right {
    grid-template-areas: "content image";
}

.product-card .product-image {
    grid-area: image;
    width: 100%;
    height: 100%;
    min-height: 250px;
    border-radius: var(--border-radius-sm);
    overflow: hidden;
    position: relative;
}

.product-card .product-image::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--gradient-primary);
    border-radius: var(--border-radius-sm);
    z-index: 2;
    transform: translateY(100%);
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.product-card:hover .product-image::after {
    transform: translateY(0);
}

.product-card .product-content {
    grid-area: content;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2rem;
    gap: 1rem;
    background-color: var(--color-gray);
    border-radius: var(--border-radius-sm);
    height: 100%;
    z-index: 3;
}

.product-card .product-image img {
    width: 100%;
    height: 100%;
    border-radius: var(--border-radius-sm);
    object-fit: cover;
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.product-card:hover .product-image img {
    transform: scale(1.05);
}

.product-card .product-content .product-title {
    color: var(--color-primary);
}

.product-card .product-content .product-description {
    font-size: var(--font-size-lg);
    text-align: justify;
}

.product-card .product-content .action-buttons {
    display: flex;
    gap: 2rem;
    align-items: center;
}

/* Mobile responsive */
@media (max-width: 768px) {
    .product-card {
        grid-template-columns: 1fr;
        grid-template-areas: "image" "content" !important;
        height: auto !important;
    }

    .product-card.left,
    .product-card.right {
        grid-template-areas: "image" "content";
    }

    .product-card .product-content {
        padding: 1.5rem;
    }
}