{{-- Reloadable body of a product listing — result count + sort, product grid + pagination, and the filter sidebar. Shared by the category page (scoped to a collection) and the all-products page. Rendered on full load and on every turbo-frame navigation, straight from the query string. Vars (all from App\Catalog\ProductListingPage::build): $products (LengthAwarePaginator), $sortOptions (array), $listing (App\Catalog\ProductListing), $listingAction (string, GET form target), $clearPriceUrl (?string), $priceFloor / $priceCeil (?int) --}}
{{-- Products --}}
@if($products->isEmpty())

{{ __('storefront.shop.no_products') }}

@else
@endif
{{-- Sidebar — sort, price and in-stock are wired to the back-end; product search lives in the nav overlay, not here. --}}