
Hi @Andre Caruana
You could use the following steps to meet your requirement:
1.Create new groups as your need, for example, I create a group for department A.
Go to site settings > people and groups > create a new group and invite the A members to this group
2.Create the folders and subfolders in a documnet library, go to one of your subfolders (A), click "manage access" > Advanced > stop inheriting permissions > remove other groups except "A", repeat the similar operations for other groups "B", "C" and so on.
As a result, when the account in group "B" sign in this document library, he will only see the subfolder B instead of other subfolders in folder "product 1":
As to the requiremet c, currently there is no ootb method to achieve it.
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.