/* EasyShop v1.0.18 — Storefront performance and UX polish */
:root{--es-ux-radius:18px;--es-ux-ease:cubic-bezier(.22,1,.36,1)}
.es-listing-region{transition:opacity .2s ease,transform .2s ease}
.es-listing-region.is-leaving{opacity:.36;transform:translateY(5px);pointer-events:none}
.es-listing-region.is-entering{animation:esListingEnter .34s var(--es-ux-ease) both}
@keyframes esListingEnter{from{opacity:.35;transform:translateY(7px)}to{opacity:1;transform:none}}

/* Shimmer remains behind the image until it has loaded. */
.bbk-card-media,.product-card-media,.bbk-wishlist-image,.bbk-detail-cover-wrap,.product-main-image,.bbk-quick-view-image-wrap,.product-quick-view-image-wrap{position:relative;overflow:hidden;background:#eef2f7}
.bbk-card-media::before,.product-card-media::before,.bbk-wishlist-image::before,.bbk-detail-cover-wrap::before,.product-main-image::before,.bbk-quick-view-image-wrap::before,.product-quick-view-image-wrap::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(100deg,#eef2f7 18%,#f8fafc 38%,#eef2f7 58%);background-size:220% 100%;animation:esImageShimmer 1.35s linear infinite;transition:opacity .25s ease}
.es-image-ready::before{opacity:0;animation:none;pointer-events:none}
/* Images remain visible by default so delayed or blocked JavaScript can never hide real covers. */
.bbk-card-media img,.product-card-media img,.bbk-wishlist-image img,.bbk-detail-cover-wrap img,.product-main-image img,.bbk-quick-view-image-wrap img,.product-quick-view-image-wrap img{position:relative;z-index:1;opacity:1;transition:opacity .3s ease,transform .32s var(--es-ux-ease)}
.es-image-ready img{opacity:1}
@keyframes esImageShimmer{to{background-position:-220% 0}}

/* Small commercial-grade card refinement without changing layout. */
.bbk-book-card,.product-card{transition:transform .22s var(--es-ux-ease),box-shadow .22s ease,border-color .22s ease}
.bbk-book-card:hover,.product-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(15,23,42,.11);border-color:#d8dee8}
.bbk-book-card:hover .bbk-book-cover,.product-card:hover .product-card-image img{transform:scale(1.025)}
.bbk-card-actions button,.bbk-card-actions a,.product-card-cart-btn,.bbk-quick-view-trigger,.product-quick-view-trigger{transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}
.bbk-card-actions button:active,.bbk-card-actions a:active,.product-card-cart-btn:active,.bbk-quick-view-trigger:active,.product-quick-view-trigger:active{transform:scale(.96)}

/* Friendly empty result state. */
.es-empty-state{grid-column:1/-1;width:min(560px,100%);margin:16px auto;padding:38px 24px;text-align:center;border:1px dashed #cbd5e1;border-radius:22px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 10px 30px rgba(15,23,42,.04)}
.es-empty-state__icon{display:grid;place-items:center;width:66px;height:66px;margin:0 auto 14px;border-radius:20px;background:#eef2ff;font-size:31px}
.es-empty-state strong{display:block;color:#0f172a;font-size:20px}
.es-empty-state p{margin:7px auto 18px;color:#64748b;line-height:1.55}
.es-empty-state__actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}
.es-empty-state__actions a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 15px;border:1px solid #dbe2ea;border-radius:11px;background:#fff;color:#334155;font-weight:800;text-decoration:none}
.es-empty-state__actions a:first-child{border-color:#111827;background:#111827;color:#fff}

/* Pagination and filter controls feel responsive while retaining normal links. */
.bbk-pagination a,.products-pagination a,.bbk-compact-sort a,.products-compact-sort a{transition:transform .16s ease,background .16s ease,color .16s ease,border-color .16s ease}
.bbk-pagination a:active,.products-pagination a:active,.bbk-compact-sort a:active,.products-compact-sort a:active{transform:scale(.96)}
.es-navigation-busy{cursor:progress}
.es-navigation-busy a,.es-navigation-busy button,.es-navigation-busy select{pointer-events:none}

@media(max-width:560px){
 .bbk-book-card:hover,.product-card:hover{transform:none}
 .es-empty-state{padding:30px 17px;border-radius:18px}
 .es-empty-state strong{font-size:18px}
}
@media(prefers-reduced-motion:reduce){
 .es-listing-region,.bbk-book-card,.product-card,.bbk-card-media img,.product-card-media img{transition:none!important;animation:none!important}
 .bbk-card-media::before,.product-card-media::before,.bbk-wishlist-image::before,.bbk-detail-cover-wrap::before,.product-main-image::before,.bbk-quick-view-image-wrap::before,.product-quick-view-image-wrap::before{animation:none}
}
