/*
	Recursive mixin calls ala bootstrap
*/
.span (@columns) {
  width: (12px * @columns) + (12px * (@columns - 1));
}
.spanX (@index) when (@index > 0) {
  .span@{index} { .span(@index); }
  .spanX(@index - 1);
}
.spanX (0) {}

.a {
	.spanX(12);
}
// Nested recursion
@gridColumns:             3;
@gridColumnWidth:         60px;
@gridGutterWidth:         20px;
#grid {
	.core (@gridColumnWidth, @gridGutterWidth) {
		.spanX (@index) when (@index > 0) {
			.span@{index} { .span(@index); }
			.spanX(@index - 1);
	    }
	    .spanX (0) {}
	    
	    .span (@columns) {
	    	width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
	    }
	    
	    .spanX (@gridColumns);
	    
	    .nested {
	    	padding: 1px;
	    	.spanX (@gridColumns);
	    	.deep {
	    		padding: 1px;
	    		.spanX (@gridColumns);
	    	}
	    }
	}
}
#grid > .core(@gridColumnWidth, @gridGutterWidth);
