// =============== Common ===============
.typography-paragraph() {
  // margin-bottom: 1em;
  line-height: @regular-line-height*1px;
}
// MSB modified
.typography(@fontSize; @fontWeight; @lineHeight; @headingMarginBottom;) {
  // margin-bottom: @headingMarginBottom;
  font-weight: @fontWeight;
  font-size: @fontSize;
  line-height: @lineHeight*1px;
}

.typography-generate(@name, @rangeFont, @prefix, @level) {
  @variable: if((@prefix = mobile), '@{prefix}-@{name}', @name);

  @variableValue: if(isstring(variable), @@variable, @variable);

  // @debug: ~`console.log("[LESS] value variableValue = @{variableValue}")`;
  each(range(@rangeFont), {
    &.typography-@{name}-@{value} {
      @size: '@{variableValue}-@{value}-size';
      @sizeValue: @@size;
      @lineHeightVariable: '@{variableValue}-@{value}-line-height';
      @lineHeight:  if((@value <= @level), '@{variableValue}-@{value}-line-height', '@{variableValue}-line-height');
      // @lineHeightValue:  @@lineHeightVariable
      // @debug: ~`console.log(  [LESS] value of lineHeightVariable = @{lineHeightVariable}  )`;
      // @debug: ~`console.log(  [LESS] value of lineHeight = @{lineHeight}   )`;
      @lineHeightValue: @@lineHeight;
      // @debug: ~`console.log(   [LESS] value of line height = @{lineHeightValue}   )`;
      .typography(@@size,
      @typography-font-base,
      @@lineHeight,
      @typography-title-margin-bottom)
    };
  });
}

.typography-generate-v2(@name, @rangeFont, @prefix, @level) {
  @variable: if((@prefix = mobile), '@{prefix}-@{name}', @name);

  @variableValue: if(isstring(variable), @@variable, @variable);

  // @debug: ~`console.log("[LESS] value variableValue = @{variableValue}")`;
  each(range(@rangeFont), {
    &.typography-@{name}-@{value}-v2 {
      @size: '@{variableValue}-@{value}-size-v2';
      @sizeValue: @@size;
      @lineHeightVariable: '@{variableValue}-@{value}-line-height-v2';
      @lineHeight:  if((@value <= @level), '@{variableValue}-@{value}-line-height-v2', '@{variableValue}-line-height-v2');
      // @lineHeightValue:  @@lineHeightVariable
      // @debug: ~`console.log(  [LESS] value of lineHeightVariable = @{lineHeightVariable}  )`;
      // @debug: ~`console.log(  [LESS] value of lineHeight = @{lineHeight}   )`;
      @lineHeightValue: @@lineHeight;
      // @debug: ~`console.log(   [LESS] value of line height = @{lineHeightValue}   )`;
      .typography(@@size,
      @typography-font-base,
      @@lineHeight,
      @typography-title-margin-bottom)
    };
  });
}
