* {
  box-sizing: border-box;

  --nk-color-white: #ffffff;
  --nk-color-black: #000000;
  --nk-color-grey: #EAEDEC;
  --nk-color-primary: #1E5950;
  --nk-color-green: #62d299;
  --nk-color-red: #d23d3d;
}

h1,
h2,
h3,
h4,
h5,
b {
  color: var(--nk-color-primary);
}

a,
a:visited {
  display: inline-block;
  color: var(--nk-color-primary);
  position: relative;
  text-decoration: none;
  font-weight: bold;
}

a:before {
  transition: width 0.2s;
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  background: var(--nk-color-primary);
  height: 0.3ex;
  width: 0%;
  z-index: 10;
}

a:hover:before {
  width: 100%;
}

a.no-underline:hover:before {
  width: 0;
}

html,
body {
  margin: 0;
  padding: 0;
  width: 100vw;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

header {
  height: 140px;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px;
  padding-top: 10px;
  background: var(--nk-color-white);
  background: linear-gradient(180deg, var(--nk-color-white) 0%, var(--nk-color-white) 90%, var(--nk-color-grey) 98%, var(--nk-color-white) 100%);
}

header>a {
  flex-grow: 0;
  height: 100%;
}

header img {
  height: 100%;
}

nav ul {
  list-style-type: none;
  display: flex;
}

nav ul li {
  padding: 1ex;
  font-size: 1.1rem;
}

nav ul li a {
  color: var(--nk-color-black) !important;
}

main {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  padding: 3ex 12%;
}

footer {
  height: 105px;
  width: 100%;
  padding: 20px;
  background: var(--nk-color-primary);
  background: linear-gradient(0deg, var(--nk-color-primary) 0%, var(--nk-color-primary) 90%, var(--nk-color-grey) 98%, var(--nk-color-white) 100%);
  display: flex;
  justify-content: center;
  align-items: center;
}

footer a {
  font-size: 0.9em;
  color: var(--nk-color-white) !important;
}

section,
article {
  background-color: var(--nk-color-white);
  flex-grow: 1;
  padding: 3ex 3em;
}

.d-flex {
  display: flex;
}

.p-1 {
  padding: 1.5rem;
}

.mb-1 {
  margin-bottom: 1.5rem;
}

code {
  background-color: var(--nk-color-grey);
}

pre {
  background-color: var(--nk-color-grey);
  padding: 1.5rem;
}

.alert {
  padding: 0 1.5rem;
  border: 1px solid var(--nk-color-red);
  border-left-width: 4px;
}

.info {
  padding: 0 1.5rem;
  border: 1px solid var(--nk-color-green);
  border-left-width: 4px;
}

.node {
  border-image-slice: 46 34 33 47;
  border-image-width: 80px 80px 80px 80px;
  border-image-outset: 0px 0px 0px 0px;
  border-image-repeat: stretch stretch;
  border-image-source: url('/assets/node.svg');
  padding: 80px;
}

.vertical-center {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
