Without seeing the rest of your code I’m guessing, but I’d say the answer is probably no.
Do you have any instances of #b1, #q1, etc. that are not children of #detailWrapper? If you don’t, then you might be safe to remove it, but each comma-separated selector is independent of the others, so removing #detailWrapper from #detailWrapper #b1 p, for example, leaves you with #b1 p, which does not necessarily target the same elements.
If you are talking about the comma separated list of selector rules then you need to know that each rule is a completely separate rule in its own right. It just shares styles that you list.
The comma indicates that one selector has finished and a new one starts just as if you had two different style blocks.
e.g.
.test1 a,
.test2 a{
color:red;
}
is equivalent to:
.test1 a{color:red}
.test2 a{color:red}
Just because they are listed with a comma does not mean that they share anything in common apart from the styles in the bracketed declarations block.
However your use of #detailwrapper#b1 is superfluous. IDs are unique on the page so concatanating 2 ids together does not make it more unique. It does of course add to specificity and complicates issues further. (See Technobears above also.)
If you are using ids then just use one id. e.g. #b1 a{color:green}
Usually long selectors with ids suggest a bad practice has been used along the way.
It is better to stick to classes most of the time anyway.
Yes I guess that some pages may need a unique styling and adding a parent wrapper would allow the differentiation to occur.
Ye I got you, I’m looking at it all now and I need to put it all together better. That’s what happens when your rushed I suppose, but got some time will go through, thanks both