html {
  scroll-behavior: smooth;
  position: relative;
  min-height: 100%;
}
body {
	margin: 0;
  margin-bottom: 350px;
	font-family: $font-style;
}
@media (max-width: 576px) {
  body {margin-bottom: 600px;}
}
h1, h2, h3, h4 {
	font-weight: 600;
	color: $heading-font-color;
	font-family: $heading-font;
	line-height: 1.5;
}

h1.title {
	text-align: center;
	// color: $main;
	text-transform: uppercase;
}

a, a:hover {
	color: $main;
}


/**** CODE BLOCK ****/
pre code {
	color: white !important;
	background-color: black;
  // border: 2px solid grey;
  display: block;
  padding: 20px;
	overflow-x: scroll;
}


/**** NAVBAR ****/
.navbar {
	z-index: 1;
  
  .navbar-brand {
    padding: 0 !important;
  }
}
ul.navbar-nav li.dropdown:hover > div.dropdown-menu {
    display: block;
}



/**** BUTTONS ****/
.btn-outline-primary {
	border-color: $main;
	color: $main;
	border-width: 2px;
	border-radius: 5px;
}
.btn-outline-primary:hover,
.btn-outline-primary:active,
.btn-outline-primary:visited,
.btn-outline-primary:focus {
		background-color: $main;
		border-color: $main;
		cursor: pointer;
}
.btn-primary {
	color: white !important;
	background-color: $main;
	border: none;
  transition: 0.5s;
}
.btn-primary:hover,
.btn-primary:active,
// .btn-primary:visited,
.btn-primary:focus {
		background-color: #006a7c;
    border-color: #006a7c;
}



/**** SIDEBAR ****/
.sidenav-top {
	width: $sidenav-width;
	height: 130px;
	background-color: $base;
	position: fixed;
	top: 0px;
	text-align: center;
	img {
		padding-top: 12px;
    padding-bottom: 8px;
	}
  div.search {
    padding-top: 90px;
    input {
      width: 88%;
      padding: 3px;
      padding-right: 25px;
    }
		button {
			color: $main;
      background-color: transparent;
      border: none;
			cursor: pointer;
      padding: 0px;
      position: absolute;
      right: 10px;
      margin: 3px 10px;
		}
	}
}
.sidenav {
  height: calc(100vh - 130px);
  top: 130px;
  width: $sidenav-width;
  position: fixed;
  // z-index: -1;
  left: 0;
  background-color: $base;
  overflow-x: hidden;
  padding-bottom: 25px;
	a {
		text-decoration: none;
		color: $main;
		display: block;
	}
	a.item {
		// top right bottom left
	  padding: 10px 8px 5px 15px;
	  font-size: large;
		font-weight: 600;
	}
	a.subitem {
	  padding: 4px 8px 5px 30px;
	  font-size: normal;
	}
	a.active {
		font-weight: 600;
	}
}

div#doc-container {
  margin-left: $sidenav-width;
  padding: 30px 35px;
	width: auto;
  div.edit {
    text-align: right;
  }
  img {width:80%;}

}

div.navbuttons {
  // margin: 0 50px;
  text-align: center;
  button {
    margin: 10px;
  }
}


/**** HEADER ****/
header {
  min-height: 350px;
  background-color: $base;
  text-align: center;
  align-items: center;
  box-shadow: 0 0 8px 0 rgba(0,0,0,0.2);

  h1 {padding-top: 20px;}
  p {
    padding: 12px;
    color: $main;
    font-size: large;
  }
	// BUTTONS
	.btn-outline-primary {
		margin: 10px;
	}
  .btn-primary {
    border: 2px $main solid;
    margin: 10px;
  }
  a:hover {
    color: white;
    text-decoration: none;
  }
}


/**** CARD ****/
div.card {
	width: 18rem;
	min-height: 320px;
	margin: auto;
	margin-top: 5rem;
	padding-top: 65px;
	box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
	transition: 0.3s;
	border-radius: 5px;

  div.fav {
		left: 6rem;
		top: -2.8rem;
		position: absolute;
		background-color: white;
		padding: 0px 18px;
		border-radius: 50px;
		border: 1px solid lightgrey;
		font-size: 70px;
		box-shadow: 0 2px 3px 0 rgba(0,0,0,0.2);
		// text-align: center;
	}

	h5.card-title {
		text-transform: uppercase;
		color: $main;
		font-weight: 600;
		font-size: 1.4rem;
	}
}

div.card:hover {
		box-shadow: 0 8px 12px 0 rgba(0,0,0,0.2);
}



div.toc {
  margin-right: 280px;
  h1 {
    margin-top: 100px;
    font-size: 28px;
  }
  h2 {
    font-size: 25px;
  }
  h3 {
    font-size: 22px;
  }
}



/**** TABLE OF CONTENTS ****/
ul#markdown-toc {
  position: absolute;
  right: 20px;
  border: 2px grey solid;
  border-radius: 15px;
  width: 280px;
  padding: 5px 12px;
  line-height: 30px;
  list-style-type: none;

  li {
    list-style-type: none;
    border-bottom: 1px grey solid;
    ul {
      padding-left: 25px !important;
      li {border: none;}
    }
  }
}
@media (max-width: 800px) {
  ul#markdown-toc {
    position: static;
  }
  div.toc {
    margin-right: 0px;
  }
}



/**** SCROLL TO TOP BUTTON ****/
button#myBtn {
	  display: none;
	  position: fixed;
	  bottom: 20px;
	  right: 30px;
	  z-index: 99;
	  font-size: 20px;
	  border: none;
	  outline: none;
	  background-color: lightgrey;
	  color: white;
	  cursor: pointer;
	  padding: 4px 8px;
	  border-radius: 5px;
		transition: 1s;
}
#myBtn:hover {
  background-color: $main;
}


/**** SEARCH PAGE ****/
div.search {
	text-align: center;
	label {
		font-size: 24px;
		color: $main;
	}
	input#search-box {
		border: none;
		border-bottom: 1px solid lightgrey;
		outline: none;
		margin-left: 8px;
		padding: 3px;
		padding-left: 10px;
		font-size: large;
		width: 300px;
	}
	button {
		padding: 4px 8px;
		margin-left: 10px;
		font-size: normal;
	}
}

ul#search-results {
	list-style-type: none;
  a {
    text-decoration-color: black;
  }
}


/**** BLOG FORMATTING ****/
div.post {
  img {width: 80%;}
  iframe {width: 100%;}
}

div.blog img{
   display: none;
}

div#posts {
  margin-right: 180px;
}

div#contribute {
  position:fixed;
  right: 30px;
  // border: 2px $base solid;
  // border-radius: 15px;
  width: 180px;
  // padding: 5px 12px;
  // background-color: $base;
  h5 {font-weight: 400;}
  hr {margin-top: 8px;}
}
@media (max-width: 800px) {
  div#contribute {
    position: static;
  }
  div.toc {
    margin-right: 0px;
  }
}




/**** FOOTER ****/
footer {
  min-height: 250px;
  width: 100%;
  // margin-top: 100px;
  padding-top: 40px;
  position: absolute;
  bottom: 0;
  background-color: $base;
  box-shadow: 0 0 5px 0 rgba(0,0,0,0.2);
  color: grey;
  p {
    line-height: 15px;
  }
}

@media (max-width: 576px) {
  body {margin-bottom: 575}
}
