.dc-pps {
    --dc-pps-max-width: 1280px;
    --dc-pps-special-gap: 16px;
    --dc-pps-sale-gap: 16px;
    --dc-pps-heading-gap: 32px;
    --dc-pps-sections-gap: 72px;
    --dc-pps-card-bg: #f7f7f7;
    --dc-pps-card-border: #3A8FDE;
    --dc-pps-card-radius: 24px;
    --dc-pps-image-radius: 16px;
    --dc-pps-card-inset: 8px;
    --dc-pps-content-pad-x: 8px;
    --dc-pps-more-text: #0059ab;
    --dc-pps-more-bg: #fff;
    --dc-pps-more-border: #0059ab;
    --dc-pps-more-icon-bg: #0059ab;
    --dc-pps-more-icon: #fff;
    --dc-pps-more-hover-text: #ffffff;
    --dc-pps-more-hover-bg: #0059ab;
    --dc-pps-more-hover-border: #0059ab;
    --dc-pps-more-hover-icon-bg: #ffffff;
    --dc-pps-more-hover-icon: #0059ab;
    --dc-pps-more-width: 158px;
    --dc-pps-quick-width: 158px;
    --dc-pps-card-hover-border: #0059ab;
    --dc-pps-card-hover-overlay: rgba(1, 17, 57, 0.34);
    --dc-pps-buy-hover-bg: #0059ab;
    --dc-pps-buy-hover-border: #0059ab;
    --dc-pps-buy-hover-text: #ffffff;
    --dc-pps-buy-hover-icon-bg: #ffffff;
    --dc-pps-buy-hover-icon: #0059ab;
    --dc-pps-title-lines: 2;
    --dc-pps-excerpt-lines: 2;
    --dc-pps-badge-bg: #fe0b21;
    --dc-pps-badge-text: #fff;
    --dc-pps-arrow-bg: #fcfcfc;
    --dc-pps-arrow-color: #838383;
    --dc-pps-arrow-size: 56px;
    --dc-pps-special-height: 651px;
    --dc-pps-sale-height: 543px;
    --dc-pps-banner-fit: cover;
    --dc-pps-product-fit: contain;
    width: min(100%, var(--dc-pps-max-width));
    margin-inline: auto;
    color: #011139;
    box-sizing: border-box;
}

.dc-pps,
.dc-pps * {
    box-sizing: border-box;
}

.dc-pps img {
    max-width: 100%;
}

.dc-pps__section + .dc-pps__section {
    margin-top: var(--dc-pps-sections-gap);
}

.dc-pps__section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: var(--dc-pps-heading-gap);
}

.dc-pps__title {
    min-width: 0;
    margin: 0;
    color: #011139;
    font-size: 40px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: -0.025em;
}

.dc-pps__more,
.dc-pps__quick {
    width: var(--dc-pps-more-width);
    min-width: var(--dc-pps-more-width);
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 7px 7px 7px 24px;
    border: 1px solid var(--dc-pps-more-border) !important;
    border-radius: 999px;
    background: var(--dc-pps-more-bg) !important;
    color: var(--dc-pps-more-text) !important;
    text-decoration: none !important;
    box-shadow: none;
    font-size: 14px;
    line-height: 1.2;
    font-weight: 500;
    white-space: nowrap;
    transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, opacity 180ms ease, transform 180ms ease;
}

.dc-pps__quick {
    width: var(--dc-pps-quick-width);
    min-width: var(--dc-pps-quick-width);
}

.dc-pps__more:visited,
.dc-pps__quick:visited,
.dc-pps__more .dc-pps__more-text,
.dc-pps__quick .dc-pps__quick-text {
    color: inherit !important;
}

.dc-pps__more:hover,
.dc-pps__more:focus-visible,
.dc-pps__quick:hover,
.dc-pps__quick:focus-visible {
    color: var(--dc-pps-more-hover-text) !important;
    background: var(--dc-pps-more-hover-bg) !important;
    border-color: var(--dc-pps-more-hover-border) !important;
    text-decoration: none !important;
}

.dc-pps__more:focus-visible,
.dc-pps__buy:focus-visible,
.dc-pps__product-title:focus-visible,
.dc-pps__product-media-link:focus-visible,
.dc-pps__promo-banner:focus-visible,
.dc-pps__carousel-arrow:focus-visible {
    outline: 2px solid rgba(0, 89, 171, 0.3);
    outline-offset: 3px;
}

.dc-pps__more:hover .dc-pps__more-icon,
.dc-pps__more:focus-visible .dc-pps__more-icon,
.dc-pps__quick:hover .dc-pps__quick-icon,
.dc-pps__quick:focus-visible .dc-pps__quick-icon {
    background: var(--dc-pps-more-hover-icon-bg) !important;
    color: var(--dc-pps-more-hover-icon) !important;
}

.dc-pps__more-icon,
.dc-pps__quick-icon {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--dc-pps-more-icon-bg) !important;
    color: var(--dc-pps-more-icon) !important;
    transition: color 180ms ease, background-color 180ms ease;
}

.dc-pps__more-icon svg,
.dc-pps__quick-icon svg {
    width: 14px;
    height: 14px;
    display: block;
}

.dc-pps__more-icon > svg:not([fill]),
.dc-pps__more-icon > svg[fill="none"],
.dc-pps__quick-icon > svg:not([fill]),
.dc-pps__quick-icon > svg[fill="none"] {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dc-pps__more-icon i,
.dc-pps__quick-icon i {
    color: currentColor;
    font-size: 14px;
}

.dc-pps__special-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--dc-pps-special-gap);
    align-items: stretch;
}

.dc-pps__promo-banner {
    width: 100%;
    min-width: 0;
    height: var(--dc-pps-special-height);
    display: block;
    overflow: hidden;
    border-radius: var(--dc-pps-card-radius);
    background: #f7f7f7;
    text-decoration: none;
}

.dc-pps__promo-banner img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: var(--dc-pps-banner-fit);
    object-position: center;
}

.dc-pps__product-card {
    position: relative;
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow: visible;
    border: 2px solid var(--dc-pps-card-border);
    border-radius: var(--dc-pps-card-radius);
    background: var(--dc-pps-card-bg);
    color: #181818;
    transition: border-color 180ms ease, box-shadow 180ms ease;
}

.dc-pps__product-card:hover,
.dc-pps__product-card:focus-within {
    border-color: var(--dc-pps-card-hover-border);
}

.dc-pps__product-card--special {
    min-height: var(--dc-pps-special-height);
}

.dc-pps__product-card--sale {
    min-height: var(--dc-pps-sale-height);
    scroll-snap-align: start;
}

.dc-pps__product-media {
    position: relative;
    width: calc(100% - (var(--dc-pps-card-inset) * 2));
    aspect-ratio: 1 / 1;
    flex: 0 0 auto;
    display: block;
    overflow: hidden;
    margin: var(--dc-pps-card-inset) var(--dc-pps-card-inset) 0;
    border-radius: var(--dc-pps-image-radius);
    background: #fff;
}

.dc-pps__product-media-link {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    text-decoration: none;
}

.dc-pps__product-media::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 2;
    background: var(--dc-pps-card-hover-overlay);
    opacity: 0;
    transition: opacity 180ms ease;
    pointer-events: none;
}

.dc-pps__quick-wrap {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    pointer-events: none;
}

.dc-pps__quick {
    opacity: 0;
    transform: translateY(10px);
    pointer-events: auto;
}

.dc-pps__product-card:hover .dc-pps__product-media::after,
.dc-pps__product-card:focus-within .dc-pps__product-media::after {
    opacity: 1;
}

.dc-pps__product-card:hover .dc-pps__quick,
.dc-pps__product-card:focus-within .dc-pps__quick {
    opacity: 1;
    transform: translateY(0);
}

.dc-pps__product-media img,
.dc-pps__product-img {
    width: 100% !important;
    height: 100% !important;
    display: block;
    object-fit: var(--dc-pps-product-fit);
    object-position: center;
}

.dc-pps__product-content {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    padding: 16px calc(var(--dc-pps-card-inset) + var(--dc-pps-content-pad-x)) 18px;
}

.dc-pps__product-card--sale .dc-pps__product-content {
    padding-top: 18px;
}

.dc-pps__product-title {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--dc-pps-title-lines);
    color: #181818;
    text-decoration: none;
    font-size: 16px;
    line-height: 1.4;
    font-weight: 600;
}

.dc-pps__product-title:visited {
    color: #181818;
}

.dc-pps__product-title:hover {
    color: #0059ab;
    text-decoration: none;
}

.dc-pps__excerpt {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--dc-pps-excerpt-lines);
    margin-top: 8px;
    color: #8b8b8b;
    font-size: 14px;
    line-height: 1.45;
    font-weight: 400;
}

.dc-pps__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 12px;
    margin-top: 14px;
    color: #0059ab;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 700;
}

.dc-pps__price ins,
.dc-pps__price del {
    display: inline-flex;
    text-decoration-thickness: 1px;
}

.dc-pps__price ins {
    order: 1;
    color: #0059ab;
    text-decoration: none;
}

.dc-pps__price del {
    order: 2;
    color: #8b8b8b;
    font-size: 16px;
    font-weight: 500;
    opacity: 1;
}

.dc-pps__price > .woocommerce-Price-amount {
    color: #0059ab;
}

.dc-pps__price .woocommerce-Price-currencySymbol {
    font-size: 0.62em;
    vertical-align: super;
}

.dc-pps__buy {
    width: fit-content;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    padding-top: 16px;
    color: #0059ab;
    text-decoration: none;
    font-size: 14px;
    line-height: 1.2;
    font-weight: 500;
}

.dc-pps__buy:visited,
.dc-pps__buy:hover,
.dc-pps__buy:focus-visible {
    color: #0059ab;
    text-decoration: none;
}

.dc-pps__buy > span:first-child {
    color: inherit !important;
}

.dc-pps__buy-icon {
    color: inherit;
    transition: color 180ms ease, background-color 180ms ease;
}

.dc-pps__product-card:hover .dc-pps__buy,
.dc-pps__product-card:focus-within .dc-pps__buy {
    width: 100%;
    min-height: 38px;
    justify-content: space-between;
    gap: 10px;
    margin-top: 16px;
    padding: 4px 6px 4px 16px;
    border: 1px solid var(--dc-pps-buy-hover-border) !important;
    border-radius: 999px;
    background: var(--dc-pps-buy-hover-bg) !important;
    color: var(--dc-pps-buy-hover-text) !important;
}

.dc-pps__product-card:hover .dc-pps__buy:visited,
.dc-pps__product-card:focus-within .dc-pps__buy:visited,
.dc-pps__product-card:hover .dc-pps__buy:hover,
.dc-pps__product-card:focus-within .dc-pps__buy:hover,
.dc-pps__product-card:hover .dc-pps__buy:focus-visible,
.dc-pps__product-card:focus-within .dc-pps__buy:focus-visible {
    color: var(--dc-pps-buy-hover-text) !important;
    text-decoration: none !important;
}

.dc-pps__product-card:hover .dc-pps__buy-icon,
.dc-pps__product-card:focus-within .dc-pps__buy-icon {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--dc-pps-buy-hover-icon-bg) !important;
    color: var(--dc-pps-buy-hover-icon) !important;
}

.dc-pps__product-card:hover .dc-pps__buy-icon svg,
.dc-pps__product-card:focus-within .dc-pps__buy-icon svg {
    width: 16px;
    height: 16px;
}

.dc-pps__buy-icon {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.dc-pps__buy-icon svg {
    width: 18px;
    height: 18px;
    display: block;
}

.dc-pps__buy-icon > svg:not([fill]),
.dc-pps__buy-icon > svg[fill="none"] {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dc-pps__buy-icon i {
    color: currentColor;
    font-size: 16px;
}

.dc-pps__badge {
    position: absolute;
    z-index: 3;
    top: 32px;
    right: -9px;
    min-width: 90px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    border-radius: 12px 12px 0 12px;
    background: var(--dc-pps-badge-bg);
    color: var(--dc-pps-badge-text);
    font-size: 16px;
    line-height: 1;
    font-weight: 500;
    pointer-events: none;
}

.dc-pps__badge::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -9px;
    width: 0;
    height: 0;
    border-top: 9px solid #77010b;
    border-right: 9px solid transparent;
}

.dc-pps__carousel-wrap {
    position: relative;
}

.dc-pps__sale-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - (var(--dc-pps-sale-gap) * 3)) / 4);
    gap: var(--dc-pps-sale-gap);
    overflow-x: auto;
    overflow-y: visible;
    padding: 0;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

.dc-pps__sale-track::-webkit-scrollbar {
    display: none;
}

.dc-pps__carousel-arrow {
    position: absolute;
    z-index: 6;
    top: 50%;
    width: var(--dc-pps-arrow-size);
    height: var(--dc-pps-arrow-size);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: 50%;
    background: var(--dc-pps-arrow-bg);
    color: var(--dc-pps-arrow-color);
    box-shadow: 0 2px 21px rgba(0, 0, 0, 0.12);
    transform: translateY(-50%);
    cursor: pointer;
    appearance: none;
}

.dc-pps__carousel-arrow--prev {
    left: calc(var(--dc-pps-arrow-size) * -0.7143);
}

.dc-pps__carousel-arrow--next {
    right: calc(var(--dc-pps-arrow-size) * -0.7143);
}

.dc-pps__carousel-arrow svg {
    width: 18px;
    height: 18px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dc-pps__carousel-arrow:hover {
    color: #0059ab;
}

.dc-pps__carousel-arrow:disabled {
    opacity: 0.35;
    cursor: default;
}

.dc-pps__editor-note,
.dc-pps--missing-wc {
    width: 100%;
    padding: 18px;
    border: 1px dashed #c9ced6;
    border-radius: 12px;
    background: #f7f8fa;
    color: #5f6875;
    font-size: 14px;
    line-height: 1.5;
}

@media (max-width: 1100px) {
    .dc-pps {
        width: min(100%, calc(100vw - 48px));
    }

    .dc-pps__promo-banner,
    .dc-pps__product-card--special {
        height: var(--dc-pps-special-height);
        min-height: var(--dc-pps-special-height);
    }

    .dc-pps__product-card--special .dc-pps__product-media {
        flex: 0 0 auto;
    }

    .dc-pps__product-card--special .dc-pps__product-content {
        min-height: 0;
    }

    .dc-pps__sale-track {
        grid-auto-columns: calc((100% - (var(--dc-pps-sale-gap) * 2)) / 3);
    }

    .dc-pps__carousel-arrow--prev {
        left: calc(var(--dc-pps-arrow-size) * -0.35);
    }

    .dc-pps__carousel-arrow--next {
        right: calc(var(--dc-pps-arrow-size) * -0.35);
    }
}

@media (max-width: 900px) {
    .dc-pps__title {
        font-size: clamp(30px, 4.7vw, 38px);
    }

    .dc-pps__special-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .dc-pps__product-content {
        padding-top: 12px;
        padding-bottom: 14px;
    }

    .dc-pps__product-title {
        font-size: 14px;
    }

    .dc-pps__excerpt {
        font-size: 12px;
    }

    .dc-pps__price {
        gap: 8px;
        font-size: 20px;
    }

    .dc-pps__price del {
        font-size: 14px;
    }

    .dc-pps__sale-track {
        grid-auto-columns: calc((100% - var(--dc-pps-sale-gap)) / 2);
    }
}

@media (max-width: 767px) {
    .dc-pps {
        width: 100%;
        max-width: 100%;
        --dc-pps-heading-gap: 20px;
        --dc-pps-sections-gap: 48px;
        --dc-pps-special-gap: 14px;
        --dc-pps-sale-gap: 14px;
    }

    .dc-pps__section-head {
        gap: 12px;
    }

    .dc-pps__title {
        font-size: clamp(27px, 8.2vw, 34px);
        line-height: 1.18;
    }

    .dc-pps__more {
        width: auto;
        min-width: 116px;
        height: 42px;
        padding: 5px 5px 5px 16px;
        font-size: 12px;
    }

    .dc-pps__more-icon {
        width: 30px;
        height: 30px;
        flex-basis: 30px;
    }

    .dc-pps__special-grid {
        display: flex;
        gap: var(--dc-pps-special-gap);
        overflow-x: auto;
        padding-bottom: 4px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    .dc-pps__special-grid::-webkit-scrollbar {
        display: none;
    }

    .dc-pps__promo-banner,
    .dc-pps__product-card--special {
        width: min(84vw, 360px);
        min-width: min(84vw, 360px);
        flex: 0 0 min(84vw, 360px);
        height: var(--dc-pps-special-height);
        min-height: var(--dc-pps-special-height);
        scroll-snap-align: start;
    }

    .dc-pps__product-card--special .dc-pps__product-title {
        font-size: 15px;
    }

    .dc-pps__product-card--special .dc-pps__excerpt {
        font-size: 13px;
    }

    .dc-pps__product-card--special .dc-pps__price {
        font-size: 22px;
    }

    .dc-pps__sale-track {
        grid-auto-columns: min(82vw, 330px);
        scroll-padding-left: 0;
    }

    .dc-pps__carousel-arrow {
        display: none;
    }

    .dc-pps__badge {
        right: -6px;
    }
}

@media (max-width: 420px) {
    .dc-pps__section-head {
        align-items: flex-start;
    }

    .dc-pps__more {
        min-width: 104px;
        padding-left: 13px;
    }

    .dc-pps__title {
        font-size: 28px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dc-pps__more,
    .dc-pps__sale-track,
    .dc-pps__special-grid {
        scroll-behavior: auto;
        transition: none;
    }
}

/* Public widget: DC Special Promotion Products */
.dc-spp {
    --dc-spp-max-width: 1280px;
    --dc-spp-gap: 16px;
    --dc-spp-heading-gap: 32px;
    --dc-spp-head-gap: 24px;
    --dc-spp-card-height: 651px;
    --dc-spp-banner-fit: cover;
    --dc-spp-product-fit: contain;
    --dc-spp-product-position: center;
    --dc-spp-media-aspect: 1 / 1;
    --dc-spp-banner-bg: #f7f7f7;
    --dc-spp-banner-radius: 24px;
    --dc-spp-card-bg: #f7f7f7;
    --dc-spp-card-border: #3A8FDE;
    --dc-spp-card-hover-border: #0059ab;
    --dc-spp-card-border-width: 2px;
    --dc-spp-card-hover-overlay: rgba(0,0,0,.40);
    --dc-spp-card-radius: 24px;
    --dc-spp-image-radius: 16px;
    --dc-spp-media-bg: #fff;
    --dc-spp-card-inset: 8px;
    --dc-spp-content-pad-x: 8px;
    --dc-spp-content-pt: 16px;
    --dc-spp-content-pb: 18px;
    --dc-spp-title-lines: 2;
    --dc-spp-title-hover: #0059ab;
    --dc-spp-title-mb: 10px;
    --dc-spp-excerpt-lines: 2;
    --dc-spp-excerpt-mb: 12px;
    --dc-spp-price-gap: 22px;
    --dc-spp-price-mb: 12px;
    --dc-spp-transition: 280ms;

    --dc-spp-more-width: 158px;
    --dc-spp-more-height: 48px;
    --dc-spp-more-border-width: 1px;
    --dc-spp-more-radius: 24px;
    --dc-spp-more-gap: 10px;
    --dc-spp-more-pt: 7px;
    --dc-spp-more-pr: 7px;
    --dc-spp-more-pb: 7px;
    --dc-spp-more-pl: 24px;
    --dc-spp-more-text: #0059ab;
    --dc-spp-more-bg: #fff;
    --dc-spp-more-border: #0059ab;
    --dc-spp-more-icon-bg: #0059ab;
    --dc-spp-more-icon: #fff;
    --dc-spp-more-hover-text: #fff;
    --dc-spp-more-hover-bg: #0059ab;
    --dc-spp-more-hover-border: #0059ab;
    --dc-spp-more-hover-icon-bg: #fff;
    --dc-spp-more-hover-icon: #0059ab;
    --dc-spp-more-icon-circle: 32px;
    --dc-spp-more-icon-size: 14px;

    --dc-spp-quick-width: 164px;
    --dc-spp-quick-height: 48px;
    --dc-spp-quick-border-width: 1px;
    --dc-spp-quick-radius: 24px;
    --dc-spp-quick-gap: 14px;
    --dc-spp-quick-pt: 5px;
    --dc-spp-quick-pr: 5px;
    --dc-spp-quick-pb: 5px;
    --dc-spp-quick-pl: 22px;
    --dc-spp-quick-bg: #fff;
    --dc-spp-quick-text: #0059ab;
    --dc-spp-quick-border: #0059ab;
    --dc-spp-quick-icon-bg: #0059ab;
    --dc-spp-quick-icon: #fff;
    --dc-spp-quick-hover-bg: #fff;
    --dc-spp-quick-hover-text: #0059ab;
    --dc-spp-quick-hover-border: #0059ab;
    --dc-spp-quick-hover-icon-bg: #0059ab;
    --dc-spp-quick-hover-icon: #fff;
    --dc-spp-quick-icon-circle: 38px;
    --dc-spp-quick-icon-size: 16px;

    --dc-spp-buy-height: 42px;
    --dc-spp-buy-radius: 24px;
    --dc-spp-buy-border-width: 0px;
    --dc-spp-buy-pad-x: 8px;
    --dc-spp-buy-text-gap: 10px;
    --dc-spp-buy-hover-shift: 16px;
    --dc-spp-buy-color: #0059ab;
    --dc-spp-buy-bg: rgba(255,255,255,0);
    --dc-spp-buy-border: rgba(0,0,0,0);
    --dc-spp-buy-icon-bg: rgba(255,255,255,0);
    --dc-spp-buy-icon: #0059ab;
    --dc-spp-buy-hover-bg: #0068c8;
    --dc-spp-buy-hover-border: #0068c8;
    --dc-spp-buy-hover-text: #fff;
    --dc-spp-buy-hover-icon-bg: #fff;
    --dc-spp-buy-hover-icon: #0068c8;
    --dc-spp-buy-icon-circle: 30px;
    --dc-spp-buy-icon-size: 12px;

    --dc-spp-badge-bg: #fe0b21;
    --dc-spp-badge-text: #fff;
    --dc-spp-badge-fold: #77010b;
    --dc-spp-badge-width: 90px;
    --dc-spp-badge-height: 48px;
    --dc-spp-badge-top: 32px;
    --dc-spp-badge-right: -9px;
    --dc-spp-badge-pad-x: 18px;
    --dc-spp-badge-fold-size: 9px;
    --dc-spp-badge-fold-height: 5px;
    --dc-spp-badge-rtl: 12px;
    --dc-spp-badge-rtr: 12px;
    --dc-spp-badge-rbr: 0px;
    --dc-spp-badge-rbl: 12px;

    width: min(100%, var(--dc-spp-max-width));
    margin-inline: auto;
    color: #011139;
    box-sizing: border-box;
}

.dc-spp,
.dc-spp * { box-sizing: border-box; }
.dc-spp img { max-width: 100%; }

.dc-spp__section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--dc-spp-head-gap);
    margin-bottom: var(--dc-spp-heading-gap);
}

.dc-spp__title {
    min-width: 0;
    margin: 0;
    color: #011139;
    font-size: 40px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: -.025em;
}

.dc-spp__more,
.dc-spp a.dc-spp__more,
.dc-spp a.dc-spp__more:visited {
    width: var(--dc-spp-more-width);
    min-width: var(--dc-spp-more-width);
    height: var(--dc-spp-more-height);
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--dc-spp-more-gap);
    padding: var(--dc-spp-more-pt) var(--dc-spp-more-pr) var(--dc-spp-more-pb) var(--dc-spp-more-pl);
    border: var(--dc-spp-more-border-width) solid var(--dc-spp-more-border) !important;
    border-radius: var(--dc-spp-more-radius);
    background: var(--dc-spp-more-bg) !important;
    color: var(--dc-spp-more-text) !important;
    box-shadow: none !important;
    text-decoration: none !important;
    white-space: nowrap;
    transition: color var(--dc-spp-transition) ease, background-color var(--dc-spp-transition) ease, border-color var(--dc-spp-transition) ease;
}
.dc-spp__more-text { color: inherit !important; }
.dc-spp__more:hover,
.dc-spp__more:focus-visible {
    border-color: var(--dc-spp-more-hover-border) !important;
    background: var(--dc-spp-more-hover-bg) !important;
    color: var(--dc-spp-more-hover-text) !important;
}
.dc-spp__more-icon {
    width: var(--dc-spp-more-icon-circle);
    height: var(--dc-spp-more-icon-circle);
    flex: 0 0 var(--dc-spp-more-icon-circle);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--dc-spp-more-icon-bg) !important;
    color: var(--dc-spp-more-icon) !important;
    font-size: var(--dc-spp-more-icon-size);
    transition: color var(--dc-spp-transition) ease, background-color var(--dc-spp-transition) ease;
}
.dc-spp__more:hover .dc-spp__more-icon,
.dc-spp__more:focus-visible .dc-spp__more-icon {
    background: var(--dc-spp-more-hover-icon-bg) !important;
    color: var(--dc-spp-more-hover-icon) !important;
}

.dc-spp__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--dc-spp-gap);
    align-items: stretch;
}
.dc-spp__promo-banner {
    width: 100%;
    min-width: 0;
    height: var(--dc-spp-card-height);
    display: block;
    overflow: hidden;
    border-radius: var(--dc-spp-banner-radius);
    background: var(--dc-spp-banner-bg);
    text-decoration: none;
}
.dc-spp__promo-banner img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: var(--dc-spp-banner-fit);
    object-position: center;
}

.dc-spp__product-card {
    position: relative;
    min-width: 0;
    min-height: var(--dc-spp-card-height);
    display: flex;
    flex-direction: column;
    overflow: visible;
    border: var(--dc-spp-card-border-width) solid var(--dc-spp-card-border);
    border-radius: var(--dc-spp-card-radius);
    background: var(--dc-spp-card-bg);
    color: #181818;
    transition: border-color var(--dc-spp-transition) ease, box-shadow var(--dc-spp-transition) ease;
}
.dc-spp__product-media {
    position: relative;
    width: calc(100% - (var(--dc-spp-card-inset) * 2));
    aspect-ratio: var(--dc-spp-media-aspect);
    flex: 0 0 auto;
    overflow: hidden;
    margin: var(--dc-spp-card-inset) var(--dc-spp-card-inset) 0;
    border-radius: var(--dc-spp-image-radius);
    background: var(--dc-spp-media-bg);
}
.dc-spp__product-media-link {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    text-decoration: none;
}
.dc-spp__product-media::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 2;
    background: var(--dc-spp-card-hover-overlay);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--dc-spp-transition) ease;
}
.dc-spp__product-media img,
.dc-spp__product-img {
    width: 100% !important;
    height: 100% !important;
    display: block;
    object-fit: var(--dc-spp-product-fit);
    object-position: var(--dc-spp-product-position);
}

.dc-spp__quick-wrap {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    pointer-events: none;
}
.dc-spp__quick,
.dc-spp a.dc-spp__quick,
.dc-spp a.dc-spp__quick:visited {
    width: var(--dc-spp-quick-width);
    min-width: var(--dc-spp-quick-width);
    height: var(--dc-spp-quick-height);
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--dc-spp-quick-gap);
    padding: var(--dc-spp-quick-pt) var(--dc-spp-quick-pr) var(--dc-spp-quick-pb) var(--dc-spp-quick-pl);
    border: var(--dc-spp-quick-border-width) solid var(--dc-spp-quick-border) !important;
    border-radius: var(--dc-spp-quick-radius);
    background: var(--dc-spp-quick-bg) !important;
    color: var(--dc-spp-quick-text) !important;
    box-shadow: none !important;
    text-decoration: none !important;
    white-space: nowrap;
    opacity: 0;
    transform: translateY(10px);
    pointer-events: auto;
    transition: opacity var(--dc-spp-transition) ease, transform var(--dc-spp-transition) cubic-bezier(.22,.61,.36,1), color var(--dc-spp-transition) ease, background-color var(--dc-spp-transition) ease, border-color var(--dc-spp-transition) ease;
}
.dc-spp__quick-text { color: inherit !important; }
.dc-spp__quick:hover,
.dc-spp__quick:focus-visible {
    border-color: var(--dc-spp-quick-hover-border) !important;
    background: var(--dc-spp-quick-hover-bg) !important;
    color: var(--dc-spp-quick-hover-text) !important;
}
.dc-spp__quick-icon {
    width: var(--dc-spp-quick-icon-circle);
    height: var(--dc-spp-quick-icon-circle);
    flex: 0 0 var(--dc-spp-quick-icon-circle);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--dc-spp-quick-icon-bg) !important;
    color: var(--dc-spp-quick-icon) !important;
    font-size: var(--dc-spp-quick-icon-size);
    transition: color var(--dc-spp-transition) ease, background-color var(--dc-spp-transition) ease;
}
.dc-spp__quick:hover .dc-spp__quick-icon,
.dc-spp__quick:focus-visible .dc-spp__quick-icon {
    background: var(--dc-spp-quick-hover-icon-bg) !important;
    color: var(--dc-spp-quick-hover-icon) !important;
}

.dc-spp__product-content {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    padding: var(--dc-spp-content-pt) calc(var(--dc-spp-card-inset) + var(--dc-spp-content-pad-x)) var(--dc-spp-content-pb);
}
.dc-spp__product-title {
    display: -webkit-box;
    margin: 0 0 var(--dc-spp-title-mb);
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--dc-spp-title-lines);
    color: #181818;
    text-decoration: none;
}
.dc-spp__product-title:visited { color: inherit; }
.dc-spp__product-title:hover,
.dc-spp__product-title:focus-visible { color: var(--dc-spp-title-hover); text-decoration: none; }
.dc-spp__excerpt {
    display: -webkit-box;
    margin: 0 0 var(--dc-spp-excerpt-mb);
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--dc-spp-excerpt-lines);
    color: #8b8b8b;
}
.dc-spp__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--dc-spp-price-gap);
    min-width: 0;
    margin: 0 0 var(--dc-spp-price-mb);
    color: #0059ab;
}
.dc-spp__price ins,
.dc-spp__price del { display: inline-flex; background: transparent; text-decoration-thickness: 1px; }
.dc-spp__price ins { order: 1; color: #0059ab; text-decoration: none; }
.dc-spp__price del { order: 2; color: #8b8b8b; opacity: 1; }
.dc-spp__price > .woocommerce-Price-amount { color: #0059ab; }
.dc-spp__price .woocommerce-Price-currencySymbol { font-size: 62%; vertical-align: super; }

.dc-spp__buy,
.dc-spp a.dc-spp__buy,
.dc-spp a.dc-spp__buy:visited {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    min-height: var(--dc-spp-buy-height);
    height: var(--dc-spp-buy-height);
    margin-top: auto;
    padding: 0 var(--dc-spp-buy-pad-x);
    overflow: hidden;
    isolation: isolate;
    border: var(--dc-spp-buy-border-width) solid var(--dc-spp-buy-border) !important;
    border-radius: var(--dc-spp-buy-radius);
    background: var(--dc-spp-buy-bg) !important;
    color: var(--dc-spp-buy-color) !important;
    box-shadow: none !important;
    text-decoration: none !important;
}
.dc-spp__buy::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background: var(--dc-spp-buy-hover-bg);
    opacity: 0;
    transform: scaleX(.18);
    transform-origin: left center;
    transition: opacity var(--dc-spp-transition) ease, transform var(--dc-spp-transition) cubic-bezier(.22,.61,.36,1);
}
.dc-spp__buy-text {
    position: relative;
    z-index: 1;
    display: inline-block;
    flex: 0 0 auto;
    margin-right: var(--dc-spp-buy-text-gap);
    color: inherit !important;
    transform: translateX(0);
    transition: color var(--dc-spp-transition) ease, transform var(--dc-spp-transition) cubic-bezier(.22,.61,.36,1), flex-grow var(--dc-spp-transition) cubic-bezier(.22,.61,.36,1);
}
.dc-spp__buy-icon {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--dc-spp-buy-icon-circle);
    height: var(--dc-spp-buy-icon-circle);
    flex: 0 0 var(--dc-spp-buy-icon-circle);
    border-radius: 50%;
    background: var(--dc-spp-buy-icon-bg) !important;
    color: var(--dc-spp-buy-icon) !important;
    font-size: var(--dc-spp-buy-icon-size);
    transition: background-color var(--dc-spp-transition) ease, color var(--dc-spp-transition) ease;
}

.dc-spp__badge {
    position: absolute;
    z-index: 4;
    top: var(--dc-spp-badge-top);
    right: var(--dc-spp-badge-right);
    width: var(--dc-spp-badge-width);
    min-width: 0;
    height: var(--dc-spp-badge-height);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 var(--dc-spp-badge-pad-x);
    overflow: visible;
    border-radius: var(--dc-spp-badge-rtl) var(--dc-spp-badge-rtr) var(--dc-spp-badge-rbr) var(--dc-spp-badge-rbl);
    background: var(--dc-spp-badge-bg);
    color: var(--dc-spp-badge-text);
    line-height: 1;
    white-space: nowrap;
}
.dc-spp__badge::after {
    content: '';
    position: absolute;
    right: 0;
    top: 100%;
    width: var(--dc-spp-badge-fold-size);
    height: var(--dc-spp-badge-fold-height);
    background: var(--dc-spp-badge-fold);
    clip-path: polygon(0 0, 100% 0, 0 100%);
    pointer-events: none;
}

.dc-spp__more-icon svg,
.dc-spp__more-icon i,
.dc-spp__quick-icon svg,
.dc-spp__quick-icon i,
.dc-spp__buy-icon svg,
.dc-spp__buy-icon i {
    display: block;
    width: 1em;
    height: 1em;
    color: currentColor;
    font-size: 1em;
}
.dc-spp__more-icon > svg:not([fill]),
.dc-spp__more-icon > svg[fill='none'],
.dc-spp__quick-icon > svg:not([fill]),
.dc-spp__quick-icon > svg[fill='none'],
.dc-spp__buy-icon > svg:not([fill]),
.dc-spp__buy-icon > svg[fill='none'] {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.dc-spp__icon--custom svg { color: currentColor !important; }
.dc-spp__icon--custom svg[fill]:not([fill='none']),
.dc-spp__icon--custom svg [fill]:not([fill='none']) { fill: currentColor !important; }
.dc-spp__icon--custom svg[stroke]:not([stroke='none']),
.dc-spp__icon--custom svg [stroke]:not([stroke='none']) { stroke: currentColor !important; }

.dc-spp__more:focus-visible,
.dc-spp__quick:focus-visible,
.dc-spp__buy:focus-visible,
.dc-spp__product-title:focus-visible,
.dc-spp__product-media-link:focus-visible,
.dc-spp__promo-banner:focus-visible {
    outline: 2px solid var(--dc-spp-card-hover-border);
    outline-offset: 2px;
}

@media (hover:hover) and (pointer:fine) {
    .dc-spp__product-card:hover,
    .dc-spp__product-card:focus-within { border-color: var(--dc-spp-card-hover-border); }
    .dc-spp__product-card:hover .dc-spp__product-media::after,
    .dc-spp__product-card:focus-within .dc-spp__product-media::after { opacity: 1; }
    .dc-spp__product-card:hover .dc-spp__quick,
    .dc-spp__product-card:focus-within .dc-spp__quick { opacity: 1; transform: translateY(0); }
    .dc-spp__product-card:hover .dc-spp__buy,
    .dc-spp__product-card:focus-within .dc-spp__buy {
        color: var(--dc-spp-buy-hover-text) !important;
        border-color: var(--dc-spp-buy-hover-border) !important;
    }
    .dc-spp__product-card:hover .dc-spp__buy::before,
    .dc-spp__product-card:focus-within .dc-spp__buy::before { opacity: 1; transform: scaleX(1); }
    .dc-spp__product-card:hover .dc-spp__buy-text,
    .dc-spp__product-card:focus-within .dc-spp__buy-text { flex-grow: 1; transform: translateX(var(--dc-spp-buy-hover-shift)); }
    .dc-spp__product-card:hover .dc-spp__buy-icon,
    .dc-spp__product-card:focus-within .dc-spp__buy-icon {
        background: var(--dc-spp-buy-hover-icon-bg) !important;
        color: var(--dc-spp-buy-hover-icon) !important;
    }
}

.dc-spp__editor-note,
.dc-spp--missing-wc {
    padding: 20px;
    border: 1px dashed rgba(0,89,171,.25);
    border-radius: 16px;
    background: rgba(194,226,255,.22);
    color: #011139;
}

@media (max-width:1024px) {
    .dc-spp__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .dc-spp__promo-banner { grid-column: 1/-1; }
}
@media (max-width:767px) {
    .dc-spp__section-head { flex-direction: column; align-items: stretch; }
    .dc-spp__more { align-self: flex-start; }
    .dc-spp__grid { grid-template-columns: minmax(0,1fr); }
    .dc-spp__product-card { min-height: 0; }
    .dc-spp__quick-wrap { padding: 16px; }
    .dc-spp__quick { opacity: 1; transform: none; }
    .dc-spp__product-media::after { opacity: .08; }
    .dc-spp__buy,
    .dc-spp a.dc-spp__buy,
    .dc-spp a.dc-spp__buy:visited { color: var(--dc-spp-buy-hover-text) !important; border-color: var(--dc-spp-buy-hover-border) !important; }
    .dc-spp__buy::before { opacity: 1; transform: scaleX(1); }
    .dc-spp__buy-text { flex-grow: 1; transform: translateX(var(--dc-spp-buy-hover-shift)); }
    .dc-spp__buy-icon { background: var(--dc-spp-buy-hover-icon-bg) !important; color: var(--dc-spp-buy-hover-icon) !important; }
}

/* Public widget: DC Sale Products Carousel */
.dc-spc {
    --dc-spc-max-width: 1280px;
    --dc-spc-heading-gap: 32px;
    --dc-spc-head-gap: 24px;
    --dc-spc-gap: 16px;
    --dc-spc-card-width: 308px;
    --dc-spc-card-height: 543px;
    --dc-spc-card-bg: #f7f7f7;
    --dc-spc-card-border: #3A8FDE;
    --dc-spc-card-hover-border: #0b78d0;
    --dc-spc-card-border-width: 2px;
    --dc-spc-overlay: rgba(0,0,0,.40);
    --dc-spc-card-radius: 24px;
    --dc-spc-image-radius: 16px;
    --dc-spc-media-bg: #fff;
    --dc-spc-card-inset: 8px;
    --dc-spc-content-pad-x: 8px;
    --dc-spc-content-pt: 16px;
    --dc-spc-content-pb: 18px;
    --dc-spc-product-fit: contain;
    --dc-spc-product-position: center;
    --dc-spc-media-aspect: 1 / 1;
    --dc-spc-title-lines: 2;
    --dc-spc-title-hover: #0059ab;
    --dc-spc-title-mb: 10px;
    --dc-spc-excerpt-lines: 2;
    --dc-spc-excerpt-mb: 12px;
    --dc-spc-price-gap: 22px;
    --dc-spc-price-mb: 12px;
    --dc-spc-transition: 280ms;

    --dc-spc-more-width: 158px;
    --dc-spc-more-height: 48px;
    --dc-spc-more-border-width: 1px;
    --dc-spc-more-radius: 24px;
    --dc-spc-more-gap: 10px;
    --dc-spc-more-pt: 7px;
    --dc-spc-more-pr: 7px;
    --dc-spc-more-pb: 7px;
    --dc-spc-more-pl: 24px;
    --dc-spc-more-text: #0059ab;
    --dc-spc-more-bg: #fff;
    --dc-spc-more-border: #0059ab;
    --dc-spc-more-icon-bg: #0059ab;
    --dc-spc-more-icon: #fff;
    --dc-spc-more-hover-text: #fff;
    --dc-spc-more-hover-bg: #0059ab;
    --dc-spc-more-hover-border: #0059ab;
    --dc-spc-more-hover-icon-bg: #fff;
    --dc-spc-more-hover-icon: #0059ab;
    --dc-spc-more-icon-circle: 32px;
    --dc-spc-more-icon-size: 14px;

    --dc-spc-quick-width: 164px;
    --dc-spc-quick-height: 48px;
    --dc-spc-quick-border-width: 1px;
    --dc-spc-quick-radius: 24px;
    --dc-spc-quick-gap: 14px;
    --dc-spc-quick-pt: 5px;
    --dc-spc-quick-pr: 5px;
    --dc-spc-quick-pb: 5px;
    --dc-spc-quick-pl: 22px;
    --dc-spc-quick-bg: #fff;
    --dc-spc-quick-text: #0059ab;
    --dc-spc-quick-border: #0059ab;
    --dc-spc-quick-icon-bg: #0059ab;
    --dc-spc-quick-icon: #fff;
    --dc-spc-quick-hover-bg: #fff;
    --dc-spc-quick-hover-text: #0059ab;
    --dc-spc-quick-hover-border: #0059ab;
    --dc-spc-quick-hover-icon-bg: #0059ab;
    --dc-spc-quick-hover-icon: #fff;
    --dc-spc-quick-icon-circle: 38px;
    --dc-spc-quick-icon-size: 16px;

    --dc-spc-buy-height: 42px;
    --dc-spc-buy-radius: 24px;
    --dc-spc-buy-border-width: 0px;
    --dc-spc-buy-pad-x: 8px;
    --dc-spc-buy-text-gap: 10px;
    --dc-spc-buy-hover-shift: 16px;
    --dc-spc-buy-color: #0059ab;
    --dc-spc-buy-bg: rgba(255,255,255,0);
    --dc-spc-buy-border: rgba(0,0,0,0);
    --dc-spc-buy-icon-bg: rgba(255,255,255,0);
    --dc-spc-buy-icon: #0059ab;
    --dc-spc-buy-hover-bg: #0068c8;
    --dc-spc-buy-hover-border: #0068c8;
    --dc-spc-buy-hover-text: #fff;
    --dc-spc-buy-hover-icon-bg: #fff;
    --dc-spc-buy-hover-icon: #0068c8;
    --dc-spc-buy-icon-circle: 30px;
    --dc-spc-buy-icon-size: 12px;

    --dc-spc-badge-bg: #fe0b21;
    --dc-spc-badge-text: #fff;
    --dc-spc-badge-fold: #77010b;
    --dc-spc-badge-width: 90px;
    --dc-spc-badge-height: 48px;
    --dc-spc-badge-top: 32px;
    --dc-spc-badge-right: -9px;
    --dc-spc-badge-pad-x: 18px;
    --dc-spc-badge-fold-size: 9px;
    --dc-spc-badge-fold-height: 5px;
    --dc-spc-badge-rtl: 12px;
    --dc-spc-badge-rtr: 12px;
    --dc-spc-badge-rbr: 0px;
    --dc-spc-badge-rbl: 12px;

    --dc-spc-arrow-bg: #fcfcfc;
    --dc-spc-arrow-color: #838383;
    --dc-spc-arrow-border: rgba(0,0,0,0);
    --dc-spc-arrow-hover-bg: #fff;
    --dc-spc-arrow-hover-color: #0059ab;
    --dc-spc-arrow-hover-border: #0059ab;
    --dc-spc-arrow-border-width: 1px;
    --dc-spc-arrow-size: 56px;
    --dc-spc-arrow-radius: 28px;
    --dc-spc-arrow-icon-size: 18px;
    --dc-spc-arrow-offset: -28px;
    --dc-spc-arrow-top: 50%;
    --dc-spc-arrow-disabled-opacity: .35;

    width: min(100%, var(--dc-spc-max-width));
    margin-inline: auto;
    color: #011139;
    box-sizing: border-box;
}
.dc-spc,
.dc-spc * { box-sizing: border-box; }
.dc-spc img { max-width: 100%; }
.dc-spc__section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--dc-spc-head-gap);
    margin-bottom: var(--dc-spc-heading-gap);
}
.dc-spc__title { min-width: 0; margin: 0; color: #011139; font-size: 40px; line-height: 1.2; font-weight: 700; letter-spacing: -.025em; }

.dc-spc__more,
.dc-spc a.dc-spc__more,
.dc-spc a.dc-spc__more:visited {
    width: var(--dc-spc-more-width);
    min-width: var(--dc-spc-more-width);
    height: var(--dc-spc-more-height);
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--dc-spc-more-gap);
    padding: var(--dc-spc-more-pt) var(--dc-spc-more-pr) var(--dc-spc-more-pb) var(--dc-spc-more-pl);
    border: var(--dc-spc-more-border-width) solid var(--dc-spc-more-border) !important;
    border-radius: var(--dc-spc-more-radius);
    background: var(--dc-spc-more-bg) !important;
    color: var(--dc-spc-more-text) !important;
    box-shadow: none !important;
    text-decoration: none !important;
    white-space: nowrap;
    transition: color var(--dc-spc-transition) ease, background-color var(--dc-spc-transition) ease, border-color var(--dc-spc-transition) ease;
}
.dc-spc__more-text { color: inherit !important; }
.dc-spc__more:hover,
.dc-spc__more:focus-visible { border-color: var(--dc-spc-more-hover-border) !important; background: var(--dc-spc-more-hover-bg) !important; color: var(--dc-spc-more-hover-text) !important; }
.dc-spc__more-icon {
    width: var(--dc-spc-more-icon-circle); height: var(--dc-spc-more-icon-circle); flex: 0 0 var(--dc-spc-more-icon-circle);
    display: inline-flex; align-items: center; justify-content: center; border-radius: 50%;
    background: var(--dc-spc-more-icon-bg) !important; color: var(--dc-spc-more-icon) !important; font-size: var(--dc-spc-more-icon-size);
    transition: color var(--dc-spc-transition) ease, background-color var(--dc-spc-transition) ease;
}
.dc-spc__more:hover .dc-spc__more-icon,
.dc-spc__more:focus-visible .dc-spc__more-icon { background: var(--dc-spc-more-hover-icon-bg) !important; color: var(--dc-spc-more-hover-icon) !important; }

.dc-spc__carousel-wrap { position: relative; min-width: 0; }
.dc-spc__track {
    display: flex;
    gap: var(--dc-spc-gap);
    width: 100%; min-width: 0;
    overflow-x: auto; overflow-y: visible;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    padding: 0;
}
.dc-spc__track::-webkit-scrollbar { display: none; }
.dc-spc__product-card {
    position: relative;
    width: var(--dc-spc-card-width);
    min-width: 0;
    min-height: var(--dc-spc-card-height);
    flex: 0 0 var(--dc-spc-card-width);
    display: flex;
    flex-direction: column;
    overflow: visible;
    scroll-snap-align: start;
    border: var(--dc-spc-card-border-width) solid var(--dc-spc-card-border);
    border-radius: var(--dc-spc-card-radius);
    background: var(--dc-spc-card-bg);
    color: #181818;
    transition: border-color var(--dc-spc-transition) ease, box-shadow var(--dc-spc-transition) ease;
}
.dc-spc__product-media {
    position: relative;
    width: calc(100% - (var(--dc-spc-card-inset) * 2));
    aspect-ratio: var(--dc-spc-media-aspect);
    flex: 0 0 auto;
    overflow: hidden;
    margin: var(--dc-spc-card-inset) var(--dc-spc-card-inset) 0;
    border-radius: var(--dc-spc-image-radius);
    background: var(--dc-spc-media-bg);
}
.dc-spc__product-media-link { position: relative; z-index: 1; display: block; width: 100%; height: 100%; text-decoration: none; }
.dc-spc__product-media::after { content:''; position:absolute; inset:0; z-index:2; background:var(--dc-spc-overlay); opacity:0; pointer-events:none; transition:opacity var(--dc-spc-transition) ease; }
.dc-spc__product-media img,
.dc-spc__product-img { width:100% !important; height:100% !important; display:block; object-fit:var(--dc-spc-product-fit); object-position:var(--dc-spc-product-position); }

.dc-spc__quick-wrap { position:absolute; inset:0; z-index:3; display:flex; align-items:center; justify-content:center; padding:20px; pointer-events:none; }
.dc-spc__quick,
.dc-spc a.dc-spc__quick,
.dc-spc a.dc-spc__quick:visited {
    width:var(--dc-spc-quick-width); min-width:var(--dc-spc-quick-width); height:var(--dc-spc-quick-height);
    display:inline-flex; align-items:center; justify-content:space-between; gap:var(--dc-spc-quick-gap);
    padding:var(--dc-spc-quick-pt) var(--dc-spc-quick-pr) var(--dc-spc-quick-pb) var(--dc-spc-quick-pl);
    border:var(--dc-spc-quick-border-width) solid var(--dc-spc-quick-border) !important;
    border-radius:var(--dc-spc-quick-radius); background:var(--dc-spc-quick-bg) !important; color:var(--dc-spc-quick-text) !important;
    box-shadow:none !important; text-decoration:none !important; white-space:nowrap; opacity:0; transform:translateY(10px); pointer-events:auto;
    transition:opacity var(--dc-spc-transition) ease, transform var(--dc-spc-transition) cubic-bezier(.22,.61,.36,1), color var(--dc-spc-transition) ease, background-color var(--dc-spc-transition) ease, border-color var(--dc-spc-transition) ease;
}
.dc-spc__quick-text { color:inherit !important; }
.dc-spc__quick:hover,
.dc-spc__quick:focus-visible { border-color:var(--dc-spc-quick-hover-border) !important; background:var(--dc-spc-quick-hover-bg) !important; color:var(--dc-spc-quick-hover-text) !important; }
.dc-spc__quick-icon { width:var(--dc-spc-quick-icon-circle); height:var(--dc-spc-quick-icon-circle); flex:0 0 var(--dc-spc-quick-icon-circle); display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:var(--dc-spc-quick-icon-bg) !important; color:var(--dc-spc-quick-icon) !important; font-size:var(--dc-spc-quick-icon-size); transition:color var(--dc-spc-transition) ease, background-color var(--dc-spc-transition) ease; }
.dc-spc__quick:hover .dc-spc__quick-icon,
.dc-spc__quick:focus-visible .dc-spc__quick-icon { background:var(--dc-spc-quick-hover-icon-bg) !important; color:var(--dc-spc-quick-hover-icon) !important; }

.dc-spc__product-content { min-width:0; flex:1 1 auto; display:flex; flex-direction:column; padding:var(--dc-spc-content-pt) calc(var(--dc-spc-card-inset) + var(--dc-spc-content-pad-x)) var(--dc-spc-content-pb); }
.dc-spc__product-title { display:-webkit-box; margin:0 0 var(--dc-spc-title-mb); overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:var(--dc-spc-title-lines); color:#181818; text-decoration:none; }
.dc-spc__product-title:visited { color:inherit; }
.dc-spc__product-title:hover,
.dc-spc__product-title:focus-visible { color:var(--dc-spc-title-hover); text-decoration:none; }
.dc-spc__excerpt { display:-webkit-box; margin:0 0 var(--dc-spc-excerpt-mb); overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:var(--dc-spc-excerpt-lines); color:#8b8b8b; }
.dc-spc__price { display:flex; align-items:baseline; flex-wrap:wrap; gap:var(--dc-spc-price-gap); min-width:0; margin:0 0 var(--dc-spc-price-mb); color:#0059ab; }
.dc-spc__price ins,
.dc-spc__price del { display:inline-flex; background:transparent; text-decoration-thickness:1px; }
.dc-spc__price ins { order:1; color:#0059ab; text-decoration:none; }
.dc-spc__price del { order:2; color:#8b8b8b; opacity:1; }
.dc-spc__price > .woocommerce-Price-amount { color:#0059ab; }
.dc-spc__price .woocommerce-Price-currencySymbol { font-size:52%; vertical-align:super; }

.dc-spc__buy,
.dc-spc a.dc-spc__buy,
.dc-spc a.dc-spc__buy:visited {
    position:relative; display:flex; align-items:center; width:100%; min-height:var(--dc-spc-buy-height); height:var(--dc-spc-buy-height); margin-top:auto;
    padding:0 var(--dc-spc-buy-pad-x); overflow:hidden; isolation:isolate;
    border:var(--dc-spc-buy-border-width) solid var(--dc-spc-buy-border) !important; border-radius:var(--dc-spc-buy-radius);
    background:var(--dc-spc-buy-bg) !important; color:var(--dc-spc-buy-color) !important; box-shadow:none !important; text-decoration:none !important;
}
.dc-spc__buy::before { content:''; position:absolute; inset:0; z-index:-1; border-radius:inherit; background:var(--dc-spc-buy-hover-bg); opacity:0; transform:scaleX(.18); transform-origin:left center; transition:opacity var(--dc-spc-transition) ease, transform var(--dc-spc-transition) cubic-bezier(.22,.61,.36,1); }
.dc-spc__buy-text { position:relative; z-index:1; display:inline-block; flex:0 0 auto; margin-right:var(--dc-spc-buy-text-gap); color:inherit !important; transform:translateX(0); transition:color var(--dc-spc-transition) ease, transform var(--dc-spc-transition) cubic-bezier(.22,.61,.36,1), flex-grow var(--dc-spc-transition) cubic-bezier(.22,.61,.36,1); }
.dc-spc__buy-icon { position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; width:var(--dc-spc-buy-icon-circle); height:var(--dc-spc-buy-icon-circle); flex:0 0 var(--dc-spc-buy-icon-circle); border-radius:50%; background:var(--dc-spc-buy-icon-bg) !important; color:var(--dc-spc-buy-icon) !important; font-size:var(--dc-spc-buy-icon-size); transition:background-color var(--dc-spc-transition) ease, color var(--dc-spc-transition) ease; }

.dc-spc__badge { position:absolute; z-index:4; top:var(--dc-spc-badge-top); right:var(--dc-spc-badge-right); width:var(--dc-spc-badge-width); min-width:0; height:var(--dc-spc-badge-height); display:inline-flex; align-items:center; justify-content:center; padding:0 var(--dc-spc-badge-pad-x); overflow:visible; border-radius:var(--dc-spc-badge-rtl) var(--dc-spc-badge-rtr) var(--dc-spc-badge-rbr) var(--dc-spc-badge-rbl); background:var(--dc-spc-badge-bg); color:var(--dc-spc-badge-text); line-height:1; white-space:nowrap; }
.dc-spc__badge::after { content:''; position:absolute; right:0; top:100%; width:var(--dc-spc-badge-fold-size); height:var(--dc-spc-badge-fold-height); background:var(--dc-spc-badge-fold); clip-path:polygon(0 0, 100% 0, 0 100%); pointer-events:none; }

.dc-spc__carousel-arrow {
    position:absolute; z-index:7; top:var(--dc-spc-arrow-top);
    width:var(--dc-spc-arrow-size); height:var(--dc-spc-arrow-size);
    display:inline-flex; align-items:center; justify-content:center; padding:0 !important;
    border:var(--dc-spc-arrow-border-width) solid var(--dc-spc-arrow-border) !important;
    border-radius:var(--dc-spc-arrow-radius); background:var(--dc-spc-arrow-bg) !important; color:var(--dc-spc-arrow-color) !important;
    transform:translateY(-50%); cursor:pointer;
    transition:color var(--dc-spc-transition) ease, background-color var(--dc-spc-transition) ease, border-color var(--dc-spc-transition) ease, opacity var(--dc-spc-transition) ease, box-shadow var(--dc-spc-transition) ease;
}
.dc-spc__carousel-arrow--prev { left:var(--dc-spc-arrow-offset); }
.dc-spc__carousel-arrow--next { right:var(--dc-spc-arrow-offset); }
.dc-spc__carousel-arrow:hover,
.dc-spc__carousel-arrow:focus-visible { border-color:var(--dc-spc-arrow-hover-border) !important; background:var(--dc-spc-arrow-hover-bg) !important; color:var(--dc-spc-arrow-hover-color) !important; }
.dc-spc__carousel-arrow:disabled { opacity:var(--dc-spc-arrow-disabled-opacity); cursor:default; }
.dc-spc__carousel-arrow svg,
.dc-spc__carousel-arrow i { display:block; width:var(--dc-spc-arrow-icon-size); height:var(--dc-spc-arrow-icon-size); color:currentColor; font-size:var(--dc-spc-arrow-icon-size); }

.dc-spc__more-icon svg,
.dc-spc__more-icon i,
.dc-spc__quick-icon svg,
.dc-spc__quick-icon i,
.dc-spc__buy-icon svg,
.dc-spc__buy-icon i { display:block; width:1em; height:1em; color:currentColor; font-size:1em; }
.dc-spc__more-icon > svg:not([fill]),
.dc-spc__more-icon > svg[fill='none'],
.dc-spc__quick-icon > svg:not([fill]),
.dc-spc__quick-icon > svg[fill='none'],
.dc-spc__buy-icon > svg:not([fill]),
.dc-spc__buy-icon > svg[fill='none'],
.dc-spc__carousel-arrow > svg:not([fill]),
.dc-spc__carousel-arrow > svg[fill='none'] { fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; }
.dc-spc__icon--custom svg { color:currentColor !important; }
.dc-spc__icon--custom svg[fill]:not([fill='none']),
.dc-spc__icon--custom svg [fill]:not([fill='none']) { fill:currentColor !important; }
.dc-spc__icon--custom svg[stroke]:not([stroke='none']),
.dc-spc__icon--custom svg [stroke]:not([stroke='none']) { stroke:currentColor !important; }

.dc-spc__more:focus-visible,
.dc-spc__quick:focus-visible,
.dc-spc__buy:focus-visible,
.dc-spc__product-title:focus-visible,
.dc-spc__product-media-link:focus-visible,
.dc-spc__carousel-arrow:focus-visible { outline:2px solid var(--dc-spc-card-hover-border); outline-offset:2px; }

@media (hover:hover) and (pointer:fine) {
    .dc-spc__product-card:hover,
    .dc-spc__product-card:focus-within { border-color:var(--dc-spc-card-hover-border); }
    .dc-spc__product-card:hover .dc-spc__product-media::after,
    .dc-spc__product-card:focus-within .dc-spc__product-media::after { opacity:1; }
    .dc-spc__product-card:hover .dc-spc__quick,
    .dc-spc__product-card:focus-within .dc-spc__quick { opacity:1; transform:translateY(0); }
    .dc-spc__product-card:hover .dc-spc__buy,
    .dc-spc__product-card:focus-within .dc-spc__buy { color:var(--dc-spc-buy-hover-text) !important; border-color:var(--dc-spc-buy-hover-border) !important; }
    .dc-spc__product-card:hover .dc-spc__buy::before,
    .dc-spc__product-card:focus-within .dc-spc__buy::before { opacity:1; transform:scaleX(1); }
    .dc-spc__product-card:hover .dc-spc__buy-text,
    .dc-spc__product-card:focus-within .dc-spc__buy-text { flex-grow:1; transform:translateX(var(--dc-spc-buy-hover-shift)); }
    .dc-spc__product-card:hover .dc-spc__buy-icon,
    .dc-spc__product-card:focus-within .dc-spc__buy-icon { background:var(--dc-spc-buy-hover-icon-bg) !important; color:var(--dc-spc-buy-hover-icon) !important; }
}

.dc-spc__editor-note,
.dc-spc--missing-wc { padding:20px; border:1px dashed rgba(0,89,171,.25); border-radius:16px; background:rgba(194,226,255,.22); color:#011139; }
@media (max-width:1024px) { .dc-spc__carousel-arrow { display:none; } }
@media (max-width:767px) {
    .dc-spc__section-head { flex-direction:column; align-items:stretch; }
    .dc-spc__more { align-self:flex-start; }
    .dc-spc__product-card { min-height:var(--dc-spc-card-height); }
    .dc-spc__quick { opacity:1; transform:none; }
    .dc-spc__product-media::after { opacity:.08; }
    .dc-spc__buy,
    .dc-spc a.dc-spc__buy,
    .dc-spc a.dc-spc__buy:visited { color:var(--dc-spc-buy-hover-text) !important; border-color:var(--dc-spc-buy-hover-border) !important; }
    .dc-spc__buy::before { opacity:1; transform:scaleX(1); }
    .dc-spc__buy-text { flex-grow:1; transform:translateX(var(--dc-spc-buy-hover-shift)); }
    .dc-spc__buy-icon { background:var(--dc-spc-buy-hover-icon-bg) !important; color:var(--dc-spc-buy-hover-icon) !important; }
}

@media (prefers-reduced-motion:reduce) {
    .dc-spp__product-card,
    .dc-spp__product-media::after,
    .dc-spp__quick,
    .dc-spp__buy::before,
    .dc-spp__buy-text,
    .dc-spp__buy-icon,
    .dc-spp__more,
    .dc-spp__more-icon,
    .dc-spc__product-card,
    .dc-spc__product-media::after,
    .dc-spc__quick,
    .dc-spc__buy::before,
    .dc-spc__buy-text,
    .dc-spc__buy-icon,
    .dc-spc__more,
    .dc-spc__more-icon,
    .dc-spc__carousel-arrow { transition-duration:0ms !important; }
}

/* Elementor icon-library SVGs inherit each widget's icon color. */
.dc-spp__icon--custom .e-font-icon-svg,
.dc-spc__icon--custom .e-font-icon-svg {
    fill: currentColor !important;
    color: currentColor !important;
}

/* U&PI – selected brand tokens and responsive hardening (original layout remains intact). */
.dc-pps, .dc-spp, .dc-spc { min-width:0; max-width:100%; color:#13276A; }
.dc-pps :where(.dc-pps__product-content,.dc-pps__product-title,.dc-pps__price),
.dc-spp :where(.dc-spp__product-content,.dc-spp__product-title,.dc-spp__price),
.dc-spc :where(.dc-spc__product-content,.dc-spc__product-title,.dc-spc__price) { min-width:0; overflow-wrap:break-word; }
.dc-pps :where(.dc-pps__price,.dc-pps__title),
.dc-spp :where(.dc-spp__price,.dc-spp__title),
.dc-spc :where(.dc-spc__price,.dc-spc__title) { color:#13276A; }
.dc-pps__price .upi-pps-from, .dc-spp__price .upi-pps-from, .dc-spc__price .upi-pps-from { color:#26334A; font-size:.65em; font-weight:500; white-space:nowrap; }
.dc-pps__promo-banner:has(.dc-pps__banner-placeholder),
.dc-spp__promo-banner:has(.dc-spp__banner-placeholder) { background:linear-gradient(140deg,#13276A 0%,#205093 56%,#3A8FDE 100%); }
.dc-pps__banner-placeholder, .dc-spp__banner-placeholder { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:clamp(10px,2vw,22px); width:100%; min-height:100%; padding:clamp(26px,4vw,48px); color:#fff; }
.dc-pps__banner-wordmark, .dc-spp__banner-wordmark { font-size:clamp(28px,4vw,46px); font-weight:800; letter-spacing:.02em; line-height:1.1; }
.dc-pps__banner-heading, .dc-spp__banner-heading { font-size:clamp(24px,3vw,39px); font-weight:700; line-height:1.18; }
.dc-pps__banner-subtitle, .dc-spp__banner-subtitle { font-size:clamp(14px,1.5vw,18px); color:#edf7fd; line-height:1.45; }
@media(max-width:767px){
  .dc-pps__promo-banner:has(.dc-pps__banner-placeholder),
  .dc-spp__promo-banner:has(.dc-spp__banner-placeholder){ height:auto; min-height:340px; }
  .dc-spp__product-card { height:auto; }
}
@media(max-width:420px){
  .dc-pps__banner-placeholder, .dc-spp__banner-placeholder { padding:26px; }
  .dc-spp__price, .dc-spc__price, .dc-pps__price { gap:8px; }
}


/* U&PI 1.5: visible blue card borders without hover. The color remains editable in Elementor. */
.dc-pps__product-card,
.dc-spp__product-card,
.dc-spc__product-card { border-style: solid; box-shadow: 0 2px 12px rgba(19,39,106,.035); }
.dc-pps__product-card:hover,
.dc-pps__product-card:focus-within,
.dc-spp__product-card:hover,
.dc-spp__product-card:focus-within,
.dc-spc__product-card:hover,
.dc-spc__product-card:focus-within { box-shadow: 0 8px 22px rgba(19,39,106,.09); }

/* Mid-size screens retain the original banner followed by two equal product cards. */
@media (min-width: 768px) and (max-width: 1100px) {
    .dc-pps__special-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .dc-pps__promo-banner { grid-column: 1 / -1; height: clamp(260px,34vw,380px); }
    .dc-pps__product-card--special { height: auto; min-height: 0; }
    .dc-spp__promo-banner { height: clamp(260px,34vw,380px); }
    .dc-spp__product-card { min-height: 0; }
    .dc-pps__badge, .dc-spp__badge { right: 4px; }
}

/* Mobile: stacked campaign banner and two comfortable, compact product rows.
   Does not change the desktop 1-banner + 2-product reference layout. */
@media (max-width: 767px) {
    .dc-pps, .dc-spp, .dc-spc { width: 100%; min-width: 0; max-width: 100%; }
    .dc-pps__section-head, .dc-spp__section-head, .dc-spc__section-head {
        align-items: center; flex-direction: row; flex-wrap: wrap;
        justify-content: space-between; column-gap: 8px; row-gap: 12px;
        margin-bottom: 18px;
    }
    .dc-pps__title, .dc-spp__title, .dc-spc__title {
        min-width: 0; max-width: 100%; font-size: clamp(23px,6.4vw,30px); line-height: 1.23;
        overflow-wrap: anywhere;
    }
    .dc-pps__more, .dc-spp__more, .dc-spc__more { margin:0; max-width: 100%; }
    .dc-pps__special-grid, .dc-spp__grid {
        display: grid; grid-template-columns: minmax(0,1fr); gap: 12px;
        overflow: visible; padding:0; scroll-snap-type:none;
    }
    .dc-pps__promo-banner, .dc-spp__promo-banner {
        display: block; width: 100%; min-width:0; max-width:100%;
        height: clamp(210px,58vw,300px) !important; min-height:0 !important;
        aspect-ratio: auto; background:linear-gradient(130deg,#13276A,#205093 65%,#3A8FDE);
        border-radius:20px;
    }
    .dc-pps__promo-banner picture, .dc-spp__promo-banner picture { display: block; width:100%; height:100%; }
    .dc-pps__promo-banner img, .dc-spp__promo-banner img {
        display:block; width:100%; height:100%; object-fit:contain; object-position:center;
    }
    .dc-pps__banner-placeholder, .dc-spp__banner-placeholder { padding:22px; gap:9px; }
    .dc-pps__banner-wordmark, .dc-spp__banner-wordmark { font-size:24px; }
    .dc-pps__banner-heading, .dc-spp__banner-heading { font-size: clamp(22px,6vw,30px); }
    .dc-pps__banner-subtitle, .dc-spp__banner-subtitle { font-size:13px; }
    .dc-pps__product-card--special, .dc-spp__product-card {
        display:grid; grid-template-columns:minmax(0,39%) minmax(0,1fr);
        width:100%; min-width:0; max-width:100%; height:auto !important; min-height:0 !important;
        flex:auto; align-items:stretch; gap:0; border-radius:18px; scroll-snap-align:none;
    }
    .dc-pps__product-card--special .dc-pps__product-media,
    .dc-spp__product-card .dc-spp__product-media {
        width:calc(100% - 12px); min-width:0; margin:6px; aspect-ratio:1/1;
        align-self:start; border-radius:12px; overflow:hidden;
    }
    .dc-pps__product-card--special .dc-pps__product-content,
    .dc-spp__product-card .dc-spp__product-content {
        width:auto; min-width:0; min-height:0; flex:1;
        padding:10px 10px 12px 4px; gap:0;
    }
    .dc-pps__product-card--special .dc-pps__product-title,
    .dc-spp__product-card .dc-spp__product-title {
        display:block; -webkit-line-clamp:unset; overflow:visible;
        font-size:clamp(13px,3.8vw,15px); line-height:1.32; overflow-wrap:anywhere;
    }
    .dc-pps__product-card--special .dc-pps__excerpt,
    .dc-spp__product-card .dc-spp__excerpt { font-size:12px; line-height:1.45; margin:6px 0 8px; }
    .dc-pps__product-card--special .dc-pps__price,
    .dc-spp__product-card .dc-spp__price {
        display:flex; flex-wrap:wrap; align-items:baseline; column-gap:7px; row-gap:3px;
        font-size:clamp(17px,5vw,21px); line-height:1.3; margin:8px 0;
    }
    .dc-pps__product-card--special .dc-pps__price del,
    .dc-spp__product-card .dc-spp__price del { font-size:12px; }
    .dc-pps__product-card--special .dc-pps__buy,
    .dc-spp__product-card .dc-spp__buy,
    .dc-spp__product-card a.dc-spp__buy,
    .dc-spp__product-card a.dc-spp__buy:visited {
        min-width:0; max-width:100%; height:auto; min-height:38px;
        display:flex; align-items:center; justify-content:space-between;
        width:100%; margin-top:auto; padding:5px 9px;
        border:1px solid #205093 !important; border-radius:100px;
        background:#205093 !important; color:#fff !important;
        font-size:12px; gap:4px; overflow:visible;
    }
    .dc-spp__product-card .dc-spp__buy::before { display:none; }
    .dc-spp__product-card .dc-spp__buy-text { flex:1; transform:none; min-width:0; margin:0; white-space:normal; }
    .dc-spp__product-card .dc-spp__buy-icon { background:transparent !important; color:#fff !important; }
    .dc-pps__product-card--special .dc-pps__buy-icon { color:#fff !important; }
    /* Keep quick view usable by touch but stop it from covering the entire photo. */
    .dc-pps__product-card--special .dc-pps__product-media::after,
    .dc-spp__product-card .dc-spp__product-media::after { opacity:0 !important; }
    .dc-pps__product-card--special .dc-pps__quick-wrap,
    .dc-spp__product-card .dc-spp__quick-wrap { align-items:flex-end; padding:6px; }
    .dc-pps__product-card--special .dc-pps__quick,
    .dc-spp__product-card .dc-spp__quick,
    .dc-spp__product-card a.dc-spp__quick {
        width:100%; min-width:0; max-width:100%; height:30px; padding:3px 6px;
        font-size:10px; gap:3px; border-radius:9px;
        opacity:1; transform:none; background:rgba(255,255,255,.95) !important;
        color:#205093 !important; border:1px solid rgba(32,80,147,.2) !important;
    }
    .dc-spp__product-card .dc-spp__quick-icon { width:19px; height:19px; flex:0 0 19px; font-size:10px; }
    .dc-pps__product-card--special .dc-pps__quick-icon { width:19px; height:19px; flex:0 0 19px; }
    .dc-pps__product-card--special .dc-pps__badge,
    .dc-spp__product-card .dc-spp__badge {
        top:5px; right:6px; width:auto; min-width:0; max-width:90px; height:26px;
        padding:0 7px; font-size:11px; border-radius:7px;
    }
    .dc-pps__product-card--special .dc-pps__badge::after,
    .dc-spp__product-card .dc-spp__badge::after { display:none; }
    /* Sale carousel: one near-full card with a visible peek of the next card. */
    .dc-pps__sale-track { grid-auto-columns:min(78vw,300px); gap:12px; }
    .dc-pps__product-card--sale { height:auto; min-height:0; }
    .dc-spc__track { gap:12px; }
    .dc-spc__product-card {
        width:min(78vw,300px); flex:0 0 min(78vw,300px);
        min-height:0; height:auto; border-radius:18px;
    }
    .dc-spc__product-content { padding:12px 13px 15px; }
    .dc-spc__price { gap:7px; margin-bottom:10px; }
    .dc-spc__quick { opacity:1; transform:none; }
    .dc-spc__product-media::after { opacity:0 !important; }
    .dc-spc__quick-wrap { align-items:flex-end; padding:8px; }
    .dc-spc__quick { max-width:100%; min-width:0; height:36px; }
    .dc-spc__badge { top:8px; right:8px; height:30px; max-width:85px; padding:0 9px; font-size:12px; }
    .dc-spc__badge::after { display:none; }
}
@media (max-width:359px) {
    .dc-pps__product-card--special, .dc-spp__product-card { grid-template-columns:minmax(0,36%) minmax(0,1fr); }
    .dc-pps__product-card--special .dc-pps__product-title,
    .dc-spp__product-card .dc-spp__product-title { font-size:12.5px; }
    .dc-pps__product-card--special .dc-pps__price,
    .dc-spp__product-card .dc-spp__price { font-size:17px; }
    .dc-pps__product-card--special .dc-pps__product-content,
    .dc-spp__product-card .dc-spp__product-content { padding-right:8px; }
}

@media (max-width:359px) {
    /* Icon-size quick view stays clickable without masking the product on narrow phones. */
    .dc-pps__product-card--special .dc-pps__quick-wrap,
    .dc-spp__product-card .dc-spp__quick-wrap { align-items:flex-start; justify-content:flex-end; padding:5px; }
    .dc-pps__product-card--special .dc-pps__quick,
    .dc-spp__product-card .dc-spp__quick,
    .dc-spp__product-card a.dc-spp__quick { width:28px; min-width:28px; max-width:28px; height:28px; justify-content:center; gap:0; padding:3px; border-radius:50%; }
    .dc-pps__product-card--special .dc-pps__quick > span:first-child,
    .dc-spp__product-card .dc-spp__quick-text { font-size:0; width:0; overflow:hidden; }
}


/* U&PI 1.6.0 - compact responsive product cards.
   Important: Elementor sometimes embeds a widget inside a narrow container on
   a wide viewport. Container queries handle that actual available width. */
.dc-spp, .dc-pps, .dc-spc {
    container-type: inline-size;
    min-width: 0;
    max-width: 100%;
}

/* Tablet and constrained Elementor columns: never stretch cards to the
   full campaign banner height. The CTA follows the price. */
@media (max-width: 1100px) {
    .dc-spp__grid, .dc-pps__special-grid { align-items: start; }
    .dc-spp__product-card, .dc-pps__product-card--special,
    .dc-spc__product-card, .dc-pps__product-card--sale {
        height: auto !important;
        min-height: 0 !important;
        align-self: start;
    }
    .dc-spp__product-content, .dc-pps__product-card--special .dc-pps__product-content,
    .dc-spc__product-content, .dc-pps__product-card--sale .dc-pps__product-content {
        flex: 0 1 auto;
        min-height: 0;
    }
    .dc-spp__product-content .dc-spp__buy,
    .dc-spp__product-content a.dc-spp__buy,
    .dc-pps__product-content .dc-pps__buy,
    .dc-spc__product-content .dc-spc__buy { margin-top: 10px !important; }
}

/* Same rules also apply when a widget is only 860px wide even if desktop
   browser viewport is 1920px (Elementor preview/sidebar/template layouts). */
@container (max-width: 860px) {
    .dc-spp__grid, .dc-pps__special-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: clamp(12px, 2.5cqw, 20px);
        align-items: start;
        overflow: visible;
        padding: 0;
        scroll-snap-type: none;
    }
    .dc-spp__promo-banner, .dc-pps__promo-banner {
        grid-column: 1 / -1;
        display: block;
        width: 100%; min-width: 0; max-width: 100%;
        height: clamp(210px, 33cqw, 330px) !important;
        min-height: 0 !important;
        flex: initial;
    }
    .dc-spp__product-card, .dc-pps__product-card--special {
        width: 100%; min-width: 0; max-width: 100%;
        height: auto !important; min-height: 0 !important;
        flex: initial; align-self: start;
        display: flex; flex-direction: column;
        border-radius: 18px;
    }
    .dc-spp__product-content, .dc-pps__product-card--special .dc-pps__product-content {
        flex: 0 1 auto;
        min-width: 0;
        padding: 12px 14px 14px;
    }
    .dc-spp__product-title, .dc-pps__product-card--special .dc-pps__product-title {
        display: block;
        -webkit-line-clamp: unset;
        overflow: visible;
        font-size: clamp(14px, 2cqw, 17px);
        line-height: 1.35;
        overflow-wrap: anywhere;
    }
    .dc-spp__excerpt, .dc-pps__product-card--special .dc-pps__excerpt {
        display: block;
        -webkit-line-clamp: unset;
        overflow: visible;
        margin: 6px 0 8px;
        font-size: 12.5px;
        line-height: 1.42;
        overflow-wrap: anywhere;
    }
    .dc-spp__price, .dc-pps__product-card--special .dc-pps__price {
        display: flex; flex-wrap: wrap;
        align-items: baseline;
        gap: 5px 9px;
        margin: 8px 0 0;
        font-size: clamp(18px, 3.4cqw, 25px);
        line-height: 1.3;
    }
    .dc-spp__price del, .dc-pps__product-card--special .dc-pps__price del { font-size: 13px; }
    .dc-spp__product-content .dc-spp__buy,
    .dc-spp__product-content a.dc-spp__buy,
    .dc-pps__product-content .dc-pps__buy {
        margin-top: 10px !important;
        min-height: 38px;
    }
    .dc-spp__quick-wrap, .dc-pps__product-card--special .dc-pps__quick-wrap {
        align-items: flex-start;
        justify-content: flex-end;
        padding: 8px;
    }
    .dc-spp__quick, .dc-spp a.dc-spp__quick,
    .dc-pps__product-card--special .dc-pps__quick {
        width: auto; min-width: 0; max-width: calc(100% - 8px);
        height: 33px; padding: 4px 7px;
        font-size: 11px;
        gap: 6px;
        opacity: 1; transform: none;
        background: rgba(255,255,255,.95) !important;
        color: #205093 !important;
        border: 1px solid rgba(32,80,147,.18) !important;
        border-radius: 999px;
    }
    .dc-spp__product-media::after,
    .dc-pps__product-card--special .dc-pps__product-media::after { opacity: 0 !important; }
}

/* Single-column cards at narrower widget widths; maintain the site's compact
   photo-left/text-right treatment so 390px phones do not get skyscraper cards. */
@container (max-width: 640px) {
    .dc-spp__grid, .dc-pps__special-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        overflow: visible;
    }
    .dc-spp__promo-banner, .dc-pps__promo-banner {
        height: clamp(180px, 57cqw, 280px) !important;
        grid-column: 1 / -1;
    }
    .dc-spp__product-card, .dc-pps__product-card--special {
        display: grid;
        grid-template-columns: minmax(0, 36%) minmax(0, 1fr);
        gap: 0;
        align-items: start;
        height: auto !important; min-height: 0 !important;
    }
    .dc-spp__product-card .dc-spp__product-media,
    .dc-pps__product-card--special .dc-pps__product-media {
        min-width: 0;
        width: calc(100% - 12px);
        aspect-ratio: 1 / 1;
        margin: 6px;
        align-self: start;
        border-radius: 12px;
    }
    .dc-spp__product-card .dc-spp__product-content,
    .dc-pps__product-card--special .dc-pps__product-content {
        min-width: 0;
        width: 100%;
        padding: 10px 10px 12px 4px;
    }
    .dc-spp__product-title, .dc-pps__product-card--special .dc-pps__product-title {
        font-size: clamp(13px, 3.7cqw, 15px);
    }
    .dc-spp__excerpt, .dc-pps__product-card--special .dc-pps__excerpt {
        margin: 5px 0 6px;
        font-size: 12px;
    }
    .dc-spp__price, .dc-pps__product-card--special .dc-pps__price {
        font-size: clamp(16px, 5cqw, 21px);
        margin: 6px 0 0;
        gap: 4px 7px;
    }
    .dc-spp__price del, .dc-pps__product-card--special .dc-pps__price del {font-size: 12px;}
    .dc-spp__product-content .dc-spp__buy,
    .dc-spp__product-content a.dc-spp__buy,
    .dc-pps__product-content .dc-pps__buy {
        width: 100%;
        min-height: 38px;
        margin-top: 8px !important;
        padding: 5px 8px;
        border-radius: 999px;
    }
    .dc-spp__quick-wrap, .dc-pps__product-card--special .dc-pps__quick-wrap {
        align-items: flex-start;
        justify-content: flex-end;
        padding: 4px;
    }
    .dc-spp__quick, .dc-spp a.dc-spp__quick,
    .dc-pps__product-card--special .dc-pps__quick {
        width: 28px; min-width: 28px; max-width: 28px;
        height: 28px; padding: 3px;
        justify-content: center;
        gap: 0;
    }
    .dc-spp__quick-text,
    .dc-pps__product-card--special .dc-pps__quick > span:first-child {
        position: absolute; width: 1px; height: 1px;
        margin: -1px; padding: 0; border: 0;
        overflow: hidden; clip-path: inset(50%);
        white-space: nowrap;
    }
    .dc-spp__quick-icon, .dc-pps__product-card--special .dc-pps__quick-icon {
        width: 18px; height: 18px; flex: 0 0 18px;
    }
}

/* Small cards belonging to carousel variants also must not retain giant
   fixed-height spacers when their parent section is rendered in a small area. */
@container (max-width: 860px) {
    .dc-spc__product-card,
    .dc-pps__product-card--sale {
        height: auto !important;
        min-height: 0 !important;
        align-self: start;
    }
    .dc-spc__product-content,
    .dc-pps__product-card--sale .dc-pps__product-content {
        flex: 0 1 auto;
    }
    .dc-spc__product-content .dc-spc__buy,
    .dc-pps__product-card--sale .dc-pps__buy { margin-top: 10px !important; }
}

/* U&PI 1.6 final tablet layout: make each product a compact horizontal row.
   A two-column grid of square photos was still 560-700px high, even with
   auto-height cards. At this width the readable layout is one row per item. */
@container (max-width: 1160px) {
    .dc-spp__grid, .dc-pps__special-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
        gap: clamp(12px, 1.8cqw, 18px);
        overflow: visible;
        padding: 0;
        scroll-snap-type: none;
    }
    .dc-spp__promo-banner, .dc-pps__promo-banner {
        grid-column: 1/-1;
        width: 100%; min-width: 0; max-width: 100%;
        height: clamp(210px, 28cqw, 310px) !important;
        min-height: 0 !important;
    }
    .dc-spp__product-card, .dc-pps__product-card--special {
        display: grid;
        grid-template-columns: minmax(0, clamp(160px, 26cqw, 240px)) minmax(0, 1fr);
        align-items: start;
        width: 100%; min-width: 0; max-width: 100%;
        height: auto !important; min-height: 0 !important;
        align-self: start;
        border-radius: 18px;
    }
    .dc-spp__product-card .dc-spp__product-media,
    .dc-pps__product-card--special .dc-pps__product-media {
        min-width: 0;
        width: calc(100% - 14px);
        aspect-ratio: 1 / 1;
        margin: 7px;
        align-self: start;
        border-radius: 12px;
    }
    .dc-spp__product-card .dc-spp__product-content,
    .dc-pps__product-card--special .dc-pps__product-content {
        width: 100%; min-width: 0;
        flex: 0 1 auto;
        padding: clamp(10px, 1.8cqw, 18px) clamp(12px, 2cqw, 20px) clamp(12px, 1.8cqw, 18px) 4px;
    }
    .dc-spp__product-title, .dc-pps__product-card--special .dc-pps__product-title {
        display: block;
        -webkit-line-clamp: unset;
        overflow: visible;
        font-size: clamp(14px, 2cqw, 18px);
        line-height: 1.36;
        overflow-wrap: anywhere;
    }
    .dc-spp__excerpt, .dc-pps__product-card--special .dc-pps__excerpt {
        display: block;
        -webkit-line-clamp: unset;
        overflow: visible;
        font-size: clamp(12px, 1.55cqw, 14px);
        line-height: 1.42;
        margin: 6px 0 8px;
    }
    .dc-spp__price, .dc-pps__product-card--special .dc-pps__price {
        font-size: clamp(18px, 2.9cqw, 26px);
        line-height: 1.3;
        gap: 4px 10px;
        margin: 7px 0 0;
    }
    .dc-spp__price del, .dc-pps__product-card--special .dc-pps__price del { font-size: clamp(12px, 1.5cqw, 15px); }
    .dc-spp__product-content .dc-spp__buy,
    .dc-spp__product-content a.dc-spp__buy,
    .dc-pps__product-content .dc-pps__buy {
        margin-top: 9px !important;
        width: min(100%, 320px);
        min-height: 38px;
    }
    .dc-spp__product-media::after, .dc-pps__product-card--special .dc-pps__product-media::after {opacity:0 !important;}
}

@container (max-width: 640px) {
    .dc-spp__promo-banner, .dc-pps__promo-banner {
        height: clamp(180px, 57cqw, 280px) !important;
    }
    .dc-spp__product-card, .dc-pps__product-card--special {
        grid-template-columns: minmax(0, 36%) minmax(0, 1fr);
    }
    .dc-spp__product-card .dc-spp__product-media,
    .dc-pps__product-card--special .dc-pps__product-media {
        width: calc(100% - 12px);
        margin: 6px;
    }
    .dc-spp__product-card .dc-spp__product-content,
    .dc-pps__product-card--special .dc-pps__product-content {
        padding: 10px 9px 12px 3px;
    }
    .dc-spp__product-title, .dc-pps__product-card--special .dc-pps__product-title {
        font-size: clamp(13px, 3.7cqw, 15px);
    }
    .dc-spp__excerpt, .dc-pps__product-card--special .dc-pps__excerpt {
        font-size: 12px;
        margin: 5px 0 6px;
    }
    .dc-spp__price, .dc-pps__product-card--special .dc-pps__price {
        font-size: clamp(16px, 5cqw, 21px);
        margin: 6px 0 0;
        gap: 4px 7px;
    }
    .dc-spp__product-content .dc-spp__buy,
    .dc-spp__product-content a.dc-spp__buy,
    .dc-pps__product-content .dc-pps__buy {width: 100%; margin-top: 8px !important;}
}

/* The special-promo quick-view label is the first child span, not a class.
   Keep it accessible while only showing the compact view icon on phones. */
@container (max-width: 640px) {
  .dc-spp__product-card .dc-spp__quick > span:first-child {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }
  .dc-spp__product-card .dc-spp__quick,
  .dc-spp__product-card a.dc-spp__quick {
    width: 28px; min-width: 28px; max-width: 28px;
    justify-content: center;
    padding: 3px;
  }
}


/* U&PI 1.7.0: genuinely separate compact layout for TABLET and MOBILE.
   Earlier patches fixed .dc-spp, but left the *sale carousel* .dc-spc with
   its 543px cards and an auto-margin CTA; this addresses all three widgets.
   Rules are based on the available widget width, not just the viewport. */
.dc-pps, .dc-spp, .dc-spc { container-type:inline-size; min-width:0; max-width:100%; }
@container (max-width: 1150px) {
  /* Across all widgets: no oversized cards or a CTA at the bottom of whitespace. */
  .dc-pps__product-card, .dc-spp__product-card, .dc-spc__product-card,
  .dc-pps__product-card--sale, .dc-pps__product-card--special {
    height:auto !important; min-height:0 !important; max-height:none !important;
    align-self:start !important; min-width:0; box-sizing:border-box;
    border-radius:16px;
  }
  .dc-pps__product-content, .dc-spp__product-content, .dc-spc__product-content {
    height:auto !important; min-height:0 !important; flex:initial !important;
    overflow:visible; align-self:stretch;
  }
  .dc-pps__buy, .dc-spp__buy, .dc-spc__buy,
  .dc-pps a.dc-pps__buy, .dc-spp a.dc-spp__buy, .dc-spc a.dc-spc__buy {
    margin-top:9px !important;
  }
  /* Special promotion widget(s): replace the 3 tall columns with photo-left
     information-right rows. Banner remains on top. */
  .dc-spp__grid, .dc-pps__special-grid {
    display:grid; grid-template-columns:minmax(0,1fr);
    align-items:start; gap:12px; overflow:visible;
  }
  .dc-spp__promo-banner, .dc-pps__promo-banner {
    grid-column:1/-1; height:clamp(180px, 28cqw, 320px) !important;
    min-height:0 !important; width:100%;
  }
  .dc-spp__product-card, .dc-pps__product-card--special {
    display:grid !important;
    grid-template-columns:clamp(130px, 22cqw, 196px) minmax(0,1fr);
    align-items:start; width:100% !important; max-width:100% !important;
  }
  .dc-spp__product-card .dc-spp__product-media,
  .dc-pps__product-card--special .dc-pps__product-media {
    width:calc(100% - 12px) !important; aspect-ratio:1/1 !important;
    min-width:0; height:auto !important; margin:6px !important;
    border-radius:12px;
  }
  .dc-spp__product-card .dc-spp__product-content,
  .dc-pps__product-card--special .dc-pps__product-content {
    width:100%; padding:12px 14px 13px 4px !important; min-width:0;
  }
  /* Sale carousel: NEVER use a full-height vertical card on tablet/mobile.
     Two compact horizontal cards visible on tablet; swipe on narrow phones. */
  .dc-spc__track {
    display:flex; align-items:stretch; gap:12px;
    overflow-x:auto; overflow-y:clip; scroll-snap-type:x mandatory;
    padding:2px 2px 10px; max-width:100%;
  }
  .dc-spc__product-card {
    flex:0 0 calc((100% - 12px)/2) !important;
    width:calc((100% - 12px)/2) !important;
    display:grid !important;
    grid-template-columns:clamp(105px, 16cqw, 148px) minmax(0,1fr);
    gap:0; align-items:start;
  }
  .dc-spc__product-media {
    width:calc(100% - 12px) !important; margin:6px !important;
    aspect-ratio:1/1 !important; height:auto !important;
    border-radius:11px;
  }
  .dc-spc__product-content {
    padding:12px 11px 13px 3px !important;
    display:flex; flex-direction:column; gap:0;
    width:100%; min-width:0;
  }
  .dc-spc__product-title, .dc-pps__product-card--sale .dc-pps__product-title,
  .dc-spp__product-title, .dc-pps__product-card--special .dc-pps__product-title {
    display:block !important; overflow:visible !important;
    -webkit-line-clamp:unset !important; line-clamp:unset !important;
    white-space:normal; overflow-wrap:anywhere;
    font-size:clamp(13px, 1.6cqw, 17px); line-height:1.35;
    margin-bottom:5px;
  }
  .dc-spc__excerpt, .dc-pps__product-card--sale .dc-pps__excerpt,
  .dc-spp__excerpt, .dc-pps__product-card--special .dc-pps__excerpt {
    display:block !important; -webkit-line-clamp:unset !important;
    overflow:visible !important; white-space:normal; overflow-wrap:anywhere;
    font-size:12px; line-height:1.4; margin:0 0 7px;
  }
  .dc-spc__price, .dc-pps__price, .dc-spp__price {
    display:flex; flex-wrap:wrap; align-items:baseline;
    gap:3px 7px; margin:0 0 5px; line-height:1.28;
    font-size:clamp(17px, 2.4cqw, 24px);
  }
  .dc-spc__price del, .dc-pps__price del, .dc-spp__price del {font-size:12px;}
  /* This is the old underlined button + floating blue circle seen in the
     screenshot. Replace it with a clear regular button below the price. */
  .dc-spc__buy, .dc-spc a.dc-spc__buy, .dc-spc a.dc-spc__buy:visited,
  .dc-spc__product-card:hover .dc-spc__buy,
  .dc-spc__product-card:focus-within .dc-spc__buy {
    position:relative; width:max-content !important; max-width:100%;
    min-height:36px !important; height:auto !important;
    display:inline-flex !important; justify-content:flex-start; align-items:center;
    padding:6px 11px !important; gap:7px; overflow:visible;
    border:1px solid #205093 !important; border-radius:999px !important;
    background:#205093 !important; color:#fff !important;
    box-shadow:none !important; text-decoration:none !important;
    font-size:12px; line-height:1.2; white-space:normal;
  }
  .dc-spc__buy::before {display:none !important;}
  .dc-spc__buy-text, .dc-spc__product-card:hover .dc-spc__buy-text {
    flex:0 1 auto !important; transform:none !important;
    margin:0 !important; color:inherit !important;
  }
  .dc-spc__buy-icon, .dc-spc__product-card:hover .dc-spc__buy-icon {
    flex:0 0 24px !important; width:24px !important; height:24px !important;
    display:inline-flex; background:rgba(255,255,255,.18) !important;
    color:#fff !important; border-radius:50%;
  }
  .dc-spc__quick-wrap {justify-content:flex-end; align-items:flex-start; padding:5px;}
  .dc-spc__quick, .dc-spc a.dc-spc__quick {
    min-width:28px; width:28px; height:28px; padding:3px;
    opacity:1; transform:none; justify-content:center;
    gap:0; border-radius:50%;
    background:rgba(255,255,255,.96) !important;
  }
  .dc-spc__quick-text {position:absolute; width:1px; height:1px; margin:-1px;
    padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap;}
  .dc-spc__quick-icon {width:18px; height:18px; flex:0 0 18px;}
  .dc-spc__product-media::after {opacity:0 !important;}
  .dc-spc__carousel-arrow {top:50%; width:38px; height:38px;}
  /* Also fix the legacy all-in-one sale carousel variant. */
  .dc-pps__product-card--sale {display:flex; flex-direction:column;}
  .dc-pps__product-card--sale .dc-pps__product-content {padding-bottom:13px;}
}
@container (max-width: 680px) {
  .dc-spp__promo-banner, .dc-pps__promo-banner { height:clamp(170px, 50cqw, 245px) !important; }
  .dc-spp__product-card, .dc-pps__product-card--special {
    grid-template-columns:minmax(0, 34%) minmax(0,1fr);
  }
  .dc-spp__product-card .dc-spp__product-content,
  .dc-pps__product-card--special .dc-pps__product-content {padding:9px 9px 10px 3px !important;}
  .dc-spc__product-card {
    /* Full, comfortable horizontal row: no microscopic cards side by side. */
    flex:0 0 min(100%, 520px) !important;
    width:min(100%, 520px) !important;
    grid-template-columns:minmax(0, 34%) minmax(0,1fr);
  }
  .dc-spc__product-content {padding:10px 9px 11px 2px !important;}
  .dc-spc__price, .dc-pps__price, .dc-spp__price {font-size:clamp(16px,4.5cqw,21px);}
  .dc-spc__product-title, .dc-spp__product-title,
  .dc-pps__product-card--special .dc-pps__product-title {font-size:clamp(13px,3.8cqw,15px);}
  .dc-spc__carousel-arrow {top:calc(100% - 14px); width:32px; height:32px;}
}
/* The sale carousel can be embedded in a narrow, 2-column Elementor layout on a
   wide screen. Container query governs it; legacy @media by viewport alone does not. */
@media (max-width: 1100px) {
  .dc-spc__product-card {height:auto !important; min-height:0 !important;}
  .dc-spc__product-content {flex:initial !important;}
  .dc-spc__buy {margin-top:9px !important;}
}
