/* WooCommerce Zone stable product grid. Every rule is scoped to .wxz-product-grid. */
.wxz-product-grid{
  position:relative;
  width:100%;
  max-width:100%;
  min-width:0;
  isolation:isolate;
  --wxz-pg-columns:4;
  --wxz-pg-columns-tablet:2;
  --wxz-pg-columns-mobile:1;
  --wxz-pg-gap:24px;
  --wxz-pg-accent:var(--wxz-theme-primary,#833fd5);
  --wxz-pg-border:var(--wxz-theme-border,#e5e7eb);
  --wxz-pg-surface:var(--wxz-theme-surface,#fff);
  --wxz-pg-text:var(--wxz-theme-text,#111827)
}
.wxz-product-grid,.wxz-product-grid *,.wxz-product-grid *::before,.wxz-product-grid *::after{box-sizing:border-box}
.wxz-product-grid .wxz-pg-stage{position:relative;width:100%;min-width:0}
.wxz-product-grid .wxz-pg-items{
  display:grid;
  grid-template-columns:repeat(var(--wxz-pg-columns),minmax(0,1fr));
  gap:var(--wxz-pg-gap);
  width:100%;
  min-width:0;
  align-items:stretch;
  transition:min-height .22s ease
}
.wxz-product-grid .wxz-pg-item{min-width:0;width:100%;margin:0!important}
.wxz-product-grid .wxz-pg-item>.elementor{width:100%;height:100%}
.wxz-product-grid .wxz-pg-item .elementor-element{max-width:100%}
.wxz-product-grid .wxz-pg-item>.wxz-pf-ultra-card{height:100%}
.wxz-product-grid .wxz-pg-empty{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:220px;
  padding:28px;
  border:1px dashed var(--wxz-pg-border);
  border-radius:18px;
  background:var(--wxz-pg-surface);
  color:var(--wxz-pg-text);
  text-align:center;
  font-weight:800
}
.wxz-product-grid .wxz-pg-fallback-card{display:flex;flex-direction:column;gap:12px;color:inherit;text-decoration:none}
.wxz-product-grid .wxz-pg-fallback-card img{display:block;width:100%;height:auto;border-radius:14px}
.wxz-product-grid .wxz-pg-pagination-host{display:flex;justify-content:center;width:100%;margin-top:28px;min-height:0}
.wxz-product-grid .wxz-pg-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}
.wxz-product-grid .wxz-pg-page,
.wxz-product-grid .wxz-pg-load-more{
  appearance:none!important;
  -webkit-appearance:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  min-width:42px!important;
  min-height:42px!important;
  margin:0!important;
  padding:8px 13px!important;
  border:1px solid var(--wxz-pg-border)!important;
  border-radius:12px!important;
  background:var(--wxz-pg-surface)!important;
  color:var(--wxz-pg-text)!important;
  box-shadow:none!important;
  font:inherit!important;
  font-weight:850!important;
  line-height:1!important;
  text-decoration:none!important;
  cursor:pointer!important;
  transition:border-color .18s ease,background-color .18s ease,color .18s ease,transform .18s ease!important
}
.wxz-product-grid .wxz-pg-page:hover,
.wxz-product-grid .wxz-pg-page:focus-visible,
.wxz-product-grid .wxz-pg-load-more:hover,
.wxz-product-grid .wxz-pg-load-more:focus-visible{border-color:var(--wxz-pg-accent)!important;color:var(--wxz-pg-accent)!important;transform:translateY(-1px)!important;outline:0!important}
.wxz-product-grid .wxz-pg-page.is-current{background:var(--wxz-pg-accent)!important;border-color:var(--wxz-pg-accent)!important;color:#fff!important;pointer-events:none!important}
.wxz-product-grid .wxz-pg-page em{font-style:normal!important}
.wxz-product-grid .wxz-pg-page span{font-size:20px;line-height:.8}
.wxz-product-grid .wxz-pg-dots{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:42px;color:#71717a;font-weight:900}
.wxz-product-grid .wxz-pg-load-more-wrap{display:flex;justify-content:center;width:100%}
.wxz-product-grid .wxz-pg-load-more{min-width:190px!important;background:var(--wxz-pg-accent)!important;border-color:var(--wxz-pg-accent)!important;color:#fff!important}
.wxz-product-grid .wxz-pg-load-more[disabled],.wxz-product-grid .wxz-pg-page[disabled]{opacity:.55!important;cursor:wait!important;transform:none!important}
.wxz-product-grid .wxz-pg-end{display:flex;justify-content:center;width:100%;padding:10px;color:#71717a;font-size:13px;font-weight:750}
.wxz-product-grid .wxz-pg-infinite-anchor{width:100%;height:2px;pointer-events:none}
.wxz-product-grid .wxz-pg-skeletons{
  position:absolute;
  inset:0;
  z-index:4;
  display:none;
  grid-template-columns:repeat(var(--wxz-pg-columns),minmax(0,1fr));
  align-content:start;
  gap:var(--wxz-pg-gap);
  width:100%;
  pointer-events:none
}
.wxz-product-grid.is-loading:not(.is-appending) .wxz-pg-items{visibility:hidden;opacity:0}
.wxz-product-grid.is-loading:not(.is-appending) .wxz-pg-skeletons{display:grid}
.wxz-product-grid .wxz-pg-skeleton-card{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
  min-height:260px;
  padding:12px;
  border:1px solid color-mix(in srgb,var(--wxz-pg-border) 78%,transparent);
  border-radius:16px;
  background:var(--wxz-pg-surface);
  overflow:hidden
}
.wxz-product-grid .wxz-pg-skeleton-media,
.wxz-product-grid .wxz-pg-skeleton-line{
  position:relative;
  display:block;
  overflow:hidden;
  border-radius:10px;
  background:color-mix(in srgb,var(--wxz-pg-border) 58%,var(--wxz-pg-surface))
}
.wxz-product-grid .wxz-pg-skeleton-media{width:100%;aspect-ratio:1/1}
.wxz-product-grid .wxz-pg-skeleton-line{height:12px}
.wxz-product-grid .wxz-pg-skeleton-line--title{width:88%;height:14px;margin-top:2px}
.wxz-product-grid .wxz-pg-skeleton-line--meta{width:58%}
.wxz-product-grid .wxz-pg-skeleton-line--price{width:42%;height:13px;margin-top:auto}
.wxz-product-grid .wxz-pg-skeleton-media::after,
.wxz-product-grid .wxz-pg-skeleton-line::after{
  content:"";
  position:absolute;
  inset:0;
  transform:translateX(115%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent);
  animation:wxz-pg-skeleton-shimmer 1.35s ease-in-out infinite
}
.wxz-product-grid .wxz-pg-live{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.wxz-product-grid.is-loading .wxz-pg-pagination-host{pointer-events:none}
@keyframes wxz-pg-skeleton-shimmer{to{transform:translateX(-115%)}}
@media(max-width:1024px){
  .wxz-product-grid .wxz-pg-items,
  .wxz-product-grid .wxz-pg-skeletons{grid-template-columns:repeat(var(--wxz-pg-columns-tablet),minmax(0,1fr))}
}
@media(max-width:767px){
  .wxz-product-grid .wxz-pg-items,
  .wxz-product-grid .wxz-pg-skeletons{grid-template-columns:repeat(var(--wxz-pg-columns-mobile),minmax(0,1fr));gap:min(var(--wxz-pg-gap),16px)}
  .wxz-product-grid .wxz-pg-skeleton-card{min-height:220px}
  .wxz-product-grid .wxz-pg-pagination-host{margin-top:22px}
  .wxz-product-grid .wxz-pg-page{min-width:38px!important;min-height:38px!important;padding:7px 10px!important}
  .wxz-product-grid .wxz-pg-page--prev em,.wxz-product-grid .wxz-pg-page--next em{display:none}
}
@media(prefers-reduced-motion:reduce){.wxz-product-grid .wxz-pg-items,.wxz-product-grid .wxz-pg-page,.wxz-product-grid .wxz-pg-load-more{transition:none!important}.wxz-product-grid .wxz-pg-skeleton-media::after,.wxz-product-grid .wxz-pg-skeleton-line::after{animation:none!important;opacity:.35}}

/* Initial first-paint state: server-rendered skeleton prevents unstyled one-column flash. */
.wxz-product-grid.wxz-pg-initializing .wxz-pg-items{display:none!important}
.wxz-product-grid.wxz-pg-initializing .wxz-pg-skeletons{position:relative;inset:auto;display:grid;z-index:1}
.wxz-product-grid.wxz-pg-initializing .wxz-pg-pagination-host{visibility:hidden;min-height:42px}
.wxz-product-grid.wxz-pg-initial-ready .wxz-pg-items{animation:wxz-pg-initial-reveal .22s ease both}
@keyframes wxz-pg-initial-reveal{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:1024px){.wxz-product-grid.wxz-pg-initializing .wxz-pg-skeleton-card:nth-child(n+5){display:none}}
@media(max-width:767px){.wxz-product-grid.wxz-pg-initializing .wxz-pg-skeleton-card:nth-child(n+3){display:none}}
@media(prefers-reduced-motion:reduce){.wxz-product-grid.wxz-pg-initial-ready .wxz-pg-items{animation:none}}

/* Desktop filter button sidebar: keep the grid inside the available width and
   reduce the active breakpoint column count by exactly one. Values are set by JS. */
@media(min-width:768px){
  .wxz-product-grid.wxz-pf-products-reduced.wxz-pg-sidebar-reduced{
    width:calc(100% - var(--wxz-pg-sidebar-offset,324px))!important;
    max-width:calc(100% - var(--wxz-pg-sidebar-offset,324px))!important;
    min-width:0!important;
    margin-inline-start:var(--wxz-pg-sidebar-offset,324px)!important;
    transition:width .22s ease,max-width .22s ease,margin .22s ease!important;
  }
  .wxz-product-grid.wxz-pg-sidebar-reduced .wxz-pg-items,
  .wxz-product-grid.wxz-pg-sidebar-reduced .wxz-pg-skeletons{
    grid-template-columns:repeat(var(--wxz-pg-sidebar-columns,1),minmax(0,1fr))!important;
  }
}

