//
// Typography
// --------------------------------------------------


// Headings
// -------------------------

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: @headings-font-family;
  line-height: @headings-line-height;
  color: @headings-color;

  small,
  .small {
  	font-weight: @headings-font-light;
    //color: @headings-small-color;
  }
}

h1, .h1,
h2, .h2,
h3, .h3 {
  font-weight: @headings-font-weight;
  margin-top: @line-height-computed;
  margin-bottom: (@line-height-computed / 2);
}
h4, .h4,
h5, .h5,
h6, .h6 {
  font-weight: @headings-font-bold;
  margin-top: (@line-height-computed / 2);
  margin-bottom: (@line-height-computed / 2);
}

h1, .h1 { font-size: @font-size-h1; }
h2, .h2 { font-size: @font-size-h2; }
h3, .h3 { font-size: @font-size-h3; }
h4, .h4 { font-size: @font-size-h4; }
h5, .h5 { font-size: @font-size-h5; }
h6, .h6 { font-size: @font-size-h6; }


// Horizontal rules
// -------------------------
hr,
.hr {
  margin-top:    @line-height-computed;
  margin-bottom: floor(@line-height-computed *.85);
  border: 0;
  border-top: 1px solid @hr-border;
}
.hr-dark {
  border-top-color: @hr-border-dark;
}
.hr-darker {
  border-top-color: @hr-border-darker;
}

// rules to be used in CKEditor
.border-bottom {
  border-bottom: 1px solid @hr-border-dark;
  padding-bottom: @line-height-computed / 2;
  margin-bottom: @line-height-computed / 2;
}
.border-bottom-dark {
  border-bottom: 1px solid @hr-border-darker;
  padding-bottom: @line-height-computed / 2;
  margin-bottom: @line-height-computed / 2;
}

// Body text
// -------------------------

p {
  margin: 0 0 (@line-height-computed / 2);
}

.lead {
  font-family: @headings-font-family;
  font-weight: @headings-font-light;
  font-size: 21px;
}
.standout {
  font-family: @headings-font-family;
  font-weight: @headings-font-light;
  font-size: 21px;
  border-top: 1px solid @hr-border-dark;
  border-bottom: 1px solid @hr-border-dark;
  padding-top: (@line-height-computed - 3);
  padding-bottom: @line-height-computed;
  margin-top: @line-height-computed;
  margin-bottom: (@line-height-computed - 3);
}
.page-header + .standout {
	margin-top: -10px;
}


// Links
// -------------------------

a {
	cursor: pointer;
	color: @link-color;
	text-decoration: none;
	
	&:hover,
	&:focus {
		color: @link-hover-color;
		text-decoration: @link-hover-decoration;
	}
	
	&:focus,
	&:active {
		.tab-focus();
	}
}


// Emphasis & misc
// -------------------------

small,
.small {
  font-size: floor((100% * @font-size-small / @font-size-base));// Ex: (12px small font / 14px base font) * 100% = about 85%
}
.smaller {
  font-size: 65%;
}
big,
.big {
  font-size: 120%;
  p &, li & {
 	 line-height: @line-height-base / 1.2;
  }
  h1 &, h2 &, h3 &, h4 &, h5 &, h6 & { 
 	 line-height: @headings-line-height / 1.2;
  }
}
.bigger {
  font-size: 150%;
  p &, li & {
 	 line-height: @line-height-base / 1.5;
  }
  h1 &, h2 &, h3 &, h4 &, h5 &, h6 & { 
 	 line-height: @headings-line-height / 1.5;
  }
}
.shout {
  font-size: 210%;
  p &, li & {
 	 line-height: @line-height-base / 2.1;
  }
  h1 &, h2 &, h3 &, h4 &, h5 &, h6 & { 
 	 line-height: @headings-line-height / 2.1;
  }
}

mark,
.mark {
  background-color: @state-warning-bg;
  padding: .2em;
}

// Alignment
// -------------------------
.text-left           { text-align: left; }
.text-right          { text-align: right; }
.text-center         { text-align: center; }
.text-justify        { text-align: justify; }
.text-nowrap         { white-space: nowrap; }

// Transformation
.text-lowercase      { text-transform: lowercase; }
.text-uppercase      { text-transform: uppercase; }
.text-capitalize     { text-transform: capitalize; }


// Contextual colors
// -------------------------
.text-dark 		{ .text-emphasis-variant(@text-dark); }
.text-gray	 	{ .text-emphasis-variant(@text-gray); }
.text-soft	 	{ .text-emphasis-variant(@text-soft); }
.text-muted 	{ color: @text-muted; }
.text-light 	{ .text-emphasis-variant(@text-light); }
.text-lighter 	{ .text-emphasis-variant(@text-lighter); }

.text-primary 	{ .text-emphasis-variant(@brand-primary); }

.blue			{ .text-emphasis-variant(@brand-info); }
.blue-light 	{  .text-emphasis-variant(@inverse-text-info); }
.green		 	{  .text-emphasis-variant(@brand-success); }
.yellow			{  .text-emphasis-variant(@brand-warning); }
.red			{  .text-emphasis-variant(@brand-danger); }

// Alerts and stuff
.text-info 		{ .text-emphasis-variant(@state-info-text); }
.text-success 	{  .text-emphasis-variant(@state-success-text); }
.text-warning 	{  .text-emphasis-variant(@state-warning-text); }
.text-danger 	{  .text-emphasis-variant(@state-danger-text); }


// Contextual backgrounds
// -------------------------
.bg-primary {
  color: #fff;
  .bg-variant(@brand-primary);
}
.bg-success {
  .bg-variant(@state-success-bg);
}
.bg-info {
  .bg-variant(@state-info-bg);
}
.bg-warning {
  .bg-variant(@state-warning-bg);
}
.bg-danger {
  .bg-variant(@state-danger-bg);
}


// Page header
// -------------------------

// moved to custom.less, near the section-header's


// Lists
// -------------------------

// Unordered and Ordered lists
ul,
ol {
  margin-top: 0;
  margin-bottom: (@line-height-computed / 2);
  ul,
  ol {
    margin-bottom: 0;
	padding-left: 20px
  }
}

// Indented
// keeps list items block level and paddings, just removes default list-style
// -----------
.list-indent,
.list-indent ul {
  list-style: none;
}

// Unstyled
// keeps list items block level, just removes default browser padding and list-style
// -----------
.list-unstyled {
  padding-left: 0;
  list-style: none;
}

// Inline
// turns list items into inline-block
// -----------
.list-inline {
  .list-unstyled();
  margin-left: -5px;

  > li {
    display: inline-block;
    padding-left: 5px;
    padding-right: 5px;
  }
}

// Description Lists
// -------------------------
dl {
  margin-top: 0; // Remove browser default
  margin-bottom: @line-height-computed;
}
dt,
dd {
  line-height: @line-height-base;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: 0; // Undo browser default
}

// Horizontal description lists
// Defaults to being stacked without any of the below styles applied, until the
// grid breakpoint is reached (default of ~768px).
// -----------
.dl-horizontal {
  dd {
    &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present
  }

  @media (min-width: @grid-float-breakpoint) {
    dt {
      float: left;
      width: (@dl-horizontal-offset - 20);
      clear: left;
      text-align: right;
      .text-overflow();
    }
    dd {
      margin-left: @dl-horizontal-offset;
    }
  }
}


// Misc
// -------------------------

// Abbreviations and acronyms
// -----------
abbr[title],
abbr[data-original-title] {// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
  cursor: help;
  border-bottom: 1px dotted @abbr-border-color;
}
.initialism {
  font-size: 90%;
  text-transform: uppercase;
}

// Blockquotes
blockquote {
  padding: (@line-height-computed / 2) @line-height-computed;
  margin: 0 0 @line-height-computed;
  font-size: @blockquote-font-size;
  border-left: 5px solid @blockquote-border-color;

  p,
  ul,
  ol {
    &:last-child {
      margin-bottom: 0;
    }
  }
  
  footer,
  small,
  .small {
    display: block;
    font-size: 80%; // back to default font-size
    line-height: @line-height-base;
    color: @blockquote-small-color;

    &:before {
      content: '\2014 \00A0'; // em dash, nbsp
    }
  }
}

// Opposite alignment of blockquote
// -----------
.blockquote-reverse,
blockquote.pull-right {
  padding-right: 15px;
  padding-left: 0;
  border-right: 5px solid @blockquote-border-color;
  border-left: 0;
  text-align: right;

  // Account for citation
  footer,
  small,
  .small {
    &:before { content: ''; }
    &:after {
      content: '\00A0 \2014'; // nbsp, em dash
    }
  }
}

// Addresses
// -----------
address {
  margin-bottom: @line-height-computed;
  font-style: normal;
  line-height: @line-height-base;
}
