How to display products from various menu’s in a smart way?

for an application in the restaurant business I am thinking of a smart way to display ALL menu items, both foods and drinks, from various menus. Now a restaurant may have several menu cards, so a categorization can be like this:

Cards: Lunch, Dinner, Wine, Desserts

The cards can then be split into headers. So Lunch may have: Toasts, sandwiches, salads, coffee/tea, juices etc.

Dinner may have: Starters, soups, salads, mains, beers, etc. etc. etc.

Headers can be food (e.g. starters) or drinks (e.g. beers) and contain the various products belonging to that header. Obviously, if you would merge all the headers from various cards OR both foods and drinks, you would have a lot of headers to select.

Another tricky thing is that some cards contain both food headers and drinks headers (such as lunch and dinner) whereas the wine card obviously only contains drinks headers.

I am thinking of the following design, with the rules below. I would like to have some input if this is the best way to make the user choose between: -Various menu cards (lunch, dinner, wine, desserts) -Different sections of the cards (headers) -Ultimately choose a product

Example

To make the user switch between various cards I was thinking of an exposed drop down menu.

Then the user can choose to display the "food" or "drinks" headers by selecting either one (standard is foods).

If a selected card only contains food OR drinks headers (such as the wine card) the icons will disappear altogether.

The search icon overrules cards, headers etc. and searches through the whole database.

Thanks for the input!