This is a challenging one. I think you have a few options that both use nesting. One would get you the correct layout on medium
but won't work on small
..
<div class="row">
<div class="large-6 medium-6 columns">
<div class="row">
<div class="large-6 medium-12 columns">1</div>
<div class="large-6 medium-12 columns">2</div>
</div>
</div>
<div class="large-6 medium-6 columns">
<div class="row">
<div class="large-6 medium-12 large-push-6 columns">4</div>
<div class="large-6 medium-12 large-pull-6 columns">3</div>
</div>
</div>
</div>
The other option is to duplicate the last row and use the visibility classes..
<div class="row">
<div class="large-6 medium-6 columns">
<div class="row">
<div class="large-6 medium-12 columns">1</div>
<div class="large-6 medium-12 columns">2</div>
</div>
</div>
<div class="large-6 medium-6 columns">
<div class="row show-for-medium-up">
<div class="large-6 medium-12 large-push-6 columns">4</div>
<div class="large-6 medium-12 large-pull-6 columns">3</div>
</div>
<div class="row show-for-small-only">
<div class="small-12 large-push-6 columns">3</div>
<div class="small-12 medium-12 large-pull-6 columns">4</div>
</div>
</div>
</div>
Demo: http://codeply.com/go/pZqRjFqwX9