/*
    Typography
-------------------------------
*/

@typescale {
  scale: 1.25;
  font-size: var(--base-font-size);
  line-height: var(--unit);
}

h2,
h3,
h4,
h5,
ul,
ol,
dl,
blockquote,
p,
address,
table,
fieldset,
figure,
pre {
  margin-bottom: var(--unit);
}

h1 {
  margin-bottom: var(--unit);
}

h6 {
  margin-bottom: var(--unit-xs);
}

.h0 {
  typescale: 8 6;
}

h1,
.h1 {
  typescale: 2.5 1.5;
}

h2,
.h2 {
  typescale: 1 1;
}

h3,
.h3 {
  typescale: 0.5 1;
}

h4,
.h4 {
  typescale: 0 1;
}

h5,
.h5 {
  typescale: -1 0.75;
}

h6,
.h6,
small {
  typescale: -1 0.75;
}

h1 {
  font-weight: 200;
}

h2 {
  font-weight: 300;
  padding-bottom: calc(var(--unit) - var(--border-width));
  border-bottom-width: var(--border-width);
  border-bottom-style: solid;
  border-bottom-color: var(--border-color);
  margin-bottom: var(--unit);
  color: color-mod(var(--color-highlight) saturation(30%));
}

h3,
h4,
h5,
h6 {
  font-weight: 700;
}

h6 {
  color: var(--color-neutral);
}

blockquote {
  font-weight: 200;
  typescale: 2.5 1.5;
  font-style: italic;
  color: color-mod(var(--color-highlight) saturation(75%));
}

blockquote p:last-child {
  margin-bottom: 0;
}

hr {
  clear: both;
  border: 0;
  height: 0;
  border-top-width: var(--border-width);
  border-top-style: dotted;
  border-top-color: var(--border-color);
  margin-bottom: calc(var(--unit) - var(--border-width));
}

a {
  text-decoration: none;
  color: var(--color-inverse);

  &:visited {
    color: var(--color-inverse);
  }

  &:hover,
  &:active,
  &:focus {
    color: var(--color-highlight);
  }
}

p a {
  color: var(--color-highlight);
}

b,
strong,
.strong,
.bold {
  font-weight: 700;
}

i,
.italic {
  font-style: italic;
}

label {
  margin-bottom: var(--unit-s);
}

.cap {
  text-transform: capitalize;
  display: inline-block;
}

.cap-first {
  display: inline-block;
}

.cap-first::first-letter {
  text-transform: uppercase;
}

.caps {
  text-transform: uppercase;
  letter-spacing: 0.25em;
}

.line-through {
  color: var(--color-neutral);
  text-decoration: line-through;
}

.underline {
  border-bottom: 1px solid;
}

.text-decoration-none,
.text-decoration-none a {
  text-decoration: none;
}

.nowrap {
  white-space: nowrap;
}

.truncate {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.text-center {
  text-align: center;
}

.text-left {
  text-align: right;
}

.text-right {
  text-align: right;
}

.mono {
  font-family: 'Lucida Sans Typewriter', monaco, 'Lucida Console', monospace;
  font-weight: bold;
}

dt {
  display: inline-block;
}
