/* RP Widget Shortcode Builder frontend - v0.1.522 */
.rp-widget {
    --rpw-bg: transparent;
    --rpw-arrow-size: 38px;
    --rpw-arrow-color: #111827;
    --rpw-arrow-bg: #fff;
    --rpw-dots-color: #d1d5db;
    --rpw-dots-active: #00c99b;
    --rpw-overlay-color: #000;
    --rpw-overlay-opacity: 0;
    direction: rtl;
    font-family: var(--rp-font, inherit);
    width: 100%;
    padding-block: var(--rpw-pt) var(--rpw-pb);
    background: var(--rpw-bg);
}

.rp-widget :where(a, button, input, select, textarea) {
    font-family: inherit;
}

.rp-widget-container-boxed .rp-widget-inner { width: min(100%, var(--rp-max-width, 1568px)); margin-inline: auto; padding-inline: 20px; }
.rp-widget-container-wide .rp-widget-inner { width: min(100%, 1760px); margin-inline: auto; padding-inline: 20px; }
.rp-widget-container-full .rp-widget-inner { width: 100%; margin-inline: auto; padding-inline: 0; }

.rp-widget-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.rp-widget-heading { min-width: 0; }
.rp-widget-title { margin: 0; font-size: clamp(17px, 1.5vw, 22px); font-weight: 700; line-height: 1.7; color: #111827; }
.rp-widget-subtitle { margin: 4px 0 0; font-size: 13px; font-weight: 400; line-height: 1.9; color: #6b7280; }
.rp-widget-view-all { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 6px 14px; border: 1px solid #e5e7eb; border-radius: 999px; background: #fff; color: #111827; font-size: 12px; font-weight: 500; text-decoration: none; white-space: nowrap; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, color .2s ease; }
.rp-widget-view-all:hover { color: #00c99b; border-color: rgba(0, 201, 155, .35); box-shadow: 0 10px 24px rgba(17, 24, 39, .08); transform: translateY(-1px); }

.rp-widget-stage { position: relative; }
.rp-widget-track.is-grid { display: grid; grid-template-columns: repeat(var(--rpw-cols-desktop), minmax(0, 1fr)); gap: var(--rpw-gap); }
.rp-widget-track.is-carousel { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)); gap: var(--rpw-gap); overflow-x: auto; overflow-y: visible; scroll-behavior: auto; overscroll-behavior-inline: contain; padding-block: 12px 20px; scrollbar-width: none; }
.rp-widget-track.is-carousel::-webkit-scrollbar { display: none; }
.rp-widget-snap-mandatory .rp-widget-track.is-carousel { scroll-snap-type: x mandatory; }
.rp-widget-snap-proximity .rp-widget-track.is-carousel { scroll-snap-type: x proximity; }
.rp-widget-snap-none .rp-widget-track.is-carousel { scroll-snap-type: none; }
.rp-widget-track.is-carousel > * { scroll-snap-align: start; }
.rp-widget-snap-align-center .rp-widget-track.is-carousel > * { scroll-snap-align: center; }
.rp-widget-grab-cursor .rp-widget-track.is-carousel { cursor: grab; }
.rp-widget-grab-cursor .rp-widget-track.is-carousel:active { cursor: grabbing; }

.rp-widget-products ul.products.rp-widget-track { margin: 0; padding: 0; list-style: none; }
.rp-widget-products .rp-widget-track.is-grid.products { display: grid; grid-template-columns: repeat(var(--rpw-cols-desktop), minmax(0, 1fr)); gap: var(--rpw-gap); }
.rp-widget-products .rp-widget-track.is-carousel.products { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)); gap: var(--rpw-gap); }

.rp-widget-banner-card { position: relative; min-width: 0; border-radius: var(--rpw-radius); overflow: hidden; background: #f5f7f8; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; isolation: isolate; }
.rp-widget-banner-card::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: var(--rpw-overlay-color); opacity: var(--rpw-overlay-opacity); transition: opacity .25s ease; }
.rp-widget-hover-overlay .rp-widget-banner-card:hover::after { opacity: max(var(--rpw-overlay-opacity), .22); }
.rp-widget-shadow-soft .rp-widget-banner-card, .rp-widget-shadow-soft .rp-shop-card { box-shadow: 0 12px 34px rgba(17, 24, 39, .06); }
.rp-widget-shadow-medium .rp-widget-banner-card, .rp-widget-shadow-medium .rp-shop-card { box-shadow: 0 18px 50px rgba(17, 24, 39, .11); }
.rp-widget-shadow-strong .rp-widget-banner-card, .rp-widget-shadow-strong .rp-shop-card { box-shadow: 0 26px 70px rgba(17, 24, 39, .16); }
.rp-widget-hover-lift .rp-widget-banner-card:hover, .rp-widget-hover-lift .rp-shop-card:hover { transform: translateY(-4px); }
.rp-widget-hover-shadow .rp-widget-banner-card:hover, .rp-widget-hover-shadow .rp-shop-card:hover { box-shadow: 0 20px 60px rgba(17, 24, 39, .14); }
.rp-widget-hover-zoom .rp-widget-banner-card:hover img { transform: scale(1.045); }

.rp-widget-banner-link, .rp-widget-banner-card > picture { display: block; position: relative; min-height: var(--rpw-banner-h); height: var(--rpw-banner-h); text-decoration: none; color: inherit; }
.rp-widget-banner-card picture { display: block; width: 100%; height: 100%; }
.rp-widget-banner-card img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.rp-widget-fit-contain .rp-widget-banner-card img { object-fit: contain; background: #f6f7f8; }
.rp-widget-banner-content { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: clamp(16px, 2vw, 34px); color: #fff; pointer-events: none; }
.rp-widget-banner-content.is-right { align-items: flex-start; text-align: right; }
.rp-widget-banner-content.is-center { align-items: center; text-align: center; }
.rp-widget-banner-content.is-left { align-items: flex-end; text-align: left; }
.rp-widget-banner-content strong { max-width: 70%; font-size: clamp(18px, 2vw, 34px); font-weight: 800; line-height: 1.45; text-shadow: 0 2px 16px rgba(0, 0, 0, .35); }
.rp-widget-banner-content span { max-width: 62%; font-size: 14px; font-weight: 400; line-height: 1.8; text-shadow: 0 2px 14px rgba(0, 0, 0, .28); }
.rp-widget-banner-content em { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 7px 16px; border-radius: 999px; background: #fff; color: #111827; font-size: 12px; font-style: normal; font-weight: 600; box-shadow: 0 8px 24px rgba(0, 0, 0, .18); }

.rp-widget-arrow { position: absolute; top: 50%; z-index: 4; width: var(--rpw-arrow-size); height: var(--rpw-arrow-size); border: 1px solid rgba(17, 24, 39, .08); border-radius: 50%; background: var(--rpw-arrow-bg); color: var(--rpw-arrow-color); box-shadow: 0 12px 34px rgba(17, 24, 39, .12); cursor: pointer; transform: translateY(-50%); transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease; }
.rp-widget-arrow:hover { transform: translateY(-50%) scale(1.04); box-shadow: 0 18px 44px rgba(17, 24, 39, .16); }
.rp-widget-arrow::before { content: ""; position: absolute; inset: 0; margin: auto; width: calc(var(--rpw-arrow-size) * .47); height: calc(var(--rpw-arrow-size) * .47); background: currentColor; mask: url("../../icons/related-carousel-arrow.svg") center/contain no-repeat; -webkit-mask: url("../../icons/related-carousel-arrow.svg") center/contain no-repeat; }
.rp-widget-arrow-prev { right: -14px; }
.rp-widget-arrow-next { left: -14px; }
.rp-widget-arrows-position-inside .rp-widget-arrow-prev { right: 12px; }
.rp-widget-arrows-position-inside .rp-widget-arrow-next { left: 12px; }
.rp-widget-arrow-next::before { transform: rotate(180deg); }
.rp-widget-arrows-hover .rp-widget-arrow { opacity: 0; pointer-events: none; }
.rp-widget-arrows-hover:hover .rp-widget-arrow, .rp-widget-arrows-hover:focus-within .rp-widget-arrow { opacity: 1; pointer-events: auto; }
.rp-widget-dots { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 10px; }
.rp-widget-dot { width: 6px; height: 6px; border: 0; border-radius: 50%; background: var(--rpw-dots-color); cursor: pointer; transition: width .2s ease, background-color .2s ease; }
.rp-widget-dot.is-active { width: 16px; border-radius: 999px; background: var(--rpw-dots-active); }

@media (max-width: 1024px) {
    .rp-widget-track.is-grid, .rp-widget-products .rp-widget-track.is-grid.products { grid-template-columns: repeat(var(--rpw-cols-tablet), minmax(0, 1fr)); }
    .rp-widget-track.is-carousel, .rp-widget-products .rp-widget-track.is-carousel.products { grid-auto-columns: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)); }
    .rp-widget-banner-link, .rp-widget-banner-card > picture { min-height: var(--rpw-banner-h-tablet); height: var(--rpw-banner-h-tablet); }
}

@media (max-width: 767px) {
    .rp-widget { padding-block: calc(var(--rpw-pt) * .75) calc(var(--rpw-pb) * .75); }
    .rp-widget-container-boxed .rp-widget-inner, .rp-widget-container-wide .rp-widget-inner { padding-inline: 14px; }
    .rp-widget-head { align-items: center; gap: 12px; margin-bottom: 14px; }
    .rp-widget-title { font-size: 17px; }
    .rp-widget-subtitle { font-size: 12px; }
    .rp-widget-view-all { min-height: 30px; padding: 5px 11px; font-size: 11px; }
    .rp-widget-track.is-grid, .rp-widget-products .rp-widget-track.is-grid.products { grid-template-columns: repeat(var(--rpw-cols-mobile), minmax(0, 1fr)); }
    .rp-widget-track.is-carousel, .rp-widget-products .rp-widget-track.is-carousel.products { grid-auto-columns: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)); }
    .rp-widget-banner-link, .rp-widget-banner-card > picture { min-height: var(--rpw-banner-h-mobile); height: var(--rpw-banner-h-mobile); }
    .rp-widget-banner-content { padding: 16px; }
    .rp-widget-banner-content strong { max-width: 90%; font-size: 18px; }
    .rp-widget-banner-content span { max-width: 90%; font-size: 12px; }
    .rp-widget-arrow { display: none; }
}

/* v0.1.518: cover hover naming replaces old overlay wording. */
.rp-widget-hover-cover .rp-widget-banner-card:hover::after { opacity: max(var(--rpw-overlay-opacity), .22); }

/* v0.1.524 - section background image/parallax support */
.rp-widget-bg-image {
    position: relative;
    background-color: var(--rpw-bg, transparent);
    background-image: var(--rpw-bg-image, none);
    background-size: var(--rpw-bg-size, cover);
    background-position: var(--rpw-bg-position, center center);
    background-repeat: var(--rpw-bg-repeat, no-repeat);
}
.rp-widget-bg-image::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: var(--rpw-section-overlay-color, #000);
    opacity: var(--rpw-section-overlay-opacity, 0);
}
.rp-widget-bg-image.rp-widget-bg-parallax {
    background-attachment: fixed;
}
.rp-widget-bg-image .rp-widget-inner {
    position: relative;
    z-index: 1;
}
@media (max-width: 767px) {
    .rp-widget-bg-image {
        background-image: var(--rpw-bg-image-mobile, var(--rpw-bg-image, none));
        background-attachment: scroll !important;
    }
}

/* v0.1.527 - Product widget controls and shared related-card output */
.rp-widget-products .rp-widget-track.products {
    align-items: stretch;
}
.rp-widget-products .rp-widget-track.products > li.product {
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.rp-widget-products .rp-widget-track.is-grid.products > li.product {
    width: 100% !important;
}
.rp-widget-products .rp-widget-track.is-carousel.products > li.product {
    width: 100% !important;
    min-width: 0 !important;
}

/* v0.1.536 - Carousel visible count, RTL arrow icons and hover-only arrows */
.rp-widget-layout-carousel .rp-widget-arrow {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(-50%) scale(.96) !important;
}
.rp-widget-layout-carousel:hover .rp-widget-arrow,
.rp-widget-layout-carousel:focus-within .rp-widget-arrow {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(-50%) scale(1) !important;
}
.rp-widget-arrow-prev::before {
    transform: rotate(180deg) !important;
}
.rp-widget-arrow-next::before {
    transform: rotate(0deg) !important;
}
.rp-widget-products .rp-widget-track.is-carousel.products {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: var(--rpw-gap) !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    scroll-behavior: auto;
    overscroll-behavior-inline: contain;
    padding-block: 12px 20px !important;
    scrollbar-width: none;
}
.rp-widget-products .rp-widget-track.is-carousel.products::-webkit-scrollbar {
    display: none;
}
.rp-widget-products .rp-widget-track.is-carousel.products > li.product {
    flex: 0 0 calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)) !important;
    width: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)) !important;
    min-width: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)) !important;
    max-width: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)) !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    scroll-snap-align: start;
}
@media (max-width: 1024px) {
    .rp-widget-products .rp-widget-track.is-carousel.products > li.product {
        flex-basis: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)) !important;
        width: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)) !important;
        min-width: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)) !important;
        max-width: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)) !important;
    }
}
@media (max-width: 767px) {
    .rp-widget-products .rp-widget-track.is-carousel.products > li.product {
        flex-basis: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)) !important;
        width: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)) !important;
        min-width: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)) !important;
        max-width: calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)) !important;
    }
}

/* v0.1.538 - inherit site font for widget heading and keep currency left of price in product widgets */
.rp-widget .rp-widget-head,
.rp-widget .rp-widget-title,
.rp-widget .rp-widget-subtitle,
.rp-widget .rp-widget-view-all {
    font-family: inherit !important;
}
.rp-widget-products .rp-product-card-component .woocommerce-Price-amount bdi {
    display: inline-flex !important;
    flex-direction: row-reverse !important;
    align-items: baseline !important;
    gap: 3px !important;
    direction: ltr !important;
    unicode-bidi: isolate !important;
}
.rp-widget-products .rp-product-card-component .woocommerce-Price-currencySymbol,
.rp-widget-products .rp-product-card-component .rp-shop-card-currency,
.rp-widget-products .rp-product-card-component .rp-card-currency {
    display: inline-flex !important;
    margin-inline: 0 !important;
    white-space: nowrap !important;
}

/* v0.1.539 - product widget RTL carousel, currency placement and title font */
.rp-widget .rp-widget-head,
.rp-widget .rp-widget-heading,
.rp-widget .rp-widget-title,
.rp-widget .rp-widget-subtitle,
.rp-widget .rp-widget-view-all,
.rp-widget .rp-widget-title * {
    font-family: var(--rp-font, inherit) !important;
}

.rp-widget-products .rp-widget-track.is-carousel.products {
    direction: rtl !important;
    scroll-padding-inline-start: 0 !important;
    scroll-padding-inline-end: 0 !important;
}

.rp-widget-products .rp-shop-card-price-final,
.rp-widget-products .rp-card-price-final {
    direction: rtl !important;
    unicode-bidi: isolate !important;
}

.rp-widget-products .rp-shop-card-price-final .woocommerce-Price-amount,
.rp-widget-products .rp-card-price-final .woocommerce-Price-amount,
.rp-widget-products .rp-shop-card-price-final bdi,
.rp-widget-products .rp-card-price-final bdi {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: baseline !important;
    justify-content: flex-start !important;
    gap: 3px !important;
    direction: rtl !important;
    unicode-bidi: isolate !important;
    white-space: nowrap !important;
}

.rp-widget-products .rp-shop-card-price-final .woocommerce-Price-currencySymbol,
.rp-widget-products .rp-card-price-final .woocommerce-Price-currencySymbol,
.rp-widget-products .rp-shop-card-price-final .rp-shop-card-currency,
.rp-widget-products .rp-card-price-final .rp-shop-card-currency,
.rp-widget-products .rp-shop-card-price-final .rp-card-currency,
.rp-widget-products .rp-card-price-final .rp-card-currency {
    order: 2 !important;
    margin-inline: 0 !important;
    white-space: nowrap !important;
}

/* v0.1.540 - Widget title style controls from product widget editor */
body .rp-widget .rp-widget-title,
body .rp-widget .rp-widget-title * {
    font-family: var(--rp-font, inherit) !important;
}
body .rp-widget .rp-widget-title {
    color: var(--rpw-title-color, #111827) !important;
    font-size: var(--rpw-title-size, clamp(17px, 1.5vw, 22px)) !important;
    font-weight: var(--rpw-title-weight, 700) !important;
    line-height: var(--rpw-title-line, 1.7) !important;
}
body .rp-widget .rp-widget-title:hover {
    color: var(--rpw-title-hover, var(--rpw-title-color, #111827)) !important;
}

/* v0.1.542 - RTL-first carousel start */
.rp-widget-track.is-carousel,
.rp-widget-products .rp-widget-track.is-carousel.products {
    direction: rtl !important;
}

.rp-widget-track.is-carousel > *,
.rp-widget-products .rp-widget-track.is-carousel.products > li.product {
    direction: rtl !important;
}

/* v0.1.543 - Configurable carousel card max width */
.rp-widget-track.is-carousel,
.rp-widget-products .rp-widget-track.is-carousel.products {
    grid-auto-columns: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)), var(--rpw-card-max-desktop, 9999px)) !important;
}

.rp-widget-products .rp-widget-track.is-carousel.products > li.product {
    flex: 0 0 min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)), var(--rpw-card-max-desktop, 9999px)) !important;
    width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)), var(--rpw-card-max-desktop, 9999px)) !important;
    min-width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)), var(--rpw-card-max-desktop, 9999px)) !important;
    max-width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)), var(--rpw-card-max-desktop, 9999px)) !important;
}

@media (max-width: 1024px) {
    .rp-widget-track.is-carousel,
    .rp-widget-products .rp-widget-track.is-carousel.products {
        grid-auto-columns: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)), var(--rpw-card-max-tablet, 9999px)) !important;
    }

    .rp-widget-products .rp-widget-track.is-carousel.products > li.product {
        flex-basis: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)), var(--rpw-card-max-tablet, 9999px)) !important;
        width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)), var(--rpw-card-max-tablet, 9999px)) !important;
        min-width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)), var(--rpw-card-max-tablet, 9999px)) !important;
        max-width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)), var(--rpw-card-max-tablet, 9999px)) !important;
    }
}

@media (max-width: 767px) {
    .rp-widget-track.is-carousel,
    .rp-widget-products .rp-widget-track.is-carousel.products {
        grid-auto-columns: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)), var(--rpw-card-max-mobile, 9999px)) !important;
    }

    .rp-widget-products .rp-widget-track.is-carousel.products > li.product {
        flex-basis: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)), var(--rpw-card-max-mobile, 9999px)) !important;
        width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)), var(--rpw-card-max-mobile, 9999px)) !important;
        min-width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)), var(--rpw-card-max-mobile, 9999px)) !important;
        max-width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)), var(--rpw-card-max-mobile, 9999px)) !important;
    }
}

/* v0.1.545 - Card width setting is a maximum width, not a forced fixed width */
.rp-widget-track.is-grid > *,
.rp-widget-products .rp-widget-track.is-grid.products > li.product {
    width: 100% !important;
    max-width: min(100%, var(--rpw-card-max-desktop, 9999px)) !important;
    justify-self: start !important;
}

.rp-widget-track.is-carousel,
.rp-widget-products .rp-widget-track.is-carousel.products {
    grid-auto-columns: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)), var(--rpw-card-max-desktop, 9999px)) !important;
}

.rp-widget-products .rp-widget-track.is-carousel.products > li.product {
    flex: 0 0 min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)), var(--rpw-card-max-desktop, 9999px)) !important;
    width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)), var(--rpw-card-max-desktop, 9999px)) !important;
    min-width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)), var(--rpw-card-max-desktop, 9999px)) !important;
    max-width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-desktop) - 1))) / var(--rpw-visible-desktop)), var(--rpw-card-max-desktop, 9999px)) !important;
}

@media (max-width: 1024px) {
    .rp-widget-track.is-grid > *,
    .rp-widget-products .rp-widget-track.is-grid.products > li.product {
        width: 100% !important;
        max-width: min(100%, var(--rpw-card-max-tablet, 9999px)) !important;
    }

    .rp-widget-track.is-carousel,
    .rp-widget-products .rp-widget-track.is-carousel.products {
        grid-auto-columns: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)), var(--rpw-card-max-tablet, 9999px)) !important;
    }

    .rp-widget-products .rp-widget-track.is-carousel.products > li.product {
        flex-basis: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)), var(--rpw-card-max-tablet, 9999px)) !important;
        width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)), var(--rpw-card-max-tablet, 9999px)) !important;
        min-width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)), var(--rpw-card-max-tablet, 9999px)) !important;
        max-width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-tablet) - 1))) / var(--rpw-visible-tablet)), var(--rpw-card-max-tablet, 9999px)) !important;
    }
}

@media (max-width: 767px) {
    .rp-widget-track.is-grid > *,
    .rp-widget-products .rp-widget-track.is-grid.products > li.product {
        width: 100% !important;
        max-width: min(100%, var(--rpw-card-max-mobile, 9999px)) !important;
    }

    .rp-widget-track.is-carousel,
    .rp-widget-products .rp-widget-track.is-carousel.products {
        grid-auto-columns: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)), var(--rpw-card-max-mobile, 9999px)) !important;
    }

    .rp-widget-products .rp-widget-track.is-carousel.products > li.product {
        flex-basis: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)), var(--rpw-card-max-mobile, 9999px)) !important;
        width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)), var(--rpw-card-max-mobile, 9999px)) !important;
        min-width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)), var(--rpw-card-max-mobile, 9999px)) !important;
        max-width: min(calc((100% - (var(--rpw-gap) * (var(--rpw-visible-mobile) - 1))) / var(--rpw-visible-mobile)), var(--rpw-card-max-mobile, 9999px)) !important;
    }
}

/* v0.1.695 - shortcode widget device visibility controls. */
@media (min-width: 1025px) {
  .rp-widget.rp-widget-hide-desktop {
    display: none !important;
  }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .rp-widget.rp-widget-hide-tablet {
    display: none !important;
  }
}

@media (max-width: 768px) {
  .rp-widget.rp-widget-hide-mobile {
    display: none !important;
  }
}

/* v0.1.699 - transition effects run only while changing carousel position. */
.rp-widget-track.is-carousel > *,
.rp-widget-products .rp-widget-track.is-carousel.products > li.product {
    transition:
        opacity var(--rpw-transition-half-duration, var(--rpw-transition-duration, 450ms)) var(--rpw-transition-easing, ease),
        transform var(--rpw-transition-half-duration, var(--rpw-transition-duration, 450ms)) var(--rpw-transition-easing, ease),
        filter var(--rpw-transition-half-duration, var(--rpw-transition-duration, 450ms)) var(--rpw-transition-easing, ease) !important;
    transform-origin: center center;
    backface-visibility: hidden;
}

/* At rest every visible card/banner remains fully opaque and unmodified. */
.rp-widget:not(.is-rp-transitioning) .rp-widget-track.is-carousel > *,
.rp-widget-products:not(.is-rp-transitioning) .rp-widget-track.is-carousel.products > li.product {
    opacity: 1 !important;
    filter: none !important;
}

.rp-widget.is-rp-transitioning .rp-widget-track.is-carousel {
    pointer-events: none;
}

.rp-widget-effect-fade.is-rp-transition-out .rp-widget-track.is-carousel > *,
.rp-widget-effect-fade.is-rp-transition-in-start .rp-widget-track.is-carousel > *,
.rp-widget-effect-fade.rp-widget-products.is-rp-transition-out .rp-widget-track.is-carousel.products > li.product,
.rp-widget-effect-fade.rp-widget-products.is-rp-transition-in-start .rp-widget-track.is-carousel.products > li.product {
    opacity: 0 !important;
}

.rp-widget-effect-zoom.is-rp-transition-out .rp-widget-track.is-carousel > *,
.rp-widget-effect-zoom.is-rp-transition-in-start .rp-widget-track.is-carousel > *,
.rp-widget-effect-zoom.rp-widget-products.is-rp-transition-out .rp-widget-track.is-carousel.products > li.product,
.rp-widget-effect-zoom.rp-widget-products.is-rp-transition-in-start .rp-widget-track.is-carousel.products > li.product {
    opacity: 0 !important;
    transform: scale(.94) !important;
}

.rp-widget-effect-flip .rp-widget-stage,
.rp-widget-effect-coverflow .rp-widget-stage {
    perspective: 1200px;
}

.rp-widget-effect-flip.is-rp-transition-forward:is(.is-rp-transition-out, .is-rp-transition-in-start) .rp-widget-track.is-carousel > *,
.rp-widget-effect-flip.rp-widget-products.is-rp-transition-forward:is(.is-rp-transition-out, .is-rp-transition-in-start) .rp-widget-track.is-carousel.products > li.product {
    opacity: 0 !important;
    transform: rotateY(14deg) scale(.97) !important;
}

.rp-widget-effect-flip.is-rp-transition-backward:is(.is-rp-transition-out, .is-rp-transition-in-start) .rp-widget-track.is-carousel > *,
.rp-widget-effect-flip.rp-widget-products.is-rp-transition-backward:is(.is-rp-transition-out, .is-rp-transition-in-start) .rp-widget-track.is-carousel.products > li.product {
    opacity: 0 !important;
    transform: rotateY(-14deg) scale(.97) !important;
}

.rp-widget-effect-coverflow.is-rp-transition-forward:is(.is-rp-transition-out, .is-rp-transition-in-start) .rp-widget-track.is-carousel > *,
.rp-widget-effect-coverflow.rp-widget-products.is-rp-transition-forward:is(.is-rp-transition-out, .is-rp-transition-in-start) .rp-widget-track.is-carousel.products > li.product {
    opacity: 0 !important;
    filter: saturate(.72) !important;
    transform: translateZ(-34px) rotateY(9deg) scale(.96) !important;
}

.rp-widget-effect-coverflow.is-rp-transition-backward:is(.is-rp-transition-out, .is-rp-transition-in-start) .rp-widget-track.is-carousel > *,
.rp-widget-effect-coverflow.rp-widget-products.is-rp-transition-backward:is(.is-rp-transition-out, .is-rp-transition-in-start) .rp-widget-track.is-carousel.products > li.product {
    opacity: 0 !important;
    filter: saturate(.72) !important;
    transform: translateZ(-34px) rotateY(-9deg) scale(.96) !important;
}

@media (prefers-reduced-motion: reduce) {
    .rp-widget-track.is-carousel > *,
    .rp-widget-products .rp-widget-track.is-carousel.products > li.product {
        transition: none !important;
    }
}


/* v0.1.700 - transform-based smooth movement for single and multi-item carousels. */
.rp-widget-track.is-carousel.is-rp-programmatic-scroll,
.rp-widget-products .rp-widget-track.is-carousel.products.is-rp-programmatic-scroll {
    scroll-snap-type: none !important;
    scroll-behavior: auto !important;
    overscroll-behavior-inline: none !important;
}

.rp-widget-track.is-carousel.is-rp-programmatic-scroll > *,
.rp-widget-products .rp-widget-track.is-carousel.products.is-rp-programmatic-scroll > li.product {
    scroll-snap-align: none !important;
    scroll-snap-stop: normal !important;
}

/* Initial compensated frame: visually keep the old group in place. */
.rp-widget-effect-slide .rp-widget-track.is-carousel.is-rp-slide-motion > *,
.rp-widget-effect-slide.rp-widget-products .rp-widget-track.is-carousel.products.is-rp-slide-motion > li.product {
    transform: translate3d(var(--rpw-slide-offset, 0px), 0, 0) !important;
    transition: none !important;
    will-change: transform;
}

/* Running frame: move the full row, including incoming slides, to its final position. */
.rp-widget-effect-slide .rp-widget-track.is-carousel.is-rp-slide-motion.is-rp-slide-running > *,
.rp-widget-effect-slide.rp-widget-products .rp-widget-track.is-carousel.products.is-rp-slide-motion.is-rp-slide-running > li.product {
    transform: translate3d(0, 0, 0) !important;
    transition: transform var(--rpw-slide-duration, 450ms) var(--rpw-slide-easing, ease) !important;
}

@media (prefers-reduced-motion: reduce) {
    .rp-widget-effect-slide .rp-widget-track.is-carousel.is-rp-slide-motion > *,
    .rp-widget-effect-slide.rp-widget-products .rp-widget-track.is-carousel.products.is-rp-slide-motion > li.product {
        transition-duration: 1ms !important;
    }
}
