
/* ---------------------------------------- */
/*  Headers                                 */
/* ---------------------------------------- */

h1, h2, h3, h4, h5, h6 {
  margin: 2rem 0 1rem;
  line-height: 1;
  text-shadow: 1px 1px 4px #000;
  &:first-child {
    margin-top: 0;
  }
}

h1 {
  font-family: var(--font-h1);
  font-size: var(--font-h1-size);
  color: var(--color-light-1);
}

h2 {
  font-family: var(--font-h2);
  font-size: var(--font-h2-size);
  color: var(--color-light-1);
}

h3 {
  font-family: var(--font-h3);
  font-size: var(--font-h3-size);
  color: var(--color-light-1);
}

h4 {
  font-family: var(--font-h4);
  font-size: var(--font-h4-size);
  color: var(--color-light-2);
}

h5 {
  font-family: var(--font-h5);
  font-size: var(--font-h5-size);
  color: var(--color-light-2);
}

h6 {
  font-family: var(--font-h6);
  font-size: var(--font-h6-size);
  color: var(--color-light-2);
}

/** Bordered Header */
h1.border,
h2.border,
h3.border,
h4.border {
  clear: both;
  padding: 1rem 0 0.6rem;
  position: relative;
  text-indent: 0.5rem;

  &::before {
    position: absolute;
    top: 0;
    display: block;
    width: 100%;
    height: 100%;
    content: "";
    border-top: 2px solid var(--color-warm-2);
    border-bottom: 2px solid var(--color-warm-2);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 50%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, black 50%, transparent 100%);
  }
}

h3.border,
h4.border {
  &::before {
    border-top: 2px solid var(--color-warm-3);
    border-bottom: 2px solid var(--color-warm-3);
  }
}

/** Divider Header */
h1.divider,
h2.divider,
h3.divider,
h4.divider {
  clear: both;
  display: flex;
  justify-content: center;
  align-items: center;
  white-space: nowrap;
  border: none;
  &::before {
    content: "";
    width: 50%;
    margin-right: 0.5rem;
    border-top: 2px ridge var(--color-warm-1);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 100%);
    mask-image: linear-gradient(90deg, transparent 0%, black 100%);
  }
  &::after {
    content: "";
    width: 50%;
    margin-left: 0.5rem;
    border-top: 2px ridge var(--color-warm-1);
    -webkit-mask-image: linear-gradient(270deg, transparent 0%, black 100%);
    mask-image: linear-gradient(270deg, transparent 0%, black 100%);
  }
}

/* ---------------------------------------- */
/*  Text                                    */
/* ---------------------------------------- */

p {
  margin: 0.5rem 0;
}

p.inactive {
  color: var(--color-light-5);
}

span.highlight {
  color: var(--color-warm-1);
}

// Text Selection
::selection {
  background: var(--color-text-selection-bg);
  color: var(--color-text-selection);
}

// Overflow with Ellipsis
.ellipsis {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

/* ---------------------------------------- */
/*  Blockquotes                             */
/* ---------------------------------------- */

blockquote {
  margin: 0;
  padding: 0.5rem 1rem;
  font-family: var(--font-blockquote);
  font-style: italic;
}

/* ---------------------------------------- */
/*  Lists                                   */
/* ---------------------------------------- */

ul, ol {
  margin: 1rem 0;
  padding: 0 0 0 1.25rem;
  li {
    margin-bottom: 0.25rem;
    &:last-child {
      margin-bottom: 0;
    }
  }

  ul, ol {
    margin: 0.25rem 0 0;
    li {
      margin: 0;
    }
  }
}

/** Lists without list style */
ul.plain, ol.plain {
  list-style: none;
  margin: 0;
  padding: 0;
}

dl {
  dt {
    display: inline-block;
    color: var(--color-light-2);
    text-shadow: 1px 1px #000;
    margin: 0 0 0.25rem;
  }
  dd {
    margin: 0 0 1rem 1rem;
  }
}

/* ---------------------------------------- */
/*  Links                                   */
/* ---------------------------------------- */

a[href] {
  color: var(--color-warm-1);
  overflow-wrap: break-word;
  &:hover {
    text-shadow: 0 0 8px var(--color-warm-2);
  }
}

// Control Buttons
a.control {
  cursor: pointer;
  > i {
    margin-right: 0.25rem;
  }
  &:hover {
    color: var(--color-light-2);
    text-shadow: 0 0 8px var(--color-warm-2);
  }
}

/* ---------------------------------------- */
/*  Tables                                  */
/* ---------------------------------------- */

table {
  margin: 1rem;
  background: var(--table-background-color);
  border-spacing: 0;
  border-radius: 8px;
  overflow: hidden;

  th, td {
    padding: 0.5rem 1rem;
  }

  thead {
    background: var(--color-cool-4);
    font-size: 1.1em;
    color: var(--color-light-1);
    font-weight: bold;
    text-align: left;
    th {
      line-height: 1.5;
      border-bottom: 1px solid var(--color-cool-4);
    }
  }

  tfoot {
    background: var(--color-cool-4);
    font-size: 1.1em;
    font-weight: bold;
    color: var(--color-light-1);
    td {
      line-height: 1.5;
      border-top: 1px solid var(--color-cool-4);
    }
  }
}

/* ---------------------------------------- */
/*  Dividers                                */
/* ---------------------------------------- */

hr {
  clear: both;
  border: 0;
  height: 2px;
  margin: 1rem 0;
  color: var(--color-light-3);
  background-image: linear-gradient(90deg, transparent 0%, rgb(231, 209, 177) 50%, transparent 100%);
}

/* ---------------------------------------- */
/*  Code Blocks                             */
/* ---------------------------------------- */

/* Inline Code Blocks */
p, li, span {
  code {
    display: inline-block;
    padding: 1px 0.25rem;
    margin: -1px 0;
    font-size: var(--font-size-14);
    word-break: keep-all;
    white-space: nowrap;
  }
}

// Code Blocks
code {
  display: block;
  padding: 0.5rem;
  color: var(--color-light-2);
  background: var(--color-cool-4);
  border: 1px solid var(--color-cool-3);
  border-radius: 3px;
  user-select: text;
  --color-text-selection-bg: var(--color-cool-3);
}

// Button References
span.reference {
  flex: none;
  display: inline-block;
  padding: 0.25rem 0.5rem;
  font-size: var(--font-size-14);
  color: #c5dbe3;
  border: 1px solid #def7ff;
  border-radius: 3px;
}
