@layer common {
    .cart-panel {
        display: flex;
        flex-direction: column;
        gap: 1rem;
        border: .3rem solid var(--primary-border-color);
        background-color: var(--primary-background-color);
        border-radius: .6rem;
        padding: 0.5rem 1rem;
        align-items: stretch;
        justify-content: center;

        &.out-of-stock {
            border-color: var(--neutral-border-color);
            background-color: var(--neutral-background-color);
        }

        .product-info {
            display: flex;
            flex-direction: row;
            flex-wrap: nowrap;
            align-items: center;
            gap: 1rem;
            justify-content: space-between;

            img.product {
                max-width: 100%;
                max-height: 5rem;
            }

            .meta {
                flex: 1;

                .quantity {
                    font-size: 1rem;
                    font-weight: 800;
                    text-align: center;
                    color: var(--primary-color);
                }

                .price {
                    font-size: 2.5rem;
                    font-weight: 400;
                    text-align: center;
                    color: var(--primary-color);
                }
            }
        }

        .action-part {
            display: flex;
            justify-content: center;
            flex-direction: column;
            flex-wrap: nowrap;
            align-items: center;

            .added-to-cart {
                display: flex;
                flex-direction: column;
                flex-wrap: nowrap;
                align-items: center;
                gap: .5rem;

                .text {
                    display: flex;
                    align-items: center;
                    gap: 0.6rem;
                    color: var(--primary-color);
                    font-size: 0.9rem;

                    .site-icon.cart {
                        transform: translateY(-1px);
                        background-color: var(--primary-color);
                    }
                }

                .action {
                    display: flex;
                    align-items: center;
                    border-radius: .5rem;
                    color: var(--primary-color);
                    border: 2px solid var(--cart-action-color);
                    padding: .5rem 1rem;
                    gap: .8rem;
                    text-decoration: none;
                    background-color: white;

                    .site-icon.arrow-right {
                        transform: translateY(0);
                        background-color: var(--primary-color);
                    }
                }
            }

            .primary-action {
                width: 100%;
                color: var(--cart-action-text-color);
                font-weight: 600;
                border-radius: .6rem;
                background-color: var(--cart-action-color);
                max-width: 100%;
                padding: .7rem;
                text-align: center;
                text-decoration: none;
                cursor: pointer;

                &.out-of-stock {
                    background-color: var(--neutral-gray-color);
                    cursor: not-allowed;
                }

                &:hover:not(.out-of-stock) {
                    background-color: color-mix(in srgb, var(--cart-action-color), black 10%);
                }
            }
        }
    }
}
