/* Care Ur Baby Phase 2: non-blocking, CSS-only skeletons for real AJAX loads. */
.cub-skeleton-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;width:100%}
.cub-skeleton-card{padding:10px;border:1px solid #edf0f2;border-radius:12px;background:#fff;min-width:0}
.cub-skeleton{display:block;border-radius:7px;background:linear-gradient(100deg,#edf0f3 20%,#f8f9fa 38%,#edf0f3 58%);background-size:200% 100%;animation:cub-skeleton-sweep 1.65s ease-in-out infinite}
.cub-skeleton-image{width:100%;aspect-ratio:1 / 1;margin-bottom:15px}
.cub-skeleton-line{height:12px;width:96%;margin-bottom:9px}
.cub-skeleton-line-short{width:62%}
.cub-skeleton-price{height:17px;width:40%;margin:15px 0 8px}
@keyframes cub-skeleton-sweep{0%{background-position:170% 0}100%{background-position:-90% 0}}
@media(max-width:991px){.cub-skeleton-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}
@media(max-width:600px){.cub-skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.cub-skeleton-card{padding:7px}}
@media(prefers-reduced-motion:reduce){.cub-skeleton{animation:none!important}}
/* Theme 2: overlay the existing grid only while a filter request is pending. */
#phase2ProductArea{position:relative}
#phase2LoadingState.cub-loading-state{display:none;position:absolute;top:0;left:0;right:0;z-index:5;background:#fff;padding:0 0 18px;min-height:340px}
#phase2ProductArea.phase2-is-loading #phase2LoadingState.cub-loading-state{display:block}
#phase2ProductArea.phase2-is-loading #productGridContainer{visibility:hidden}
/* Default theme: show skeleton while the replacement AJAX response is pending. */
#cubDefaultShopLoading[hidden]{display:none!important}
#cubDefaultShopLoading{width:100%;padding:0 0 18px}
