// Defining number of columns in the grid.
// Common Values would be 12, 16 or 24
@width: 100%;
@def_grid: 12;
@margin: 0;

.container(){
  margin:0 auto;
  width:@width;
}
                                      
// Works out the width of elements based
// on total number of columns and width
// number of columns being displayed.
// Removes 20px for margins
.grid(@grid:@def_grid,@cols:'',@float:left,@display:inline){
  display:@display;
  float:@float;
  width:(100%/@grid * @cols) - (@margin * 2);
}  

// Allows for padding before element
.prefix(@grid:@def_grid,@cols:''){
  margin-left:(100%/@grid * @cols);
}
// Allows for padding after element
.suffix(@grid:@def_grid,@cols:''){  
  margin-right:(100%/@grid * @cols);    
}
// Removes left margin
.first(){
  margin-left:0;
}
// Removes right margin
.last(){
  margin-right:0;
}

.push(@grid:@def_grid,@move:'') {
  position:relative;
  left:(100%/@grid * @move);
} 

.pull(@grid:@def_grid,@move:''){
  position:relative;
  left:(100%/@grid * @move) * -1;
}