.shimmer{background:#ececec;border-radius:8px;display:block;position:relative;overflow:hidden}.shimmer:after{content:"";background:linear-gradient(90deg,#fff0 0%,#ffffffa6 50%,#fff0 100%);animation:1.4s ease-in-out infinite shimmer-slide;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer-slide{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.shimmer:after{animation:none}}.shimmer-cards{grid-template-columns:repeat(var(--shimmer-cols,4),minmax(0,1fr));gap:16px;width:100%;display:grid}.shimmer-card .shimmer-card-img{width:100%;aspect-ratio:var(--shimmer-ratio,4/3)}.shimmer-card .shimmer-line{height:14px;margin-top:12px}.shimmer-card .shimmer-line.short{width:60%}.shimmer-list-card{gap:16px;width:100%;display:flex}.shimmer-list-card .shimmer-card-img{aspect-ratio:4/3;flex:0 0 38%}.shimmer-list-card .shimmer-list-text{flex:1}.shimmer-list-card .shimmer-line{height:14px;margin-top:12px}.shimmer-list-card .shimmer-line:first-child{margin-top:6px}.shimmer-list-card .shimmer-line.short{width:55%}.shimmer-product{gap:32px;width:100%;padding:24px 0;display:flex}.shimmer-product .shimmer-product-gallery{flex:55%;min-height:460px}.shimmer-product .shimmer-product-info{flex:45%}.shimmer-product .shimmer-line{height:16px;margin-top:14px}.shimmer-product .shimmer-line.title{width:70%;height:30px;margin-top:0}.shimmer-product .shimmer-line.short{width:45%}.shimmer-product .shimmer-btn{height:48px;margin-top:28px}.shimmer-overlay{border-radius:0;position:absolute;inset:0}@media (max-width:991.98px){.shimmer-cards{grid-template-columns:repeat(min(var(--shimmer-cols,4),3),minmax(0,1fr))}}@media (max-width:767.98px){.shimmer-cards{grid-template-columns:repeat(min(var(--shimmer-cols,4),2),minmax(0,1fr));gap:12px}.shimmer-product{flex-direction:column;gap:20px}.shimmer-product .shimmer-product-gallery{min-height:300px}.shimmer-list-card{flex-direction:column}.shimmer-list-card .shimmer-card-img{flex:none;width:100%}}@media (max-width:575.98px){.shimmer-cards.one-on-mobile{grid-template-columns:minmax(0,1fr)}}
