The general idea with this would be that you need to have a page that will work like the current results page but will be filtered based on the high level criteria like the category.
This is the page that will have the options to further filter based on your criteria like price and category specific options. These search filters should link to another results page that will have a recordset to select the items from that category. You will need to apply The DataAssist Search server behavior to this recordset to filter it by your new criteria.
Once you have done all of that you will then need to update the recordset to closely match the one on the default product results page to retain the consistency of the results and ensure that you only get items that are available for sale.
This is a high level overview of how you could go about something like this. This will not be an easy task though as it will require you to make advanced edits to the new pages you create to get the query to work correctly. The query that is in place on the product results page is already very custom and can be difficult to understand and manipulate.