The :before and :after pseudo-elements interact with other boxes as if they were real elements inserted just inside their associated element.
For example, the following document fragment and style sheet:
<p> Text </p> p:before { display: block; content: ‘Some’; }
…would render in exactly the same way as the following document fragment and style sheet: <p><span>Some</span> Text </p> span { display: block }
Similarly, the following document fragment and style sheet:
<h2> Header </h2> h2:after { display: block; content: ‘Thing’; }
…would render in exactly the same way as the following document fragment and style sheet:
To me that means pseudo elements behave similar to child elements. So that would mean that the content in :after is rendering like this: <div> <h1>Chiropractic Care</h1> <span>empty content</span><div>. Where you are attempting to position the DIV with a positive z index and the contained SPAN with a negative z-index which doesn’t work with how elements stack.
So, as far as I know you would need to take your shadow effect out of the containing div and apply it to another element and make it a sibling to the header rather than a child. Although, maybe someone else has an idea of how you could get it to work without doing that.
LOL, scratch that, it can work the way you have that, although I don’t technically know why given the above, maybe someone can enlighten, but you just need to put a z-index on #inner. Your shadow is hiding behind that noise.png DIV. You have to take the z-index off “.home Content .hentry.” They don’t have positioning on that element in the example page.
So I played around and I didn’t realize this but apparently, strangely enough, you can stack child elements beneath the parent as long as the parent does not have a z-index. The parent can either have positioning declared or not, but either way no z-index, even if it is a positive one. Not sure why, but it works and it is handy to know.