/* Pro controls remain scoped to Shop Flow. FilterFlow and ScrollFlow own their layouts. */
/* Keep prices near the title, not pushed into the missing countdown's space. */
ul.products li.sf-card .sf-body .sf-buy{margin-top:0;align-items:flex-end}
ul.products li.sf-card .sf-body .sf-price-group{align-self:flex-end}
.woocommerce ul.products li.sf-card .sf-body .sf-price,ul.products li.sf-card .sf-body .sf-price{color:#111!important}
.woocommerce ul.products li.sf-card .sf-body .sf-price.sf-price-sale,ul.products li.sf-card .sf-body .sf-price.sf-price-sale{color:var(--sf-red,#ed0010)!important}
.sf-card .sf-body .sf-price .amount,.sf-card .sf-body .sf-price ins{color:inherit!important}
.sf-card .sf-body .sf-price del{color:#111!important}
.woocommerce ul.products.sf-grid,ul.products.sf-grid{gap:var(--sf-pro-gap,16px)!important}
.woocommerce ul.products li.sf-card,ul.products li.sf-card{border-radius:var(--sf-pro-radius,12px);min-width:0;max-width:100%!important}
.woocommerce ul.products li.sf-card .sf-body .sf-title,ul.products li.sf-card .sf-body .sf-title{font-size:var(--sf-pro-title,12px)!important;min-height:calc(var(--sf-pro-title,12px)*2.4)}
.woocommerce ul.products li.sf-card .sf-body .sf-price,ul.products li.sf-card .sf-body .sf-price{font-size:var(--sf-pro-price,15px)!important;overflow-wrap:anywhere}
.sf-card .sf-promo{background:var(--sf-campaign-bg,#ed0010);color:var(--sf-campaign-ink,#fff)}
.sf-card .sf-promo-name::before{background:var(--sf-campaign-bg,#ed0010);filter:brightness(.94)}
.sf-card [hidden]{display:none!important}
.sf-card .sf-stock-badge{font-size:10px;color:#8d2600;line-height:1.2}
.sf-card .sf-quickview{position:absolute;top:54px;left:10px;z-index:3;border:1px solid #ffffffa0;border-radius:20px;background:#fff;color:#222;font-size:11px;line-height:1.2;padding:8px 11px;min-height:32px;cursor:pointer;box-shadow:none;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease,box-shadow .18s ease}
.sf-card .sf-media:hover .sf-quickview,.sf-card .sf-media.sf-touch-active .sf-quickview,.sf-card .sf-media:focus-within .sf-quickview{opacity:1;visibility:visible;pointer-events:auto}
.sf-card .sf-quickview:hover,.sf-card .sf-quickview:focus-visible,.sf-card .sf-quickview:active{box-shadow:0 2px 8px #0002}
.sf-card .sf-body .sf-price .amount{white-space:normal;overflow-wrap:anywhere}
.sf-card .sf-promo .sf-saving .amount{white-space:normal;overflow-wrap:anywhere}
.sf-card .sf-body .sf-countdown{flex-wrap:wrap}
.sf-card .sf-body .sf-timer-label{white-space:normal}
.sf-card .sf-body .sf-digits{min-width:112px}
.sf-preview-dialog{width:min(850px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:24px;border:0;border-radius:16px;overflow:auto;background:#fff;color:#171717;box-sizing:border-box}
.sf-preview-dialog::backdrop{background:#0009}
.sf-preview-dialog *{box-sizing:border-box}
.sf-preview-close{position:sticky;top:0;float:right;z-index:1;width:44px;height:44px;padding:0;border:1px solid #ddd;border-radius:50%;background:#fff;color:#111;font-size:26px;cursor:pointer}
.sf-preview-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;clear:both;padding-top:12px}
.sf-preview-gallery{min-width:0}
.sf-preview-image{width:100%;height:auto;max-height:60dvh;object-fit:contain;display:block;background:#f7f7f7;border-radius:8px}
.sf-preview-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.sf-preview-thumbs button{width:50px;height:58px;padding:2px;background:#fff;border:2px solid transparent;border-radius:4px;cursor:pointer}
.sf-preview-thumbs button[aria-pressed=true]{border-color:#ed0010}
.sf-preview-thumbs img{width:100%;height:100%;object-fit:cover}
.sf-preview-detail{min-width:0;overflow-wrap:anywhere}
.sf-preview-detail h2{font-size:22px;line-height:1.3;margin:0 0 14px}
.sf-preview-detail p{font-size:15px;line-height:1.5}
.sf-preview-detail .sf-preview-note{color:#666;font-size:13px}
.sf-preview-link{display:inline-block;background:#151515;color:#fff!important;padding:13px 16px;border-radius:6px;text-decoration:none}
.sf-preview-dialog :is(a,button):focus-visible{outline:3px solid #155bc2;outline-offset:3px}
@media(max-width:767px){.woocommerce ul.products.sf-grid,ul.products.sf-grid{gap:min(12px,var(--sf-pro-gap,16px))!important}.sf-card .sf-quickview{top:42px;left:7px;padding:5px 8px;min-height:26px;font-size:9px;border-radius:15px}.sf-preview-dialog{padding:14px}.sf-preview-layout{grid-template-columns:minmax(0,1fr);gap:16px}.sf-preview-image{max-height:42dvh}.sf-preview-detail h2{font-size:19px}.woocommerce ul.products li.sf-card .sf-body .sf-cart,ul.products li.sf-card .sf-body .sf-cart{width:36px!important;height:36px!important;flex-basis:36px!important}}
@media(hover:none){.sf-card .sf-photo:hover img{transform:none}}
@media(prefers-reduced-motion:reduce){.sf-preview-dialog *{scroll-behavior:auto;transition:none!important}}

/* Folded, stepped ribbon based on the reference; promotion colors remain configurable. */
.sf-card .sf-image-bottom .sf-promo{--sf-fold-seam:46%;background:transparent;grid-template-columns:52% 48%;isolation:isolate;min-height:40px}
.sf-card .sf-image-bottom .sf-promo::after{content:"";position:absolute;inset:4px 0 2px var(--sf-fold-seam);background:linear-gradient(180deg,#00000026,#00000040),var(--sf-campaign-bg,#ed0010);z-index:-2}
.sf-card .sf-image-bottom .sf-promo::before{content:"";position:absolute;left:var(--sf-fold-seam);bottom:0;width:12px;height:7px;background:var(--sf-campaign-bg,#ed0010);filter:brightness(.55);clip-path:polygon(0 0,100% 0,0 100%);z-index:0}
.sf-card .sf-image-bottom .sf-promo-name{min-width:0;padding:4px 20px 4px 10px;font-size:15px;line-height:1.05;letter-spacing:-.2px;z-index:1}
.sf-card .sf-image-bottom .sf-promo-name>span{font-size:.9em}
.sf-card .sf-image-bottom .sf-promo-name::before{inset:0 -3px 0 0;background:linear-gradient(130deg,#ffffff16 0%,#00000008 65%,#00000030 100%),var(--sf-campaign-bg,#ed0010);clip-path:polygon(0 0,100% 0,89% 100%,0 100%);filter:drop-shadow(2px 2px 1px #0005)}
.sf-card .sf-image-bottom .sf-promo-name::after{content:none}
.sf-card .sf-image-bottom .sf-bolt{left:var(--sf-fold-seam);top:0;width:22px;min-height:0;height:100%;background:linear-gradient(135deg,#ffe94a,#ffcf00);z-index:2}
.sf-card .sf-image-bottom .sf-saving{min-width:0;padding:6px 6px 4px 14px;font-size:15px;line-height:1.1;letter-spacing:-.25px;z-index:1}
/* Decorative shine stays inside the stepped silhouette and never captures clicks. */
.sf-card .sf-image-bottom .sf-promo-shine{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:3;clip-path:polygon(0 0,52% 0,52% 12%,100% 12%,100% 94%,47% 94%,46% 100%,0 100%)}
.sf-card .sf-image-bottom .sf-promo-shine::after{content:"";position:absolute;inset:0 auto 0 0;width:35%;background:linear-gradient(110deg,transparent 15%,#ffffff26 50%,transparent 85%);transform:translateX(-120%);opacity:0}
.sf-card .sf-image-bottom .sf-promo-shine::before{content:"";position:absolute;right:5px;top:6px;width:8px;height:8px;background:#ffe991;opacity:.65;clip-path:polygon(50% 0,62% 37%,100% 50%,62% 63%,50% 100%,38% 63%,0 50%,38% 37%)}
.sf-card .sf-image-bottom .sf-saving::after{content:"";position:absolute;left:57%;bottom:3px;width:6px;height:6px;background:#fff0a3;opacity:.5;pointer-events:none;clip-path:polygon(50% 0,62% 37%,100% 50%,62% 63%,50% 100%,38% 63%,0 50%,38% 37%)}
/* Continuous banner animation on every device. */
.sf-card .sf-image-bottom .sf-promo-animated .sf-promo-shine::after{animation:sf-ribbon-shine 6s ease-in-out infinite}
.sf-card .sf-image-bottom .sf-promo-animated .sf-bolt{animation:sf-ribbon-lightning 3.6s ease-in-out infinite}
.sf-card .sf-image-bottom .sf-promo-animated .sf-promo-shine::before{animation:sf-ribbon-sparkle 4.2s ease-in-out infinite}
.sf-card .sf-image-bottom .sf-promo-animated .sf-saving::after{animation:sf-ribbon-sparkle 4.2s 1.5s ease-in-out infinite}
@keyframes sf-ribbon-sparkle{0%,100%{opacity:.25;transform:scale(.75)}50%{opacity:.75;transform:scale(1)}}
@keyframes sf-ribbon-shine{0%,18%{transform:translateX(-120%);opacity:0}25%{opacity:1}62%{transform:translateX(390%);opacity:1}70%,100%{transform:translateX(390%);opacity:0}}
@keyframes sf-ribbon-lightning{0%,100%{filter:brightness(1)}50%{filter:brightness(1.14)}}
/* Live-fire reference design replaces the folded lightning/glitter treatment. */
.sf-card .sf-image-bottom .sf-fire-banner.sf-promo{grid-template-columns:65% 35%;min-height:30px;background:transparent}
.sf-card .sf-image-bottom .sf-fire-banner::before,.sf-card .sf-image-bottom .sf-fire-banner::after,.sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name::before,.sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name::after,.sf-card .sf-image-bottom .sf-fire-banner .sf-saving::after{content:none;animation:none}
.sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;align-content:center;justify-content:flex-start;gap:0 3px;padding:4px 3px 4px 30px;font-size:13px;font-size:clamp(9px,4cqi,13px);line-height:1.15;font-style:italic;text-transform:uppercase;letter-spacing:-.15px}
.sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name>span{font-size:inherit}
.sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name>strong{color:#ffe95b}
.sf-card .sf-image-bottom .sf-fire-banner .sf-saving{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0 3px;align-self:stretch;padding:4px 3px;background:#00000015;font-size:12px;font-size:clamp(9px,3.8cqi,12px);line-height:1.15;letter-spacing:-.1px}
.sf-card .sf-image-bottom .sf-fire-banner .sf-flame{position:absolute;left:2px;bottom:1px;width:25px;height:36px;z-index:2;pointer-events:none}
.sf-card .sf-image-bottom .sf-fire-banner .sf-flame svg{display:block;width:100%;height:100%;overflow:visible}
.sf-card .sf-image-bottom .sf-fire-banner .sf-flame path{transform-box:fill-box;transform-origin:50% 100%}
/* Soft overlapping fold, without a separate divider or hard inset line. */
.sf-card .sf-image-bottom .sf-fire-banner.sf-promo::before{content:none}
.sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name{padding-right:10px;filter:drop-shadow(4px 0 3px #0005)}
.sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name::before{content:"";position:absolute;inset:-1px -3px 0 0;background:linear-gradient(120deg,#00000030,#00000048),var(--sf-campaign-bg,#ed0010);clip-path:polygon(0 0,100% 0,calc(100% - 8px) 100%,0 100%);filter:none;z-index:-1;pointer-events:none}
/* Same compact strip height, now bottom-aligned with a richer satin-red finish. */
.sf-card .sf-image-bottom .sf-fire-banner .sf-saving{margin:6px 0 0 -8px;padding:2px 4px 2px 14px;background:linear-gradient(120deg,#00000020,#00000030),var(--sf-campaign-bg,#ed0010);box-shadow:none;text-shadow:0 1px 1px #0002;z-index:0}
.sf-card .sf-image-bottom .sf-fire-banner.sf-promo-animated .sf-flame-outer{animation:sf-fire-sway 1.7s ease-in-out infinite alternate}
.sf-card .sf-image-bottom .sf-fire-banner.sf-promo-animated .sf-flame-inner{animation:sf-fire-dance 1.1s ease-in-out infinite alternate}
.sf-card .sf-image-bottom .sf-fire-banner.sf-promo-animated .sf-flame-core{animation:sf-fire-dance 1.4s -.4s ease-in-out infinite alternate-reverse}
@keyframes sf-fire-sway{0%{transform:scale(.96,.94) rotate(-3deg)}45%{transform:scale(1.02,1.02) rotate(1deg)}100%{transform:scale(.98,1.05) rotate(3deg)}}
@keyframes sf-fire-dance{0%{transform:scale(.9,.9) rotate(3deg)}55%{transform:scale(1.04,1.05) rotate(-2deg)}100%{transform:scale(.96,1.08) rotate(2deg)}}
/* HTML-wrapper motion remains visible in browsers with limited SVG path transforms. */
.sf-card .sf-image-bottom .sf-fire-banner.sf-promo-animated .sf-flame{transform-origin:50% 100%;animation:sf-fire-wrapper 1.6s ease-in-out infinite alternate}
@keyframes sf-fire-wrapper{0%{transform:rotate(-3deg) scale(.97,.95)}55%{transform:rotate(1deg) scale(1.02,1.03)}100%{transform:rotate(3deg) scale(.98,1.06)}}
/* One shared finish, scaled by the actual card width on every device. */
.sf-card .sf-image-bottom .sf-fire-banner{--sf-fire-width:25px;--sf-fire-height:36px;--sf-ribbon-height:30px;--sf-fold-cut:8px;--sf-shadow-x:4px;--sf-shadow-blur:3px;--sf-save-inset:6px}
.sf-card .sf-image-bottom .sf-fire-banner.sf-promo{grid-template-columns:minmax(0,65fr) minmax(0,35fr);min-height:var(--sf-ribbon-height);max-width:100%}
.sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name{padding-left:calc(var(--sf-fire-width) + 5px);padding-right:calc(var(--sf-fold-cut) + 2px);filter:drop-shadow(var(--sf-shadow-x) 0 var(--sf-shadow-blur) #0005);font-size:12px;font-size:clamp(10px,4cqi,13px)}
.sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name::before{clip-path:polygon(0 0,100% 0,calc(100% - var(--sf-fold-cut)) 100%,0 100%)}
.sf-card .sf-image-bottom .sf-fire-banner .sf-saving{margin:var(--sf-save-inset) 0 0 calc(-1 * var(--sf-fold-cut));padding-left:calc(var(--sf-fold-cut) + 6px);font-size:11px;font-size:clamp(10px,3.8cqi,12px)}
.sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name>span,.sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name>strong,.sf-card .sf-image-bottom .sf-fire-banner .sf-saving .amount{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.sf-card .sf-image-bottom .sf-fire-banner .sf-flame{width:var(--sf-fire-width);height:var(--sf-fire-height)}
@container(max-width:300px){
 .sf-card .sf-image-bottom .sf-fire-banner{--sf-fire-width:22px;--sf-fire-height:32px;--sf-ribbon-height:28px;--sf-fold-cut:7px;--sf-shadow-x:3px;--sf-shadow-blur:2px;--sf-save-inset:5px}
}
@container(max-width:220px){
 .sf-card .sf-image-bottom .sf-fire-banner{--sf-fire-width:18px;--sf-fire-height:28px;--sf-ribbon-height:26px;--sf-fold-cut:6px;--sf-shadow-x:2px;--sf-shadow-blur:2px;--sf-save-inset:4px}
}
/* Fallback for older browsers without card/container queries. */
@supports not (container-type:inline-size){
 @media(max-width:1100px){.sf-card .sf-image-bottom .sf-fire-banner{--sf-fire-width:22px;--sf-fire-height:32px;--sf-ribbon-height:28px;--sf-save-inset:5px}}
 @media(max-width:767px){.sf-card .sf-image-bottom .sf-fire-banner{--sf-fire-width:18px;--sf-fire-height:28px;--sf-ribbon-height:26px;--sf-fold-cut:6px;--sf-shadow-x:2px;--sf-shadow-blur:2px;--sf-save-inset:4px}}
}
@media(max-width:767px){
 .sf-card .sf-image-bottom .sf-fire-banner.sf-promo{min-height:var(--sf-ribbon-height)}
 .sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name{padding-left:calc(var(--sf-fire-width) + 5px)}
 .sf-card .sf-image-bottom .sf-fire-banner .sf-flame{width:var(--sf-fire-width);height:var(--sf-fire-height)}
}
/* 2.0.20: compact information panel and one-line countdown on every device. */
.woocommerce ul.products.sf-grid,ul.products.sf-grid{grid-auto-rows:auto!important}
ul.products li.sf-card .sf-body{flex:0 0 auto;padding:clamp(3px,1cqi,5px) clamp(5px,1.6cqi,8px);gap:clamp(2px,1cqi,4px)}
.woocommerce ul.products li.sf-card .sf-body .sf-title,ul.products li.sf-card .sf-body .sf-title{font-size:clamp(11px,4cqi,12px)!important;line-height:1.1!important;min-height:calc(clamp(11px,4cqi,12px)*2.2)}
ul.products li.sf-card .sf-body .sf-buy{min-height:clamp(28px,10cqi,30px);gap:4px;margin-top:0;flex-wrap:nowrap;align-items:flex-end}
ul.products li.sf-card .sf-body .sf-price-group{min-width:0;gap:2px 4px;align-self:flex-end}
.woocommerce ul.products li.sf-card .sf-body .sf-price,ul.products li.sf-card .sf-body .sf-price{font-size:clamp(13px,5cqi,15px)!important;line-height:1.1!important}
ul.products li.sf-card .sf-body .sf-sold{font-size:clamp(9px,3.5cqi,10px)}
.woocommerce ul.products li.sf-card .sf-body .sf-cart,ul.products li.sf-card .sf-body .sf-cart{width:clamp(28px,10cqi,30px)!important;height:clamp(28px,10cqi,30px)!important;flex-basis:clamp(28px,10cqi,30px)!important;padding:5px!important}
ul.products li.sf-card .sf-body .sf-cart svg{width:16px;height:16px}
ul.products li.sf-card .sf-body .sf-countdown{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;min-height:18px;margin:0;padding:0}
ul.products li.sf-card .sf-body .sf-timer-label{flex:0 0 auto;margin:0;gap:0}
ul.products li.sf-card .sf-body .sf-timer-label svg{width:14px;height:14px;flex-basis:14px}
ul.products li.sf-card .sf-body .sf-timer-label>span{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
ul.products li.sf-card .sf-body .sf-digits{display:flex;flex:0 1 auto;justify-content:flex-start;gap:5px;max-width:none;min-width:0}
ul.products li.sf-card .sf-body .sf-unit{display:flex;align-items:baseline;gap:1px;min-width:0}
ul.products li.sf-card .sf-body .sf-unit b{border:0;border-radius:0;padding:0;font-size:11px;line-height:1.2}
ul.products li.sf-card .sf-body .sf-unit small{font-size:0;margin:0;line-height:1;text-transform:none}
ul.products li.sf-card .sf-body .sf-unit small::after{font-size:9px}
ul.products li.sf-card .sf-body .sf-unit:nth-child(1) small::after{content:'d'}
ul.products li.sf-card .sf-body .sf-unit:nth-child(2) small::after{content:'h'}
ul.products li.sf-card .sf-body .sf-unit:nth-child(3) small::after{content:'m'}
ul.products li.sf-card .sf-body .sf-unit:nth-child(4) small::after{content:'s'}
/* Card-width sizing also covers narrow desktop/sidebar and tablet layouts. */
@container(max-width:300px){
 .sf-card .sf-image-bottom .sf-promo{min-height:34px}
 .sf-card .sf-image-bottom .sf-promo-name,.sf-card .sf-image-bottom .sf-saving{font-size:13px}
 .sf-card .sf-image-bottom .sf-bolt{width:19px}
}
/* Keep smaller mobile labels readable; long names and amounts may expand naturally. */
@media(max-width:767px){
 .sf-card .sf-image-bottom .sf-promo{min-height:32px}
 .sf-card .sf-image-bottom .sf-promo::after{top:4px;bottom:2px}
 .sf-card .sf-image-bottom .sf-promo::before{width:10px;height:6px}
 .sf-card .sf-image-bottom .sf-promo-name{padding:3px 12px 3px 7px;font-size:11px;line-height:1.05;letter-spacing:-.1px}
 .sf-card .sf-image-bottom .sf-saving{padding:5px 4px 3px 10px;font-size:11px;line-height:1.1;letter-spacing:-.1px}
 .sf-card .sf-image-bottom .sf-bolt{width:16px;min-height:0}
}
/* Slightly larger flame on every card, without increasing the ribbon height. */
.sf-card .sf-image-bottom .sf-fire-banner .sf-flame{width:calc(var(--sf-fire-width) + 3px);height:calc(var(--sf-fire-height) + 4px)}
.sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name{padding-left:calc(var(--sf-fire-width) + 8px)}
.sf-card .sf-image-bottom .sf-fire-banner .sf-saving-label,.sf-card .sf-image-bottom .sf-fire-banner .sf-saving-amount{min-width:0;max-width:100%}
@media(max-width:767px){
 .sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name{padding-top:2px;padding-bottom:2px;line-height:1.1}
 .sf-card .sf-image-bottom .sf-fire-banner .sf-saving{flex-direction:column;flex-wrap:nowrap;gap:0;padding-top:1px;padding-bottom:1px;padding-left:calc(var(--sf-fold-cut) + 3px);padding-right:2px;line-height:1.05}
 .sf-card .sf-image-bottom .sf-fire-banner .sf-saving-label{white-space:nowrap;font-size:9px;line-height:1.05;letter-spacing:-.15px}
 .sf-card .sf-image-bottom .sf-fire-banner .sf-saving-amount{font-size:10px;line-height:1.05}
 /* Compact information panel without clipping or scaling interactive elements. */
 ul.products li.sf-card .sf-body{padding:4px 5px;gap:3px}
 .woocommerce ul.products li.sf-card .sf-body .sf-title,ul.products li.sf-card .sf-body .sf-title{font-size:11px!important;line-height:1.1!important;min-height:25px}
 ul.products li.sf-card .sf-body .sf-buy{min-height:28px;gap:4px;margin-top:0;flex-wrap:nowrap}
 ul.products li.sf-card .sf-body .sf-price-group{min-width:0;gap:2px 4px}
 .woocommerce ul.products li.sf-card .sf-body .sf-price,ul.products li.sf-card .sf-body .sf-price{font-size:13px!important;line-height:1.1!important}
 ul.products li.sf-card .sf-body .sf-sold{font-size:9px}
 .woocommerce ul.products li.sf-card .sf-body .sf-cart,ul.products li.sf-card .sf-body .sf-cart{width:28px!important;height:28px!important;flex-basis:28px!important;padding:5px!important}
 ul.products li.sf-card .sf-body .sf-cart svg{width:16px;height:16px}
 ul.products li.sf-card .sf-body .sf-countdown{gap:3px;padding-top:0}
 ul.products li.sf-card .sf-body .sf-timer-label{font-size:9px;gap:2px;margin-bottom:2px}
 ul.products li.sf-card .sf-body .sf-timer-label svg{width:14px;height:14px;flex-basis:14px}
 ul.products li.sf-card .sf-body .sf-digits{min-width:0;gap:3px}
 ul.products li.sf-card .sf-body .sf-unit b{font-size:11px;padding:2px 1px}
 ul.products li.sf-card .sf-body .sf-unit small{font-size:7px;margin-top:1px}
 /* One compact timer line instead of a label above four boxed counters. */
 .woocommerce ul.products.sf-grid,ul.products.sf-grid{grid-auto-rows:auto!important}
 ul.products li.sf-card .sf-body{flex:0 0 auto;padding:3px 5px;gap:2px}
 ul.products li.sf-card .sf-body .sf-countdown{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;min-height:18px;margin:0;padding:0}
 ul.products li.sf-card .sf-body .sf-timer-label{flex:0 0 auto;margin:0;gap:0}
 ul.products li.sf-card .sf-body .sf-timer-label>span{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
 ul.products li.sf-card .sf-body .sf-digits{display:flex;flex:0 1 auto;justify-content:flex-start;gap:5px;max-width:none;min-width:0}
 ul.products li.sf-card .sf-body .sf-unit{display:flex;align-items:baseline;gap:1px;min-width:0}
 ul.products li.sf-card .sf-body .sf-unit b{border:0;border-radius:0;padding:0;font-size:11px;line-height:1.2}
 ul.products li.sf-card .sf-body .sf-unit small{font-size:0;margin:0;line-height:1;text-transform:none}
 ul.products li.sf-card .sf-body .sf-unit small::after{font-size:9px}
 ul.products li.sf-card .sf-body .sf-unit:nth-child(1) small::after{content:'d'}
 ul.products li.sf-card .sf-body .sf-unit:nth-child(2) small::after{content:'h'}
 ul.products li.sf-card .sf-body .sf-unit:nth-child(3) small::after{content:'m'}
 ul.products li.sf-card .sf-body .sf-unit:nth-child(4) small::after{content:'s'}
}
/* Native image playback works independently of SVG/CSS animation engines. */
.sf-card .sf-fire-banner .sf-flame.sf-flame-native,
.sf-card .sf-fire-banner .sf-flame.sf-flame-native svg path{animation:none!important;transform:none!important}
.sf-flame-native .sf-flame-animation{display:block;width:100%;height:100%}
.sf-card .sf-flame-native .sf-flame-animation img{display:block;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.sf-promo-animated .sf-flame-native>svg{display:none}

/* Match the product-card cart control to the WishFlow heart circle. */
.woocommerce ul.products li.sf-card .sf-body .sf-cart,ul.products li.sf-card .sf-body .sf-cart{display:flex!important;align-items:center!important;justify-content:center!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;aspect-ratio:1/1!important;flex:0 0 38px!important;padding:0!important;border:1px solid #d9d9d9!important;border-radius:50%!important;background-color:#fff!important;background-image:none!important;color:#111!important;box-shadow:0 2px 7px #0000001f!important;font-size:0!important;line-height:0!important;overflow:hidden!important;opacity:1!important;visibility:visible!important;transition:box-shadow .18s ease,transform .18s ease!important}
.woocommerce ul.products li.sf-card .sf-body .sf-cart svg,ul.products li.sf-card .sf-body .sf-cart svg{display:block!important;width:21px!important;height:21px!important;margin:0!important;color:#111!important;fill:#111!important;stroke:none!important}
.woocommerce ul.products li.sf-card .sf-body .sf-cart:hover,.woocommerce ul.products li.sf-card .sf-body .sf-cart:focus-visible,.woocommerce ul.products li.sf-card .sf-body .sf-cart:active{background:#fff!important;color:#111!important;box-shadow:0 3px 10px #0003!important;transform:translateY(-3px)!important}

/* Use the brighter mobile sale-banner red treatment on every device and layer. */
.sf-card .sf-image-bottom .sf-fire-banner.sf-promo{--sf-campaign-bg:#ff0018!important;background:transparent!important}
.sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name{background:transparent!important}
.sf-card .sf-image-bottom .sf-fire-banner .sf-promo-name::before{background:linear-gradient(130deg,#ff1630,#e00016)!important}
.sf-card .sf-image-bottom .sf-fire-banner .sf-saving{background:linear-gradient(105deg,#f00014,#ff0018)!important}

/* Keep the countdown clock directly beside the live time on every device. */
ul.products li.sf-card .sf-body .sf-countdown{justify-content:flex-end!important;column-gap:1px!important}
ul.products li.sf-card .sf-body .sf-timer-label,
ul.products li.sf-card .sf-body .sf-timer-label svg{margin:0!important}

/* Center, enlarge and animate the clock beside the live countdown. */
ul.products li.sf-card .sf-body .sf-timer-label{display:flex!important;align-items:center!important;height:18px}
ul.products li.sf-card .sf-body .sf-timer-label svg{width:17px!important;height:17px!important;flex:0 0 17px!important;overflow:visible}
ul.products li.sf-card .sf-body .sf-digits{align-items:center!important}
ul.products li.sf-card .sf-body .sf-timer-label svg path{transform-box:view-box;transform-origin:12px 12px;animation:sf-clock-tick 8s linear infinite}
ul.products li.sf-card .sf-body .sf-timer-label svg circle{transform-box:view-box;transform-origin:center;animation:sf-clock-pulse 1.6s ease-in-out infinite}
@keyframes sf-clock-tick{to{transform:rotate(360deg)}}
@keyframes sf-clock-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.06);opacity:.72}}

/* Tighten product title-to-buy spacing on all devices. */
.woocommerce ul.products li.sf-card .sf-body .sf-title + .sf-buy,
ul.products li.sf-card .sf-body .sf-title + .sf-buy{margin-top:-2px!important}

/* 2.0.42 update: tighter title-to-buy spacing and vertically centered price row on all devices. */
ul.products li.sf-card .sf-body .sf-title{margin-bottom:0!important}
ul.products li.sf-card .sf-body .sf-title + .sf-buy{margin-top:-6px!important}
ul.products li.sf-card .sf-body .sf-buy{margin-top:-6px!important;align-items:center!important}
ul.products li.sf-card .sf-body .sf-price-group{align-self:center!important;display:flex!important;flex-direction:column;justify-content:center!important}
ul.products li.sf-card .sf-body .sf-price{display:flex;align-items:center}

/* Textured/photo color variation swatches; visual-only and card-safe. */
.sf-card .sf-swatches{right:8px;bottom:12px;gap:6px}
.sf-card .sf-swatch,.sf-card .sf-more{width:18px;height:18px;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #00000024,0 1px 4px #00000026;overflow:hidden}
.sf-card .sf-swatch-photo{background:#fff!important}
.sf-card .sf-swatch-image{display:block!important;width:100%!important;height:100%!important;max-width:none!important;margin:0!important;border:0!important;border-radius:50%!important;object-fit:cover!important;object-position:center 42%!important;transform:scale(1.08)}
.sf-card .sf-swatch:hover,.sf-card .sf-swatch:focus-visible{outline:0!important;box-shadow:0 0 0 1px #00000028,0 0 0 3px #ffffffee,0 1px 5px #00000026}
.sf-card .sf-more{width:18px;height:18px;font-size:8px;line-height:1;background:#5a5a5acc;color:#fff}
@container(max-width:220px){.sf-card .sf-swatches{right:7px;bottom:10px;gap:5px}.sf-card .sf-swatch,.sf-card .sf-more{width:16px;height:16px}.sf-card .sf-more{font-size:7px}}

/* 2.0.42 fabric-focused variation swatches: zoom into the garment so patterns/colors are visible. */
.sf-card .sf-swatch-photo{position:relative;background:#f5f5f5!important;isolation:isolate}
.sf-card .sf-swatch-photo .sf-swatch-image{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  margin:0!important;
  border:0!important;
  border-radius:50%!important;
  object-fit:cover!important;
  object-position:center 38%!important;
  transform:scale(2.25)!important;
  transform-origin:center 42%!important;
}
/* A subtle inner ring keeps light/white fabric swatches visible. */
.sf-card .sf-swatch-photo::after{content:"";position:absolute;inset:1px;border-radius:50%;box-shadow:inset 0 0 0 1px #00000012;pointer-events:none;z-index:2}
/* Slightly larger than before so stripe/floral/plaid details remain readable. */
.sf-card .sf-swatch,.sf-card .sf-more{width:20px;height:20px}
@container(max-width:220px){.sf-card .sf-swatch,.sf-card .sf-more{width:18px;height:18px}}

/* 2.0.42 extra-tight title to price/cart spacing on all devices. */
.woocommerce ul.products li.sf-card .sf-body .sf-title,
ul.products li.sf-card .sf-body .sf-title{margin-bottom:0!important;min-height:26px!important;line-height:1.18!important}
.woocommerce ul.products li.sf-card .sf-body .sf-title + .sf-buy,
ul.products li.sf-card .sf-body .sf-title + .sf-buy,
.woocommerce ul.products li.sf-card .sf-body .sf-buy,
ul.products li.sf-card .sf-body .sf-buy{margin-top:-8px!important;min-height:28px!important;align-items:center!important}
.woocommerce ul.products li.sf-card .sf-body .sf-price-group,
ul.products li.sf-card .sf-body .sf-price-group{align-self:center!important;display:flex!important;align-items:center!important;gap:2px 6px!important}
.woocommerce ul.products li.sf-card .sf-body .sf-price,
ul.products li.sf-card .sf-body .sf-price{display:flex!important;align-items:center!important}

/* 2.0.42 SHEIN-style variation chips: use the variation photo as the swatch background itself. */
.sf-card .sf-swatch-photo{
  position:relative!important;
  display:block!important;
  background-color:#f4f4f4!important;
  background-image:var(--sf-swatch-img)!important;
  background-repeat:no-repeat!important;
  background-size:285%!important;
  background-position:center 48%!important;
  border:1px solid #fff!important;
  border-radius:50%!important;
  overflow:hidden!important;
}
.sf-card .sf-swatch-photo .sf-swatch-image{display:none!important}
.sf-card .sf-swatch-photo::after{content:"";position:absolute;inset:1px;border-radius:50%;box-shadow:inset 0 0 0 1px #00000016;pointer-events:none}
.sf-card .sf-swatch-photo:hover,.sf-card .sf-swatch-photo:focus-visible{background-size:305%!important}
/* Same visual behavior on desktop, tablet and mobile; only size scales on very narrow cards. */
.sf-card .sf-swatch,.sf-card .sf-more{width:21px!important;height:21px!important}
@container(max-width:220px){.sf-card .sf-swatch,.sf-card .sf-more{width:18px!important;height:18px!important}}

/* 2.0.42 automatic texture-color swatches from one product image.
 * When a variation has no separate image, reuse the main product photo as the
 * texture source and recolor only the swatch chip to the variation color. */
.sf-card .sf-swatch-auto-tint{
  background-color:var(--sf-swatch-tint,var(--sf-swatch,#999))!important;
  background-image:
    linear-gradient(var(--sf-swatch-tint,var(--sf-swatch,#999)),var(--sf-swatch-tint,var(--sf-swatch,#999))),
    var(--sf-swatch-img)!important;
  background-repeat:no-repeat,no-repeat!important;
  background-size:100% 100%,285%!important;
  background-position:center,center 48%!important;
  background-blend-mode:color,multiply!important;
}
.sf-card .sf-swatch-auto-tint:hover,.sf-card .sf-swatch-auto-tint:focus-visible{
  background-size:100% 100%,305%!important;
}
/* Preserve texture visibility for very light shades. */
.sf-card .sf-swatch-auto-tint[style*="#fff"],
.sf-card .sf-swatch-auto-tint[style*="#ffffff"]{background-blend-mode:multiply,normal!important}

/* 2.0.42 clothing-focused swatch crop on all devices.
 * Best-effort fashion crop: bias the swatch texture toward the lower-middle garment area
 * so the chip reflects the clothes more than the model's face/hair/skin. */
.sf-card .sf-swatch-photo,
.sf-card .sf-swatch-auto-tint{
  --sf-swatch-focus-x:50%;
  --sf-swatch-focus-y:68%;
}

/* Use the variation/main product image as a garment-texture chip, focused lower on the outfit. */
.sf-card .sf-swatch-photo{
  background-size:340%!important;
  background-position:var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important;
}
.sf-card .sf-swatch-photo:hover,
.sf-card .sf-swatch-photo:focus-visible{
  background-size:360%!important;
  background-position:var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important;
}

/* Apply the same garment-only focus to the one-image auto-tint fallback swatches. */
.sf-card .sf-swatch-auto-tint{
  background-size:100% 100%,340%!important;
  background-position:center,var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important;
}
.sf-card .sf-swatch-auto-tint:hover,
.sf-card .sf-swatch-auto-tint:focus-visible{
  background-size:100% 100%,360%!important;
  background-position:center,var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important;
}

/* Keep the same behavior across desktop, tablet and mobile; only reduce zoom slightly on tiny cards. */
@container(max-width:220px){
  .sf-card .sf-swatch-photo{background-size:315%!important}
  .sf-card .sf-swatch-photo:hover,
  .sf-card .sf-swatch-photo:focus-visible{background-size:335%!important}
  .sf-card .sf-swatch-auto-tint{background-size:100% 100%,315%!important}
  .sf-card .sf-swatch-auto-tint:hover,
  .sf-card .sf-swatch-auto-tint:focus-visible{background-size:100% 100%,335%!important}
}

/* 2.0.42 stronger garment-only swatch focus.
 * Move the texture crop much farther down and zoom tighter so the swatch shows
 * more dress/top fabric and less of the model's face, hair, or hands. */
.sf-card .sf-swatch-photo,
.sf-card .sf-swatch-auto-tint{
  --sf-swatch-focus-x:50%;
  --sf-swatch-focus-y:80%;
}

.sf-card .sf-swatch-photo{
  background-size:430%!important;
  background-position:var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important;
}
.sf-card .sf-swatch-photo:hover,
.sf-card .sf-swatch-photo:focus-visible{
  background-size:450%!important;
  background-position:var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important;
}

.sf-card .sf-swatch-auto-tint{
  background-size:100% 100%,430%!important;
  background-position:center,var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important;
}
.sf-card .sf-swatch-auto-tint:hover,
.sf-card .sf-swatch-auto-tint:focus-visible{
  background-size:100% 100%,450%!important;
  background-position:center,var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important;
}

@container(max-width:220px){
  .sf-card .sf-swatch-photo{background-size:390%!important;background-position:var(--sf-swatch-focus-x) 78%!important}
  .sf-card .sf-swatch-photo:hover,
  .sf-card .sf-swatch-photo:focus-visible{background-size:410%!important;background-position:var(--sf-swatch-focus-x) 78%!important}
  .sf-card .sf-swatch-auto-tint{background-size:100% 100%,390%!important;background-position:center,var(--sf-swatch-focus-x) 78%!important}
  .sf-card .sf-swatch-auto-tint:hover,
  .sf-card .sf-swatch-auto-tint:focus-visible{background-size:100% 100%,410%!important;background-position:center,var(--sf-swatch-focus-x) 78%!important}
}

/* 2.0.42 centered swatch focus on all devices.
 * Use the center of the image both horizontally and vertically for the swatch crop. */
.sf-card .sf-swatch-photo,
.sf-card .sf-swatch-auto-tint{
  --sf-swatch-focus-x:50%;
  --sf-swatch-focus-y:50%;
}

.sf-card .sf-swatch-photo{
  background-position:var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important;
}
.sf-card .sf-swatch-photo:hover,
.sf-card .sf-swatch-photo:focus-visible{
  background-position:var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important;
}

.sf-card .sf-swatch-auto-tint{
  background-position:center,var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important;
}
.sf-card .sf-swatch-auto-tint:hover,
.sf-card .sf-swatch-auto-tint:focus-visible{
  background-position:center,var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important;
}

@container(max-width:220px){
  .sf-card .sf-swatch-photo{background-position:var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important}
  .sf-card .sf-swatch-photo:hover,
  .sf-card .sf-swatch-photo:focus-visible{background-position:var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important}
  .sf-card .sf-swatch-auto-tint{background-position:center,var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important}
  .sf-card .sf-swatch-auto-tint:hover,
  .sf-card .sf-swatch-auto-tint:focus-visible{background-position:center,var(--sf-swatch-focus-x) var(--sf-swatch-focus-y)!important}
}

/* 2.0.42 smart fabric crop: JS chooses a per-image texture-rich, skin-light area. */
.sf-card .sf-swatch-photo{
  background-position:var(--sf-smart-x,50%) var(--sf-smart-y,58%)!important;
  background-size:390%!important;
}
.sf-card .sf-swatch-auto-tint{
  background-position:center,var(--sf-smart-x,50%) var(--sf-smart-y,58%)!important;
  background-size:100% 100%,390%!important;
}
.sf-card .sf-swatch-photo:hover,.sf-card .sf-swatch-photo:focus-visible{background-size:410%!important}
.sf-card .sf-swatch-auto-tint:hover,.sf-card .sf-swatch-auto-tint:focus-visible{background-size:100% 100%,410%!important}
@container(max-width:220px){
 .sf-card .sf-swatch-photo{background-size:360%!important}
 .sf-card .sf-swatch-auto-tint{background-size:100% 100%,360%!important}
}


/* 2.0.42 modern fashion-store sorting control on all devices. */
.woocommerce .woocommerce-ordering{float:none!important;margin:0 0 14px auto!important;max-width:240px;width:100%}
.woocommerce .woocommerce-ordering select.orderby{width:100%!important;min-height:42px;padding:9px 38px 9px 14px!important;border:1px solid #dedede!important;border-radius:12px!important;background-color:#fff!important;color:#222!important;font:600 13px/1.2 Arial,Helvetica,sans-serif!important;box-shadow:0 1px 4px #0000000d!important;cursor:pointer}
.woocommerce .woocommerce-ordering select.orderby:hover{border-color:#c9c9c9!important;box-shadow:0 2px 7px #00000012!important}
.woocommerce .woocommerce-ordering select.orderby:focus{outline:2px solid #111!important;outline-offset:2px!important}
@media(max-width:767px){.woocommerce .woocommerce-ordering{max-width:190px;margin-bottom:10px!important}.woocommerce .woocommerce-ordering select.orderby{min-height:38px;padding-top:7px!important;padding-bottom:7px!important;font-size:12px!important;border-radius:999px!important}}

/* 2.0.72 CLEAN PROMOTION ENGINE — single source of truth. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo{
  --sf-badge-safe-gap:12px;
  --sf-save-left:20%;--sf-save-width:60%;--sf-save-bottom:10%;--sf-save-height:18%;
  --sf-save-rotate:0deg;--sf-save-scale:1.04;--sf-save-label-size:clamp(7px,3cqi,10px);--sf-save-amount-size:clamp(12px,5.7cqi,19px);--sf-save-label-color:inherit;--sf-save-amount-color:inherit;
  position:absolute!important;display:block!important;container-type:inline-size!important;width:min(var(--sf-badge-width,68%),var(--sf-badge-max,180px))!important;height:auto!important;min-height:0!important;aspect-ratio:407/341!important;margin:0!important;padding:0!important;overflow:visible!important;isolation:isolate!important;
  border:0!important;border-radius:0!important;background-color:transparent!important;background-image:var(--sf-sticker-image,none)!important;background-position:center center!important;background-size:calc(100% - var(--sf-badge-safe-gap) - var(--sf-badge-safe-gap)) calc(100% - var(--sf-badge-safe-gap) - var(--sf-badge-safe-gap))!important;background-repeat:no-repeat!important;background-origin:border-box!important;box-shadow:none!important;clip-path:none!important;
  filter:drop-shadow(0 3px 5px rgba(0,0,0,.24))!important;animation:none;
}
.sf-card .sf-image-bottom.sf-has-sticker{inset:0!important;justify-content:flex-end!important}
.sf-card .sf-image-bottom.sf-has-sticker .sf-swatches{position:absolute!important;right:0!important;bottom:0!important;z-index:30!important}
.sf-card .sf-sticker-badge.sf-badge-pos-top-left{top:var(--sf-edge-top,-8%)!important;left:var(--sf-edge-left,-10%)!important;right:auto!important;bottom:auto!important}
.sf-card .sf-sticker-badge.sf-badge-pos-top-center{top:var(--sf-edge-top,-8%)!important;left:0!important;right:0!important;bottom:auto!important;margin-left:auto!important;margin-right:auto!important}
.sf-card .sf-sticker-badge.sf-badge-pos-top-right{top:var(--sf-edge-top,-8%)!important;right:var(--sf-edge-right,-10%)!important;left:auto!important;bottom:auto!important}
.sf-card .sf-sticker-badge.sf-badge-pos-middle-left{top:0!important;bottom:0!important;left:var(--sf-edge-left,-10%)!important;right:auto!important;margin-top:auto!important;margin-bottom:auto!important}
.sf-card .sf-sticker-badge.sf-badge-pos-middle-center{inset:0!important;margin:auto!important}
.sf-card .sf-sticker-badge.sf-badge-pos-middle-right{top:0!important;bottom:0!important;right:var(--sf-edge-right,-10%)!important;left:auto!important;margin-top:auto!important;margin-bottom:auto!important}
.sf-card .sf-sticker-badge.sf-badge-pos-bottom-left{bottom:var(--sf-edge-bottom,-8%)!important;left:var(--sf-edge-left,-10%)!important;right:auto!important;top:auto!important}
.sf-card .sf-sticker-badge.sf-badge-pos-bottom-center{bottom:var(--sf-edge-bottom,-8%)!important;left:0!important;right:0!important;top:auto!important;margin-left:auto!important;margin-right:auto!important}
.sf-card .sf-sticker-badge.sf-badge-pos-bottom-right{bottom:var(--sf-edge-bottom,-8%)!important;right:var(--sf-edge-right,-10%)!important;left:auto!important;top:auto!important}
.sf-card .sf-image-bottom .sf-sticker-badge[hidden]{display:none!important}
.sf-card[data-sf-no-promo="1"] .sf-promo{display:none!important}
.sf-card .sf-image-bottom .sf-sticker-badge::after{content:none!important;display:none!important}
.sf-card .sf-image-bottom .sf-sticker-badge::before{content:none!important;display:none!important}
.sf-card .sf-image-bottom .sf-sticker-badge .sf-badge-animation-clip{position:absolute!important;inset:0!important;z-index:1!important;display:block!important;pointer-events:none!important;overflow:hidden!important;-webkit-mask-image:var(--sf-sticker-image,none);mask-image:var(--sf-sticker-image,none);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-size:calc(100% - var(--sf-badge-safe-gap,12px) - var(--sf-badge-safe-gap,12px)) calc(100% - var(--sf-badge-safe-gap,12px) - var(--sf-badge-safe-gap,12px));mask-size:calc(100% - var(--sf-badge-safe-gap,12px) - var(--sf-badge-safe-gap,12px)) calc(100% - var(--sf-badge-safe-gap,12px) - var(--sf-badge-safe-gap,12px));-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.sf-card .sf-image-bottom .sf-sticker-badge .sf-badge-animation-clip::before{content:"";position:absolute;inset:8%;z-index:1;pointer-events:none;opacity:.3;background:radial-gradient(circle at 18% 18%,#fff 0 1px,transparent 2px),radial-gradient(circle at 78% 28%,#ffe37b 0 1px,transparent 2px);animation:sf-clean-sparkle 1.4s ease-in-out infinite alternate}
.sf-card .sf-image-bottom .sf-sticker-badge .sf-promo-name{display:none!important}
.sf-card .sf-image-bottom .sf-sticker-badge .sf-saving{
  position:absolute!important;left:var(--sf-save-responsive-left,var(--sf-save-left))!important;bottom:var(--sf-save-responsive-bottom,var(--sf-save-bottom))!important;width:var(--sf-save-width)!important;height:var(--sf-save-height)!important;max-width:var(--sf-save-width)!important;z-index:8!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:.56cqi!important;margin:0!important;padding:1.67cqi 3.33cqi!important;box-sizing:border-box!important;overflow:visible!important;
  border:0!important;border-radius:0!important;background:transparent!important;color:var(--sf-save-ink,#111)!important;text-align:center!important;text-shadow:none!important;font-style:normal!important;font-weight:1000!important;line-height:.96!important;
  transform-origin:center!important;animation:none;
}
.sf-card .sf-image-bottom .sf-sticker-badge .sf-saving-label{display:block!important;width:100%!important;color:var(--sf-save-label-color,inherit)!important;font-size:var(--sf-save-label-size)!important;font-weight:1000!important;line-height:.96!important;white-space:nowrap!important;text-align:center!important}
.sf-card .sf-image-bottom .sf-sticker-badge .sf-saving-amount{display:flex!important;width:100%!important;max-width:100%!important;min-width:0!important;align-items:center!important;justify-content:center!important;color:var(--sf-save-amount-color,var(--sf-save-label-color,inherit))!important;font-size:var(--sf-save-amount-size)!important;font-weight:1000!important;line-height:.94!important;white-space:nowrap!important;text-align:center!important;direction:ltr!important;animation:none}
.sf-card .sf-image-bottom .sf-sticker-badge .sf-saving-amount .amount,.sf-card .sf-image-bottom .sf-sticker-badge .sf-saving-amount bdi{display:inline-flex!important;align-items:center!important;justify-content:center!important;color:var(--sf-save-amount-color,var(--sf-save-label-color,inherit))!important;font-weight:1000!important;white-space:nowrap!important;text-align:center!important;direction:ltr!important}
.sf-card .sf-image-bottom .sf-sticker-badge .sf-saving-label,.sf-card .sf-image-bottom .sf-sticker-badge .sf-saving-label *{color:var(--sf-save-label-color,inherit)!important;-webkit-text-fill-color:var(--sf-save-label-color,inherit)!important}
.sf-card .sf-image-bottom .sf-sticker-badge .sf-saving-amount,.sf-card .sf-image-bottom .sf-sticker-badge .sf-saving-amount *{color:var(--sf-save-amount-color,var(--sf-save-label-color,inherit))!important;-webkit-text-fill-color:var(--sf-save-amount-color,var(--sf-save-label-color,inherit))!important}
.sf-card .sf-image-bottom .sf-sticker-badge .sf-theme-art{position:absolute!important;z-index:9!important;pointer-events:none!important;display:block!important;border:0!important;background:transparent!important;box-shadow:none!important;transform-origin:center!important}
.sf-card .sf-image-bottom .sf-sticker-badge:not(.sf-effect-decoration) .sf-theme-art{display:none!important;animation:none!important}
.sf-card .sf-sticker-badge .sf-badge-snow,.sf-card .sf-sticker-badge .sf-badge-decoration{position:absolute;inset:5%;z-index:7;display:none;pointer-events:none}
.sf-card .sf-sticker-badge.sf-effect-twinkle .sf-badge-animation-clip::before{opacity:.85;animation:sf-clean-sparkle 1.1s ease-in-out infinite alternate}
.sf-card .sf-sticker-badge:not(.sf-effect-twinkle) .sf-badge-animation-clip::before{opacity:0;animation:none}
.sf-card .sf-sticker-badge.sf-effect-snow .sf-badge-snow{display:block;background-image:radial-gradient(circle,#fff 0 1.4px,transparent 2.3px);background-size:25px 31px;animation:sf-badge-snow 2.8s linear infinite}
.sf-card .sf-sticker-badge.sf-effect-decoration .sf-badge-decoration{display:block;inset:4% 30% auto;height:16%;border-radius:50%;filter:drop-shadow(0 0 5px rgba(255,60,90,.75));animation:sf-badge-decoration 1.2s ease-in-out infinite}
.sf-card .sf-sticker-badge.sf-effect-price .sf-saving-amount{animation:sf-clean-price-pop .9s ease-in-out infinite!important}
.sf-card .sf-sticker-badge.sf-effect-ribbon .sf-saving{animation:sf-clean-save-rock 1.3s ease-in-out infinite!important}
.sf-card .sf-sticker-badge.sf-effect-float{animation:sf-clean-badge-float 2.3s ease-in-out infinite!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-enter-zoom{animation:sf-badge-enter-zoom .55s ease-out both!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-enter-bounce{animation:sf-badge-enter-bounce .72s ease-out both!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-enter-slide{animation:sf-badge-enter-slide .55s ease-out both!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-enter-none{animation:none!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-effect-float.sf-enter-zoom{animation:sf-badge-enter-zoom .55s ease-out both,sf-clean-badge-float 2.3s .55s ease-in-out infinite!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-effect-float.sf-enter-bounce{animation:sf-badge-enter-bounce .72s ease-out both,sf-clean-badge-float 2.3s .72s ease-in-out infinite!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-effect-float.sf-enter-slide{animation:sf-badge-enter-slide .55s ease-out both,sf-clean-badge-float 2.3s .55s ease-in-out infinite!important}
@keyframes sf-badge-snow{to{background-position:8px 31px}}
@keyframes sf-badge-decoration{50%{transform:translateY(-2px) scale(1.08);opacity:.7}}
@keyframes sf-badge-enter-zoom{from{scale:.45;opacity:0}to{scale:1;opacity:1}}
@keyframes sf-badge-enter-bounce{0%{scale:.7;opacity:.4}65%{scale:1.08;opacity:1}100%{scale:1}}
@keyframes sf-badge-enter-slide{from{translate:0 35px;opacity:0}to{translate:0 0;opacity:1}}

/* 2.0.176 — first-paint edge lock. Transparent artwork margins are offset in
 * CSS, so left/right badges start and remain at the visible image edge without
 * waiting for JavaScript. One-time entrance motion is removed; continuous
 * decorative and floating effects remain available. */
.sf-card .sf-sticker-christmas{--sf-first-left:calc(-8.580px - 14.251%);--sf-first-right:calc(8.698px + 13.759%);--sf-first-top:calc(-9.537px - 10.264%);--sf-first-bottom:calc(9.255px + 11.437%)}
.sf-card .sf-sticker-back-to-school{--sf-first-left:calc(-9.405px - 10.811%);--sf-first-right:calc(9.405px + 10.811%);--sf-first-top:calc(-10.944px - 4.399%);--sf-first-bottom:calc(10.944px + 4.399%)}
.sf-card .sf-sticker-valentine{--sf-first-left:calc(-9.818px - 9.091%);--sf-first-right:calc(9.759px + 9.337%);--sf-first-top:calc(-10.944px - 4.399%);--sf-first-bottom:calc(10.944px + 4.399%)}
.sf-card .sf-sticker-summer{--sf-first-left:calc(-9.641px - 9.828%);--sf-first-right:calc(9.582px + 10.074%);--sf-first-top:calc(-10.944px - 4.399%);--sf-first-bottom:calc(10.944px + 4.399%)}
.sf-card .sf-sticker-new-year{--sf-first-left:calc(-7.636px - 18.182%);--sf-first-right:calc(7.872px + 17.199%);--sf-first-top:calc(-9.959px - 8.504%);--sf-first-bottom:calc(11.015px + 4.106%)}
.sf-card .sf-sticker-black-friday{--sf-first-left:calc(-9.936px - 8.600%);--sf-first-right:calc(9.936px + 8.600%);--sf-first-top:calc(-10.733px - 5.279%);--sf-first-bottom:calc(10.733px + 5.279%)}
.sf-card .sf-sticker-cyber-monday{--sf-first-left:calc(-9.464px - 10.565%);--sf-first-right:calc(9.464px + 10.565%);--sf-first-top:calc(-10.944px - 4.399%);--sf-first-bottom:calc(10.944px + 4.399%)}
.sf-card .sf-sticker-halloween{--sf-first-left:calc(-9.287px - 11.302%);--sf-first-right:calc(9.287px + 11.302%);--sf-first-top:calc(-10.944px - 4.399%);--sf-first-bottom:calc(10.944px + 4.399%)}
.sf-card .sf-sticker-mid-year{--sf-first-left:calc(-9.818px - 9.091%);--sf-first-right:calc(9.759px + 9.337%);--sf-first-top:calc(-10.944px - 4.399%);--sf-first-bottom:calc(10.944px + 4.399%)}
.sf-card .sf-sticker-clearance{--sf-first-left:calc(-7.636px - 18.182%);--sf-first-right:calc(7.636px + 18.182%);--sf-first-top:calc(-10.944px - 4.399%);--sf-first-bottom:calc(10.944px + 4.399%)}
.sf-card .sf-sticker-flash{--sf-first-left:calc(-9.582px - 10.074%);--sf-first-right:calc(9.523px + 10.319%);--sf-first-top:calc(-10.944px - 4.399%);--sf-first-bottom:calc(10.944px + 4.399%)}
.sf-card .sf-sticker-anniversary{--sf-first-left:calc(-9.936px - 8.600%);--sf-first-right:calc(9.936px + 8.600%);--sf-first-top:calc(-10.944px - 4.399%);--sf-first-bottom:calc(10.874px + 4.692%)}
.sf-card .sf-sticker-weekend{--sf-first-left:calc(-9.936px - 8.600%);--sf-first-right:calc(9.936px + 8.600%);--sf-first-top:calc(-10.733px - 5.279%);--sf-first-bottom:calc(10.733px + 5.279%)}
.sf-card .sf-sticker-member{--sf-first-left:calc(-9.229px - 11.548%);--sf-first-right:calc(9.229px + 11.548%);--sf-first-top:calc(-10.944px - 4.399%);--sf-first-bottom:calc(10.944px + 4.399%)}
.sf-card .sf-sticker-grand-opening{--sf-first-left:calc(-9.111px - 12.039%);--sf-first-right:calc(9.111px + 12.039%);--sf-first-top:calc(-10.944px - 4.399%);--sf-first-bottom:calc(10.944px + 4.399%)}
.sf-card .sf-sticker-badge.sf-badge-pos-top-left{top:0!important;left:0!important;translate:var(--sf-first-left) var(--sf-first-top)!important}
.sf-card .sf-sticker-badge.sf-badge-pos-top-center{top:0!important;translate:0 var(--sf-first-top)!important}
.sf-card .sf-sticker-badge.sf-badge-pos-top-right{top:0!important;right:0!important;translate:var(--sf-first-right) var(--sf-first-top)!important}
.sf-card .sf-sticker-badge.sf-badge-pos-middle-left{left:0!important;translate:var(--sf-first-left) 0!important}
.sf-card .sf-sticker-badge.sf-badge-pos-middle-center{translate:0 0!important}
.sf-card .sf-sticker-badge.sf-badge-pos-middle-right{right:0!important;translate:var(--sf-first-right) 0!important}
.sf-card .sf-sticker-badge.sf-badge-pos-bottom-left{bottom:0!important;left:0!important;translate:var(--sf-first-left) var(--sf-first-bottom)!important}
.sf-card .sf-sticker-badge.sf-badge-pos-bottom-center{bottom:0!important;translate:0 var(--sf-first-bottom)!important}
.sf-card .sf-sticker-badge.sf-badge-pos-bottom-right{bottom:0!important;right:0!important;translate:var(--sf-first-right) var(--sf-first-bottom)!important}
.sf-card .sf-image-bottom .sf-sticker-badge:is(.sf-enter-zoom,.sf-enter-bounce,.sf-enter-slide){animation:none!important;scale:1!important;opacity:1!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-effect-float:is(.sf-enter-zoom,.sf-enter-bounce,.sf-enter-slide){animation:sf-clean-badge-float 2.3s ease-in-out infinite!important}
.sf-card .sf-sticker-badge.sf-effect-snow .sf-badge-snow{inset:8%;display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden;background:none!important;color:#fff;font-size:clamp(6px,6.2cqi,14px);line-height:1.65;letter-spacing:clamp(.25px,1.15cqi,2px);text-align:center;text-shadow:0 0 clamp(2px,3cqi,5px) currentColor;animation:sf-theme-particles 2.4s ease-in-out infinite!important}
.sf-card .sf-sticker-badge.sf-effect-snow .sf-badge-snow::before{display:block;width:max-content;max-width:100%;white-space:pre;text-align:center}
.sf-card .sf-sticker-christmas .sf-badge-snow::before{content:"❄  ✦  ❄\A ✧  ❄  ✦"}
.sf-card .sf-sticker-back-to-school .sf-badge-snow::before{content:"✎  ▰  ✎\A ▱  ✎  ▰";color:#79e4ff}
.sf-card .sf-sticker-valentine .sf-badge-snow::before{content:"♥  ♡  ♥\A ♡  ♥  ♡";color:#ff9fbd}
.sf-card .sf-sticker-summer .sf-badge-snow::before{content:"☀  ✦  ☀\A ✧  ☀  ✦";color:#ffe36b}
.sf-card .sf-sticker-new-year .sf-badge-snow::before{content:"★  ✦  ★\A ✧  ★  ✦";color:#ffe18a}
.sf-card .sf-sticker-black-friday .sf-badge-snow::before{content:"ϟ  ✦  ϟ\A ✧  ϟ  ✦";color:#ff3b30}
.sf-card .sf-sticker-cyber-monday .sf-badge-snow::before{content:"01  10  01\A 10  01  10";color:#61efff;font-size:.72em}
.sf-card .sf-sticker-halloween .sf-badge-snow::before{content:"♠  ◉  ♠\A ◉  ♠  ◉";color:#ff9a32}
.sf-card .sf-sticker-mid-year .sf-badge-snow::before{content:"★  ◆  ★\A ◆  ★  ◆";color:#ffe34f}
.sf-card .sf-sticker-clearance .sf-badge-snow::before{content:"!  ★  !\A ★  !  ★";color:#ffe331}
.sf-card .sf-sticker-flash .sf-badge-snow::before{content:"ϟ  ▲  ϟ\A ▲  ϟ  ▲";color:#ffdc35}
.sf-card .sf-sticker-anniversary .sf-badge-snow::before{content:"●  ✦  ●\A ✧  ●  ✦";color:#ffc0db}
.sf-card .sf-sticker-weekend .sf-badge-snow::before{content:"▣  ◷  ▣\A ◷  ▣  ◷";color:#ffdf45}
.sf-card .sf-sticker-member .sf-badge-snow::before{content:"★  ♦  ★\A ♦  ★  ♦";color:#f6cf55}
.sf-card .sf-sticker-grand-opening .sf-badge-snow::before{content:"✦  ✂  ✦\A ✧  ✦  ✂";color:#ffcf54}
@keyframes sf-theme-particles{0%,100%{transform:translateY(-1.8cqi);opacity:.35}50%{transform:translateY(3cqi) scale(1.05);opacity:1}}

/* Exactly 15 bundled stickers. */
.sf-card .sf-sticker-christmas{--sf-sticker-image:url('promotions/christmas.webp');--sf-save-left:37%;--sf-save-width:42%;--sf-save-bottom:5%;--sf-save-height:19%;--sf-save-rotate:-2deg;--sf-save-scale:1.04;--sf-save-ink:#b91210}
.sf-card .sf-sticker-back-to-school{--sf-sticker-image:url('promotions/back-to-school.webp');--sf-save-left:26%;--sf-save-width:57.2%;--sf-save-bottom:7.2%;--sf-save-height:18%;--sf-save-rotate:-7.6deg;--sf-save-scale:1.05;--sf-save-ink:#111}
.sf-card .sf-sticker-valentine{--sf-sticker-image:url('promotions/valentine.webp');--sf-save-left:22.3%;--sf-save-width:63.6%;--sf-save-bottom:9%;--sf-save-height:17.5%;--sf-save-rotate:-4.5deg;--sf-save-scale:1.05;--sf-save-ink:#fff}
.sf-card .sf-sticker-summer{--sf-sticker-image:url('promotions/summer.webp');--sf-save-left:21.4%;--sf-save-width:68.2%;--sf-save-bottom:9%;--sf-save-height:17%;--sf-save-rotate:-5.8deg;--sf-save-scale:1.05;--sf-save-ink:#fff}
.sf-card .sf-sticker-new-year{--sf-sticker-image:url('promotions/new-year.webp');--sf-save-left:9.4%;--sf-save-width:81.1%;--sf-save-bottom:14.5%;--sf-save-height:18.4%;--sf-save-rotate:-8.2deg;--sf-save-scale:1.05;--sf-save-ink:#fff}
.sf-card .sf-sticker-black-friday{--sf-sticker-image:url('promotions/black-friday.webp');--sf-save-left:53.7%;--sf-save-width:32.3%;--sf-save-bottom:11.8%;--sf-save-height:15.2%;--sf-save-rotate:-11.2deg;--sf-save-scale:1.07;--sf-save-ink:#fff}
.sf-card .sf-sticker-cyber-monday{--sf-sticker-image:url('promotions/cyber-monday.webp');--sf-save-left:31.6%;--sf-save-width:59.9%;--sf-save-bottom:9.5%;--sf-save-height:16.6%;--sf-save-rotate:-2.6deg;--sf-save-scale:1.04;--sf-save-ink:#fff}
.sf-card .sf-sticker-halloween{--sf-sticker-image:url('promotions/halloween.webp');--sf-save-left:26%;--sf-save-width:64.5%;--sf-save-bottom:9%;--sf-save-height:18.4%;--sf-save-rotate:-4.8deg;--sf-save-scale:1.05;--sf-save-ink:#fff}
.sf-card .sf-sticker-mid-year{--sf-sticker-image:url('promotions/mid-year.webp');--sf-save-left:29.7%;--sf-save-width:56.2%;--sf-save-bottom:15%;--sf-save-height:17%;--sf-save-rotate:-9.6deg;--sf-save-scale:1.05;--sf-save-ink:#fff}
.sf-card .sf-sticker-clearance{--sf-sticker-image:url('promotions/clearance.webp');--sf-save-left:26.5%;--sf-save-width:48.9%;--sf-save-bottom:17.3%;--sf-save-height:12.4%;--sf-save-rotate:-3.5deg;--sf-save-scale:1.10;--sf-save-ink:#111}
.sf-card .sf-sticker-flash{--sf-sticker-image:url('promotions/flash.webp');--sf-save-left:28.8%;--sf-save-width:47%;--sf-save-bottom:15.5%;--sf-save-height:14.3%;--sf-save-rotate:-8.6deg;--sf-save-scale:1.08;--sf-save-ink:#111}
.sf-card .sf-sticker-anniversary{--sf-sticker-image:url('promotions/anniversary.webp');--sf-save-left:32.5%;--sf-save-width:42.4%;--sf-save-bottom:17.3%;--sf-save-height:14.7%;--sf-save-rotate:-5.5deg;--sf-save-scale:1.07;--sf-save-ink:#fff}
.sf-card .sf-sticker-weekend{--sf-sticker-image:url('promotions/weekend.webp');--sf-save-left:43.1%;--sf-save-width:32.3%;--sf-save-bottom:18.2%;--sf-save-height:14.3%;--sf-save-rotate:-8.7deg;--sf-save-scale:1.07;--sf-save-ink:#fff}
.sf-card .sf-sticker-member{--sf-sticker-image:url('promotions/member.webp');--sf-save-left:32.5%;--sf-save-width:43.3%;--sf-save-bottom:13.6%;--sf-save-height:13.4%;--sf-save-rotate:-1.7deg;--sf-save-scale:1.06;--sf-save-ink:#fff}
.sf-card .sf-sticker-grand-opening{--sf-sticker-image:url('promotions/grand-opening.webp');--sf-save-left:26%;--sf-save-width:52.5%;--sf-save-bottom:18.7%;--sf-save-height:15.2%;--sf-save-rotate:-6.8deg;--sf-save-scale:1.06;--sf-save-ink:#fff}

/* Themed animated accent pieces. */
.sf-card .sf-sticker-christmas .sf-theme-art{left:18%!important;top:13%!important;width:14%!important;aspect-ratio:1!important;background:radial-gradient(circle,#fff7a8 0 16%,#ffd735 17% 36%,transparent 38%)!important;filter:drop-shadow(0 0 5px #ffe46b)!important;animation:sf-clean-twinkle 1s ease-in-out infinite alternate!important}
.sf-card .sf-sticker-back-to-school .sf-theme-art{right:9%!important;top:8%!important;width:15%!important;aspect-ratio:1.2!important;background:#67dcff!important;clip-path:polygon(0 55%,100% 0,64% 100%,50% 63%,19% 71%)!important;animation:sf-clean-plane 1.7s ease-in-out infinite!important}
.sf-card .sf-sticker-valentine .sf-theme-art{left:10%!important;top:12%!important;width:15%!important;aspect-ratio:1!important;background:#ff9dbd!important;clip-path:polygon(50% 100%,0 45%,15% 13%,50% 29%,85% 13%,100% 45%)!important;filter:drop-shadow(0 0 5px #ff9dbd)!important;animation:sf-clean-heart 1.2s ease-in-out infinite!important}
.sf-card .sf-sticker-summer .sf-theme-art{right:9%!important;top:7%!important;width:16%!important;aspect-ratio:1!important;border-radius:50%!important;background:radial-gradient(circle,#fff7a2 0 18%,#ffd63b 20% 58%,#ef9e00 60%)!important;box-shadow:0 0 7px #ffd63b!important;animation:sf-clean-spin 5s linear infinite!important}
.sf-card .sf-sticker-new-year .sf-theme-art{right:16%!important;top:7%!important;width:14%!important;aspect-ratio:1!important;border-radius:50%!important;background:radial-gradient(circle,#ffe18a 0 13%,transparent 15%)!important;box-shadow:0 -9px #ffe18a,0 9px #ffe18a,9px 0 #ffe18a,-9px 0 #ffe18a,6px 6px #ffe18a,-6px 6px #ffe18a!important;animation:sf-clean-firework 1.2s ease-out infinite!important}
.sf-card .sf-sticker-black-friday .sf-theme-art,.sf-card .sf-sticker-clearance .sf-theme-art,.sf-card .sf-sticker-weekend .sf-theme-art{width:25%!important;aspect-ratio:1.45!important;background:transparent url('promotions/megaphone.svg') center/contain no-repeat!important;filter:drop-shadow(0 2px 3px #0006)!important;animation:sf-clean-mega .9s ease-in-out infinite!important}
.sf-card .sf-sticker-black-friday .sf-theme-art{left:2%!important;top:5%!important;transform-origin:52% 62%!important}
.sf-card .sf-sticker-clearance .sf-theme-art{right:7%!important;top:4%!important}
.sf-card .sf-sticker-weekend .sf-theme-art{right:6%!important;top:33%!important}
.sf-card .sf-sticker-cyber-monday .sf-theme-art{right:7%!important;bottom:13%!important;width:13%!important;aspect-ratio:.9!important;background:linear-gradient(135deg,#fff,#65e8ff)!important;clip-path:polygon(5% 0,100% 52%,61% 57%,80% 100%,58% 100%,41% 62%,5% 82%)!important;filter:drop-shadow(0 0 6px #56e5ff)!important;animation:sf-clean-cursor 1.1s ease-in-out infinite!important}
.sf-card .sf-sticker-halloween .sf-theme-art{right:9%!important;top:8%!important;width:17%!important;aspect-ratio:1.25!important;background:#171020!important;clip-path:polygon(0 58%,9% 35%,24% 52%,34% 26%,50% 48%,66% 26%,76% 52%,91% 35%,100% 58%,78% 65%,63% 62%,50% 86%,37% 62%,22% 65%)!important;animation:sf-clean-bat .8s ease-in-out infinite!important}
.sf-card .sf-sticker-mid-year .sf-theme-art{right:8%!important;bottom:8%!important;width:15%!important;aspect-ratio:1!important;background:linear-gradient(90deg,transparent 42%,#1f5ddb 42% 58%,transparent 58%),linear-gradient(#f54d44,#d81712)!important;border-radius:3px!important;animation:sf-clean-gift 1.15s ease-in-out infinite!important}
.sf-card .sf-sticker-flash .sf-theme-art{right:12%!important;top:6%!important;width:17%!important;aspect-ratio:1!important;border:3px solid #171717!important;border-radius:50%!important;background:conic-gradient(from var(--sf-clock-angle,0deg),#111 0 2deg,transparent 2deg 360deg),#fff!important;animation:sf-clean-clock 1.1s steps(12,end) infinite!important}
.sf-card .sf-sticker-anniversary .sf-theme-art,.sf-card .sf-sticker-grand-opening .sf-theme-art{left:9%!important;top:8%!important;width:17%!important;aspect-ratio:.9!important;border-radius:50%!important;background:radial-gradient(circle at 35% 30%,#fff 0 7%,#ffc8df 8% 34%,#e76b9f 35%)!important;box-shadow:13px 3px 0 #f0d36b!important;animation:sf-clean-balloon 1.5s ease-in-out infinite!important}
.sf-card .sf-sticker-member .sf-theme-art{left:50%!important;top:6%!important;width:17%!important;aspect-ratio:1.2!important;background:linear-gradient(#ffeaa8,#d1a331)!important;clip-path:polygon(0 100%,0 55%,20% 18%,40% 52%,50% 0,60% 52%,80% 18%,100% 55%,100% 100%)!important;animation:sf-clean-crown 1.55s ease-in-out infinite!important}

@keyframes sf-clean-badge-float{0%,100%{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-7px) rotate(.7deg)}}
@keyframes sf-clean-save-rock{0%,100%{transform:rotate(calc(var(--sf-save-rotate) - 1deg)) scale(var(--sf-save-scale))}50%{transform:translateY(-3px) rotate(calc(var(--sf-save-rotate) + 1.4deg)) scale(calc(var(--sf-save-scale) + .025))}}
@keyframes sf-clean-price-pop{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
@keyframes sf-clean-sparkle{0%{opacity:.25;transform:scale(.85)}100%{opacity:.75;transform:scale(1.1)}}
@keyframes sf-clean-twinkle{0%{opacity:.45;transform:scale(.75)}100%{opacity:1;transform:scale(1.2)}}
@keyframes sf-clean-plane{0%,100%{transform:translate(12px,-8px) rotate(-18deg)}50%{transform:translate(-12px,8px) rotate(-5deg)}}
@keyframes sf-clean-heart{0%,100%{transform:scale(1)}35%{transform:scale(1.15)}55%{transform:scale(1.03)}72%{transform:scale(1.11)}}
@keyframes sf-clean-spin{to{transform:rotate(360deg)}}
@keyframes sf-clean-firework{0%{opacity:0;transform:scale(.4)}35%{opacity:1}100%{opacity:0;transform:scale(1.25)}}
@keyframes sf-clean-mega{0%,100%{transform:rotate(-8deg) translateY(0)}50%{transform:rotate(10deg) translateY(-5px)}}
@keyframes sf-clean-cursor{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-8px,-5px) scale(1.2)}}
@keyframes sf-clean-bat{0%,100%{transform:translateY(0) scaleY(1)}50%{transform:translateY(-6px) scaleY(.55)}}
@keyframes sf-clean-gift{0%,100%{transform:translateY(0) scale(.9)}50%{transform:translateY(-8px) scale(1.2)}}
@keyframes sf-clean-clock{0%,100%{--sf-clock-angle:0deg;transform:rotate(0)}50%{--sf-clock-angle:360deg;transform:rotate(30deg)}}
@keyframes sf-clean-balloon{0%,100%{transform:translateY(5px) rotate(-4deg)}50%{transform:translateY(-9px) rotate(5deg)}}
@keyframes sf-clean-crown{0%,100%{transform:translateX(-50%) translateY(0) scale(.92)}50%{transform:translateX(-50%) translateY(-6px) scale(1.16)}}

@container(max-width:220px){
  .sf-card .sf-image-bottom .sf-sticker-badge.sf-promo{width:min(var(--sf-badge-width,72%),var(--sf-badge-max,132px))!important}
  .sf-card .sf-image-bottom .sf-sticker-badge .sf-saving-label{font-size:var(--sf-save-label-size)!important}
  .sf-card .sf-image-bottom .sf-sticker-badge .sf-saving-amount{font-size:var(--sf-save-amount-size)!important}
}
@supports not (container-type:inline-size){@media(max-width:767px){.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo{width:min(var(--sf-badge-width,72%),var(--sf-badge-max,132px))!important}}}
@media(max-width:1024px){.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo,.sf-card .sf-image-bottom .sf-sticker-badge .sf-saving,.sf-card .sf-image-bottom .sf-sticker-badge .sf-saving-amount,.sf-card .sf-image-bottom .sf-sticker-badge .sf-theme-art{animation-play-state:running!important}}

/* Promotional artwork and manually positioned price text may extend outside the card. */
.woocommerce ul.products li.sf-card.sf-has-promo-badge,ul.products li.sf-card.sf-has-promo-badge{overflow:visible!important;clip-path:none!important;contain:none!important;z-index:10}
.woocommerce ul.products li.sf-card.sf-has-promo-badge:hover,ul.products li.sf-card.sf-has-promo-badge:hover{z-index:12}
.sf-card.sf-has-promo-badge .sf-media,.sf-card.sf-has-promo-badge .sf-image-bottom{overflow:visible!important}
.sf-card.sf-has-promo-badge .sf-photo{border-radius:11px 11px 0 0}
.sf-card.sf-has-promo-badge .sf-sticker-badge.sf-promo{overflow:visible!important;clip-path:none!important;background-size:contain!important;background-origin:border-box!important}
.sf-card.sf-has-promo-badge .sf-sticker-badge .sf-saving{max-height:none!important;overflow:visible!important}

/* 2.0.75: manually assigned promos must remain visible. */
.sf-card[data-sf-direct-promo="1"] .sf-promo.sf-direct-promo{display:block!important;visibility:visible!important;opacity:1!important;}
.sf-card[data-sf-direct-promo="1"] .sf-promo.sf-direct-promo[hidden]{display:block!important;}


/* 2.0.76 per-promotion animation control */
.sf-card .sf-promo.sf-promo-static,
.sf-card .sf-promo.sf-promo-static *,
.sf-card .sf-promo.sf-promo-static *::before,
.sf-card .sf-promo.sf-promo-static *::after{animation:none!important;transition:none!important}
.sf-card .sf-promo.sf-promo-animated{animation-play-state:running!important}

/* One non-clipping path for every promotional badge. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo{
  background-size:calc(100% - var(--sf-badge-safe-gap,12px) - var(--sf-badge-safe-gap,12px)) calc(100% - var(--sf-badge-safe-gap,12px) - var(--sf-badge-safe-gap,12px))!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  overflow:visible!important;
  clip-path:none!important;
  contain:none!important;
}
.sf-card.sf-has-promo-badge,
.sf-card.sf-has-promo-badge .sf-media,
.sf-card.sf-has-promo-badge .sf-image-bottom,
.sf-card.sf-has-promo-badge .sf-sticker-badge,
.sf-card.sf-has-promo-badge .sf-saving{
  overflow:visible!important;
  clip-path:none!important;
}
.sf-card.sf-promo-overflow-host,
.sf-card .sf-media.sf-promo-overflow-host,
.sf-card .sf-image-bottom.sf-promo-overflow-host{
  overflow:visible!important;
  overflow-x:visible!important;
  overflow-y:visible!important;
  clip-path:none!important;
  contain:none!important;
}
.woocommerce ul.products li.sf-card.sf-has-promo-badge,
ul.products li.sf-card.sf-has-promo-badge{
  isolation:isolate!important;
  overflow:visible!important;
  clip-path:none!important;
  contain:none!important;
}
.woocommerce ul.products li.sf-card.sf-has-promo-badge .sf-photo,
ul.products li.sf-card.sf-has-promo-badge .sf-photo{
  overflow:hidden!important;
}
@media(max-width:1024px){
  /* Grid padding is part of the first-paint stylesheet; do not add it later. */
}

/* 2.0.119 storefront animation recovery.
 * Keep selected promotional motion running even when a theme/optimizer adds
 * generic animation overrides. This is intentionally limited to the badge. */
.woocommerce ul.products li.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated,
ul.products li.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated,
.woocommerce ul.products li.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated .sf-badge-animation-clip::before,
ul.products li.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated .sf-badge-animation-clip::before,
.woocommerce ul.products li.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated .sf-theme-art,
ul.products li.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated .sf-theme-art,
.woocommerce ul.products li.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated .sf-badge-snow,
ul.products li.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated .sf-badge-snow,
.woocommerce ul.products li.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated .sf-badge-decoration,
ul.products li.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated .sf-badge-decoration,
.woocommerce ul.products li.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated .sf-saving,
ul.products li.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated .sf-saving,
.woocommerce ul.products li.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated .sf-saving-amount,
ul.products li.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated .sf-saving-amount{animation-play-state:running!important}
/* Entrance = none must disable only the entrance, never the selected floating loop. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-promo-animated.sf-effect-float.sf-enter-none{animation:sf-clean-badge-float 2.3s ease-in-out infinite!important}


/* 2.0.119: force the selected motion tree to stay animation-capable after the
 * JS re-arm. The class itself does not invent effects; it only preserves the
 * animations already selected on this badge. */
.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated.sf-motion-rearm,
.sf-card .sf-sticker-badge.sf-promo.sf-promo-animated.sf-motion-rearm *{animation-play-state:running!important}


/* 2.0.120 explicit live animation fallback. These selectors re-declare the
 * actual selected effect animations at the end of the stylesheet so theme or
 * optimizer rules loaded earlier cannot leave a checked effect static. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-promo-animated.sf-effect-price .sf-saving-amount{animation:sf-clean-price-pop .9s ease-in-out infinite!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-promo-animated.sf-effect-ribbon .sf-saving{animation:sf-clean-save-rock 1.3s ease-in-out infinite!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-promo-animated.sf-effect-float.sf-enter-none{animation:sf-clean-badge-float 2.3s ease-in-out infinite!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-promo-animated.sf-effect-twinkle .sf-badge-animation-clip::before{animation:sf-clean-sparkle 1.1s ease-in-out infinite alternate!important;opacity:.85!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-promo-animated.sf-effect-snow .sf-badge-snow{animation:sf-theme-particles 2.4s ease-in-out infinite!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-promo-animated.sf-effect-decoration .sf-theme-art{display:block!important;animation-play-state:running!important}


/* 2.0.122 FINAL motion layer -------------------------------------------------
 * Real bat nodes replace the malformed 2.0.121 escaped CSS block. These rules
 * are deliberately last so theme/optimizer CSS cannot hide selected effects. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-promo-animated{
  animation-play-state:running!important;
}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-halloween .sf-badge-animation-clip{
  inset:var(--sf-badge-safe-gap,12px)!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
  overflow:hidden!important;
}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-halloween .sf-halloween-bat{
  display:none;
}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-halloween.sf-effect-decoration .sf-theme-art{
  right:2%!important;
  top:2%!important;
  width:42%!important;
  height:31%!important;
  aspect-ratio:auto!important;
  display:block!important;
  background:none!important;
  clip-path:none!important;
  filter:none!important;
  animation:sfLiveHalloweenBatGroup 1.25s ease-in-out infinite!important;
}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-halloween.sf-effect-decoration .sf-halloween-bat{
  position:absolute!important;
  display:block!important;
  width:36%!important;
  height:45%!important;
  min-width:14px!important;
  min-height:7px!important;
  background:#1e1025!important;
  clip-path:polygon(0 52%,10% 30%,25% 47%,34% 18%,50% 43%,66% 18%,75% 47%,90% 30%,100% 52%,78% 62%,63% 58%,50% 88%,37% 58%,22% 62%)!important;
  filter:drop-shadow(0 1px 1px rgba(255,145,42,.8))!important;
  transform-origin:50% 55%!important;
  animation:sfLiveHalloweenBatWing .42s ease-in-out infinite alternate!important;
}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-halloween.sf-effect-decoration .sf-halloween-bat-a{left:0!important;top:0!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-halloween.sf-effect-decoration .sf-halloween-bat-b{right:0!important;bottom:0!important;width:29%!important;height:37%!important;animation-delay:-.21s!important}
@keyframes sfLiveHalloweenBatWing{from{transform:rotate(-7deg) scaleY(.62)}to{transform:rotate(7deg) scaleY(1.18)}}
@keyframes sfLiveHalloweenBatGroup{0%,100%{transform:translate(0,3px) rotate(-3deg)}50%{transform:translate(-8px,-6px) rotate(5deg)}}

/* Selected effect fallbacks: preview/live use the same six saved effect keys. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-promo-animated.sf-effect-price .sf-saving-amount{animation:sf-clean-price-pop .9s ease-in-out infinite!important;animation-play-state:running!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-promo-animated.sf-effect-ribbon .sf-saving{animation:sf-clean-save-rock 1.3s ease-in-out infinite!important;animation-play-state:running!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-promo-animated.sf-effect-twinkle .sf-badge-animation-clip::before{animation:sf-clean-sparkle 1.1s ease-in-out infinite alternate!important;animation-play-state:running!important;opacity:.85!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-promo-animated.sf-effect-snow .sf-badge-snow{animation:sf-theme-particles 2.4s ease-in-out infinite!important;animation-play-state:running!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-promo-animated.sf-effect-float.sf-enter-none{animation:sf-clean-badge-float 2.3s ease-in-out infinite!important;animation-play-state:running!important}


/* 2.0.123 Christmas real-effect layer ---------------------------------------
 * Bow bouncing and Gift ribbon waving are real overlay nodes shared with the
 * admin preview. They are independent from price/saving text motion. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-christmas .sf-badge-animation-clip{
  inset:var(--sf-badge-safe-gap,12px)!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
  overflow:visible!important;
}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-christmas .sf-theme-art{
  left:0!important;top:0!important;right:0!important;bottom:0!important;
  width:100%!important;height:100%!important;aspect-ratio:auto!important;
  background:none!important;clip-path:none!important;filter:none!important;
  box-shadow:none!important;animation:none!important;pointer-events:none!important;
}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-christmas:not(.sf-effect-decoration):not(.sf-effect-ribbon) .sf-theme-art{display:none!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-christmas.sf-effect-decoration .sf-theme-art,
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-christmas.sf-effect-ribbon .sf-theme-art{display:block!important}
.sf-card .sf-sticker-christmas .sf-christmas-bow,
.sf-card .sf-sticker-christmas .sf-christmas-ribbon{display:none;position:absolute;box-sizing:border-box;pointer-events:none;transform-origin:center}
.sf-card .sf-sticker-christmas.sf-effect-decoration .sf-christmas-bow{
  display:block!important;left:38%!important;top:20%!important;width:25%!important;height:17%!important;
  background:radial-gradient(circle at 50% 52%,#ffd451 0 16%,#b40d17 18% 31%,transparent 33%)!important;
  animation:sfLiveChristmasBow 1s cubic-bezier(.34,1.56,.64,1) infinite!important;
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.28))!important;
}
.sf-card .sf-sticker-christmas .sf-christmas-bow::before,
.sf-card .sf-sticker-christmas .sf-christmas-bow::after{
  content:"";position:absolute;top:18%;width:43%;height:58%;
  background:linear-gradient(135deg,#f04444,#a90712 68%);border:1px solid rgba(255,220,100,.55);
  border-radius:65% 20% 65% 20%;
}
.sf-card .sf-sticker-christmas .sf-christmas-bow::before{left:1%;transform:rotate(18deg)}
.sf-card .sf-sticker-christmas .sf-christmas-bow::after{right:1%;transform:scaleX(-1) rotate(18deg)}
.sf-card .sf-sticker-christmas.sf-effect-ribbon .sf-christmas-ribbon{
  display:block!important;left:47%!important;top:13%!important;width:9%!important;height:25%!important;
  background:linear-gradient(90deg,#9d0710,#f04747 45%,#99060e)!important;
  clip-path:polygon(8% 0,92% 0,78% 100%,50% 78%,22% 100%)!important;
  animation:sfLiveChristmasRibbon .72s ease-in-out infinite alternate!important;
  filter:drop-shadow(0 2px 1px rgba(0,0,0,.22))!important;
}
@keyframes sfLiveChristmasBow{0%,100%{transform:translateY(1px) scale(.92) rotate(-3deg)}50%{transform:translateY(-7px) scale(1.13) rotate(3deg)}}
@keyframes sfLiveChristmasRibbon{from{transform:skewX(-8deg) rotate(-4deg)}to{transform:skewX(9deg) rotate(5deg) translateX(2px)}}


/* 2.0.124 universal real-effect layer ---------------------------------------
 * Makes decoration/ribbon controls visibly animate on all remaining 13 badges.
 * The same DOM nodes are present in preview and live product cards. */
.sf-card .sf-theme-art .sf-real-decoration,.sf-card .sf-theme-art .sf-real-ribbon{display:none;position:absolute!important;pointer-events:none!important;box-sizing:border-box!important;z-index:12!important;transform-origin:center!important}
.sf-card .sf-sticker-badge.sf-promo:not(.sf-sticker-christmas):not(.sf-sticker-halloween) .sf-badge-animation-clip{inset:var(--sf-badge-safe-gap,12px)!important;-webkit-mask-image:none!important;mask-image:none!important;overflow:hidden!important}
.sf-card .sf-sticker-badge.sf-promo:not(.sf-sticker-christmas):not(.sf-sticker-halloween) .sf-theme-art{inset:0!important;width:100%!important;height:100%!important;display:block!important;background:none!important;clip-path:none!important;filter:none!important;animation:none!important}
.sf-card .sf-sticker-badge.sf-promo.sf-effect-decoration .sf-real-decoration{display:grid!important;place-items:center!important;animation:sfLiveRealDecoration 1.05s ease-in-out infinite!important}
.sf-card .sf-sticker-badge.sf-promo.sf-effect-ribbon .sf-real-ribbon{display:block!important;animation:sfLiveRealRibbon .9s ease-in-out infinite alternate!important}
.sf-card .sf-theme-art .sf-real-decoration{font:900 clamp(12px,15cqi,30px)/1 Arial,sans-serif;text-shadow:0 2px 3px rgba(0,0,0,.25)}
.sf-card .sf-theme-art .sf-real-ribbon{width:12%;height:34%;clip-path:polygon(8% 0,92% 0,82% 100%,50% 79%,18% 100%);filter:drop-shadow(0 2px 2px rgba(0,0,0,.22))}
.sf-sticker-back-to-school .sf-real-decoration{left:7%;top:9%;color:#2373a8}.sf-sticker-back-to-school .sf-real-ribbon{right:12%;top:17%;background:linear-gradient(90deg,#1b3e73,#5ea7df,#193866)}
.sf-sticker-valentine .sf-real-decoration{left:7%;top:8%;color:#e82b67}.sf-sticker-valentine .sf-real-ribbon{right:11%;top:13%;background:linear-gradient(90deg,#b90d45,#ff7096,#b90d45)}
.sf-sticker-summer .sf-real-decoration{right:8%;top:7%;color:#ffad17}.sf-sticker-summer .sf-real-ribbon{left:12%;top:20%;background:linear-gradient(90deg,#f15e32,#ffb53e,#ef5a32)}
.sf-sticker-new-year .sf-real-decoration{right:9%;top:8%;color:#ffd34d}.sf-sticker-new-year .sf-real-ribbon{left:12%;top:16%;background:linear-gradient(90deg,#b31018,#ef3a3f,#a90c15)}
.sf-sticker-black-friday .sf-real-decoration{left:8%;top:10%;width:20%;height:16%;font-size:16cqi;color:#fff;background:#e71922;clip-path:polygon(0 30%,75% 0,100% 20%,83% 76%,10% 100%)}.sf-sticker-black-friday .sf-real-ribbon{right:10%;top:18%;background:linear-gradient(90deg,#ed1e2b,#8d0009,#ed1e2b)}
.sf-sticker-cyber-monday .sf-real-decoration{right:8%;top:8%;color:#6af4ff}.sf-sticker-cyber-monday .sf-real-ribbon{left:10%;top:16%;background:linear-gradient(90deg,#153b9d,#46e5ff,#153b9d);box-shadow:0 0 8px #51edff}
.sf-sticker-mid-year .sf-real-decoration{left:8%;top:9%;color:#ffd839}.sf-sticker-mid-year .sf-real-ribbon{right:10%;top:17%;background:linear-gradient(90deg,#17479c,#5d9cff,#17479c)}
.sf-sticker-clearance .sf-real-decoration{left:8%;top:9%;width:18%;height:15%;font-size:15cqi;color:#fff;background:#e40012;clip-path:polygon(0 30%,72% 0,100% 20%,80% 80%,5% 100%)}.sf-sticker-clearance .sf-real-ribbon{right:10%;top:16%;background:linear-gradient(90deg,#ffcf16,#fff15b,#efb500)}
.sf-sticker-flash .sf-real-decoration{right:8%;top:8%;width:18%;height:18%;border:3px solid #ffbf12;border-radius:50%;color:#ffcc19;font-size:11cqi}.sf-sticker-flash .sf-real-ribbon{left:10%;top:18%;background:linear-gradient(90deg,#f0b100,#ffe769,#e1a200)}
.sf-sticker-anniversary .sf-real-decoration{left:9%;top:8%;color:#f670a7;text-shadow:14px 8px 0 #ffd35b,-8px 14px 0 #ff9bc4}.sf-sticker-anniversary .sf-real-ribbon{right:11%;top:15%;background:linear-gradient(90deg,#d34d86,#ff9ac2,#d34d86)}
.sf-sticker-weekend .sf-real-decoration{right:8%;top:9%;width:18%;height:17%;border:3px solid #e52b2e;border-radius:3px;color:#e52b2e;font-size:10cqi}.sf-sticker-weekend .sf-real-ribbon{left:10%;top:17%;background:linear-gradient(90deg,#e12529,#fff,#e12529)}
.sf-sticker-member .sf-real-decoration{left:8%;top:7%;color:#e9c149}.sf-sticker-member .sf-real-ribbon{right:10%;top:16%;background:linear-gradient(90deg,#a47710,#f2d46a,#a47710)}
.sf-sticker-grand-opening .sf-real-decoration{left:8%;top:8%;color:#ed3342;text-shadow:14px 7px 0 #f2c94c,-8px 14px 0 #d91f2d}.sf-sticker-grand-opening .sf-real-ribbon{right:10%;top:16%;background:linear-gradient(90deg,#b7111d,#ec4a52,#ad0d18)}
@keyframes sfLiveRealDecoration{0%,100%{transform:translateY(1px) rotate(-4deg) scale(.95)}50%{transform:translateY(-4px) rotate(5deg) scale(1.08)}}
@keyframes sfLiveRealRibbon{from{transform:skewX(-6deg) rotate(-3deg)}to{transform:skewX(7deg) rotate(4deg) translateX(1.5px)}}


/* 2.0.126 — based strictly on 2.0.124. No badge/text sizing changes.
 * Christmas bow/ribbon may travel outside the animation clip while bouncing,
 * and Gift ribbon waving never moves the Save up to / amount block. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-christmas .sf-badge-animation-clip{overflow:visible!important}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-christmas.sf-effect-ribbon .sf-saving{animation:none!important;transform:rotate(var(--sf-save-rotate,0deg))!important}


/* 2.0.127 — motion-only correction based on 2.0.126.
 * Do not change badge/text sizes or artwork geometry.
 * The 13 non-Christmas/non-Halloween real decoration and ribbon nodes may
 * travel outside their animation clip, so bounce/sway motion is not chopped.
 * Their ribbon effects never animate the Save up to / amount block.
 * Halloween keeps its intentional wooden-sign behavior. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo:not(.sf-sticker-christmas):not(.sf-sticker-halloween).sf-effect-decoration .sf-badge-animation-clip,
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo:not(.sf-sticker-christmas):not(.sf-sticker-halloween).sf-effect-ribbon .sf-badge-animation-clip{
  overflow:visible!important;
}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo:not(.sf-sticker-christmas):not(.sf-sticker-halloween).sf-effect-decoration .sf-theme-art,
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo:not(.sf-sticker-christmas):not(.sf-sticker-halloween).sf-effect-ribbon .sf-theme-art{
  overflow:visible!important;
}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo:not(.sf-sticker-halloween).sf-effect-ribbon .sf-saving{
  animation:none!important;
  transform:rotate(var(--sf-save-rotate,0deg))!important;
}


/* 2.0.128 — true non-clipping motion layer for generic promo decorations.
 * Size, badge geometry, text geometry and saved positioning are untouched.
 * Generic decoration/ribbon nodes are direct badge children, outside the
 * sticker mask/clip wrapper, so their motion cannot be cropped by that mask. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo > .sf-motion-overflow-layer{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  z-index:14!important;
  display:block!important;
  pointer-events:none!important;
  overflow:visible!important;
  clip-path:none!important;
  contain:none!important;
}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo > .sf-motion-overflow-layer > .sf-real-decoration,
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo > .sf-motion-overflow-layer > .sf-real-ribbon{
  display:none;
  position:absolute!important;
  pointer-events:none!important;
  box-sizing:border-box!important;
  transform-origin:center!important;
}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-effect-decoration > .sf-motion-overflow-layer > .sf-real-decoration{
  display:grid!important;place-items:center!important;
  animation:sfLiveRealDecoration 1.05s ease-in-out infinite!important;
}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-effect-ribbon > .sf-motion-overflow-layer > .sf-real-ribbon{
  display:block!important;
  animation:sfLiveRealRibbon .9s ease-in-out infinite alternate!important;
}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo > .sf-motion-overflow-layer > .sf-real-decoration{
  font:900 clamp(12px,15cqi,30px)/1 Arial,sans-serif;
  text-shadow:0 2px 3px rgba(0,0,0,.25);
}
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo > .sf-motion-overflow-layer > .sf-real-ribbon{
  width:12%;height:34%;clip-path:polygon(8% 0,92% 0,82% 100%,50% 79%,18% 100%);
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.22));
}
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-decoration{left:12%;top:12%;color:#2373a8}
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon{right:14%;top:18%;background:linear-gradient(90deg,#1b3e73,#5ea7df,#193866)}
.sf-card .sf-sticker-valentine > .sf-motion-overflow-layer > .sf-real-decoration{left:12%;top:11%;color:#e82b67}
.sf-card .sf-sticker-valentine > .sf-motion-overflow-layer > .sf-real-ribbon{right:14%;top:15%;background:linear-gradient(90deg,#b90d45,#ff7096,#b90d45)}
.sf-card .sf-sticker-summer > .sf-motion-overflow-layer > .sf-real-decoration{right:12%;top:11%;color:#ffad17}
.sf-card .sf-sticker-summer > .sf-motion-overflow-layer > .sf-real-ribbon{left:14%;top:20%;background:linear-gradient(90deg,#f15e32,#ffb53e,#ef5a32)}
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-decoration{right:13%;top:11%;color:#ffd34d}
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon{left:14%;top:17%;background:linear-gradient(90deg,#b31018,#ef3a3f,#a90c15)}
.sf-card .sf-sticker-black-friday > .sf-motion-overflow-layer > .sf-real-decoration{left:12%;top:12%;width:20%;height:16%;font-size:16cqi;color:#fff;background:#e71922;clip-path:polygon(0 30%,75% 0,100% 20%,83% 76%,10% 100%)}
.sf-card .sf-sticker-black-friday > .sf-motion-overflow-layer > .sf-real-ribbon{right:13%;top:18%;background:linear-gradient(90deg,#ed1e2b,#8d0009,#ed1e2b)}
.sf-card .sf-sticker-cyber-monday > .sf-motion-overflow-layer > .sf-real-decoration{right:12%;top:11%;color:#6af4ff}
.sf-card .sf-sticker-cyber-monday > .sf-motion-overflow-layer > .sf-real-ribbon{left:13%;top:17%;background:linear-gradient(90deg,#153b9d,#46e5ff,#153b9d);box-shadow:0 0 8px #51edff}
.sf-card .sf-sticker-mid-year > .sf-motion-overflow-layer > .sf-real-decoration{left:12%;top:12%;color:#ffd839}
.sf-card .sf-sticker-mid-year > .sf-motion-overflow-layer > .sf-real-ribbon{right:13%;top:18%;background:linear-gradient(90deg,#17479c,#5d9cff,#17479c)}
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-decoration{left:12%;top:12%;width:18%;height:15%;font-size:15cqi;color:#fff;background:#e40012;clip-path:polygon(0 30%,72% 0,100% 20%,80% 80%,5% 100%)}
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon{right:13%;top:17%;background:linear-gradient(90deg,#ffcf16,#fff15b,#efb500)}
.sf-card .sf-sticker-flash > .sf-motion-overflow-layer > .sf-real-decoration{right:12%;top:11%;width:18%;height:18%;border:3px solid #ffbf12;border-radius:50%;color:#ffcc19;font-size:11cqi}
.sf-card .sf-sticker-flash > .sf-motion-overflow-layer > .sf-real-ribbon{left:13%;top:18%;background:linear-gradient(90deg,#f0b100,#ffe769,#e1a200)}
.sf-card .sf-sticker-anniversary > .sf-motion-overflow-layer > .sf-real-decoration{left:12%;top:11%;color:#f670a7;text-shadow:14px 8px 0 #ffd35b,-8px 14px 0 #ff9bc4}
.sf-card .sf-sticker-anniversary > .sf-motion-overflow-layer > .sf-real-ribbon{right:14%;top:16%;background:linear-gradient(90deg,#d34d86,#ff9ac2,#d34d86)}
.sf-card .sf-sticker-weekend > .sf-motion-overflow-layer > .sf-real-decoration{right:12%;top:12%;width:18%;height:17%;border:3px solid #e52b2e;border-radius:3px;color:#e52b2e;font-size:10cqi}
.sf-card .sf-sticker-weekend > .sf-motion-overflow-layer > .sf-real-ribbon{left:13%;top:18%;background:linear-gradient(90deg,#e12529,#fff,#e12529)}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-decoration{left:12%;top:11%;color:#e9c149}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{right:13%;top:17%;background:linear-gradient(90deg,#a47710,#f2d46a,#a47710)}
.sf-card .sf-sticker-grand-opening > .sf-motion-overflow-layer > .sf-real-decoration{left:12%;top:11%;color:#ed3342;text-shadow:14px 7px 0 #f2c94c,-8px 14px 0 #d91f2d}
.sf-card .sf-sticker-grand-opening > .sf-motion-overflow-layer > .sf-real-ribbon{right:13%;top:17%;background:linear-gradient(90deg,#b7111d,#ec4a52,#ad0d18)}
/* Never let generic ribbon motion touch the savings text. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo:not(.sf-sticker-halloween).sf-effect-ribbon .sf-saving{
  animation:none!important;
  transform:rotate(var(--sf-save-rotate,0deg))!important;
}


/* 2.0.129 — keep overflow-safe moving parts visually attached to the badge.
 * Motion nodes remain outside the mask (no cropping), but sit closer to artwork.
 * No badge/text/artwork sizing or saved geometry is changed. */
@keyframes sfLiveRealDecoration{0%,100%{transform:translateY(1px) rotate(-4deg) scale(.95)}50%{transform:translateY(-4px) rotate(5deg) scale(1.08)}}
@keyframes sfLiveRealRibbon{from{transform:skewX(-6deg) rotate(-3deg)}to{transform:skewX(7deg) rotate(4deg) translateX(1.5px)}}


/* 2.0.131 — remove legacy duplicate circular decoration frames only.
 * The real moving decoration remains in .sf-motion-overflow-layer.
 * No badge/text sizing, positioning, saved values, or animation travel changed. */
.sf-card .sf-image-bottom .sf-sticker-badge:is(.sf-sticker-summer,.sf-sticker-new-year,.sf-sticker-flash,.sf-sticker-anniversary,.sf-sticker-grand-opening) .sf-badge-animation-clip > .sf-theme-art{
  display:none!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;
  filter:none!important;
  animation:none!important;
}

/* 2.0.133 — Moving decorations are repositioned by JS, not clipped.
 * Keep their own animation transforms and geometry untouched. */
.sf-card .sf-sticker-badge .sf-real-decoration,
.sf-card .sf-sticker-badge .sf-real-ribbon,
.sf-card .sf-sticker-badge .sf-christmas-bow,
.sf-card .sf-sticker-badge .sf-christmas-ribbon,
.sf-card .sf-sticker-badge .sf-halloween-bat{
  will-change:transform,translate;
}


/* 2.0.134 — smart right-side placement for standalone animated ribbons.
 * Keeps v2.0.133 sizing, animation and inside-image-card correction intact. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo:not(.sf-sticker-christmas):not(.sf-sticker-halloween) > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:auto!important;
  right:6%!important;
}
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon{top:20%!important}
.sf-card .sf-sticker-valentine > .sf-motion-overflow-layer > .sf-real-ribbon{top:18%!important}
.sf-card .sf-sticker-summer > .sf-motion-overflow-layer > .sf-real-ribbon{top:25%!important}
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon{top:24%!important}
.sf-card .sf-sticker-black-friday > .sf-motion-overflow-layer > .sf-real-ribbon{top:22%!important}
.sf-card .sf-sticker-cyber-monday > .sf-motion-overflow-layer > .sf-real-ribbon{top:24%!important}
.sf-card .sf-sticker-mid-year > .sf-motion-overflow-layer > .sf-real-ribbon{top:22%!important}
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon{top:21%!important}
.sf-card .sf-sticker-flash > .sf-motion-overflow-layer > .sf-real-ribbon{top:24%!important}
.sf-card .sf-sticker-anniversary > .sf-motion-overflow-layer > .sf-real-ribbon{top:20%!important}
.sf-card .sf-sticker-weekend > .sf-motion-overflow-layer > .sf-real-ribbon{top:23%!important}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{top:20%!important}
.sf-card .sf-sticker-grand-opening > .sf-motion-overflow-layer > .sf-real-ribbon{top:21%!important}


/* 2.0.135 — complete smart right-side ribbon placement. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-christmas.sf-effect-ribbon .sf-christmas-ribbon{
  left:auto!important;
  right:14%!important;
  top:19%!important;
}

/* 2.0.136 — theme-balanced ribbon placement.
 * Pull each ribbon closer to its badge while retaining the right-side layout. */
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon{right:14%!important;top:19%!important}
.sf-card .sf-sticker-valentine > .sf-motion-overflow-layer > .sf-real-ribbon{right:13%!important;top:17%!important}
.sf-card .sf-sticker-summer > .sf-motion-overflow-layer > .sf-real-ribbon{right:15%!important;top:23%!important}
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon{right:15%!important;top:22%!important}
.sf-card .sf-sticker-black-friday > .sf-motion-overflow-layer > .sf-real-ribbon{right:13%!important;top:21%!important}
.sf-card .sf-sticker-cyber-monday > .sf-motion-overflow-layer > .sf-real-ribbon{right:15%!important;top:22%!important}
.sf-card .sf-sticker-mid-year > .sf-motion-overflow-layer > .sf-real-ribbon{right:14%!important;top:21%!important}
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon{right:15%!important;top:20%!important}
.sf-card .sf-sticker-flash > .sf-motion-overflow-layer > .sf-real-ribbon{right:14%!important;top:22%!important}
.sf-card .sf-sticker-anniversary > .sf-motion-overflow-layer > .sf-real-ribbon{right:13%!important;top:19%!important}
.sf-card .sf-sticker-weekend > .sf-motion-overflow-layer > .sf-real-ribbon{right:14%!important;top:21%!important}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{right:15%!important;top:19%!important}
.sf-card .sf-sticker-grand-opening > .sf-motion-overflow-layer > .sf-real-ribbon{right:14%!important;top:20%!important}

/* 2.0.137 — smart artwork-hugging ribbon placement for selected themes.
 * Keep ribbons on the right, but anchor them closer to the visible artwork.
 * No badge sizing, text, savings geometry, animation travel or card-boundary logic changes. */
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon{right:22%!important;top:18%!important}
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon{right:22%!important;top:17%!important}
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon{right:21%!important;top:19%!important}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{right:22%!important;top:16%!important}


/* 2.0.138 — final ribbon polish based on 2.0.137.
 * Christmas returns to its original centered ribbon placement.
 * Selected right-side ribbons partially tuck into the artwork so they read
 * as attached accents instead of floating bookmarks. No sizing changes. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-christmas.sf-effect-ribbon .sf-christmas-ribbon{
  left:47%!important;right:auto!important;top:13%!important;
}
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon{right:30%!important;top:20%!important}
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon{right:29%!important;top:18%!important}
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon{right:34%!important;top:22%!important}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{right:29%!important;top:18%!important}

/* 2.0.139 — Clearance ribbon only: artwork-hugging upper-right placement; all other themes unchanged. */

/* 2.0.140 — attached hinged ribbon motion for selected themes.
 * Back to School, New Year, Clearance and Member Exclusive ribbons now tuck
 * into the badge edge and swing from that attachment point rather than float.
 * Badge/text/savings geometry and image-card containment remain unchanged. */
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{
  transform-origin:8% 12%!important;
  animation:sfRibbonAttachedSwing 1.15s cubic-bezier(.45,.02,.55,.98) infinite alternate!important;
}
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon{right:38%!important;top:19%!important}
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon{right:40%!important;top:18%!important}
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon{right:39%!important;top:21%!important}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{right:40%!important;top:18%!important}
@keyframes sfRibbonAttachedSwing{
  0%{transform:translateX(-1px) rotate(-8deg) skewX(-3deg)}
  45%{transform:translateX(1px) rotate(2deg) skewX(1deg)}
  100%{transform:translateX(5px) rotate(10deg) skewX(4deg)}
}

/* 2.0.141 — FINAL tight attached placement for selected ribbons + New Year star.
 * Move only these standalone motion accents closer to the visible sticker.
 * Badge/text/savings sizing, sticker geometry and card-boundary logic are unchanged. */
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon{
  right:48%!important; top:20%!important;
  transform-origin:6% 14%!important;
}
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon{
  right:49%!important; top:18%!important;
  transform-origin:6% 14%!important;
}
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon{
  right:49%!important; top:21%!important;
  transform-origin:6% 14%!important;
}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{
  right:48%!important; top:18%!important;
  transform-origin:6% 14%!important;
}
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-decoration{
  right:25%!important; top:10%!important;
}


/* 2.0.142 — four-badge ribbon final placement only.
 * Back to School: ribbon sits directly under the ruler.
 * New Year + Clearance: ribbon hugs the right artwork edge with almost no gap.
 * Member Exclusive: ribbon sits lower and carries small stars at its top.
 * No other badge geometry or animation rules are changed. */
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:74%!important; right:auto!important; top:24%!important;
  transform-origin:8% 10%!important;
}
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:78%!important; right:auto!important; top:19%!important;
  transform-origin:8% 10%!important;
}
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:72%!important; right:auto!important; top:23%!important;
  transform-origin:8% 10%!important;
}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:77%!important; right:auto!important; top:28%!important;
  transform-origin:8% 10%!important;
}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon::before{
  content:"★  ★";
  position:absolute!important;
  left:50%!important; top:3%!important;
  transform:translateX(-50%)!important;
  width:100%!important;
  text-align:center!important;
  color:#fff0a2!important;
  font:900 clamp(6px,5cqi,13px)/1 Arial,sans-serif!important;
  text-shadow:0 1px 1px #7a5200,0 0 3px #ffd85a!important;
  pointer-events:none!important;
}


/* 2.0.143 — FINAL four-badge ribbon placement.
 * This block is intentionally last so older placement rules cannot override it.
 * Only Back to School, New Year, Clearance and Member Exclusive are changed. */
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:74%!important;right:auto!important;top:24%!important;transform-origin:8% 10%!important;
}
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:78%!important;right:auto!important;top:19%!important;transform-origin:8% 10%!important;
}
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:72%!important;right:auto!important;top:23%!important;transform-origin:8% 10%!important;
}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:77%!important;right:auto!important;top:29%!important;transform-origin:8% 10%!important;
}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon::before{
  content:"★ ★ ★"!important;position:absolute!important;left:50%!important;top:-13%!important;
  transform:translateX(-50%)!important;width:140%!important;text-align:center!important;
  color:#ffe98a!important;font:900 clamp(6px,5cqi,13px)/1 Arial,sans-serif!important;
  text-shadow:0 1px 1px #6b4800,0 0 4px #ffd85a!important;pointer-events:none!important;
}


/* 2.0.144 — reference-matched attached ribbons for the four selected badges.
 * Intentionally last: ribbons sit against/just into the visible artwork edge. */
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:68%!important;right:auto!important;top:22%!important;transform-origin:8% 10%!important;
}
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:67%!important;right:auto!important;top:18%!important;transform-origin:8% 10%!important;
}
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:66%!important;right:auto!important;top:23%!important;transform-origin:8% 10%!important;
}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:68%!important;right:auto!important;top:30%!important;transform-origin:8% 10%!important;
}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon::before{
  content:"★ ★ ★"!important;position:absolute!important;left:50%!important;top:-13%!important;
  transform:translateX(-50%)!important;width:140%!important;text-align:center!important;
  color:#ffe98a!important;font:900 clamp(6px,5cqi,13px)/1 Arial,sans-serif!important;
  text-shadow:0 1px 1px #6b4800,0 0 4px #ffd85a!important;pointer-events:none!important;
}


/* 2.0.146 — ribbon placement only for the four reference badges.
 * IMPORTANT: the 2.0.133 boundary watchdog previously applied an inline
 * `translate` correction after CSS layout, making new left/top coordinates
 * appear unchanged. pro.js now exempts ONLY these four real ribbons from
 * that correction. Sizes, artwork, effects and keyframe animations are untouched. */
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon{left:82%!important;right:auto!important;top:17%!important}
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon{left:82%!important;right:auto!important;top:15%!important}
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon{left:81%!important;right:auto!important;top:25%!important}
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{left:82%!important;right:auto!important;top:21%!important}

/* 2.0.147 — COPY SUMMER SALE RIBBON PLACEMENT ONLY.
 * Back to School, New Year, Clearance and Member Exclusive now use the exact
 * same effective ribbon coordinates as Summer Sale. No ribbon size, color,
 * artwork, savings text or animation rules are changed here. */
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:auto!important;
  right:15%!important;
  top:23%!important;
}


/* 2.0.148 — ribbon proximity only for the four requested badges.
 * Keep size, color, artwork and animation untouched. Horizontal gap is 0.1%.
 * Vertical position stays at the copied Summer Sale value. */
.sf-card .sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:auto!important;
  right:.1%!important;
  top:23%!important;
}


/* 2.0.149 — ACTUAL DOM ribbon target fix.
 * The visible ribbon is .sf-real-ribbon inside .sf-motion-overflow-layer;
 * .sf-saving is only the Save up to / amount text.
 * Copy the Summer Sale ribbon placement exactly for the four requested badges.
 * Do not change size, color, artwork, transform animation or badge geometry. */
.sf-card .sf-sticker-badge.sf-effect-ribbon.sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-badge.sf-effect-ribbon.sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-badge.sf-effect-ribbon.sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-badge.sf-effect-ribbon.sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:auto!important;
  right:15%!important;
  top:23%!important;
  translate:0 0!important;
}

/* 2.0.150 — New Year placement only.
 * Keep the star and ribbon physically attached to the visible right edge of the badge.
 * Ribbon is directly below the star. Size, colors and animations are untouched. */
.sf-card .sf-sticker-badge.sf-effect-decoration.sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-decoration{
  left:80.5%!important;
  right:auto!important;
  top:7.5%!important;
  translate:0 0!important;
}
.sf-card .sf-sticker-badge.sf-effect-ribbon.sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:81.5%!important;
  right:auto!important;
  top:21%!important;
  translate:0 0!important;
}

/* 2.0.151 — New Year: badge|ribbon contact placement only.
 * Ribbon is pulled directly beside the visible badge and slightly lower.
 * Star remains directly above the ribbon and beside the badge.
 * No size, color, animation, savings text, badge geometry or other theme is changed. */
.sf-card .sf-sticker-badge.sf-effect-decoration.sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-decoration{
  left:71%!important;
  right:auto!important;
  top:8%!important;
  translate:0 0!important;
}
.sf-card .sf-sticker-badge.sf-effect-ribbon.sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:72%!important;
  right:auto!important;
  top:24%!important;
  translate:0 0!important;
}

/* 2.0.152 — remove ribbon overlay only from the four requested promotional badges.
 * Badge artwork, decoration/star, savings text, size, position and all other animations remain unchanged. */
.sf-card .sf-sticker-badge.sf-sticker-back-to-school > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-badge.sf-sticker-new-year > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-badge.sf-sticker-clearance > .sf-motion-overflow-layer > .sf-real-ribbon,
.sf-card .sf-sticker-badge.sf-sticker-member > .sf-motion-overflow-layer > .sf-real-ribbon{
  display:none!important;
}


/* 2.0.153 — storefront hard removal of the separate ribbon overlay, all devices.
 * Intentionally broad (not dependent on .sf-effect-ribbon or DOM nesting) so old
 * saved campaign data and responsive DOM wrappers cannot make it visible again. */
.sf-card .sf-sticker-back-to-school .sf-real-ribbon,
.sf-card .sf-sticker-new-year .sf-real-ribbon,
.sf-card .sf-sticker-clearance .sf-real-ribbon,
.sf-card .sf-sticker-member .sf-real-ribbon,
.sf-sticker-back-to-school .sf-motion-overflow-layer .sf-real-ribbon,
.sf-sticker-new-year .sf-motion-overflow-layer .sf-real-ribbon,
.sf-sticker-clearance .sf-motion-overflow-layer .sf-real-ribbon,
.sf-sticker-member .sf-motion-overflow-layer .sf-real-ribbon{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  animation:none!important;
  pointer-events:none!important;
}

/* 2.0.155 — live responsive Save/price rotation parity.
 * The editor stores rotation in --sf-save-rotate. On the live storefront,
 * themes whose ribbon effect is disabled/removal-safe no longer receive the
 * older ribbon-specific transform rule, so their saved angle could render as
 * 0deg. Apply the saved rotation directly whenever the ribbon effect is not
 * active. Percentage geometry and cqi text sizing remain unchanged, so this
 * is responsive on desktop, tablet and mobile. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo:not(.sf-effect-ribbon) .sf-saving{
  transform:rotate(var(--sf-save-rotate,0deg))!important;
  transform-origin:center center!important;
}

/* 2.0.157 — Christmas Gift ribbon waving placement only.
 * Keep Bow bouncing unchanged. Move only the Gift ribbon waving overlay down
 * so its center lines up with the knot/tie of the red bow drawn into the
 * Christmas badge. Percent positioning keeps preview/live parity responsive. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-christmas.sf-effect-ribbon .sf-christmas-ribbon{
  left:47%!important;
  right:auto!important;
  top:17%!important;
}


/* 2.0.158 — restore Christmas Bow bouncing to its original placement only.
 * Keep the 2.0.157 Gift ribbon waving placement unchanged. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-christmas.sf-effect-decoration .sf-christmas-bow{
  left:38%!important;
  top:2%!important;
  width:25%!important;
  height:17%!important;
}


/* 2.0.159 — center Christmas Gift ribbon waving horizontally on the Bow bouncing overlay.
 * Bow: left 38% + width 25% => horizontal center 50.5%.
 * Gift ribbon: width 9%, so left 46% places its center at the same 50.5%.
 * Vertical position and all animation/size values remain unchanged. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-christmas.sf-effect-ribbon .sf-christmas-ribbon{
  left:46%!important;
  right:auto!important;
  top:17%!important;
}


/* 2.0.160 — Valentine Red ribbon swaying placement only.
 * Center the existing 12%-wide moving ribbon horizontally behind the small
 * upper-left bow in the Valentine artwork. Percentage coordinates keep the
 * relationship responsive at every badge/device size. No size/motion changes. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-valentine > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:21.5%!important;
  right:auto!important;
  top:6.5%!important;
}


/* 2.0.161 — Valentine live ribbon placement hard lock.
 * The user's inspected live DOM confirms the moving ribbon is the direct
 * .sf-real-ribbon child of .sf-motion-overflow-layer. Center its 12%-wide
 * body on the small upper-left bow in the Valentine artwork (center ~= 28%).
 * left 22% therefore aligns both centers. Move it upward so it sits behind
 * that bow instead of beside the badge. JavaScript also writes these same
 * coordinates inline with !important after live rendering/resizing so older
 * generic ribbon rules, optimizers, and responsive reflows cannot restore the
 * previous right-side position. Size and animation remain untouched. */
.sf-card .sf-image-bottom .sf-sticker-badge.sf-promo.sf-sticker-valentine.sf-effect-ribbon > .sf-motion-overflow-layer > .sf-real-ribbon{
  left:22%!important;
  right:auto!important;
  top:1.5%!important;
  translate:0 0!important;
}


/* 2.0.162 — remove only the requested ribbon/sign/tag/panel overlay effects on every device.
 * No badge sizing, other animations, Save up to, amount sizing/position/rotation, or artwork changes. */
.sf-card .sf-sticker-valentine .sf-real-ribbon,
.sf-card .sf-sticker-summer .sf-real-ribbon,
.sf-card .sf-sticker-black-friday .sf-real-ribbon,
.sf-card .sf-sticker-cyber-monday .sf-real-ribbon,
.sf-card .sf-sticker-mid-year .sf-real-ribbon,
.sf-card .sf-sticker-flash .sf-real-ribbon,
.sf-card .sf-sticker-anniversary .sf-real-ribbon,
.sf-card .sf-sticker-weekend .sf-real-ribbon,
.sf-card .sf-sticker-grand-opening .sf-real-ribbon,
.sf-sticker-valentine .sf-motion-overflow-layer .sf-real-ribbon,
.sf-sticker-summer .sf-motion-overflow-layer .sf-real-ribbon,
.sf-sticker-black-friday .sf-motion-overflow-layer .sf-real-ribbon,
.sf-sticker-cyber-monday .sf-motion-overflow-layer .sf-real-ribbon,
.sf-sticker-mid-year .sf-motion-overflow-layer .sf-real-ribbon,
.sf-sticker-flash .sf-motion-overflow-layer .sf-real-ribbon,
.sf-sticker-anniversary .sf-motion-overflow-layer .sf-real-ribbon,
.sf-sticker-weekend .sf-motion-overflow-layer .sf-real-ribbon,
.sf-sticker-grand-opening .sf-motion-overflow-layer .sf-real-ribbon{
  display:none!important;
  visibility:hidden!important;
  animation:none!important;
}

/* 2.0.163: Save-label and amount responsive sizing is handled from rendered badge width in pro.js. */

/* 2.0.164 — force the saved Save/price position to follow the rendered badge
 * on every device. Only left/bottom placement is resolved here; dimensions,
 * internal spacing, colors, transforms and animations remain untouched. */

/* 2.0.166 — keep the text block's distance from the artwork's upper price
 * border proportional on narrow/mobile badges. The label-to-price gap,
 * text sizes, line heights, colors, placement controls and motion stay intact. */
/* 2.0.169 — one proportional price-area coordinate system for every device.
 * Padding and the label/amount gap now scale from badge width just like the
 * saved text and position, with no mobile-only offset or overflow shrink. */
