/** Smile Selected Products 1.2.2 */
.smile-sp-wrapper {
    --smile-sp-gap: 8px;
    --smile-sp-columns: 6;
    --smile-sp-line: #ececef;
    --smile-sp-text: #3f4064;
    --smile-sp-muted: #9a9ca6;
    --smile-sp-sale: #ef4056;
    --smile-sp-sale-soft: #fff0f2;
    position: relative;
    width: 100%;
    margin-inline: auto;
    padding: 12px 16px 16px;
    overflow: visible;
    border: 1px solid #e0e0e2;
    border-radius: 16px;
    background: #fff;
    box-shadow: none;
    color: var(--wd-text-color, var(--smile-sp-text));
    direction: rtl;
    text-align: right;
    font-family: var(--wd-text-font, var(--e-global-typography-text-font-family, inherit));
    box-sizing: border-box;
}
.smile-sp-wrapper *, .smile-sp-wrapper *::before, .smile-sp-wrapper *::after { box-sizing: border-box; }

.smile-sp-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    margin-bottom: 12px;
    padding: 4px 4px 0;
}
.smile-sp-header-title-block {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
}
.smile-sp-header-title-row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    width: 100%;
}
.smile-sp-header-title {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    color: #0c0c0c;
    font-family: var(--wd-title-font, var(--e-global-typography-primary-font-family, inherit));
    font-size: 16px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0;
    text-transform: none;
}
.smile-sp-header-subtitle { margin: 2px 0 0; color: #81858b; font-size: 12px; font-weight: 400; line-height: 1.7; }
.smile-sp-header-percent-badge, .smile-sp-header-custom-icon {
    display: inline-flex;
    flex: 0 0 26px;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--smile-sp-sale-soft);
    color: var(--smile-sp-sale);
    font-family: inherit;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
}
.smile-sp-header-link-block { flex: 0 0 auto; }
.smile-sp-header-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 8px 6px 10px;
    border: 1px solid #e0e0e2;
    border-radius: 8px;
    background: #fff;
    color: #0c0c0c;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
    white-space: nowrap;
}
.smile-sp-header-link:hover { color: var(--smile-sp-sale); border-color: #f1aeb5; }
.smile-sp-header-link:focus-visible, .smile-sp-nav-arrow:focus-visible, .smile-sp-cta-link:focus-visible,
.smile-sp-card-link-wrapper:focus-visible, .smile-sp-btn:focus-visible {
    outline: 3px solid rgba(239, 64, 86, .28);
    outline-offset: 3px;
}
.smile-sp-arrow-icon { flex: 0 0 auto; transition: transform 180ms ease; }
.smile-sp-header-link:hover .smile-sp-arrow-icon { transform: translateX(-3px); }

.smile-sp-body-container, .smile-sp-track-viewport { position: relative; width: 100%; }
.smile-sp-track-viewport { overflow: hidden; touch-action: pan-y pinch-zoom; }
.smile-sp-items-track {
    display: grid;
    grid-template-columns: repeat(var(--smile-sp-columns, 6), minmax(0, 1fr));
    gap: var(--smile-sp-gap);
    transition: transform 900ms cubic-bezier(0.45, 0.05, 0.55, 1);
    will-change: transform;
}
.smile-sp-mode-grid .smile-sp-track-viewport { overflow: visible; }
.smile-sp-mode-grid .smile-sp-items-track {
    display: grid;
    grid-template-columns: repeat(var(--smile-sp-columns), minmax(0, 1fr));
    gap: var(--smile-sp-gap);
    width: 100%;
    transform: none !important;
    will-change: auto;
}
.smile-sp-mode-grid .smile-sp-item-col {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: none !important;
}
.smile-sp-mode-slider .smile-sp-items-track {
    display: flex;
    flex-flow: row nowrap;
    align-items: stretch;
    gap: var(--smile-sp-gap);
    width: max-content;
    min-width: 100%;
    margin-left: auto;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
}
.smile-sp-mode-slider.smile-sp-is-dragging .smile-sp-items-track { cursor: grabbing; }
.smile-sp-mode-slider .smile-sp-item-col { flex: 0 0 auto; }

.smile-sp-skin-card .smile-sp-card,
.smile-sp-skin-table .smile-sp-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    min-height: 0;
    height: auto;
    padding: 8px;
    overflow: hidden;
    border: 1px solid #e0e0e2;
    border-radius: 8px;
    background: #fff;
    box-shadow: none;
    text-align: right;
}
.smile-sp-skin-card .smile-sp-card:hover,
.smile-sp-wrapper .product:hover,
.smile-sp-wrapper .smile-sp-card:hover {
    border-color: #e6e6ea;
    box-shadow: none !important;
    transform: none;
}
.smile-sp-card-link-wrapper,
.smile-sp-card-link-wrapper:hover,
.smile-sp-card-link-wrapper:focus {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 8px;
    min-height: 0;
    color: #3f4064;
    text-decoration: none;
}
.smile-sp-card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 6px;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0 2px 2px;
    position: static;
}
.smile-sp-card-image-box {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 100%;
    aspect-ratio: 1 / 1;
    height: auto !important;
    margin: 0;
    padding: 4px;
    overflow: hidden;
    background: transparent;
}
.smile-sp-card-img, .smile-sp-card-image-box img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    margin: auto;
    object-fit: contain;
    object-position: center;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
}
.smile-sp-card-title {
    display: -webkit-box;
    height: auto;
    min-height: 2.6em;
    max-height: 2.8em;
    margin: 0;
    padding: 0;
    overflow: hidden;
    position: static !important;
    inset: auto !important;
    border: 0;
    background: none;
    color: #3f4064;
    font-family: var(--wd-text-font, var(--e-global-typography-text-font-family, inherit));
    font-size: 12px;
    font-weight: 500;
    line-height: 1.7;
    letter-spacing: 0;
    text-align: right;
    text-transform: none;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.smile-sp-card-pricing {
    display: flex;
    align-items: stretch;
    justify-content: flex-end;
    flex-direction: column;
    gap: 2px;
    width: 100%;
    min-height: 36px;
    margin-top: auto;
    position: static !important;
}
.smile-sp-sale-row, .smile-sp-current-price-row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    width: 100%;
}
.smile-sp-discount-badge {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    min-height: 22px;
    padding: 0 8px;
    border-radius: 8px;
    background: var(--smile-sp-sale);
    color: #fff;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}
.smile-sp-regular-price {
    display: inline-flex !important;
    opacity: 1 !important;
    color: #b0b2ba;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: line-through;
    visibility: visible !important;
}
.smile-sp-regular-price .amount,
.smile-sp-regular-price .woocommerce-Price-amount { color: inherit; font-size: inherit; font-weight: inherit; }
.smile-sp-price-amount {
    color: #212133;
    font-family: inherit;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.4;
}
.smile-sp-price-amount del, .smile-sp-price-amount ins { color: inherit; text-decoration: none; background: none; }
.smile-sp-price-amount .woocommerce-price-suffix,
.smile-sp-wrapper .woocommerce-Price-currencySymbol {
    color: #3f4064;
    font-size: 10px;
    font-weight: 400;
    line-height: 1.6;
    margin-inline-start: 4px;
    vertical-align: 4px;
}
.smile-sp-price-unavailable, .smile-sp-stock-status { color: var(--smile-sp-muted); font-size: 12px; font-weight: 600; }

.smile-sp-skin-table .smile-sp-body-container { background: #fff; }
.smile-sp-skin-table .smile-sp-items-track,
.smile-sp-skin-table.smile-sp-mode-grid .smile-sp-items-track,
.smile-sp-skin-table.smile-sp-mode-slider .smile-sp-items-track {
    gap: var(--smile-sp-gap, 12px);
    background: transparent;
}
.smile-sp-skin-table .smile-sp-item-col { background: #fff; }
.smile-sp-skin-table .smile-sp-card:hover { border-color: #e0e0e2; box-shadow: none; }
.smile-sp-skin-table .smile-sp-card-pricing { align-items: stretch; }
.smile-sp-skin-table .smile-sp-current-price-row,
.smile-sp-skin-table .smile-sp-sale-row { justify-content: flex-start; }
.smile-sp-skin-card .smile-sp-card-title,
.smile-sp-skin-table .smile-sp-card-title { text-align: right; }
.smile-sp-card-pricing,
.smile-sp-sale-row,
.smile-sp-current-price-row { align-items: flex-start; justify-content: flex-start; }

.smile-sp-body-container > .smile-sp-nav-arrow {
    align-items: center;
    background: #fff !important;
    border: 1px solid #e3e6e8 !important;
    border-radius: 50% !important;
    box-shadow: 0 2px 9px rgba(33, 39, 45, .13);
    color: #555d66;
    cursor: pointer;
    display: none;
    font: inherit;
    height: 36px !important;
    justify-content: center;
    line-height: 1;
    margin: 0;
    min-height: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    position: absolute !important;
    top: 50%;
    transform: translateY(-50%);
    width: 36px !important;
    z-index: 6;
}
.smile-sp-device-tablet.smile-sp-mode-slider:not(.smile-sp-is-static) > .smile-sp-body-container > .smile-sp-nav-arrow:not([hidden]),
.smile-sp-device-desktop.smile-sp-mode-slider:not(.smile-sp-is-static) > .smile-sp-body-container > .smile-sp-nav-arrow:not([hidden]) {
    display: flex !important;
}
.smile-sp-device-tablet.smile-sp-mode-slider > .smile-sp-body-container > .smile-sp-nav-arrow[hidden],
.smile-sp-device-desktop.smile-sp-mode-slider > .smile-sp-body-container > .smile-sp-nav-arrow[hidden],
.smile-sp-device-mobile .smile-sp-nav-arrow,
.smile-sp-is-static .smile-sp-nav-arrow,
.smile-sp-mode-grid .smile-sp-nav-arrow {
    display: none !important;
}
.smile-sp-body-container > .smile-sp-nav-arrow:disabled,
.smile-sp-body-container > .smile-sp-nav-arrow.smile-sp-arrow-disabled {
    cursor: default;
    opacity: .25;
    transform: translateY(-50%);
}
.smile-sp-body-container > .smile-sp-nav-arrow svg {
    display: block;
    fill: none;
    height: 18px !important;
    width: 18px !important;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.5;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.smile-sp-body-container > .smile-sp-nav-arrow path,
.smile-sp-last-icon path {
    fill: none !important;
}
.smile-sp-body-container > .smile-sp-nav-prev { right: 6px !important; left: auto !important; }
.smile-sp-body-container > .smile-sp-nav-next { left: 6px !important; right: auto !important; }
.smile-sp-body-container > .smile-sp-nav-arrow:hover {
    color: #ef4056;
    transform: translateY(-50%) scale(1.06);
}

.smile-sp-slide-cta,
.smile-sp-last-slide {
    display: flex;
    align-items: stretch;
    justify-content: stretch;
    min-height: 100%;
    background: #fff;
}
.smile-sp-cta-link {
    align-items: center;
    color: inherit;
    display: flex;
    flex: 1;
    flex-direction: column;
    font-size: 13px;
    gap: 15px;
    justify-content: center;
    min-height: 160px;
    padding: 16px;
    text-decoration: none;
    width: 100%;
}
.smile-sp-cta-link:hover { color: inherit; }
.smile-sp-last-icon {
    align-items: center;
    border: 2px solid currentColor;
    border-radius: 50%;
    color: #3f4064;
    display: flex;
    height: 64px;
    justify-content: center;
    width: 64px;
}
.smile-sp-last-icon svg {
    display: block;
    fill: none;
    height: 24px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.2;
    width: 24px;
}
.smile-sp-cta-image-wrapper { display: flex; align-items: center; justify-content: center; }
.smile-sp-cta-image {
    display: block;
    width: var(--smile-sp-cta-image-width, 84px) !important;
    max-width: 100% !important;
    height: auto !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    object-fit: contain;
}
.smile-sp-nav-arrow svg, .smile-sp-header-link svg {
    width: 18px !important;
    height: 18px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.smile-sp-cta-text { font-size: 14px; font-weight: 700; text-align: center; }
.smile-sp-grid-cta-full_width { grid-column: auto; width: auto; }
.smile-sp-cta-stack {
    position: relative;
    display: block;
    width: 108px;
    height: 78px;
}
.smile-sp-cta-stack img {
    position: absolute;
    width: 54px !important;
    height: 54px !important;
    object-fit: contain;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
}
.smile-sp-cta-stack img:nth-child(1) { top: 16px; right: 0; z-index: 1; }
.smile-sp-cta-stack img:nth-child(2) { top: 4px; right: 26px; z-index: 2; }
.smile-sp-cta-stack img:nth-child(3) { top: 18px; right: 50px; z-index: 3; }
.smile-sp-cta-text { color: #0c0c0c; font-size: 13px; font-weight: 700; }
.elementor-widget-smile_selected_products > .elementor-widget-container { overflow: visible; }
.smile-sp-skin-table .smile-sp-slide-cta { background: #fff; }

.smile-sp-product-actions {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid #f0f1f3;
}
.smile-sp-buttons-group, .smile-sp-rating { display: flex; align-items: center; justify-content: center; gap: 6px; }
.smile-sp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    min-height: 32px;
    padding: 6px 10px;
    border: 0;
    border-radius: 7px;
    background: #f4f5f7;
    color: var(--smile-sp-text);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}
.smile-sp-btn:hover { background: var(--smile-sp-sale); color: #fff; }
.smile-sp-btn-cart { flex: 1 1 auto; gap: 5px; }
.smile-sp-alert { margin: 10px 0; padding: 14px 18px; border-right: 4px solid #f59e0b; border-radius: 6px; background: #fff9e6; color: #854d0e; font-size: 13.5px; }
.smile-sp-template-item { min-width: 0; }

.smile-sp-device-mobile .smile-sp-header { align-items: flex-start; gap: 12px; margin-bottom: 8px; padding: 14px 12px 2px; }
.smile-sp-device-mobile .smile-sp-header-title { font-size: 16px; }
.smile-sp-device-mobile .smile-sp-header-subtitle,
.smile-sp-device-mobile .smile-sp-header-link { font-size: 12px; }
.smile-sp-device-mobile .smile-sp-nav-arrow { width: 36px; height: 36px; }
.smile-sp-device-mobile .smile-sp-nav-next { left: 6px; }
.smile-sp-device-mobile .smile-sp-nav-prev { right: 6px; }
.smile-sp-device-mobile .smile-sp-card { min-height: 0; padding: 8px; }
.smile-sp-device-mobile .smile-sp-card-title { font-size: 13px; line-height: 1.65; min-height: 2.5em; }
.smile-sp-device-mobile .smile-sp-price-amount { font-size: 15px; }
.smile-sp-device-mobile .smile-sp-card-image-box { max-height: 168px; }
.smile-sp-device-tablet .smile-sp-card-image-box { max-height: 176px; }
.smile-sp-device-tablet .smile-sp-card-title { font-size: 12px; }
.smile-sp-device-desktop .smile-sp-card-image-box { max-height: 160px; }
.smile-sp-wrapper.smile-sp-device-mobile { border-radius: 16px; }

/* WoodMart and WooCommerce loop rules stay outside this widget. */
.elementor-widget-smile_selected_products .smile-sp-wrapper .product,
.smile-sp-wrapper .product {
    float: none !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
}
.smile-sp-wrapper .smile-sp-card.product {
    padding: 8px;
}
.smile-sp-wrapper .woocommerce-Price-amount,
.smile-sp-wrapper .woocommerce-Price-amount bdi {
    display: inline-flex !important;
    align-items: baseline;
    gap: 4px;
    direction: rtl;
    unicode-bidi: isolate;
    background: none !important;
    border: 0 !important;
    color: inherit !important;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    white-space: nowrap;
}
.smile-sp-wrapper ins,
.smile-sp-wrapper del {
    display: inline !important;
    background: none !important;
    color: inherit !important;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}
.smile-sp-wrapper .woocommerce-Price-currencySymbol::before,
.smile-sp-wrapper .woocommerce-Price-currencySymbol::after,
.smile-sp-wrapper .smile-sp-card-title::before,
.smile-sp-wrapper .smile-sp-card-title::after {
    content: none !important;
}
.smile-sp-wrapper .product:hover img,
.smile-sp-wrapper .smile-sp-card:hover img {
    transform: none !important;
    box-shadow: none !important;
}
.smile-sp-wrapper del.smile-sp-regular-price { text-decoration: line-through; }
.smile-sp-wrapper button.smile-sp-nav-arrow {
    min-height: 0;
    text-transform: none;
    letter-spacing: 0;
}
.smile-sp-product-actions .wd-buttons,
.smile-sp-product-actions .wd-action-btn,
.smile-sp-product-actions a.wd-action-btn {
    position: static !important;
}

@media (prefers-reduced-motion: reduce) {
    .smile-sp-wrapper *, .smile-sp-wrapper *::before, .smile-sp-wrapper *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
