/* Keep the live sidebar usable while stale product actions are temporarily inert. */
#shop-filter-results { width: 100%; min-width: 0; }
#shop-filter-results[aria-busy="true"] { opacity: .55; cursor: progress; }
#shop-filter-results:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
/* Placeholder cards stand in for the pending result set, so the dimming of
   stale results is unnecessary while they are on screen. */
#shop-filter-results[aria-busy="true"]:has(.shop-skeleton-card) { opacity: 1; cursor: default; }
.shop-skeleton-card { border-radius: var(--radius-xl, 16px); overflow: hidden; background: var(--clr-secondary-light, #f4f2ec); }
.shop-skeleton-card__media { aspect-ratio: 1 / 1; }
.shop-skeleton-card__line { height: .75rem; margin: .75rem .9rem 0; border-radius: 999px; }
.shop-skeleton-card__line--short { width: 45%; margin-bottom: .9rem; }
.shop-skeleton-card__media,
.shop-skeleton-card__line {
  background: linear-gradient(90deg, rgba(0,0,0,.06) 25%, rgba(0,0,0,.11) 37%, rgba(0,0,0,.06) 63%);
  background-size: 400% 100%;
  animation: shop-skeleton-sheen 1.4s ease-in-out infinite;
}
@keyframes shop-skeleton-sheen { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
@media (prefers-reduced-motion: reduce) {
  .shop-skeleton-card__media,
  .shop-skeleton-card__line { animation: none; }
}
/* Announce filter progress to screen readers without displaying a status row. */
.shop-filter-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
