@use "@styles/abstracts/functions" as fun;
@use "@styles/abstracts/variables" as var;
h1 {
  font-size: var(--font-size-3xl);
}
h2 {
  padding-bottom: fun.convert-px(3);
  background: linear-gradient(
      to top,
      var(--color-primary-dark) 0.3rem,
      transparent 0.3rem
    )
    0 0 / 3rem 100% no-repeat;
  font-size: var(--font-size-2xl);
  text-shadow: fun.convert-px(1) fun.convert-px(1) 0 var(--color-shadow-light);
}
h3 {
  font-size: var(--font-size-xl);
}
h4 {
  font-size: var(--font-size-lg);
}
h5 {
  font-size: var(--font-size-md);
  font-weight: 600;
}
h6 {
  font-size: var(--font-size-md);
}
h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--color-primary-dark);
  font-family: var(--font-family-secondary);
  font-weight: 500;
  letter-spacing: 0.01ex;
  margin: 0 0 var(--spacing-sm);
  * + {
    h2,
    h3,
    h4,
    h5,
    h6 {
      margin-top: var(--spacing-md);
    }
  }
}
p {
  font-size: var(--font-size-md);
  margin: 0 0 var(--spacing-sm);
}
small {
  font-size: var(--font-size-sm);
}
ol {
  list-style-type: none;
  counter-reset: li;
  padding: 0;
  > li {
    display: table;
    counter-increment: li;
    &::before {
      content: counters(li, ".") ". ";
      color: var(--color-secondary);
      display: table-cell;
      padding-right: var(--spacing-2xs);
    }
  }
  li ol > li::before {
    content: counters(li, ".") ". ";
  }
}
ul,
ol {
  li {
    margin-bottom: var(--spacing-2xs);
    &:last-child {
      margin-bottom: 0;
    }
  }
  ::marker {
    color: var(--color-secondary);
  }
}
ul {
  padding-left: var(--spacing-sm);
}
dl {
  display: flex;
  flex-flow: row wrap;
  gap: var(--spacing-2xs);
}
ul,
ol,
dl {
  margin: var(--spacing-md) 0;
  & & {
    margin: var(--spacing-2xs) 0 0;
  }
}
dt {
  flex: 0 0 max-content;
  font-weight: 600;
}
dd {
  flex: 0 0 auto;
  margin: 0;
}
a {
  background: linear-gradient(to top, var(--color-primary) 50%, transparent 50%)
    0 0 / 100% 200% no-repeat;
  color: var(--color-primary);
  text-decoration-thickness: 13%;
  text-underline-offset: 20%;
  transition: all 0.3s linear 0s, text-decoration 0.18s ease-in-out 0s;
  &:hover {
    color: var(--color-primary-light);
    text-decoration-thickness: 23%;
  }
  &:focus {
    background-position: 0 100%;
    color: var(--color-fg-inverted);
  }
  &:active {
    background-position: 0 0;
    color: var(--color-primary-dark);
    text-decoration-thickness: 18%;
  }
  &.external {
    &::after {
      display: inline-block;
      content: "\0000a0"url(fun.encode-svg(''));
    }
    &:focus:not(:active)::after {
      content: "\0000a0"url(fun.encode-svg(''));
    }
  }
  &[hreflang] {
    &::after {
      display: inline-block;
      content: "\0000a0["attr(hreflang) "]";
      font-size: var(--font-size-sm);
    }
    &.external {
      &::after {
        content: "\0000a0["attr(hreflang) "]\0000a0"url(fun.encode-svg(
            ''
          ));
      }
      &:focus:not(:active)::after {
        content: "\0000a0["attr(hreflang) "]\0000a0"url(fun.encode-svg(
            ''
          ));
      }
    }
  }
}
button,
input,
optgroup,
select,
textarea {
  line-height: var(--line-height);
}
code,
kbd,
pre,
var {
  font-family: var(--font-family-mono);
}
:not(pre) > code {
  background: var(--color-bg-secondary);
  border: fun.convert-px(1) solid var(--color-border-light);
  border-radius: fun.convert-px(3);
  color: var(--color-primary-darker);
  padding: fun.convert-px(2) fun.convert-px(5) fun.convert-px(1)
    fun.convert-px(5);
}
pre {
  display: block;
  max-width: 100%;
  overflow: auto;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
}
figure {
  margin: var(--spacing-md) 0;
}
figcaption {
  margin-top: var(--spacing-xs);
  font-size: var(--font-size-sm);
  text-align: center;
}