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


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

p {
  margin: 0 0 $baseLineHeight / 2;
  font-family: $baseFontFamily;
  font-size: $baseFontSize;
  line-height: $baseLineHeight;
  small {
    font-size: $baseFontSize - 2;
    color: $grayLight;
  }
}
.lead {
  margin-bottom: $baseLineHeight;
  font-size: 20px;
  font-weight: 200;
  line-height: $baseLineHeight * 1.5;
}

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

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-family: $headingsFontFamily;
  @include text-semibold();
  color: $headingsColor;
  text-rendering: optimizelegibility; // Fix the character spacing for headings
  small {
    font-weight: normal;
    color: $grayLight;
  }
}
h1 {
  font-size: 30px;
  line-height: $baseLineHeight * 2;
  small {
    font-size: 18px;
  }
}
h2 {
  font-size: 22px;
  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;
}

// Page header
.page-header {
  padding-bottom: $baseLineHeight - 1;
  margin: $baseLineHeight 0;
  border-bottom: 1px solid $grayLighter;
}
.page-header h1 {
  line-height: 1;
}

figure {
  margin: 0;
  padding: 0;
}


// LISTS
// -----

// Unordered and Ordered lists
ul ul,
ul ol,
ol ol,
ol ul {
  margin-bottom: 0;
}
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

// would be better to avoid applying the reset above instead of faking defaults
.html-preview {
  ul {
    list-style-type: disc;
    padding-left: 40px;
    margin-top: 1em;
    margin-bottom: 1em;
  }
}


ol {
  list-style: decimal;
}
li {
  line-height: $baseLineHeight;
}
ul.unstyled,
ol.unstyled {
  margin-left: 0;
  list-style: none;
}

// Description Lists
dl {
  margin-bottom: $baseLineHeight;
}
dt,
dd {
  line-height: $baseLineHeight;
}
dt {
  font-weight: bold;
  line-height: $baseLineHeight - 1; // fix jank Helvetica Neue font bug
}
dd {
  margin-left: $baseLineHeight / 2;
}
// Horizontal layout (like forms)
.dl-horizontal {
  dt {
    float: left;
    clear: left;
    width: 120px;
    text-align: right;
  }
  dd {
    margin-left: 130px;
  }
}

// MISC
// ----

// Horizontal rules
hr {
  margin: $baseLineHeight 0;
  border: 0;
  border-top: 1px solid $hrBorder;
  border-bottom: none;
  &.hr--dotted {
    border-top: 1px dotted $hrBorder;
  }
}

// Emphasis
strong {
  font-weight: bold;
}
em {
  font-style: italic;
}
.muted {
  color: $grayLight;
}

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

// Blockquotes
// blockquote {
//   padding: 0 0 0 15px;
//   margin: 0 0 $baseLineHeight;
//   border-left: 5px solid $grayLighter;
//   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 $grayLighter;
//     p,
//     small {
//       text-align: right;
//     }
//   }
// }

// Quotes
q:before,
q:after,
blockquote:before,
blockquote:after {
  content: "";
}

// Addresses
address {
  display: block;
  margin-bottom: $baseLineHeight;
  line-height: $baseLineHeight;
  font-style: normal;
}

// Misc
small {
  font-size: 100%;
}
cite {
  font-style: normal;
}

// configs
.italicAbstract .abstract {
    font-style: italic;
}
