light control unit code problems

by all means say if you see something you dont like

OK. Since you invited...

Some of your variable names could stand improvement. In 3 months, will you remember what buttonC is?
Names like pinForLightC, stateOfC, pinForSwitchC, etc. are meaningful. Its easy to see which ones are meant to be constant and which ones are meant to contain changing values. Which category is buttonC in?

There is a convention that #define names be all upper case, to distinguish them from variables, whether const or not.

Making the delay time a variable means that the same value can be used in may places, but only needs to be changed in one place, if the need to change it occurs. In your code, if the need to make the on time 20 minutes, instead of 15, arose, you would have to change the value in 8 places.

Finally, the use of arrays and loops and functions would cut your sketch size considerably. You are doing the same thing 4 times, except with different pins. Create a function that tests the switch state and performs, or not, the delay(s). Call that function 4 times, with different switch and LED pin numbers. Then, call it in a loop, with the pin numbers in arrays. Watch how much smaller, and easier to understand, your code gets.

Congratulations on getting a functioning program created that meets your needs.