/* Product labels belong to the text area, leaving photography unobstructed. */
.product-badges{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0;margin:0 0 8px;pointer-events:none}
.product-caption>.product-badges{min-height:24px}
.promo-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid #f3ddd8;border-radius:4px;background:#fff6f3;color:#a44838;font-size:11px;font-weight:650;line-height:14px;letter-spacing:0;white-space:nowrap}
.new-badge{color:#3f6849;background:#f1f6ee;border-color:#deead9}
.soldout-badge{color:#72766f;background:#f5f5f3;border-color:#e8e9e4}
.badge-dot{display:block;flex:0 0 4px;width:4px;height:4px;border-radius:50%;background:currentColor}
.catalog-item-info>.product-badges:empty,.detail-info>.product-badges:empty{display:none}
.detail-info>.product-badges{margin-bottom:12px}
.catalog-item-info>.product-badges{margin-bottom:6px}
/* Only the tiny indicator fades. Text stays stationary and sharp. */
@media(prefers-reduced-motion:no-preference){
 .badge-dot{animation:badge-indicator 3.4s ease-in-out infinite;animation-play-state:paused}
 .product-badges.motion-in-view .badge-dot{animation-play-state:running}
 .new-badge .badge-dot{animation-delay:.5s}
 @keyframes badge-indicator{0%,25%,75%,100%{opacity:1}50%{opacity:.35}}
}
.motion-tab-hidden .badge-dot{animation-play-state:paused!important}
.emphasis-paused .badge-dot{animation:none!important}
@media(prefers-reduced-motion:reduce){.badge-dot{animation:none!important}}
