// Typography.less
// Headings, body text, lists, code, and more for a versatile and durable typography system
// ----------------------------------------------------------------------------------------


// BODY TEXT
// ---------

p {
  margin-bottom: @baseLineHeight / 2;
  font-family: @baseFontFamily;
  font-size: @baseFontSize;
  line-height: @baseLineHeight;
  small {
    font-size: @baseFontSize - 2;
    color: @grayLight;
  }
}


// HEADINGS
// --------

h1, h2, h3, h4, h5, h6 {
  font-weight: bold;
  color: @grayDark;
  text-rendering: optimizelegibility; // Fix the character spacing for headings
  small {
    color: @grayLight;
  }
}
h1 {
  font-size: 30px;
  line-height: @baseLineHeight * 2;
  small {
    font-size: 18px;
  }
}
h2 {
  font-size: 24px;
  line-height: @baseLineHeight * 2;
  small {
    font-size: 18px;
  }
}
h3 {
  line-height: @baseLineHeight * 1.5;
  font-size: 18px;
  small {
    font-size: 14px;
  }
}
h4, h5, h6 {
  line-height: @baseLineHeight;
}
h4 {
  font-size: 14px;
  small {
    font-size: 12px;
  }
}
h5 {
  font-size: 12px;
}
h6 {
  font-size: 11px;
  color: @grayLight;
  text-transform: uppercase;
}


// LISTS
// -----

// Unordered and Ordered lists
ul, ol {
  margin: 0 0 @baseLineHeight / 2 25px;
}
ul ul,
ul ol,
ol ol,
ol ul {
  margin-bottom: 0;
}
ul {
  list-style: disc;
}
ol {
  list-style: decimal;
}
li {
  line-height: @baseLineHeight;
}
ul.unstyled {
  margin-left: 0;
  list-style: none;
}

// Description Lists
dl {
  margin-bottom: @baseLineHeight;
}
dt,
dd {
  line-height: @baseLineHeight;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: @baseLineHeight / 2;
}

// MISC
// ----

// Horizontal rules
hr {
  margin: @baseLineHeight 0;
  border: 0;
  border-top: 1px solid #e5e5e5;
  border-bottom: 1px solid #fff;
}

// Emphasis
strong {
  font-style: inherit;
  font-weight: bold;
}
em {
  font-style: italic;
  font-weight: inherit;
  line-height: inherit;
}
.muted {
  color: @grayLight;
}

// Abbreviations and acronyms
abbr {
  font-size: 90%;
  text-transform: uppercase;
  border-bottom: 1px dotted #ddd;
  cursor: help;
}

// Blockquotes
blockquote {
  padding-left: 15px;
  margin-bottom: @baseLineHeight;
  border-left: 5px solid #eee;
  p {
    margin-bottom: 0;
    #font > .shorthand(16px,300,@baseLineHeight * 1.25);
  }
  small {
    display: block;
    line-height: @baseLineHeight;
    color: @grayLight;
    &:before {
      content: '\2014 \00A0';
    }
  }

  // Float right with text-align: right
  &.pull-right {
    float: right;
    padding-left: 0;
    padding-right: 15px;
    border-left: 0;
    border-right: 5px solid #eee;
    p,
    small {
      text-align: right;
    }
  }
}

// Addresses
address {
  display: block;
  margin-bottom: @baseLineHeight;
  line-height: @baseLineHeight;
}

// Inline and block code styles
code,
pre {
  padding: 0 3px 2px;
  #font > #family > .monospace;
  font-size: 12px;
  color: @grayDark;
  .border-radius(3px);
}
code {
  padding: 1px 3px;
  background-color: lighten(@orange, 40%);
}
pre {
  display: block;
  padding: (@baseLineHeight - 1) / 2;
  margin: 0 0 @baseLineHeight / 2;
  font-size: 12px;
  line-height: @baseLineHeight;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border: 1px solid rgba(0,0,0,.15);
  .border-radius(4px);
  white-space: pre;
  white-space: pre-wrap;
  word-break: break-all;

  // Make prettyprint styles more spaced out for readability
  &.prettyprint {
    margin-bottom: @baseLineHeight;
  }

  // Account for some code outputs that place code tags in pre tags
  code {
    padding: 0;
    background-color: transparent;
  }
}