/*
 * Shared product-carousel shell.
 * Theme Color must never target this namespace. Product card visuals are
 * intentionally absent: named Product Card layouts own them independently.
 */
.rp-product-carousel-settings {
    --rp-product-carousel-bg: transparent;
    --rp-product-carousel-gap: 20px;
    --rp-product-carousel-arrow-size: 38px;
    --rp-product-carousel-arrow-radius: 12px;
    --rp-product-carousel-arrow-color: #111827;
    --rp-product-carousel-arrow-bg: #fff;
    --rp-product-carousel-arrow-hover-color: var(--rp-product-carousel-arrow-color);
    --rp-product-carousel-arrow-hover-bg: var(--rp-product-carousel-arrow-bg);
    --rp-product-carousel-dots-color: #d1d5db;
    --rp-product-carousel-dots-active: #fd314a;
    --rp-product-carousel-transition-duration: 380ms;
    --rp-product-carousel-transition-easing: ease-out;
    --rp-product-carousel-loop-fade-duration: 190ms;
    --rp-product-carousel-current-card-width: var(--rp-product-carousel-layout-card-width-desktop, calc((100% - (var(--rp-product-carousel-gap, 20px) * (var(--rp-product-carousel-visible-desktop, 5) - 1))) / var(--rp-product-carousel-visible-desktop, 5)));
    box-sizing: border-box;
    position: relative;
    width: 100%;
    max-width: 100%;
    margin: var(--rp-product-carousel-section-mt, 20px) var(--rp-product-carousel-section-mr, 0) var(--rp-product-carousel-section-mb, 20px) var(--rp-product-carousel-section-ml, 0);
    padding: var(--rp-product-carousel-section-pt, 0) var(--rp-product-carousel-section-pr, 0) var(--rp-product-carousel-section-pb, 0) var(--rp-product-carousel-section-pl, 0);
    direction: rtl;
    border-style: var(--rp-product-carousel-section-border-style, solid);
    border-width: var(--rp-product-carousel-section-border-top, 0) var(--rp-product-carousel-section-border-right, 0) var(--rp-product-carousel-section-border-bottom, 0) var(--rp-product-carousel-section-border-left, 0);
    border-color: var(--rp-product-carousel-section-border-color, transparent);
    border-radius: var(--rp-product-carousel-section-radius-top-left, var(--rp-product-carousel-section-radius, 0)) var(--rp-product-carousel-section-radius-top-right, var(--rp-product-carousel-section-radius, 0)) var(--rp-product-carousel-section-radius-bottom-right, var(--rp-product-carousel-section-radius, 0)) var(--rp-product-carousel-section-radius-bottom-left, var(--rp-product-carousel-section-radius, 0));
    background: var(--rp-product-carousel-bg, transparent);
    box-shadow: var(--rp-product-carousel-section-shadow-value, 0 0 transparent), var(--rp-product-carousel-glass-shadow, 0 0 transparent);
    /* Keep standalone product-carousel decorations inside Main Section too. */
    overflow: hidden !important;
    isolation: isolate;
    transition: border-color var(--rp-product-carousel-section-transition-leave, var(--rp-product-carousel-section-transition, 180ms)) ease, box-shadow var(--rp-product-carousel-section-transition-leave, var(--rp-product-carousel-section-transition, 180ms)) ease, transform var(--rp-product-carousel-section-transition-leave, var(--rp-product-carousel-section-transition, 180ms)) ease;
}
/* Account Favorites uses this same carousel engine on every breakpoint. */
.rp-account-favorites,
.rp-product-carousel-settings--account-favorites,
.rp-product-carousel-settings--account-favorites .rp-product-carousel-settings__inner {
    width: 100% !important;
    max-width: none !important;
}
.rp-product-carousel-settings--account-favorites .rp-product-carousel-settings__inner {
    margin-inline: 0;
}

.rp-product-carousel-settings:hover {
    transition-duration: var(--rp-product-carousel-section-transition-enter, var(--rp-product-carousel-section-transition, 180ms));
    border-color: var(--rp-product-carousel-section-border-hover-color, var(--rp-product-carousel-section-border-color, transparent));
    box-shadow: var(--rp-product-carousel-section-hover-shadow-value, var(--rp-product-carousel-section-shadow-value, 0 0 transparent)), var(--rp-product-carousel-glass-shadow, 0 0 transparent);
}

.rp-product-carousel-shadow-soft { --rp-product-carousel-section-shadow-value: 0 10px 28px color-mix(in srgb, var(--rp-product-carousel-section-shadow-color, #000000) 8%, transparent); }
.rp-product-carousel-shadow-medium { --rp-product-carousel-section-shadow-value: 0 18px 46px color-mix(in srgb, var(--rp-product-carousel-section-shadow-color, #000000) 13%, transparent); }
.rp-product-carousel-shadow-strong { --rp-product-carousel-section-shadow-value: 0 26px 70px color-mix(in srgb, var(--rp-product-carousel-section-shadow-color, #000000) 20%, transparent); }
.rp-product-carousel-hover-shadow-soft { --rp-product-carousel-section-hover-shadow-value: 0 10px 28px color-mix(in srgb, var(--rp-product-carousel-section-hover-shadow-color, #000000) 8%, transparent); }
.rp-product-carousel-hover-shadow-medium { --rp-product-carousel-section-hover-shadow-value: 0 18px 46px color-mix(in srgb, var(--rp-product-carousel-section-hover-shadow-color, #000000) 13%, transparent); }
.rp-product-carousel-hover-shadow-strong { --rp-product-carousel-section-hover-shadow-value: 0 26px 70px color-mix(in srgb, var(--rp-product-carousel-section-hover-shadow-color, #000000) 20%, transparent); }

.rp-product-carousel-settings__inner {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    width: min(100%, var(--rp-product-carousel-container-max-width, 1568px));
    max-width: 100%;
    margin-inline: auto;
    padding: var(--rp-product-carousel-pt, 0) var(--rp-product-carousel-pr, 0) var(--rp-product-carousel-pb, 0) var(--rp-product-carousel-pl, 0);
    transition: transform var(--rp-product-carousel-section-transition-leave, var(--rp-product-carousel-section-transition, 180ms)) ease;
}

.rp-product-carousel-settings:hover > .rp-product-carousel-settings__inner {
    transition-duration: var(--rp-product-carousel-section-transition-enter, var(--rp-product-carousel-section-transition, 180ms));
    transform: translateY(var(--rp-product-carousel-section-hover-y, 0)) scale(var(--rp-product-carousel-section-hover-scale, 1));
}

.rp-product-carousel-settings__head { margin: 0 0 18px; }
.rp-product-carousel-settings .rp-product-carousel-settings__title,
body.single-product .rp-single-product-page .rp-product-carousel-settings .rp-product-carousel-settings__title,
body.woocommerce-cart .rp-product-carousel-settings .rp-product-carousel-settings__title {
    margin: var(--rp-product-carousel-title-mt, 0) 0 0 !important;
    color: var(--rp-product-carousel-active-title-color, var(--rp-product-carousel-title-color, #111827)) !important;
    font-family: var(--rp-font, inherit) !important;
    font-size: var(--rp-product-carousel-title-size, 22px) !important;
    font-weight: var(--rp-product-carousel-title-weight, 700) !important;
    font-synthesis-weight: none;
    line-height: var(--rp-product-carousel-title-line, 1.7) !important;
    transition: color .2s ease;
}
.rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible),
body.single-product .rp-single-product-page .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible),
body.woocommerce-cart .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible) {
    color: var(--rp-product-carousel-active-title-hover, var(--rp-product-carousel-title-hover, var(--rp-product-carousel-title-color, #111827))) !important;
}
.rp-product-carousel-settings__subtitle {
    margin: var(--rp-product-carousel-subtitle-mt, 4px) 0 0;
    color: var(--rp-product-carousel-active-subtitle-color, var(--rp-product-carousel-subtitle-color, #6b7280));
    font-size: var(--rp-product-carousel-subtitle-size, 13px);
    font-weight: var(--rp-product-carousel-subtitle-weight, 400);
    line-height: var(--rp-product-carousel-subtitle-line, 1.9);
    transition: color .2s ease;
}
.rp-product-carousel-settings__subtitle:is(:hover, :focus-visible) {
    color: var(--rp-product-carousel-active-subtitle-hover, var(--rp-product-carousel-subtitle-hover, var(--rp-product-carousel-subtitle-color, #6b7280)));
}

/* Shared lazy placeholder for Product, Need and Cart Related carousels. */
.rp-product-carousel-settings:is([data-rp-single-related-deferred],[data-rp-single-need-deferred],[data-rp-cart-related-deferred]) {
    min-height: 390px;
    --rp-product-carousel-skeleton-card-min-height: 280px;
    --rp-product-carousel-skeleton-card-padding: 20px;
    --rp-product-carousel-skeleton-card-radius: 14px;
    --rp-product-carousel-skeleton-image-width: 138px;
    --rp-product-carousel-skeleton-image-height: 138px;
}

.rp-product-carousel-skeleton {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: var(--rp-product-carousel-current-card-width);
    gap: var(--rp-product-carousel-gap, 20px);
    width: 100%;
    overflow: hidden;
}

.rp-product-carousel-skeleton__card {
    position: relative;
    display: flex;
    min-height: var(--rp-product-carousel-skeleton-card-min-height, 280px);
    flex-direction: column;
    gap: 12px;
    overflow: hidden;
    padding: var(--rp-product-carousel-skeleton-card-padding, 20px);
    border: 1px solid #e7ebef;
    border-radius: var(--rp-product-carousel-skeleton-card-radius, 14px);
    background: #fff;
    box-sizing: border-box;
}

.rp-product-carousel-skeleton__card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, transparent 20%, rgba(255,255,255,.78) 48%, transparent 76%);
    transform: translateX(110%);
    animation: rp-product-carousel-skeleton-shimmer 1.3s ease-in-out infinite;
    pointer-events: none;
}

:is(.rp-product-carousel-skeleton__image,.rp-product-carousel-skeleton__line) {
    display: block;
    border-radius: 10px;
    background: #edf1f4;
}

.rp-product-carousel-skeleton__image {
    width: var(--rp-product-carousel-skeleton-image-width, 138px);
    min-width: var(--rp-product-carousel-skeleton-image-width, 138px);
    height: var(--rp-product-carousel-skeleton-image-height, 138px);
    min-height: var(--rp-product-carousel-skeleton-image-height, 138px);
    margin-inline: auto;
}
.rp-product-carousel-skeleton__line { height: 12px; }
.rp-product-carousel-skeleton__line.is-title { width: 82%; }
.rp-product-carousel-skeleton__line.is-meta { width: 56%; }
.rp-product-carousel-skeleton__line.is-price { width: 68%; margin-top: auto; }

.rp-product-carousel-settings--single-need .rp-product-carousel-skeleton {
    justify-content: center;
}

@keyframes rp-product-carousel-skeleton-shimmer {
    to { transform: translateX(-110%); }
}

@media (max-width: 1024px) {
    .rp-product-carousel-skeleton { grid-auto-columns: var(--rp-product-carousel-current-card-width); }
}

@media (max-width: 767px) {
    .rp-product-carousel-settings:is([data-rp-single-related-deferred],[data-rp-single-need-deferred],[data-rp-cart-related-deferred]) { min-height: 300px; }
    .rp-product-carousel-skeleton { grid-auto-columns: var(--rp-product-carousel-current-card-width); }
    .rp-product-carousel-skeleton__card { min-height: var(--rp-product-carousel-skeleton-card-min-height, 280px); }
}

:is(body.rp-theme-color-preset-dark,body.rp-theme-dark,body.is-dark,html[data-rp-user-theme="dark"] body) .rp-product-carousel-skeleton__card {
    border-color: #35404b;
    background: #171c22;
}

:is(body.rp-theme-color-preset-dark,body.rp-theme-dark,body.is-dark,html[data-rp-user-theme="dark"] body) :is(.rp-product-carousel-skeleton__image,.rp-product-carousel-skeleton__line) {
    background: #29323b;
}

:is(body.rp-theme-color-preset-dark,body.rp-theme-dark,body.is-dark,html[data-rp-user-theme="dark"] body) .rp-product-carousel-skeleton__card::after {
    background: linear-gradient(100deg, transparent 20%, rgba(255,255,255,.08) 48%, transparent 76%);
}

@media (prefers-reduced-motion: reduce) {
    .rp-product-carousel-skeleton__card::after { animation: none; }
}

/* Keep the standalone product carousels on the same width contract as widgets. */
.rp-product-carousel-container-boxed,
.rp-product-carousel-container-wide,
.rp-product-carousel-container-full,
.rp-product-carousel-container-custom {
    left: var(--rp-section-bleed-correction, 0px);
    max-width: none;
    --rp-product-carousel-section-bleed-width: min(var(--rp-product-carousel-section-max-width), var(--rp-viewport-inline-size, 100vw));
    width: var(--rp-product-carousel-section-bleed-width);
    margin-right: calc((100% - var(--rp-product-carousel-section-bleed-width)) / 2 + var(--rp-product-carousel-section-mr, 0px));
    margin-left: calc((100% - var(--rp-product-carousel-section-bleed-width)) / 2 + var(--rp-product-carousel-section-ml, 0px));
}
.rp-product-carousel-container-boxed { --rp-product-carousel-section-max-width: 1469px; }
.rp-product-carousel-container-wide {
    --rp-product-carousel-section-max-width: 1760px;
}
.rp-product-carousel-container-full {
    --rp-product-carousel-section-max-width: 1905px;
}
.rp-product-carousel-container-custom { --rp-product-carousel-section-max-width: var(--rp-product-carousel-container-max-width, 1568px); }
.rp-product-carousel-container-boxed > .rp-product-carousel-settings__inner,
.rp-product-carousel-container-wide > .rp-product-carousel-settings__inner,
.rp-product-carousel-container-full > .rp-product-carousel-settings__inner,
.rp-product-carousel-container-custom > .rp-product-carousel-settings__inner {
    width: 100%;
    max-width: none;
}

body.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__title,
.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__title {
    color: var(--rp-product-carousel-active-title-color, var(--rp-product-carousel-title-color-dark, #f8fafc)) !important;
}
body.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible),
.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible) {
    color: var(--rp-product-carousel-active-title-hover, var(--rp-product-carousel-title-hover-dark, var(--rp-product-carousel-title-color-dark, #f8fafc))) !important;
}
body.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle,
.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle {
    color: var(--rp-product-carousel-active-subtitle-color, var(--rp-product-carousel-subtitle-color-dark, #cbd5e1));
}
body.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle:is(:hover, :focus-visible),
.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle:is(:hover, :focus-visible) {
    color: var(--rp-product-carousel-active-subtitle-hover, var(--rp-product-carousel-subtitle-hover-dark, var(--rp-product-carousel-subtitle-color-dark, #cbd5e1)));
}

/* Header theme switching uses data-rp-theme-mode at runtime. Keep the same
   dark heading variables active outside the saved preset class as well. */
html[data-rp-theme-mode="dark"] .rp-product-carousel-settings .rp-product-carousel-settings__title,
html[data-theme="dark"] .rp-product-carousel-settings .rp-product-carousel-settings__title,
body.rp-theme-dark .rp-product-carousel-settings .rp-product-carousel-settings__title,
body.is-dark .rp-product-carousel-settings .rp-product-carousel-settings__title {
    color: var(--rp-product-carousel-active-title-color, var(--rp-product-carousel-title-color-dark, #f8fafc)) !important;
}

html[data-rp-theme-mode="dark"] .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible),
html[data-theme="dark"] .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible),
body.rp-theme-dark .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible),
body.is-dark .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible) {
    color: var(--rp-product-carousel-active-title-hover, var(--rp-product-carousel-title-hover-dark, var(--rp-product-carousel-title-color-dark, #f8fafc))) !important;
}

html[data-rp-theme-mode="dark"] .rp-product-carousel-settings .rp-product-carousel-settings__subtitle,
html[data-theme="dark"] .rp-product-carousel-settings .rp-product-carousel-settings__subtitle,
body.rp-theme-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle,
body.is-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle {
    color: var(--rp-product-carousel-active-subtitle-color, var(--rp-product-carousel-subtitle-color-dark, #cbd5e1)) !important;
}

html[data-rp-theme-mode="dark"] .rp-product-carousel-settings .rp-product-carousel-settings__subtitle:is(:hover, :focus-visible),
html[data-theme="dark"] .rp-product-carousel-settings .rp-product-carousel-settings__subtitle:is(:hover, :focus-visible),
body.rp-theme-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle:is(:hover, :focus-visible),
body.is-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle:is(:hover, :focus-visible) {
    color: var(--rp-product-carousel-active-subtitle-hover, var(--rp-product-carousel-subtitle-hover-dark, var(--rp-product-carousel-subtitle-color-dark, #cbd5e1))) !important;
}

/*
 * Resolve the active heading palette on the carousel wrapper. Responsive
 * rules later in this file intentionally consume these aliases, so a more
 * specific legacy Single Product or Cart title selector cannot restore the
 * Light palette after Dark Mode has been selected.
 */
:is(body.rp-theme-color-preset-dark, body.rp-theme-dark, body.is-dark, html[data-rp-user-theme="dark"] body, html[data-rp-theme-mode="dark"] body, html[data-theme="dark"] body) .rp-product-carousel-settings {
    --rp-product-carousel-active-title-color: var(--rp-product-carousel-title-color-dark, #f8fafc);
    --rp-product-carousel-active-title-hover: var(--rp-product-carousel-title-hover-dark, var(--rp-product-carousel-title-color-dark, #f8fafc));
    --rp-product-carousel-active-subtitle-color: var(--rp-product-carousel-subtitle-color-dark, #cbd5e1);
    --rp-product-carousel-active-subtitle-hover: var(--rp-product-carousel-subtitle-hover-dark, var(--rp-product-carousel-subtitle-color-dark, #cbd5e1));
}

@media (max-width: 1024px) {
    body.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__title,
    .rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__title { color: var(--rp-product-carousel-active-title-color, var(--rp-product-carousel-title-color-dark-tablet, var(--rp-product-carousel-title-color-dark, #f8fafc))) !important; }
    body.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible),
    .rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible) { color: var(--rp-product-carousel-active-title-hover, var(--rp-product-carousel-title-hover-dark-tablet, var(--rp-product-carousel-title-hover-dark, #fff))) !important; }
    body.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle,
    .rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle { color: var(--rp-product-carousel-active-subtitle-color, var(--rp-product-carousel-subtitle-color-dark-tablet, var(--rp-product-carousel-subtitle-color-dark, #cbd5e1))); }
    body.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle:is(:hover, :focus-visible),
    .rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle:is(:hover, :focus-visible) { color: var(--rp-product-carousel-active-subtitle-hover, var(--rp-product-carousel-subtitle-hover-dark-tablet, var(--rp-product-carousel-subtitle-hover-dark, #f8fafc))); }
}

@media (max-width: 767px) {
    body.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__title,
    .rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__title { color: var(--rp-product-carousel-active-title-color, var(--rp-product-carousel-title-color-dark-mobile, var(--rp-product-carousel-title-color-dark-tablet, var(--rp-product-carousel-title-color-dark, #f8fafc)))) !important; }
    body.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible),
    .rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible) { color: var(--rp-product-carousel-active-title-hover, var(--rp-product-carousel-title-hover-dark-mobile, var(--rp-product-carousel-title-hover-dark-tablet, var(--rp-product-carousel-title-hover-dark, #fff)))) !important; }
    body.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle,
    .rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle { color: var(--rp-product-carousel-active-subtitle-color, var(--rp-product-carousel-subtitle-color-dark-mobile, var(--rp-product-carousel-subtitle-color-dark-tablet, var(--rp-product-carousel-subtitle-color-dark, #cbd5e1)))); }
    body.rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle:is(:hover, :focus-visible),
    .rp-theme-color-preset-dark .rp-product-carousel-settings .rp-product-carousel-settings__subtitle:is(:hover, :focus-visible) { color: var(--rp-product-carousel-active-subtitle-hover, var(--rp-product-carousel-subtitle-hover-dark-mobile, var(--rp-product-carousel-subtitle-hover-dark-tablet, var(--rp-product-carousel-subtitle-hover-dark, #f8fafc)))); }
}

.rp-product-carousel-settings__stage { position: relative; isolation: isolate; }
.rp-product-carousel-settings__viewport { width: 100%; min-width: 0; overflow: hidden; }
.rp-product-carousel-edge-fade .rp-product-carousel-settings__track {
    --rp-product-carousel-effective-fade-left: var(--rp-product-carousel-edge-fade-left, 32px);
    --rp-product-carousel-effective-fade-right: var(--rp-product-carousel-edge-fade-right, 32px);
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 var(--rp-product-carousel-effective-fade-left), #000 calc(100% - var(--rp-product-carousel-effective-fade-right)), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 var(--rp-product-carousel-effective-fade-left), #000 calc(100% - var(--rp-product-carousel-effective-fade-right)), transparent 100%);
}

.rp-product-carousel-edge-fade.rp-product-carousel-dir-ltr.is-rp-edge-blocked-backward .rp-product-carousel-settings__track,
.rp-product-carousel-edge-fade.rp-product-carousel-dir-rtl.is-rp-edge-blocked-forward .rp-product-carousel-settings__track {
    --rp-product-carousel-effective-fade-left: 0px;
}

.rp-product-carousel-edge-fade.rp-product-carousel-dir-ltr.is-rp-edge-blocked-forward .rp-product-carousel-settings__track,
.rp-product-carousel-edge-fade.rp-product-carousel-dir-rtl.is-rp-edge-blocked-backward .rp-product-carousel-settings__track {
    --rp-product-carousel-effective-fade-right: 0px;
}
.rp-product-carousel-settings ul.products.rp-product-carousel-settings__track {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-template-columns: none !important;
    grid-template-rows: minmax(0, auto) !important;
    grid-auto-columns: var(--rp-product-carousel-current-card-width) !important;
    align-items: stretch;
    gap: var(--rp-product-carousel-gap, 20px) !important;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0 !important;
    padding: 12px 0 20px !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    scroll-behavior: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    transition: opacity var(--rp-product-carousel-loop-fade-duration, 190ms) var(--rp-product-carousel-transition-easing, ease-in-out);
}
.rp-product-carousel-settings ul.products.rp-product-carousel-settings__track::-webkit-scrollbar { display: none; }
.rp-product-carousel-settings ul.products.rp-product-carousel-settings__track::before,
.rp-product-carousel-settings ul.products.rp-product-carousel-settings__track::after { content: none !important; display: none !important; }
.rp-product-carousel-settings ul.products.rp-product-carousel-settings__track > li.product {
    box-sizing: border-box;
    width: var(--rp-product-carousel-current-card-width) !important;
    max-width: var(--rp-product-carousel-current-card-width) !important;
    min-width: var(--rp-product-carousel-current-card-width) !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: none !important;
    scroll-snap-align: start;
    /* Track direction controls movement only. Product cards stay Persian/RTL. */
    direction: rtl !important;
}
.rp-product-carousel-settings[data-snap-align="center"] ul.products.rp-product-carousel-settings__track > li.product,
.rp-product-carousel-settings.rp-product-carousel-snap-align-center ul.products.rp-product-carousel-settings__track > li.product {
    scroll-snap-align: center;
}
.rp-product-carousel-settings.is-rp-loop-wrapping .rp-product-carousel-settings__track {
    opacity: 0;
    pointer-events: none !important;
    will-change: opacity;
}
.rp-product-carousel-grab-cursor .rp-product-carousel-settings__track { cursor: grab; }
.rp-product-carousel-grab-cursor .rp-product-carousel-settings__track:active,
.rp-product-carousel-settings__track.is-rp-dragging { cursor: grabbing; user-select: none; }

/* Match the Widget engine: it owns horizontal touch drag and inertia. */
.rp-product-carousel-dir-rtl .rp-product-carousel-settings__track { direction: rtl !important; }
.rp-product-carousel-dir-ltr .rp-product-carousel-settings__track { direction: ltr !important; }
.rp-product-carousel-behavior-momentum .rp-product-carousel-settings__track,
.rp-product-carousel-behavior-snap .rp-product-carousel-settings__track,
.rp-product-carousel-behavior-free .rp-product-carousel-settings__track {
    touch-action: pan-x pan-y pinch-zoom;
    -webkit-overflow-scrolling: touch;
}
.rp-product-carousel-behavior-arrows_only .rp-product-carousel-settings__track {
    cursor: default !important;
    touch-action: pan-x pan-y pinch-zoom;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: none !important;
}
.rp-product-carousel-behavior-momentum .rp-product-carousel-settings__track,
.rp-product-carousel-behavior-free .rp-product-carousel-settings__track {
    scroll-snap-type: none !important;
}
.rp-product-carousel-behavior-snap .rp-product-carousel-settings__track {
    scroll-snap-type: x mandatory !important;
}
.rp-product-carousel-settings__track.is-rp-dragging,
.rp-product-carousel-settings__track.is-rp-programmatic-scroll {
    scroll-snap-type: none !important;
}

.rp-product-carousel-settings__arrow {
    position: absolute;
    z-index: 20;
    width: var(--rp-product-carousel-arrow-size, 38px);
    height: var(--rp-product-carousel-arrow-size, 38px);
    margin: 0;
    padding: 0;
    border: 1px solid rgba(17,24,39,.08);
    border-radius: var(--rp-product-carousel-arrow-radius, 12px);
    background: var(--rp-product-carousel-arrow-bg, #fff);
    color: var(--rp-product-carousel-arrow-color, #111827);
    box-shadow: 0 12px 34px rgba(17,24,39,.12);
    cursor: pointer;
    transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
}
.rp-product-carousel-settings__arrow:not(:disabled):is(:hover, :focus-visible) {
    background: var(--rp-product-carousel-arrow-hover-bg, var(--rp-product-carousel-arrow-bg));
    color: var(--rp-product-carousel-arrow-hover-color, var(--rp-product-carousel-arrow-color));
}
.rp-product-carousel-settings__arrow:disabled { opacity: .35 !important; pointer-events: none !important; }

/* Frontend runtime hides navigation when every queried card already fits. */
.rp-product-carousel-settings__arrow[hidden],
.rp-product-carousel-settings__dots[hidden] { display: none !important; }
.rp-product-carousel-settings__arrow::before {
    content: "";
    position: absolute;
    inset: 0;
    width: 47%;
    height: 47%;
    margin: auto;
    background: currentColor;
    -webkit-mask: url("../../icons/arrow-right.svg") center/contain no-repeat;
    mask: url("../../icons/arrow-right.svg") center/contain no-repeat;
}
.rp-product-carousel-settings__arrow--prev {
    top: var(--rp-product-carousel-arrow-prev-top, 50%);
    right: var(--rp-product-carousel-arrow-prev-right, 16px);
    bottom: var(--rp-product-carousel-arrow-prev-bottom, auto);
    left: var(--rp-product-carousel-arrow-prev-left, auto);
    transform: translateY(var(--rp-product-carousel-arrow-prev-translate-y, -50%));
}
.rp-product-carousel-settings__arrow--next {
    top: var(--rp-product-carousel-arrow-next-top, 50%);
    right: var(--rp-product-carousel-arrow-next-right, auto);
    bottom: var(--rp-product-carousel-arrow-next-bottom, auto);
    left: var(--rp-product-carousel-arrow-next-left, 16px);
    transform: translateY(var(--rp-product-carousel-arrow-next-translate-y, -50%));
}
.rp-product-carousel-arrows-layout-grouped .rp-product-carousel-settings__arrow { top: var(--rp-product-carousel-arrow-group-top, auto); bottom: var(--rp-product-carousel-arrow-group-bottom, 16px); transform: none; }
.rp-product-carousel-arrows-layout-grouped.rp-product-carousel-arrows-group-side-right .rp-product-carousel-settings__arrow--prev { right: var(--rp-product-carousel-arrow-group-right, 16px); left: auto; }
.rp-product-carousel-arrows-layout-grouped.rp-product-carousel-arrows-group-side-right .rp-product-carousel-settings__arrow--next { right: calc(var(--rp-product-carousel-arrow-group-right, 16px) + var(--rp-product-carousel-arrow-size, 38px) + var(--rp-product-carousel-arrow-group-gap, 8px)); left: auto; }
.rp-product-carousel-arrows-layout-grouped.rp-product-carousel-arrows-group-side-left .rp-product-carousel-settings__arrow--next { right: auto; left: var(--rp-product-carousel-arrow-group-left, 16px); }
.rp-product-carousel-arrows-layout-grouped.rp-product-carousel-arrows-group-side-left .rp-product-carousel-settings__arrow--prev { right: auto; left: calc(var(--rp-product-carousel-arrow-group-left, 16px) + var(--rp-product-carousel-arrow-size, 38px) + var(--rp-product-carousel-arrow-group-gap, 8px)); }
.rp-product-carousel-arrows-layout-grouped .rp-product-carousel-settings__arrow:is(:hover, :focus-visible) { transform: scale(1.04); }
.rp-product-carousel-settings__arrow--prev:hover { transform: translateY(var(--rp-product-carousel-arrow-prev-translate-y, -50%)) scale(1.04); }
.rp-product-carousel-settings__arrow--next:hover { transform: translateY(var(--rp-product-carousel-arrow-next-translate-y, -50%)) scale(1.04); }
/* Use the SVG for the actual pointing direction instead of mirroring it. */
.rp-product-carousel-settings__arrow--prev::before { -webkit-mask-image: url("../../icons/arrow-right.svg"); mask-image: url("../../icons/arrow-right.svg"); }
.rp-product-carousel-settings__arrow--next::before { -webkit-mask-image: url("../../icons/arrow-left.svg"); mask-image: url("../../icons/arrow-left.svg"); }
.rp-product-carousel-arrows-hover .rp-product-carousel-settings__arrow:not(:disabled) { opacity: 0; pointer-events: none; }
.rp-product-carousel-arrows-hover:hover .rp-product-carousel-settings__arrow:not(:disabled),
.rp-product-carousel-arrows-hover:focus-within .rp-product-carousel-settings__arrow:not(:disabled) { opacity: 1; pointer-events: auto; }
.rp-product-carousel-dir-ltr .rp-product-carousel-settings__arrow--prev::before { -webkit-mask-image: url("../../icons/arrow-left.svg"); mask-image: url("../../icons/arrow-left.svg"); }
.rp-product-carousel-dir-ltr .rp-product-carousel-settings__arrow--next::before { -webkit-mask-image: url("../../icons/arrow-right.svg"); mask-image: url("../../icons/arrow-right.svg"); }
/* Hover-only arrows must stay discoverable on devices without hover. */
@media (hover: none) {
    .rp-product-carousel-arrows-hover .rp-product-carousel-settings__arrow:not(:disabled) {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }
}

.rp-product-carousel-settings__dots {
    position: var(--rp-product-carousel-dots-position, relative);
    top: var(--rp-product-carousel-dots-position-top, auto);
    right: var(--rp-product-carousel-dots-position-right, auto);
    bottom: var(--rp-product-carousel-dots-position-bottom, auto);
    left: var(--rp-product-carousel-dots-position-left, auto);
    transform: translateX(var(--rp-product-carousel-dots-translate-x, 0));
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--rp-product-carousel-dots-gap, 7px);
    margin-top: var(--rp-product-carousel-dots-mt, 12px);
    min-height: max(20px, var(--rp-product-carousel-dot-size, 8px));
    direction: rtl;
}
.rp-product-carousel-dir-rtl .rp-product-carousel-settings__dots { direction: rtl; }
.rp-product-carousel-dir-ltr .rp-product-carousel-settings__dots { direction: ltr; }
.rp-product-carousel-settings__dots .rp-product-carousel-dot,
.rp-product-carousel-settings__dots .rp-widget-dot {
    box-sizing: border-box;
    width: var(--rp-product-carousel-dot-size, 8px);
    height: var(--rp-product-carousel-dot-size, 8px);
    min-width: var(--rp-product-carousel-dot-size, 8px);
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: var(--rp-product-carousel-dots-color, #d1d5db);
    color: var(--rp-product-carousel-dots-color, #d1d5db);
    cursor: pointer;
    font: inherit;
    line-height: 1;
    transition: width .2s ease, height .2s ease, transform .2s ease, background-color .2s ease, color .2s ease;
}
.rp-product-carousel-settings__dots :is(.rp-product-carousel-dot,.rp-widget-dot):hover {
    background: var(--rp-product-carousel-dots-hover, #94a3b8);
    color: var(--rp-product-carousel-dots-hover, #94a3b8);
}
.rp-product-carousel-settings__dots :is(.rp-product-carousel-dot,.rp-widget-dot).is-active {
    width: calc(var(--rp-product-carousel-dot-size, 8px) * 2);
    background: var(--rp-product-carousel-dots-active, #fd314a);
    color: var(--rp-product-carousel-dots-active, #fd314a);
}
.rp-product-carousel-settings__dots.is-circle :is(.rp-product-carousel-dot,.rp-widget-dot).is-active { width: var(--rp-product-carousel-dot-size, 8px); }
.rp-product-carousel-settings__dots.is-grow :is(.rp-product-carousel-dot,.rp-widget-dot).is-active {
    width: var(--rp-product-carousel-dot-size, 8px);
    transform: scale(1.45);
}
.rp-product-carousel-settings__dots.is-line :is(.rp-product-carousel-dot,.rp-widget-dot) { width: calc(var(--rp-product-carousel-dot-size, 8px) * 2.5); height: 3px; border-radius: 3px; }
.rp-product-carousel-settings__dots.is-line :is(.rp-product-carousel-dot,.rp-widget-dot).is-active { width: calc(var(--rp-product-carousel-dot-size, 8px) * 4); }
.rp-product-carousel-settings__dots.is-pill :is(.rp-product-carousel-dot,.rp-widget-dot) { width: calc(var(--rp-product-carousel-dot-size, 8px) * 2); border-radius: 999px; }
.rp-product-carousel-settings__dots.is-pill :is(.rp-product-carousel-dot,.rp-widget-dot).is-active { width: calc(var(--rp-product-carousel-dot-size, 8px) * 3.5); }
.rp-product-carousel-settings__dots.is-number :is(.rp-product-carousel-dot,.rp-widget-dot) {
    width: auto;
    min-width: calc(var(--rp-product-carousel-dot-size, 8px) * 2.5);
    height: calc(var(--rp-product-carousel-dot-size, 8px) * 2.5);
    padding-inline: 5px;
    background: transparent;
    color: var(--rp-product-carousel-dots-color, #d1d5db);
    font-size: max(10px, var(--rp-product-carousel-dot-size, 8px));
    font-weight: 700;
}
.rp-product-carousel-settings__dots.is-number :is(.rp-product-carousel-dot,.rp-widget-dot):hover {
    background: transparent;
    color: var(--rp-product-carousel-dots-hover, #94a3b8);
}
.rp-product-carousel-settings__dots.is-number :is(.rp-product-carousel-dot,.rp-widget-dot).is-active {
    width: auto;
    background: var(--rp-product-carousel-dots-active, #fd314a);
    color: #fff;
}

/* Legacy wrappers (saved before responsive mode classes existed) retain their
 * original behavior. New wrappers are handled per breakpoint below so a
 * Desktop glass/image mode cannot leak into Tablet or Mobile. */
.rp-product-carousel-bg-image:not([class*="rp-product-carousel-bg-desktop-"]),
.rp-product-carousel-bg-glass:not([class*="rp-product-carousel-bg-desktop-"]),
.rp-product-carousel-bg-liquid_glass:not([class*="rp-product-carousel-bg-desktop-"]) {
    background-color: var(--rp-product-carousel-bg, transparent);
    background-image: var(--rp-product-carousel-bg-image, none);
    background-size: var(--rp-product-carousel-bg-size, cover);
    background-position: var(--rp-product-carousel-bg-position, center center);
    background-repeat: var(--rp-product-carousel-bg-repeat, no-repeat);
}
.rp-product-carousel-bg-glass:not([class*="rp-product-carousel-bg-desktop-"]),
.rp-product-carousel-bg-liquid_glass:not([class*="rp-product-carousel-bg-desktop-"]) {
    border-color: color-mix(in srgb, #fff var(--rp-product-carousel-glass-border-opacity, 35%), var(--rp-product-carousel-section-border-color, transparent));
    --rp-product-carousel-glass-shadow: inset 0 1px 0 color-mix(in srgb, #fff var(--rp-product-carousel-glass-border-opacity, 35%), transparent);
}
.rp-product-carousel-bg-image:not([class*="rp-product-carousel-bg-desktop-"])::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    border-radius: inherit;
    pointer-events: none;
    background: var(--rp-product-carousel-section-overlay-color, #000);
    opacity: var(--rp-product-carousel-section-overlay-opacity, 0);
}
.rp-product-carousel-bg-glass:not([class*="rp-product-carousel-bg-desktop-"])::before,
.rp-product-carousel-bg-liquid_glass:not([class*="rp-product-carousel-bg-desktop-"])::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    border-radius: inherit;
    pointer-events: none;
    background-color: color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-glass-tint-opacity, 18%), transparent);
    -webkit-backdrop-filter: blur(var(--rp-product-carousel-glass-blur, 20px)) saturate(var(--rp-product-carousel-glass-saturation, 140%));
    backdrop-filter: blur(var(--rp-product-carousel-glass-blur, 20px)) saturate(var(--rp-product-carousel-glass-saturation, 140%));
}
.rp-product-carousel-bg-liquid_glass:not([class*="rp-product-carousel-bg-desktop-"])::before {
    background:
        radial-gradient(circle at 16% 0%, color-mix(in srgb, #fff var(--rp-product-carousel-liquid-highlight, 55%), transparent), transparent 46%),
        radial-gradient(circle at 88% 100%, color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-liquid-depth, 35%), transparent), transparent 52%),
        linear-gradient(135deg, color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-liquid-highlight, 55%), transparent), color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-glass-tint-opacity, 18%), transparent));
    background-color: color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-glass-tint-opacity, 18%), transparent);
    -webkit-backdrop-filter: blur(var(--rp-product-carousel-glass-blur, 20px)) saturate(var(--rp-product-carousel-glass-saturation, 140%)) contrast(1.04);
    backdrop-filter: blur(var(--rp-product-carousel-glass-blur, 20px)) saturate(var(--rp-product-carousel-glass-saturation, 140%)) contrast(1.04);
}
.rp-product-carousel-bg-liquid_glass:not([class*="rp-product-carousel-bg-desktop-"]) {
    --rp-product-carousel-glass-shadow: inset 0 1px 1px color-mix(in srgb, #fff var(--rp-product-carousel-liquid-highlight, 55%), transparent), inset 0 -8px 24px color-mix(in srgb, #0f172a var(--rp-product-carousel-liquid-depth, 35%), transparent);
}
.rp-product-carousel-has-decoration::after {
    content: "";
    display: var(--rp-product-carousel-section-decoration-display, block);
    position: absolute;
    top: var(--rp-product-carousel-section-decoration-top, 0);
    right: var(--rp-product-carousel-section-decoration-right, 0);
    bottom: var(--rp-product-carousel-section-decoration-bottom, auto);
    left: var(--rp-product-carousel-section-decoration-left, auto);
    z-index: 0;
    width: var(--rp-product-carousel-section-decoration-width, 200px);
    height: var(--rp-product-carousel-section-decoration-height, 200px);
    background: var(--rp-product-carousel-section-decoration-image, none) center/var(--rp-product-carousel-section-decoration-size, contain) no-repeat;
    opacity: var(--rp-product-carousel-section-decoration-opacity, 1);
    transform: scale(var(--rp-product-carousel-section-decoration-scale, 1));
    pointer-events: none;
}
.rp-product-carousel-decoration-above:not([class*="rp-product-carousel-decoration-desktop-"])::after { z-index: 9; }
:is(body.rp-theme-color-preset-dark, body.rp-theme-dark, body.is-dark, html[data-rp-user-theme="dark"] body, html[data-rp-theme-mode="dark"] body, html[data-theme="dark"] body) .rp-product-carousel-has-decoration::after {
    background-image: var(--rp-product-carousel-section-decoration-image-dark, var(--rp-product-carousel-section-decoration-image, none));
}
.rp-product-carousel-settings.rp-product-carousel-has-decoration > .rp-product-carousel-section-decoration-link {
    display: none;
    position: absolute;
    top: var(--rp-product-carousel-section-decoration-top, 0);
    right: var(--rp-product-carousel-section-decoration-right, 0);
    bottom: var(--rp-product-carousel-section-decoration-bottom, auto);
    left: var(--rp-product-carousel-section-decoration-left, auto);
    z-index: 10;
    width: var(--rp-product-carousel-section-decoration-width, 200px);
    height: var(--rp-product-carousel-section-decoration-height, 200px);
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    transform: scale(var(--rp-product-carousel-section-decoration-scale, 1));
    transform-origin: center;
    cursor: pointer;
}
.rp-product-carousel-settings.rp-product-carousel-has-decoration > .rp-product-carousel-section-decoration-link:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}
.rp-product-carousel-settings.rp-product-carousel-has-decoration > .rp-product-carousel-section-decoration-link--has-desktop {
    display: var(--rp-product-carousel-section-decoration-display, block);
}
.rp-product-carousel-has-overlay:not([class*="rp-product-carousel-section-overlay-desktop-"])::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    border-radius: inherit;
    pointer-events: none;
    background-position: center;
    background-size: var(--rp-product-carousel-section-pattern-size, 20px) var(--rp-product-carousel-section-pattern-size, 20px);
    mix-blend-mode: var(--rp-product-carousel-section-pattern-blend, normal);
    -webkit-backdrop-filter: blur(var(--rp-product-carousel-glass-blur, 0)) saturate(var(--rp-product-carousel-glass-saturation, 100%)) blur(var(--rp-product-carousel-section-pattern-blur, 0));
    backdrop-filter: blur(var(--rp-product-carousel-glass-blur, 0)) saturate(var(--rp-product-carousel-glass-saturation, 100%)) blur(var(--rp-product-carousel-section-pattern-blur, 0));
}
.rp-product-carousel-overlay-solid:not([class*="rp-product-carousel-section-overlay-desktop-"])::before { background-color: color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent); }
.rp-product-carousel-overlay-dots:not([class*="rp-product-carousel-section-overlay-desktop-"])::before { background-image: radial-gradient(circle, color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent) 1.5px, transparent 1.7px); }
.rp-product-carousel-overlay-grid:not([class*="rp-product-carousel-section-overlay-desktop-"])::before { background-image: linear-gradient(color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent) 1px, transparent 1px); }
.rp-product-carousel-overlay-image:not([class*="rp-product-carousel-section-overlay-desktop-"])::before { background-image: var(--rp-product-carousel-section-pattern-image, none); opacity: var(--rp-product-carousel-section-pattern-alpha, .18); }

/* Geometry shared by responsive image/glass backgrounds and section overlays. */
.rp-product-carousel-settings[class*="rp-product-carousel-bg-desktop-"] > .rp-product-carousel-settings__inner,
.rp-product-carousel-settings[class*="rp-product-carousel-section-overlay-desktop-"] > .rp-product-carousel-settings__inner {
    position: relative;
    z-index: 1;
}

@media (min-width: 1025px) {
    .rp-product-carousel-settings.rp-product-carousel-decoration-desktop-behind::after { z-index: 0; }
    .rp-product-carousel-settings.rp-product-carousel-decoration-desktop-above::after { z-index: 9; }
    .rp-product-carousel-settings:is(.rp-product-carousel-bg-desktop-image, .rp-product-carousel-bg-desktop-glass, .rp-product-carousel-bg-desktop-liquid_glass) {
        position: relative;
        isolation: isolate;
        background-color: transparent;
        background-image: var(--rp-product-carousel-bg-image, none);
        background-size: var(--rp-product-carousel-bg-size, cover);
        background-position: var(--rp-product-carousel-bg-position, center center);
        background-repeat: var(--rp-product-carousel-bg-repeat, no-repeat);
    }
    .rp-product-carousel-settings:is(.rp-product-carousel-bg-desktop-glass, .rp-product-carousel-bg-desktop-liquid_glass) {
        border-color: color-mix(in srgb, #fff var(--rp-product-carousel-glass-border-opacity, 35%), var(--rp-product-carousel-section-border-color, transparent));
        --rp-product-carousel-glass-shadow: inset 0 1px 0 color-mix(in srgb, #fff var(--rp-product-carousel-glass-border-opacity, 35%), transparent);
    }
    .rp-product-carousel-settings.rp-product-carousel-bg-desktop-image::before,
    .rp-product-carousel-settings:is(.rp-product-carousel-bg-desktop-glass, .rp-product-carousel-bg-desktop-liquid_glass)::before,
    .rp-product-carousel-settings:is(.rp-product-carousel-section-overlay-desktop-solid, .rp-product-carousel-section-overlay-desktop-dots, .rp-product-carousel-section-overlay-desktop-grid, .rp-product-carousel-section-overlay-desktop-image)::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        border-radius: inherit;
        pointer-events: none;
    }
    .rp-product-carousel-settings.rp-product-carousel-bg-desktop-image::before {
        background: var(--rp-product-carousel-section-overlay-color, #000);
        opacity: var(--rp-product-carousel-section-overlay-opacity, 0);
    }
    .rp-product-carousel-settings:is(.rp-product-carousel-bg-desktop-glass, .rp-product-carousel-bg-desktop-liquid_glass)::before {
        opacity: 1;
        background-color: color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-glass-tint-opacity, 18%), transparent);
        -webkit-backdrop-filter: blur(var(--rp-product-carousel-glass-blur, 20px)) saturate(var(--rp-product-carousel-glass-saturation, 140%));
        backdrop-filter: blur(var(--rp-product-carousel-glass-blur, 20px)) saturate(var(--rp-product-carousel-glass-saturation, 140%));
    }
    .rp-product-carousel-settings.rp-product-carousel-bg-desktop-liquid_glass::before {
        background: radial-gradient(circle at 16% 0%, color-mix(in srgb, #fff var(--rp-product-carousel-liquid-highlight, 55%), transparent), transparent 46%), radial-gradient(circle at 88% 100%, color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-liquid-depth, 35%), transparent), transparent 52%), linear-gradient(135deg, color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-liquid-highlight, 55%), transparent), color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-glass-tint-opacity, 18%), transparent));
    }
    .rp-product-carousel-settings.rp-product-carousel-bg-desktop-liquid_glass {
        --rp-product-carousel-glass-shadow: inset 0 1px 1px color-mix(in srgb, #fff var(--rp-product-carousel-liquid-highlight, 55%), transparent), inset 0 -8px 24px color-mix(in srgb, #0f172a var(--rp-product-carousel-liquid-depth, 35%), transparent);
    }
    .rp-product-carousel-settings:is(.rp-product-carousel-section-overlay-desktop-solid, .rp-product-carousel-section-overlay-desktop-dots, .rp-product-carousel-section-overlay-desktop-grid, .rp-product-carousel-section-overlay-desktop-image)::before {
        background-position: center;
        background-size: var(--rp-product-carousel-section-pattern-size, 20px) var(--rp-product-carousel-section-pattern-size, 20px);
        mix-blend-mode: var(--rp-product-carousel-section-pattern-blend, normal);
        -webkit-backdrop-filter: blur(var(--rp-product-carousel-section-pattern-blur, 0));
        backdrop-filter: blur(var(--rp-product-carousel-section-pattern-blur, 0));
    }
    .rp-product-carousel-settings.rp-product-carousel-section-overlay-desktop-solid::before { opacity: 1; background-color: color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent); }
    .rp-product-carousel-settings.rp-product-carousel-section-overlay-desktop-dots::before { opacity: 1; background-image: radial-gradient(circle, color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent) 1.5px, transparent 1.7px); }
    .rp-product-carousel-settings.rp-product-carousel-section-overlay-desktop-grid::before { opacity: 1; background-image: linear-gradient(color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent) 1px, transparent 1px); }
    .rp-product-carousel-settings.rp-product-carousel-section-overlay-desktop-image::before { opacity: var(--rp-product-carousel-section-pattern-alpha, .18); background-image: var(--rp-product-carousel-section-pattern-image, none); }
}

/* The Main Section owns the available wrapper column while the selected
 * Product Card Layout independently owns the Need track/card width. Horizontal
 * space around the section comes only from the responsive Wrapper margins. */
.rp-product-carousel-settings--single-need {
    --rp-product-carousel-need-card-width: var(--rp-product-carousel-layout-card-width-desktop, var(--rp-product-carousel-container-max-width, 340px));
    --rp-product-carousel-need-visible: var(--rp-product-carousel-visible-desktop, 1.4);
    width: auto;
    max-width: none;
}
.rp-product-carousel-settings--single-need .rp-product-carousel-settings__viewport {
    width: min(100%, calc((var(--rp-product-carousel-need-card-width) * var(--rp-product-carousel-need-visible)) + (var(--rp-product-carousel-gap, 20px) * (var(--rp-product-carousel-need-visible) - 1))));
    max-width: 100%;
    margin-inline: 0;
}
.rp-product-carousel-settings--single-need > .rp-product-carousel-settings__inner {
    width: 100%;
    max-width: none;
    margin-inline: 0;
}

/* Admin-only: keep the real card geometry while giving the Main Section
 * background enough breathing room to inspect borders, shadows and overlays. */
.rp-product-carousel-settings--single-need[data-rp-carousel-preview="true"] {
    width: min(100%, var(--rp-product-carousel-need-column-width, 330px));
    max-width: var(--rp-product-carousel-need-column-width, 330px);
}
.rp-product-carousel-settings--single-need[data-rp-carousel-preview="true"] > .rp-product-carousel-settings__inner {
    width: 100%;
    max-width: none;
}

@media (min-width: 1025px) and (max-width: 1100px) {
    .rp-product-carousel-settings--single-need { --rp-product-carousel-need-visible: var(--rp-product-carousel-visible-tablet, 4); }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .rp-product-carousel-settings.rp-product-carousel-has-decoration::after { display: var(--rp-product-carousel-section-decoration-display-tablet, var(--rp-product-carousel-section-decoration-display, block)); }
    .rp-product-carousel-settings.rp-product-carousel-has-decoration > .rp-product-carousel-section-decoration-link--has-desktop { display: none; }
    .rp-product-carousel-settings.rp-product-carousel-has-decoration > .rp-product-carousel-section-decoration-link--has-tablet { display: var(--rp-product-carousel-section-decoration-display-tablet, var(--rp-product-carousel-section-decoration-display, block)); }
    .rp-product-carousel-settings.rp-product-carousel-decoration-tablet-behind::after { z-index: 0; }
    .rp-product-carousel-settings.rp-product-carousel-decoration-tablet-above::after { z-index: 9; }
    .rp-product-carousel-settings:is(.rp-product-carousel-bg-tablet-image, .rp-product-carousel-bg-tablet-glass, .rp-product-carousel-bg-tablet-liquid_glass) {
        position: relative;
        isolation: isolate;
        background-color: transparent;
        background-image: var(--rp-product-carousel-bg-image-tablet, var(--rp-product-carousel-bg-image, none));
        background-size: var(--rp-product-carousel-bg-size, cover);
        background-position: var(--rp-product-carousel-bg-position, center center);
        background-repeat: var(--rp-product-carousel-bg-repeat, no-repeat);
    }
    .rp-product-carousel-settings:is(.rp-product-carousel-bg-tablet-glass, .rp-product-carousel-bg-tablet-liquid_glass) {
        border-color: color-mix(in srgb, #fff var(--rp-product-carousel-glass-border-opacity, 35%), var(--rp-product-carousel-section-border-color, transparent));
        --rp-product-carousel-glass-shadow: inset 0 1px 0 color-mix(in srgb, #fff var(--rp-product-carousel-glass-border-opacity, 35%), transparent);
    }
    .rp-product-carousel-settings.rp-product-carousel-bg-tablet-image::before,
    .rp-product-carousel-settings:is(.rp-product-carousel-bg-tablet-glass, .rp-product-carousel-bg-tablet-liquid_glass)::before,
    .rp-product-carousel-settings:is(.rp-product-carousel-section-overlay-tablet-solid, .rp-product-carousel-section-overlay-tablet-dots, .rp-product-carousel-section-overlay-tablet-grid, .rp-product-carousel-section-overlay-tablet-image)::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        border-radius: inherit;
        pointer-events: none;
    }
    .rp-product-carousel-settings.rp-product-carousel-bg-tablet-image::before {
        background: var(--rp-product-carousel-section-overlay-color, #000);
        opacity: var(--rp-product-carousel-section-overlay-opacity, 0);
    }
    .rp-product-carousel-settings:is(.rp-product-carousel-bg-tablet-glass, .rp-product-carousel-bg-tablet-liquid_glass)::before {
        opacity: 1;
        background-color: color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-glass-tint-opacity, 18%), transparent);
        -webkit-backdrop-filter: blur(var(--rp-product-carousel-glass-blur, 20px)) saturate(var(--rp-product-carousel-glass-saturation, 140%));
        backdrop-filter: blur(var(--rp-product-carousel-glass-blur, 20px)) saturate(var(--rp-product-carousel-glass-saturation, 140%));
    }
    .rp-product-carousel-settings.rp-product-carousel-bg-tablet-liquid_glass::before {
        background: radial-gradient(circle at 16% 0%, color-mix(in srgb, #fff var(--rp-product-carousel-liquid-highlight, 55%), transparent), transparent 46%), radial-gradient(circle at 88% 100%, color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-liquid-depth, 35%), transparent), transparent 52%), linear-gradient(135deg, color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-liquid-highlight, 55%), transparent), color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-glass-tint-opacity, 18%), transparent));
    }
    .rp-product-carousel-settings.rp-product-carousel-bg-tablet-liquid_glass {
        --rp-product-carousel-glass-shadow: inset 0 1px 1px color-mix(in srgb, #fff var(--rp-product-carousel-liquid-highlight, 55%), transparent), inset 0 -8px 24px color-mix(in srgb, #0f172a var(--rp-product-carousel-liquid-depth, 35%), transparent);
    }
    .rp-product-carousel-settings:is(.rp-product-carousel-section-overlay-tablet-solid, .rp-product-carousel-section-overlay-tablet-dots, .rp-product-carousel-section-overlay-tablet-grid, .rp-product-carousel-section-overlay-tablet-image)::before {
        background-position: center;
        background-size: var(--rp-product-carousel-section-pattern-size, 20px) var(--rp-product-carousel-section-pattern-size, 20px);
        mix-blend-mode: var(--rp-product-carousel-section-pattern-blend, normal);
        -webkit-backdrop-filter: blur(var(--rp-product-carousel-section-pattern-blur, 0));
        backdrop-filter: blur(var(--rp-product-carousel-section-pattern-blur, 0));
    }
    .rp-product-carousel-settings.rp-product-carousel-section-overlay-tablet-solid::before { opacity: 1; background-color: color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent); }
    .rp-product-carousel-settings.rp-product-carousel-section-overlay-tablet-dots::before { opacity: 1; background-image: radial-gradient(circle, color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent) 1.5px, transparent 1.7px); }
    .rp-product-carousel-settings.rp-product-carousel-section-overlay-tablet-grid::before { opacity: 1; background-image: linear-gradient(color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent) 1px, transparent 1px); }
    .rp-product-carousel-settings.rp-product-carousel-section-overlay-tablet-image::before { opacity: var(--rp-product-carousel-section-pattern-alpha, .18); background-image: var(--rp-product-carousel-section-pattern-image, none); }
}

@media (max-width: 1024px) {
    :is(body.rp-theme-color-preset-dark, body.rp-theme-dark, body.is-dark, html[data-rp-user-theme="dark"] body, html[data-rp-theme-mode="dark"] body, html[data-theme="dark"] body) .rp-product-carousel-settings {
        --rp-product-carousel-active-title-color: var(--rp-product-carousel-title-color-dark-tablet, var(--rp-product-carousel-title-color-dark, #f8fafc));
        --rp-product-carousel-active-title-hover: var(--rp-product-carousel-title-hover-dark-tablet, var(--rp-product-carousel-title-hover-dark, var(--rp-product-carousel-title-color-dark-tablet, var(--rp-product-carousel-title-color-dark, #f8fafc))));
        --rp-product-carousel-active-subtitle-color: var(--rp-product-carousel-subtitle-color-dark-tablet, var(--rp-product-carousel-subtitle-color-dark, #cbd5e1));
        --rp-product-carousel-active-subtitle-hover: var(--rp-product-carousel-subtitle-hover-dark-tablet, var(--rp-product-carousel-subtitle-hover-dark, var(--rp-product-carousel-subtitle-color-dark-tablet, var(--rp-product-carousel-subtitle-color-dark, #cbd5e1))));
    }
    .rp-product-carousel-settings {
        padding: var(--rp-product-carousel-section-pt-tablet, var(--rp-product-carousel-section-pt, 0)) var(--rp-product-carousel-section-pr-tablet, var(--rp-product-carousel-section-pr, 0)) var(--rp-product-carousel-section-pb-tablet, var(--rp-product-carousel-section-pb, 0)) var(--rp-product-carousel-section-pl-tablet, var(--rp-product-carousel-section-pl, 0));
        margin-top: var(--rp-product-carousel-section-mt-tablet, var(--rp-product-carousel-section-mt, 20px));
        margin-right: var(--rp-product-carousel-section-mr-tablet, var(--rp-product-carousel-section-mr, 0));
        margin-bottom: var(--rp-product-carousel-section-mb-tablet, var(--rp-product-carousel-section-mb, 20px));
        margin-left: var(--rp-product-carousel-section-ml-tablet, var(--rp-product-carousel-section-ml, 0));
        border-radius: var(--rp-product-carousel-section-radius-top-left-tablet, var(--rp-product-carousel-section-radius-top-left, 0)) var(--rp-product-carousel-section-radius-top-right-tablet, var(--rp-product-carousel-section-radius-top-right, 0)) var(--rp-product-carousel-section-radius-bottom-right-tablet, var(--rp-product-carousel-section-radius-bottom-right, 0)) var(--rp-product-carousel-section-radius-bottom-left-tablet, var(--rp-product-carousel-section-radius-bottom-left, 0));
    }
    .rp-product-carousel-settings__inner { padding: var(--rp-product-carousel-pt-tablet, var(--rp-product-carousel-pt, 0)) var(--rp-product-carousel-pr-tablet, var(--rp-product-carousel-pr, 0)) var(--rp-product-carousel-pb-tablet, var(--rp-product-carousel-pb, 0)) var(--rp-product-carousel-pl-tablet, var(--rp-product-carousel-pl, 0)); }
    .rp-product-carousel-settings__subtitle {
        color: var(--rp-product-carousel-active-subtitle-color, var(--rp-product-carousel-subtitle-color-tablet, var(--rp-product-carousel-subtitle-color, #6b7280)));
        font-size: var(--rp-product-carousel-subtitle-size-tablet, var(--rp-product-carousel-subtitle-size, 13px));
        font-weight: var(--rp-product-carousel-subtitle-weight-tablet, var(--rp-product-carousel-subtitle-weight, 400));
        line-height: var(--rp-product-carousel-subtitle-line-tablet, var(--rp-product-carousel-subtitle-line, 1.9));
        margin-top: var(--rp-product-carousel-subtitle-mt-tablet, var(--rp-product-carousel-subtitle-mt, 4px));
    }
    .rp-product-carousel-settings .rp-product-carousel-settings__title,
    body.single-product .rp-single-product-page .rp-product-carousel-settings .rp-product-carousel-settings__title,
    body.woocommerce-cart .rp-product-carousel-settings .rp-product-carousel-settings__title {
        color: var(--rp-product-carousel-active-title-color, var(--rp-product-carousel-title-color-tablet, var(--rp-product-carousel-title-color, #111827))) !important;
        font-size: var(--rp-product-carousel-title-size-tablet, var(--rp-product-carousel-title-size, 22px)) !important;
        font-weight: var(--rp-product-carousel-title-weight-tablet, var(--rp-product-carousel-title-weight, 700)) !important;
        line-height: var(--rp-product-carousel-title-line-tablet, var(--rp-product-carousel-title-line, 1.7)) !important;
        margin-top: var(--rp-product-carousel-title-mt-tablet, var(--rp-product-carousel-title-mt, 0)) !important;
    }
    .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible),
    body.single-product .rp-single-product-page .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible),
    body.woocommerce-cart .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible) { color: var(--rp-product-carousel-active-title-hover, var(--rp-product-carousel-title-hover-tablet, var(--rp-product-carousel-title-hover, var(--rp-product-carousel-title-color-tablet, var(--rp-product-carousel-title-color, #111827))))) !important; }
    .rp-product-carousel-settings__subtitle:is(:hover, :focus-visible) { color: var(--rp-product-carousel-active-subtitle-hover, var(--rp-product-carousel-subtitle-hover-tablet, var(--rp-product-carousel-subtitle-hover, var(--rp-product-carousel-subtitle-color-tablet, var(--rp-product-carousel-subtitle-color, #6b7280))))); }
    .rp-product-carousel-settings { --rp-product-carousel-current-card-width: var(--rp-product-carousel-layout-card-width-tablet, var(--rp-product-carousel-layout-card-width-desktop, calc((100% - (var(--rp-product-carousel-gap, 20px) * (var(--rp-product-carousel-visible-tablet, 3) - 1))) / var(--rp-product-carousel-visible-tablet, 3)))); }
    .rp-product-carousel-settings--single-need { --rp-product-carousel-need-card-width: var(--rp-product-carousel-layout-card-width-tablet, var(--rp-product-carousel-layout-card-width-desktop, var(--rp-product-carousel-container-max-width, 340px))); --rp-product-carousel-need-visible: var(--rp-product-carousel-visible-tablet, 4); }
    .rp-product-carousel-bg-image:not([class*="rp-product-carousel-bg-desktop-"]),
    .rp-product-carousel-bg-glass:not([class*="rp-product-carousel-bg-desktop-"]),
    .rp-product-carousel-bg-liquid_glass:not([class*="rp-product-carousel-bg-desktop-"]) { background-image: var(--rp-product-carousel-bg-image-tablet, var(--rp-product-carousel-bg-image, none)); }
    .rp-product-carousel-has-decoration::after { background-image: var(--rp-product-carousel-section-decoration-image-tablet, var(--rp-product-carousel-section-decoration-image, none)); }
}

@media (max-width: 767px) {
    .rp-product-carousel-settings.rp-product-carousel-has-decoration::after { display: var(--rp-product-carousel-section-decoration-display-mobile, var(--rp-product-carousel-section-decoration-display-tablet, var(--rp-product-carousel-section-decoration-display, block))); }
    .rp-product-carousel-settings.rp-product-carousel-has-decoration > .rp-product-carousel-section-decoration-link--has-desktop,
    .rp-product-carousel-settings.rp-product-carousel-has-decoration > .rp-product-carousel-section-decoration-link--has-tablet { display: none; }
    .rp-product-carousel-settings.rp-product-carousel-has-decoration > .rp-product-carousel-section-decoration-link--has-mobile { display: var(--rp-product-carousel-section-decoration-display-mobile, var(--rp-product-carousel-section-decoration-display-tablet, var(--rp-product-carousel-section-decoration-display, block))); }
    :is(body.rp-theme-color-preset-dark, body.rp-theme-dark, body.is-dark, html[data-rp-user-theme="dark"] body, html[data-rp-theme-mode="dark"] body, html[data-theme="dark"] body) .rp-product-carousel-settings {
        --rp-product-carousel-active-title-color: var(--rp-product-carousel-title-color-dark-mobile, var(--rp-product-carousel-title-color-dark-tablet, var(--rp-product-carousel-title-color-dark, #f8fafc)));
        --rp-product-carousel-active-title-hover: var(--rp-product-carousel-title-hover-dark-mobile, var(--rp-product-carousel-title-hover-dark-tablet, var(--rp-product-carousel-title-hover-dark, var(--rp-product-carousel-title-color-dark-mobile, var(--rp-product-carousel-title-color-dark, #f8fafc)))));
        --rp-product-carousel-active-subtitle-color: var(--rp-product-carousel-subtitle-color-dark-mobile, var(--rp-product-carousel-subtitle-color-dark-tablet, var(--rp-product-carousel-subtitle-color-dark, #cbd5e1)));
        --rp-product-carousel-active-subtitle-hover: var(--rp-product-carousel-subtitle-hover-dark-mobile, var(--rp-product-carousel-subtitle-hover-dark-tablet, var(--rp-product-carousel-subtitle-hover-dark, var(--rp-product-carousel-subtitle-color-dark-mobile, var(--rp-product-carousel-subtitle-color-dark, #cbd5e1)))));
    }
    .rp-product-carousel-settings.rp-product-carousel-decoration-mobile-behind::after { z-index: 0; }
    .rp-product-carousel-settings.rp-product-carousel-decoration-mobile-above::after { z-index: 9; }
    .rp-product-carousel-settings:is(.rp-product-carousel-bg-mobile-image, .rp-product-carousel-bg-mobile-glass, .rp-product-carousel-bg-mobile-liquid_glass) {
        position: relative;
        isolation: isolate;
        background-color: transparent;
        background-image: var(--rp-product-carousel-bg-image-mobile, var(--rp-product-carousel-bg-image-tablet, var(--rp-product-carousel-bg-image, none)));
        background-size: var(--rp-product-carousel-bg-size, cover);
        background-position: var(--rp-product-carousel-bg-position, center center);
        background-repeat: var(--rp-product-carousel-bg-repeat, no-repeat);
        background-attachment: scroll !important;
    }
    .rp-product-carousel-settings:is(.rp-product-carousel-bg-mobile-glass, .rp-product-carousel-bg-mobile-liquid_glass) {
        border-color: color-mix(in srgb, #fff var(--rp-product-carousel-glass-border-opacity, 35%), var(--rp-product-carousel-section-border-color, transparent));
        --rp-product-carousel-glass-shadow: inset 0 1px 0 color-mix(in srgb, #fff var(--rp-product-carousel-glass-border-opacity, 35%), transparent);
    }
    .rp-product-carousel-settings.rp-product-carousel-bg-mobile-image::before,
    .rp-product-carousel-settings:is(.rp-product-carousel-bg-mobile-glass, .rp-product-carousel-bg-mobile-liquid_glass)::before,
    .rp-product-carousel-settings:is(.rp-product-carousel-section-overlay-mobile-solid, .rp-product-carousel-section-overlay-mobile-dots, .rp-product-carousel-section-overlay-mobile-grid, .rp-product-carousel-section-overlay-mobile-image)::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        border-radius: inherit;
        pointer-events: none;
    }
    .rp-product-carousel-settings.rp-product-carousel-bg-mobile-image::before {
        background: var(--rp-product-carousel-section-overlay-color, #000);
        opacity: var(--rp-product-carousel-section-overlay-opacity, 0);
    }
    .rp-product-carousel-settings:is(.rp-product-carousel-bg-mobile-glass, .rp-product-carousel-bg-mobile-liquid_glass)::before {
        opacity: 1;
        background-color: color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-glass-tint-opacity, 18%), transparent);
        -webkit-backdrop-filter: blur(var(--rp-product-carousel-glass-blur, 20px)) saturate(var(--rp-product-carousel-glass-saturation, 140%));
        backdrop-filter: blur(var(--rp-product-carousel-glass-blur, 20px)) saturate(var(--rp-product-carousel-glass-saturation, 140%));
    }
    .rp-product-carousel-settings.rp-product-carousel-bg-mobile-liquid_glass::before {
        background: radial-gradient(circle at 16% 0%, color-mix(in srgb, #fff var(--rp-product-carousel-liquid-highlight, 55%), transparent), transparent 46%), radial-gradient(circle at 88% 100%, color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-liquid-depth, 35%), transparent), transparent 52%), linear-gradient(135deg, color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-liquid-highlight, 55%), transparent), color-mix(in srgb, var(--rp-product-carousel-glass-tint, #fff) var(--rp-product-carousel-glass-tint-opacity, 18%), transparent));
    }
    .rp-product-carousel-settings.rp-product-carousel-bg-mobile-liquid_glass {
        --rp-product-carousel-glass-shadow: inset 0 1px 1px color-mix(in srgb, #fff var(--rp-product-carousel-liquid-highlight, 55%), transparent), inset 0 -8px 24px color-mix(in srgb, #0f172a var(--rp-product-carousel-liquid-depth, 35%), transparent);
    }
    .rp-product-carousel-settings:is(.rp-product-carousel-section-overlay-mobile-solid, .rp-product-carousel-section-overlay-mobile-dots, .rp-product-carousel-section-overlay-mobile-grid, .rp-product-carousel-section-overlay-mobile-image)::before {
        background-position: center;
        background-size: var(--rp-product-carousel-section-pattern-size, 20px) var(--rp-product-carousel-section-pattern-size, 20px);
        mix-blend-mode: var(--rp-product-carousel-section-pattern-blend, normal);
        -webkit-backdrop-filter: blur(var(--rp-product-carousel-section-pattern-blur, 0));
        backdrop-filter: blur(var(--rp-product-carousel-section-pattern-blur, 0));
    }
    .rp-product-carousel-settings.rp-product-carousel-section-overlay-mobile-solid::before { opacity: 1; background-color: color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent); }
    .rp-product-carousel-settings.rp-product-carousel-section-overlay-mobile-dots::before { opacity: 1; background-image: radial-gradient(circle, color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent) 1.5px, transparent 1.7px); }
    .rp-product-carousel-settings.rp-product-carousel-section-overlay-mobile-grid::before { opacity: 1; background-image: linear-gradient(color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--rp-product-carousel-section-pattern-color, #fff) var(--rp-product-carousel-section-pattern-opacity, 18%), transparent) 1px, transparent 1px); }
    .rp-product-carousel-settings.rp-product-carousel-section-overlay-mobile-image::before { opacity: var(--rp-product-carousel-section-pattern-alpha, .18); background-image: var(--rp-product-carousel-section-pattern-image, none); }
    .rp-product-carousel-settings {
        padding: var(--rp-product-carousel-section-pt-mobile, var(--rp-product-carousel-section-pt-tablet, 0)) var(--rp-product-carousel-section-pr-mobile, var(--rp-product-carousel-section-pr-tablet, 0)) var(--rp-product-carousel-section-pb-mobile, var(--rp-product-carousel-section-pb-tablet, 0)) var(--rp-product-carousel-section-pl-mobile, var(--rp-product-carousel-section-pl-tablet, 0));
        margin-top: var(--rp-product-carousel-section-mt-mobile, var(--rp-product-carousel-section-mt-tablet, 20px));
        margin-right: var(--rp-product-carousel-section-mr-mobile, var(--rp-product-carousel-section-mr-tablet, 0));
        margin-bottom: var(--rp-product-carousel-section-mb-mobile, var(--rp-product-carousel-section-mb-tablet, 20px));
        margin-left: var(--rp-product-carousel-section-ml-mobile, var(--rp-product-carousel-section-ml-tablet, 0));
        border-radius: var(--rp-product-carousel-section-radius-top-left-mobile, var(--rp-product-carousel-section-radius-top-left-tablet, 0)) var(--rp-product-carousel-section-radius-top-right-mobile, var(--rp-product-carousel-section-radius-top-right-tablet, 0)) var(--rp-product-carousel-section-radius-bottom-right-mobile, var(--rp-product-carousel-section-radius-bottom-right-tablet, 0)) var(--rp-product-carousel-section-radius-bottom-left-mobile, var(--rp-product-carousel-section-radius-bottom-left-tablet, 0));
    }
    .rp-product-carousel-settings__inner { padding: var(--rp-product-carousel-pt-mobile, var(--rp-product-carousel-pt-tablet, 0)) var(--rp-product-carousel-pr-mobile, var(--rp-product-carousel-pr-tablet, 0)) var(--rp-product-carousel-pb-mobile, var(--rp-product-carousel-pb-tablet, 0)) var(--rp-product-carousel-pl-mobile, var(--rp-product-carousel-pl-tablet, 0)); }
    .rp-product-carousel-settings__subtitle {
        color: var(--rp-product-carousel-active-subtitle-color, var(--rp-product-carousel-subtitle-color-mobile, var(--rp-product-carousel-subtitle-color-tablet, var(--rp-product-carousel-subtitle-color, #6b7280))));
        font-size: var(--rp-product-carousel-subtitle-size-mobile, var(--rp-product-carousel-subtitle-size-tablet, var(--rp-product-carousel-subtitle-size, 13px)));
        font-weight: var(--rp-product-carousel-subtitle-weight-mobile, var(--rp-product-carousel-subtitle-weight-tablet, var(--rp-product-carousel-subtitle-weight, 400)));
        line-height: var(--rp-product-carousel-subtitle-line-mobile, var(--rp-product-carousel-subtitle-line-tablet, var(--rp-product-carousel-subtitle-line, 1.9)));
        margin-top: var(--rp-product-carousel-subtitle-mt-mobile, var(--rp-product-carousel-subtitle-mt-tablet, var(--rp-product-carousel-subtitle-mt, 4px)));
    }
    .rp-product-carousel-settings .rp-product-carousel-settings__title,
    body.single-product .rp-single-product-page .rp-product-carousel-settings .rp-product-carousel-settings__title,
    body.woocommerce-cart .rp-product-carousel-settings .rp-product-carousel-settings__title {
        color: var(--rp-product-carousel-active-title-color, var(--rp-product-carousel-title-color-mobile, var(--rp-product-carousel-title-color-tablet, var(--rp-product-carousel-title-color, #111827)))) !important;
        font-size: var(--rp-product-carousel-title-size-mobile, var(--rp-product-carousel-title-size-tablet, var(--rp-product-carousel-title-size, 22px))) !important;
        font-weight: var(--rp-product-carousel-title-weight-mobile, var(--rp-product-carousel-title-weight-tablet, var(--rp-product-carousel-title-weight, 700))) !important;
        line-height: var(--rp-product-carousel-title-line-mobile, var(--rp-product-carousel-title-line-tablet, var(--rp-product-carousel-title-line, 1.7))) !important;
        margin-top: var(--rp-product-carousel-title-mt-mobile, var(--rp-product-carousel-title-mt-tablet, var(--rp-product-carousel-title-mt, 0))) !important;
    }
    .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible),
    body.single-product .rp-single-product-page .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible),
    body.woocommerce-cart .rp-product-carousel-settings .rp-product-carousel-settings__title:is(:hover, :focus-visible) { color: var(--rp-product-carousel-active-title-hover, var(--rp-product-carousel-title-hover-mobile, var(--rp-product-carousel-title-hover-tablet, var(--rp-product-carousel-title-hover, var(--rp-product-carousel-title-color-mobile, var(--rp-product-carousel-title-color, #111827)))))) !important; }
    .rp-product-carousel-settings__subtitle:is(:hover, :focus-visible) { color: var(--rp-product-carousel-active-subtitle-hover, var(--rp-product-carousel-subtitle-hover-mobile, var(--rp-product-carousel-subtitle-hover-tablet, var(--rp-product-carousel-subtitle-hover, var(--rp-product-carousel-subtitle-color-mobile, var(--rp-product-carousel-subtitle-color, #6b7280)))))); }
    .rp-product-carousel-settings { --rp-product-carousel-current-card-width: var(--rp-product-carousel-layout-card-width-mobile, calc((100% - (var(--rp-product-carousel-gap, 20px) * (var(--rp-product-carousel-visible-mobile, 1.4) - 1))) / var(--rp-product-carousel-visible-mobile, 1.4))); }
    .rp-product-carousel-settings--single-need { --rp-product-carousel-need-card-width: var(--rp-product-carousel-layout-card-width-mobile, var(--rp-product-carousel-container-max-width, 340px)); --rp-product-carousel-need-visible: var(--rp-product-carousel-visible-mobile, 1.4); }
    /* On the product page, the Need section must use the whole mobile column.
     * Card width remains controlled by its selected Layout; only the former
     * auto-centred 250px inner wrapper (and its empty side space) is removed. */
    .rp-product-carousel-settings--single-need:not([data-rp-carousel-preview="true"]) > .rp-product-carousel-settings__inner {
        width: 100%;
        max-width: none;
        margin-inline: 0;
    }
    .rp-product-carousel-bg-image:not([class*="rp-product-carousel-bg-desktop-"]),
    .rp-product-carousel-bg-glass:not([class*="rp-product-carousel-bg-desktop-"]),
    .rp-product-carousel-bg-liquid_glass:not([class*="rp-product-carousel-bg-desktop-"]) { background-image: var(--rp-product-carousel-bg-image-mobile, var(--rp-product-carousel-bg-image-tablet, var(--rp-product-carousel-bg-image, none))); }
    .rp-product-carousel-has-decoration::after { background-image: var(--rp-product-carousel-section-decoration-image-mobile, var(--rp-product-carousel-section-decoration-image-tablet, var(--rp-product-carousel-section-decoration-image, none))); }
    .rp-product-carousel-arrows-hover .rp-product-carousel-settings__arrow:not(:disabled) { opacity: 1; pointer-events: auto; }
}

@media (prefers-reduced-motion: reduce) {
    .rp-product-carousel-settings,
    .rp-product-carousel-settings__track,
    .rp-product-carousel-settings__title,
    .rp-product-carousel-settings__subtitle,
    .rp-product-carousel-settings__arrow,
    .rp-product-carousel-settings__dots :is(.rp-product-carousel-dot,.rp-widget-dot) {
        transition-duration: 1ms !important;
        animation-duration: 1ms !important;
    }
    .rp-product-carousel-settings__track { scroll-behavior: auto !important; }
}

/* The hover checkbox owns hiding; ordinary arrows remain keyboard accessible. */
.rp-product-carousel-settings:is(.rp-product-carousel-container-boxed, .rp-product-carousel-container-wide, .rp-product-carousel-container-full, .rp-product-carousel-container-custom) {
    --rp-section-active-margin-right: var(--rp-product-carousel-section-mr, 0px);
    --rp-section-active-margin-left: var(--rp-product-carousel-section-ml, 0px);
    width: max(0px, calc(var(--rp-product-carousel-section-bleed-width) - var(--rp-section-active-margin-right) - var(--rp-section-active-margin-left)));
    margin-right: calc((100% - var(--rp-product-carousel-section-bleed-width)) / 2 + var(--rp-section-active-margin-right));
    margin-left: calc((100% - var(--rp-product-carousel-section-bleed-width)) / 2 + var(--rp-section-active-margin-left));
}

@media (max-width: 1024px) {
    .rp-product-carousel-settings:is(.rp-product-carousel-container-boxed, .rp-product-carousel-container-wide, .rp-product-carousel-container-full, .rp-product-carousel-container-custom) {
        --rp-section-active-margin-right: var(--rp-product-carousel-section-mr-tablet, var(--rp-product-carousel-section-mr, 0px));
        --rp-section-active-margin-left: var(--rp-product-carousel-section-ml-tablet, var(--rp-product-carousel-section-ml, 0px));
    }
}

@media (max-width: 767px) {
    .rp-product-carousel-settings:is(.rp-product-carousel-container-boxed, .rp-product-carousel-container-wide, .rp-product-carousel-container-full, .rp-product-carousel-container-custom) {
        --rp-section-active-margin-right: var(--rp-product-carousel-section-mr-mobile, var(--rp-product-carousel-section-mr-tablet, var(--rp-product-carousel-section-mr, 0px)));
        --rp-section-active-margin-left: var(--rp-product-carousel-section-ml-mobile, var(--rp-product-carousel-section-ml-tablet, var(--rp-product-carousel-section-ml, 0px)));
    }
}

.rp-product-carousel-settings .rp-product-carousel-settings__arrow {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
}
.rp-product-carousel-settings.rp-product-carousel-arrows-hover .rp-product-carousel-settings__arrow {
    opacity: 0 !important;
    pointer-events: none !important;
}
.rp-product-carousel-settings.rp-product-carousel-arrows-hover:is(:hover, :focus-within) .rp-product-carousel-settings__arrow:not(:disabled) {
    opacity: .6 !important;
    pointer-events: auto !important;
}
.rp-product-carousel-settings .rp-product-carousel-settings__arrow:disabled {
    opacity: .35 !important;
    pointer-events: none !important;
}
.rp-product-carousel-settings:hover .rp-product-carousel-settings__arrow:not(:disabled):hover,
.rp-product-carousel-settings .rp-product-carousel-settings__arrow:not(:disabled):focus-visible {
    opacity: 1 !important;
    pointer-events: auto !important;
}
.rp-product-carousel-settings.rp-product-carousel-behavior-arrows_only .rp-product-carousel-settings__arrow:not(:disabled):not([hidden]) {
    opacity: 1 !important;
    pointer-events: auto !important;
}

@media (any-hover: none) {
    .rp-product-carousel-settings .rp-product-carousel-settings__arrow:not(:disabled) {
        opacity: .6 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }
}

@media (max-width: 767px) {
    .rp-product-carousel-hide-arrows-mobile .rp-product-carousel-settings__arrow { display: none !important; }
    .rp-product-carousel-hide-dots-mobile .rp-product-carousel-settings__dots { display: none !important; }
}

@media (min-width: 768px) {
    .rp-product-carousel-hide-dots-non-mobile .rp-product-carousel-settings__dots { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
    .rp-product-carousel-settings .rp-product-carousel-settings__arrow {
        transition-duration: 1ms !important;
    }
}

/* Product-page landscape tablet: cap the viewport without resizing its Layout cards. */
@media (min-width: 1024px) and (max-width: 1100px) {
    .rp-product-carousel-settings--single-need {
        --rp-product-carousel-need-visible: var(--rp-product-carousel-visible-landscape, var(--rp-product-carousel-visible-tablet, 4));
    }
}
