/* Scoped WooCommerce catalog presentation. */
.nx-catalog-shell { display:grid; grid-template-columns:minmax(250px,280px) minmax(0,1fr); gap:2rem; align-items:start; margin-bottom:4rem; }
.nx-catalog-filters { grid-column:1; min-width:0; }
.nx-catalog-filters__panel { padding:1.4rem; border:1px solid #e5e5e5; border-radius:10px; background:#fff; }
.nx-catalog-filters__header { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin-bottom:1.25rem; }
.nx-catalog-filters__header h2 { margin:0; color:#151515; font-size:1.2rem; line-height:1.25; }
.nx-catalog-filters__close,.nx-catalog-filters__overlay { display:none; }
.nx-catalog-filter { margin:0 0 1.35rem; padding:0 0 1.15rem; border:0; border-bottom:1px solid #eee; }
.nx-catalog-filter legend { margin-bottom:.75rem; color:#151515; font-size:.92rem; font-weight:800; }
.nx-catalog-filter__terms,.nx-catalog-filter__terms ul { margin:0; padding:0; list-style:none; }
.nx-catalog-filter__term { margin:0; color:#4d4d4d; font-size:.88rem; line-height:1.4; }
.nx-catalog-filter__term label,.nx-catalog-filter__stock { display:flex; min-height:36px; align-items:center; gap:.45rem; cursor:pointer; }
.nx-catalog-filter__term--depth-1,.nx-catalog-filter__term--depth-2 { padding-left:1rem; }
.nx-catalog-filter__term input,.nx-catalog-filter__stock input { accent-color:#f4c400; }
.nx-catalog-filter__price { display:flex; align-items:center; gap:.45rem; }
.nx-catalog-filter__price label { flex:1 1 0; }
.nx-catalog-filter__price input { width:100%; min-width:0; padding:.55rem .6rem; border:1px solid #d8d8d8; border-radius:6px; background:#fff; box-sizing:border-box; }
.nx-catalog-filters__actions { display:grid; gap:.7rem; }
.nx-catalog-filters__submit { width:100%; min-height:42px; background:#f4c400; color:#151515; }
.nx-catalog-filters__submit:hover,.nx-catalog-filters__submit:focus-visible { background:#151515; color:#fff; }
.nx-catalog-filters__clear { color:#666; font-size:.82rem; text-align:center; text-decoration:underline; text-underline-offset:2px; }
.nx-catalog-shell > #primary { grid-column:2; min-width:0; width:auto; float:none; margin:0; }
.nx-catalog-toolbar { display:none; }
.nx-catalog-filter-toggle,.nx-catalog-sort-toggle { min-height:44px; align-items:center; justify-content:center; padding:.65rem 1rem; border:1px solid #151515; border-radius:6px; background:#151515; color:#fff; font-weight:700; }
.nx-catalog-active-filters { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:0 0 1rem; padding:.75rem 0; border-bottom:1px solid #eee; }
.nx-catalog-active-filters__chips { display:flex; flex-wrap:wrap; gap:.45rem; }
.nx-catalog-active-filters__chip { padding:.35rem .6rem; border-radius:999px; background:#f4c400; color:#151515; font-size:.78rem; font-weight:700; }
.nx-catalog-active-filters > a { color:#666; font-size:.82rem; text-decoration:underline; white-space:nowrap; }
.nx-catalog-shell .storefront-sorting { display:flex; align-items:center; justify-content:flex-end; gap:1rem; margin:0 0 1.25rem; padding:.75rem 0; border-bottom:1px solid #eee; }
.nx-catalog-shell .storefront-sorting .woocommerce-result-count { margin:0 auto 0 0; color:#666; font-size:.88rem; }
.nx-catalog-shell .storefront-sorting .woocommerce-ordering { margin:0; }
.nx-catalog-shell .storefront-sorting .orderby { min-height:40px; padding:.45rem 2rem .45rem .65rem; border:1px solid #d8d8d8; border-radius:6px; background:#fff; }
.nx-catalog-shell ul.products { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; margin:0; }
.nx-catalog-shell ul.products::before,.nx-catalog-shell ul.products::after { display:none; }
.nx-catalog-shell ul.products li.product { display:flex; min-width:0; width:auto; float:none; flex-direction:column; margin:0; padding:0; border:1px solid #e5e5e5; border-radius:10px; background:#fff; overflow:hidden; transition:border-color 180ms ease,box-shadow 180ms ease,transform 180ms ease; }
.nx-catalog-shell ul.products li.product:hover { border-color:#f4c400; box-shadow:0 10px 24px rgba(21,21,21,.1); transform:translateY(-2px); }
.nx-catalog-shell ul.products li.product a.woocommerce-LoopProduct-link { display:block; min-width:0; padding:.75rem .75rem 0; }
.nx-catalog-shell ul.products li.product a.woocommerce-LoopProduct-link img { width:100%; height:190px; margin:0 0 .85rem; object-fit:contain; background:#fafafa; }
.nx-catalog-shell ul.products li.product .woocommerce-loop-product__title { min-height:2.8em; margin:0 .9rem .5rem; color:#151515; font-size:.98rem; font-weight:700; line-height:1.4; }
.nx-catalog-shell ul.products li.product .star-rating,.nx-catalog-shell ul.products li.product .price { margin-right:.9rem; margin-left:.9rem; }
.nx-catalog-shell ul.products li.product .price { min-height:1.6em; color:#151515; font-weight:700; }
.nx-catalog-shell ul.products li.product .button { align-self:stretch; margin:auto .9rem .9rem; background:#151515; color:#fff; text-align:center; }
.nx-catalog-shell ul.products li.product .button:hover,.nx-catalog-shell ul.products li.product .button:focus-visible { background:#f4c400; color:#151515; }
.nx-catalog-shell .woocommerce-pagination { grid-column:1 / -1; margin-top:1.5rem; }
.nx-catalog-empty { margin:1rem 0; }
.nx-catalog-empty .button { margin-left:.75rem; }
@media (max-width:1024px) { .nx-catalog-shell { grid-template-columns:minmax(220px,250px) minmax(0,1fr); gap:1.5rem; } .nx-catalog-shell ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:767px) { body.nx-catalog-filter-open { overflow:hidden; } .nx-catalog-shell { display:block; margin-bottom:3rem; } .nx-catalog-filters { position:fixed; inset:0; z-index:1001; visibility:hidden; pointer-events:none; } .nx-catalog-filters.is-open { visibility:visible; pointer-events:auto; } .nx-catalog-filters__overlay { position:absolute; inset:0; display:block; width:100%; height:100%; border:0; background:rgba(0,0,0,.52); } .nx-catalog-filters__panel { position:absolute; top:0; bottom:0; left:0; z-index:1; width:min(88vw,360px); max-width:100%; padding:1.25rem; border:0; border-radius:0; overflow-y:auto; background:#fff; transform:translateX(-102%); transition:transform 220ms ease; } .nx-catalog-filters.is-open .nx-catalog-filters__panel { transform:translateX(0); } .nx-catalog-filters__header { position:sticky; top:-1.25rem; z-index:2; margin:-1.25rem -1.25rem 1.25rem; padding:1.25rem; background:#fff; border-bottom:1px solid #eee; } .nx-catalog-filters__close { display:inline-flex; width:40px; height:40px; align-items:center; justify-content:center; padding:0; border:1px solid #d8d8d8; border-radius:6px; background:#fff; color:#151515; font-size:1.35rem; } .nx-catalog-toolbar { display:flex; gap:.75rem; margin:0 0 1rem; } .nx-catalog-toolbar .nx-catalog-filter-toggle,.nx-catalog-toolbar .nx-catalog-sort-toggle { display:inline-flex; flex:1 1 0; } .nx-catalog-active-filters { align-items:flex-start; flex-direction:column; gap:.65rem; } .nx-catalog-shell .storefront-sorting { align-items:stretch; flex-direction:column; gap:.65rem; } .nx-catalog-shell .storefront-sorting .woocommerce-result-count { margin:0; } .nx-catalog-shell .storefront-sorting .woocommerce-ordering,.nx-catalog-shell .storefront-sorting .orderby { width:100%; } .nx-catalog-shell ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; } .nx-catalog-shell ul.products li.product a.woocommerce-LoopProduct-link { padding:.55rem .55rem 0; } .nx-catalog-shell ul.products li.product a.woocommerce-LoopProduct-link img { height:145px; margin-bottom:.65rem; } .nx-catalog-shell ul.products li.product .woocommerce-loop-product__title { min-height:3.2em; margin-right:.65rem; margin-left:.65rem; font-size:.87rem; } .nx-catalog-shell ul.products li.product .star-rating,.nx-catalog-shell ul.products li.product .price { margin-right:.65rem; margin-left:.65rem; font-size:.88rem; } .nx-catalog-shell ul.products li.product .button { margin-right:.65rem; margin-left:.65rem; padding:.65rem .5rem; font-size:.78rem; } .nx-catalog-empty .button { display:block; margin:.75rem 0 0; text-align:center; } }

/* Keep native Woo/Storefront loop semantics, but let the catalog grid own sizing. */
.nx-catalog-shell > #primary,
.nx-catalog-shell > #primary .content-area { min-width:0; max-width:none; width:auto; float:none; margin-right:0; margin-left:0; }
.nx-catalog-shell ul.products { display:grid !important; width:100%; max-width:none; grid-auto-rows:1fr; }
.nx-catalog-shell ul.products li.product { display:flex !important; max-width:none; min-width:0; width:auto !important; float:none !important; margin:0 !important; box-sizing:border-box; }
.nx-catalog-shell ul.products li.product > * { min-width:0; max-width:100%; }
.nx-catalog-shell ul.products li.product a.woocommerce-LoopProduct-link { width:100%; }
.nx-catalog-shell ul.products li.product .woocommerce-loop-product__title { word-break:normal; overflow-wrap:normal; hyphens:auto; white-space:normal; }
.nx-catalog-shell ul.products li.product a.woocommerce-LoopProduct-link img { aspect-ratio:1 / 1; height:auto; min-height:220px; }

@media (max-width:767px) {
    .nx-catalog-shell ul.products li.product a.woocommerce-LoopProduct-link img { min-height:145px; }
}

@media (max-width:360px) {
    .nx-catalog-shell ul.products { grid-template-columns:minmax(0,1fr); }
    .nx-catalog-shell ul.products li.product a.woocommerce-LoopProduct-link img { min-height:200px; }
}
