You can not change the effect on any of the children that is inside of the parent div.
Let me explain it like this, the opacity
is being set on the parent container. Then the children are located inside the parent which are nested nice and cozily in there.
So we have this,
--Parent (opacity start)
-----Child
-----Child
--End Parent (opacity end)
Since the children are nested inside of the parent container they will then become transparent due to the parent container being transparent.
As others have stated there are a few ways to go about this.
One way is using rgba()
(red, gren, blue, alpha) for transparent background colors
Make a child inside of the parent positioned absolute
to be the transparent background like so,
--Parent <section>
-----Transparent absolute child
-----Child
-----Child
--End Parent </section>
My last example, a fun one, to explain this is with the use of Harry Potter.
In the books Harry receives a clock of invisibility. With this cloak, once worn, can make him invisible! This is exactly like your example except you can control the transparency of the object!
Here we go,
--Cloak (parent)
-----Harry Potter (Child)
--End Cloak (end parent)
Since he is inside of his cloak he is therefor invisible, just like your child elements.
Pertaining to the OP's question,
Okay remove the opacity on the #mainWrapper now, where ever you are
using this color, #29630E, replace it with, rgba(41, 99, 14, 0.9), and
you will not have everything being transparent. What you are doing,
without realizing, is making everything on that page transparent. The
text, color, images, everything transparent. With the use of rgba you
will only be making the background color transparent.