For any validation list I would recommend to format the list as a table, so it will automatically expand when items are added or shrink if items are deleted.
Tables to be separated by a blank column.
Top list, formatted as Table1 with header Product (in A1):
A1: Product
A2: Food
A3: Drink
Defined name Product for Table1[Product].
This is equal to A2:A3.
Food list, formatted as Table2 with header Food (in C1):
C1: Food
C2: Burger
C3: Pizza
C4: Pasta
C5: Product
As exlained in post #3, you need the top level in each list, otherwise you’ll never be able to navigate back to the top.
Defined names, each for Table2[Food], which is C2:C5:
Food, Burger, Pizza, Pasta
Drink list, formatted as Table3 with header Drink (in E1):
E1: Drink
E2: Soda
E3: Water
E4: Juice
E5: Product.
Defined names, each for Table3[Drink], which is E2:E5:
Drink, Soda, Water, Juice
On another worksheet, I have cell B1 with data validation against a list with source:
=INDIRECT($B$1)
E.g. when B1 = Product, then the dropdown list will contain the elements of defined name “Product”: Food and Drink.
When you select Food, then the next dropdown list, still for cell B1, will contain the elements of defined name “Food”: Burger, Pizza, Pasta and Product.
Etcetera.
If you add another drink, e.g. Coffee, then you must also define name Coffee for range Table3[Drink], which is now E2:E6.
The range for the other defined names for Table3[Drink] are automatically adjusted by Excel, because the range is a table.
When you delete an Item, you should also delete the associated defined name.
Hope this is all clear and helpful.