@charset "UTF-8"; $grid-mobile-limit: 601px !default; $very-small-limit: 401px !default; div.grid { float: left; box-sizing: border-box; padding-right: 1em; clear: none; } @each $i in 1, 2, 3, 4, 6, 12 { @for $j from 1 through $i { div.grid-#{$j}-#{$i} { float: left; box-sizing: border-box; padding-right: 1em; width: (100*$j/$i+0%); @media screen and (max-width: $grid-mobile-limit) { @if $i == 4 and $j <= 2 { width: 50%; } @else if $i == 4 and $j > 2 { width: 100%; } @else if $i == 6 and $j <= 2 { width: (100/3+0%); } @else if $i == 6 and $j == 3 { width: 50%; } @else if $i == 6 and $j <= 5 { width: (200/3+0%); } @else if $i == 6 and $j == 6 { width: 100%; } @else if $i == 12 and $j <= 4 { width: (100/3+0%); } @else if $i == 12 and $j <= 7 { width: 50%; } @else if $i == 12 and $j <= 11 { width: (200/3+0%); } @else if $i == 12 and $j == 12 { width: 100%; } } @media screen and (max-width: $very-small-limit) { width: 100%; } & + h3, & + h4, & + p, & + div { clear: both; } table, textarea, select, input[type=text], input[type=password], input[type=email] { width: 100%; } } body div + div.grid-#{$j}-#{$i}, /* more specific than & + div above*/ div div.grid-#{$j}-#{$i} { clear: none; &.newline { clear: both; } } } }