/* ========== Product Card ========== */
.sdz-pcard {
    position: relative;
    display: flex;
    flex-direction: column;
}

/* Image Area */
.sdz-pcard__image-wrap {
    position: relative;
    overflow: hidden;
    background: #f5f5f5;
    aspect-ratio: 3 / 4;
}

.sdz-pcard__image-wrap.is-loading {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: sdz-skeleton 1.5s ease-in-out infinite;
}

.sdz-pcard__image-wrap.is-loading .sdz-pcard__image {
    opacity: 0;
}

@keyframes sdz-skeleton {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.sdz-pcard__image-link {
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.sdz-pcard__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: opacity 0.35s ease;
}

.sdz-pcard__image.is-swapping {
    opacity: 0;
}

/* Discount Badge - top left */
.sdz-pcard__badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: #c00;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    padding: 3px 8px;
    line-height: 1;
    z-index: 2;
}

/* Wishlist - top right */
.sdz-pcard__wishlist {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    display: inline-block;
    cursor: pointer;
    z-index: 2;
    line-height: 0;
}

.sdz-pcard__wishlist svg {
    display: block;
}

.sdz-pcard__wishlist-heart {
    transition: fill 0.2s;
}

.sdz-pcard__wishlist.is-active .sdz-pcard__wishlist-heart {
    fill: black;
    /* Fill the full heart shape instead of outline */
    d: path('M33.9602 17.4967C33.6099 13.6408 30.8806 10.8432 27.4651 10.8432C25.1895 10.8432 23.106 12.0678 21.9337 14.0303C20.7719 12.0424 18.7738 10.8428 16.5347 10.8428C13.1196 10.8428 10.3899 13.6403 10.04 17.4962C10.0124 17.6666 9.89881 18.5629 10.2441 20.0247C10.7416 22.1331 11.8909 24.0509 13.5669 25.5695L21.9281 33.1571L30.4329 25.5699C32.1089 24.0509 33.2582 22.1336 33.7557 20.0247C34.101 18.5634 33.9874 17.667 33.9602 17.4967Z');
}

/* Swatches row */
.sdz-pcard__swatches {
    display: flex;
    gap: 6px;
    margin-top: 10px;
    overflow-x: auto;
    scrollbar-width: none;
}

.sdz-pcard__swatches::-webkit-scrollbar {
    display: none;
}

.sdz-pcard__swatch {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border: 1px solid #d0d0d0;
    border-radius: 50%;
    padding: 1px;
    cursor: pointer;
    background: #fff;
    overflow: hidden;
    transition: border-color 0.2s;
}

.sdz-pcard__swatch:hover,
.sdz-pcard__swatch.is-active {
    border-color: #000;
}

.sdz-pcard__swatch img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Info area */
.sdz-pcard__info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 8px;
}

.sdz-pcard__designer {
    font-size: 12px;
    color: #666;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.sdz-pcard__title {
    font-size: 13px;
    font-weight: 400;
    color: #111;
    text-decoration: none;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.sdz-pcard__title:hover {
    text-decoration: underline;
}

.sdz-pcard__coupon {
    font-size: 12px;
    color: #9F005B;
    font-weight: 500;
}

/* Price */
.sdz-pcard__price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-top: 2px;
}

.sdz-pcard__price-current {
    font-size: 14px;
    font-weight: 600;
    color: #111;
}

.sdz-pcard__price-sale {
    font-size: 14px;
    font-weight: 600;
    color: #c00;
}

.sdz-pcard__price-regular {
    font-size: 13px;
    color: #999;
    text-decoration: line-through;
}
