Extra <div>s just to control margins looks very much like having to add markup just to do layout, i.e. mixing markup with layout. Your nested div has no semantic meaning, they are only present for layout.
If you're not interested in separating layout markup from content markup, the box-sizing property might be for you.
But I'd certainly avoid using calc()...