@layer common {
    .product-card {
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        border: .3rem solid var(--primary-border-color);
        border-radius: .6rem;

        & > .image {
            text-align: center;
            padding: 1rem;

            img.product {
                max-height: min(40vh, 20rem);
            }
        }

        & > .main {
            display: flex;
            flex-direction: column;
            flex-wrap: nowrap;
            gap: 1rem;
            background-color: #E6E9EC;
            padding: 1rem;
            flex: 1;

            & > .title {
                font-size: 1.4rem;
                color: var(--primary-color);
                flex: 1;
            }

            & > .manufacturer {
                display: flex;
                justify-content: space-between;

                & > .main {
                    display: flex;
                    flex-direction: column;
                    flex-wrap: nowrap;
                    gap: .3rem;

                    .header {
                        font-size: .8rem;
                        font-weight: 700;
                        color: var(--text-color);
                    }

                    .name {
                        font-size: 1.1rem;
                        font-weight: 500;
                        color: var(--primary-color);
                    }
                }

                & > .logo {
                    height: 2.2rem;
                }
            }

            & > .variants {
                display: flex;
                flex-direction: row;
                justify-content: flex-start;
                gap: 1rem;

                .item {
                    display: flex;
                    flex-direction: column;
                    flex-wrap: nowrap;
                    justify-content: center;
                    gap: 0.1rem;
                    align-items: center;
                    border: .3rem solid #D3D8DB;
                    border-radius: .6rem;
                    padding: 1rem 1rem;
                    background-color: white;
                    min-width: 8rem;
                    text-decoration: none;
                    color: var(--primary-color);

                    .quantity {
                        font-weight: 600;
                    }

                    .price {
                    }

                    &:hover {
                        border-color: color-mix(in srgb, #D3D8DB, black 15%);
                    }
                }
            }

            & > .action {
                display: flex;
                flex-direction: row;
                flex-wrap: nowrap;
                justify-content: center;
                border: .3rem solid #9BCAF2;
                border-radius: .5rem;
                padding: .5rem 1rem;
                background-color: #C9E2FD;
                font-weight: 500;
                color: #1B607C;
                text-decoration: none;

                &:hover {
                    border-color: color-mix(in srgb, #9BCAF2, black 15%);
                }
            }
        }
    }
}
