/* --------------------------fonts------------------------- */

  @font-face {
    font-family: 'RobotoSlab';
    src: url('crab-fonts/RobotoSlab-Light.ttf');
    font-weight: 300;
   }

   @font-face {
    font-family: 'Roboto';
    src: url('crab-fonts/Roboto-Light.ttf');
    font-weight: 300;
   }

   @font-face {
    font-family: 'FrankRuhlLibre';
    src: url('crab-fonts/FrankRuhlLibre-Light.ttf');
    font-weight: 300;
   }

   @font-face {
    font-family: 'SpecialFont';
    src: url('crab-fonts/AmaticSC-Bold.ttf');
    font-weight: 400;
   }
   
   @font-face {
    font-family: 'Smile';
    src: url('crab-fonts/NotoEmoji-VariableFont_wght.ttf');
    font-weight: 400;
   }

/* --------------------document sections-------------------- */

body {
 min-height: 100vh;
 font-family: "RobotoSlab", serif;
 font-size: 16px;
 font-weight: 300;
 line-height: 1.4em;
 background-color: #ffffff;
 color: #2d2d2d;
 margin: 0px;
}

header {
 width: 100%;
 height: 0px;
 margin: 0px;
}

nav {
 margin-left: auto;
 margin-right: auto;
}

footer {
  width: 100%;
  height: 40px;
  margin: 0px;
  margin-top: 80px;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
  text-align: center;
}

.mainsection {
 width: 100vw;
 max-width: 100%;
 height: auto;
 display: block;
 margin: auto;
 padding: 0px;
}

.contentsection {
  width: 100%;
  height: auto;
  display: block;
  margin: auto;
  margin-bottom: 20px;
 }
 
 .container {
  width: 80vw;
  height: auto;
  display: block;
  margin: auto;
  margin-top: 100px;
  margin-bottom: 40px;
  padding: 0px;
  text-align: center;
  box-sizing: border-box;
 }

/* --------------------font and styles-------------------- */

h1 {
  font-family: 'SpecialFont', serif;
  font-size: 2.5rem;
  font-weight: 300;
  opacity: 0.4;
  margin: 0px;
  padding: 10px 10px 50px 15vw;
  color: ghostwhite;
}

h2 {
  font-family: 'SpecialFont', serif;
  font-size: 3.0em;
  font-weight: 300;
  opacity: 0.8;
  margin: 0px;
}

h3 {
  font-family: 'SpecialFont', serif;
  font-size: 2.4em;
  font-weight: 300;
  opacity: 0.8;
  margin: 0px;
  margin-bottom: 10px;
}

h4 {
  font-family: 'SpecialFont', serif;
  font-size: 2.0em;
  font-weight: 300;
  line-height: 1.0em;
  opacity: 0.8;
  margin: 0px;
  margin-bottom: 5px;
}

h5 {
  font-family: 'SpecialFont', serif;
  font-size: 1.4em;
  font-weight: 400;
  line-height: 1.2em;
  opacity: 1;
  margin: 0px;
}

p {
  font-family: "Roboto", serif;
  font-size: 1em;
  font-weight: 400;
  line-height: 1.4em;
  hyphens: manual;
}

.tiny {
  font-family: "Roboto", serif;
  font-size: 0.8em;
  font-weight: 300;
  line-height: 1.2em;
  hyphens: manual;
}

.smile {
  font-family: "Smile";
  font-size: 1em;
  font-weight: 400;
  line-height: 1em;
}

a {
  text-decoration: none;
  color: #ea3e14;
}

a:focus {
  text-decoration: underline;
}

.separationLine {
  width: 80vw;
  max-width: 2000px;
  height: 1px;
  display: block;
  background-color: #2d2d2d;
  margin: auto;
  margin-top: 40px;
  margin-bottom: 60px;
}

.theme-onTheWay {
  background: linear-gradient(to bottom, #eff7e8 300px, #23aea9 600px, #23aea9 90%, #f1ddc5 100%);
}

.theme-default {
  background: linear-gradient(to bottom, #f1e9c5 190px, #0199b4 800px, #67b9a5 90%, #f1ddc5 100%);
}

.backgroundImage {
  width: 100vw;
  margin: 0px;
  padding: 0px;
  position: fixed;
  opacity: 0.4;
  top: 0;
  left: 0;
  z-index: -1;
}

.highlighted {
  background-color: #ea3e14;
}

/* -------------------- logo and Icons -------------------- */

.logo {
  width: 88px;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.logo-title {
  width: 100%;
  font-family: 'FrankRuhlLibre', sans-serif;
  font-size: 2.5em;
  text-align: center;
  display: block;
  margin-top: 20px;
  margin-left: auto;
  margin-right: auto;
  color: #2d2d2d;
}

.logo-subtitle {
  width: 100%;
  font-family: 'Roboto', sans-serif;
  font-size: 1em;
  text-align: center;
  display: block;
  margin-top: 10px;
  margin-left: auto;
  margin-right: auto;
  color: #2d2d2d;
}

.icon {
  width: 24px;
  height: 24px;
  line-height: 16px;
  display: inline-block;
  margin: 5px;
  padding-top: 3px;
  text-align: center;
  box-sizing: border-box;
  border: none;
  border-radius: 6px;
  background-color: #dddddd56;
  background: linear-gradient(to bottom, #dddddd3f 0%, #dddddd80 100%);
 }

 .iconImage {
   width: 14px;
   opacity: 0.9;
 }

 .ccImage {
   height:22px;
   margin-left:3px;
   vertical-align:text-bottom;
 }

/* ------------------- Tiles ---------------------*/

.tileContainer {
  width: 82vw;
  height: auto;
  margin: auto;
  margin-top: 10px;
  padding: 0px;
  box-sizing: border-box;
 }

 .tile {
   width: 20vw;
   height: 20vw;
   display: inline-block;
   margin: 0px;
   padding: 0px;
   box-sizing: border-box;
   border: none;
 }

 .innerTile {
   width: 90%;
   height: 90%;
   margin: auto;
   margin-top: 5%;
   background-color: #2d2d2d00;
   padding: 15px;
   box-sizing: border-box;
   border: none;
   border-radius: 10px;
   text-align: center;
   text-overflow: hidden;
   overflow: hidden;
   hyphens: auto;
   position: relative;
   box-shadow: 0px 2px 5px rgba(78, 44, 38, 0.5);
   transition: box-shadow 0.1s ease-in;
 }

 .innerTile:hover {
  box-shadow: 0px 4px 10px rgba(78, 44, 38, 0.5);
}

 .tileInfo {
   width: 150%;
   position: absolute;
   left: -25%;
   bottom: 0px;
   z-index: 5;
   color: #eff7e8;
 }

 .tileImage {
   height: 150%;
   position: absolute;
   top: -25%;
   left: -25%;
   z-index: 4;
 }

 /* -------------------- Posts -------------------- */

 .post {
  width: 80vw;
  height: auto;
  max-width: 500px;
  display: inline-block;
  margin: 0px 15px 40px 15px;
  padding: 15px;
  text-align: left;
  box-sizing: border-box;
  hyphens: auto;
  border: none;
  border-radius: 10px;
  background-color: #dddddd56;
  background: linear-gradient(to bottom, #dddddd3f 60%, #dddddd80 100%);
  vertical-align: top;
 }

 .wide {
   display: block;
   margin-right: auto;
   margin-left: auto;
 }

 .postImage {
  height: 60px;
  float: right;
  margin: 0;
}

.postHeader {
  min-height: 50px;
  line-height: 2.5em;
}

.postFooter {
  min-height: 30px;
  text-align: right;
  padding-right: 30px;
}

/* -------------------- Highlights --------------------- */

.highlightBox {
  width: 500px;
  display: block;
  margin-right: auto;
  margin-left: auto;
}

.highlightBar {
  width: auto;
  height: auto;
  display: inline-block;
  margin: 0px 15px 15px 15px;
  padding: 5px 35px;
  text-align: center;
  box-sizing: border-box;
  hyphens: auto;
  border: none;
  border-radius: 10px;
  background-color: #dddddd80;
  background: linear-gradient(to bottom, #dddddd3f 0%, #dddddd80 100%);
  vertical-align: top;
  position: relative;
}

.highlightBar:nth-of-type(3n+1){
  margin-left: 60px;
}

.highlightShine {
    width: 100%;
    height: 100%;
    background-color: #ffffff00;
    border: none;
    border-radius: 16px;
    position: absolute;
    top: 0px;
    left: 0px;
    z-index: -1;
    transition: all 0.15s ease;
  }
  
  .highlightBar:hover .highlightShine {
    width: 110%;
    height: 120%;
    top: -10%;
    left: -5%;
    background-color: #ffffff33;
    filter: blur(6px);
  }

/* -------------------- Detail Page -------------------- */

.imageContainer {
  width: auto;
  max-width: 500px;
  height: auto;
  display: inline-block;
  margin: 0px 15px 40px 15px;
  padding: 15px;
  box-sizing: border-box;
  border: none;
  border-radius: 10px;
  background-color: #dddddd56;
  background: linear-gradient(to bottom, #dddddd3f 0%, #dddddd80 100%);
  vertical-align: top;
}

.imageContainer > p {
  text-align: left;
}

.fullImage {
  max-width: 100%;
  max-height: 90vh;
  display: block;
  margin: 20px auto;
  border: none;
  border-radius: 10px;
}

.subImage {
  max-width: 50%;
  max-height: 60vh;
  display: inline-block;
  margin: 0px 10px 20px 10px;
  border: none;
  border-radius: 10px;
}

.halfImage {
  max-width: 45%;
  max-height: 40vh;
  display: inline-block;
  margin: 0px 10px 30px 10px;
  border: none;
  border-radius: 10px;
  vertical-align: bottom;
}

.smallImage {
  max-width: 29%;
  display: inline-block;
  margin: 10px 5px;
  border: none;
  border-radius: 10px;
}

/*--------------------- overwrites --------------------------------*/

.block {
  display: block;
  margin: 0px auto 40px auto;
}

/* --------------------adaptive optimizations-------------------- */

@media only screen and (min-width: 2000px){
  .tileContainer {
    width: 82vw;
   }
  .tile {
    width: 16vw;
    height: 16vw;
  } 
}

@media only screen and (min-width: 2400px){
  .tileContainer {
    width: 74vw;
   }
  .tile {
    width: 12vw;
    height: 12vw;
  } 
}

@media only screen and (max-width: 1440px){
  .tileContainer {
    width: 80vw;
   }
  .tile {
    width: 26vw;
    height: 26vw;
  } 
  .fullImage {
    max-width: 100%;
    max-height: 90vh;
    margin: 0px auto 30px auto;
  }
  .imageContainer > .halfImage {
    max-width: 45%;
  }
  .post > .halfImage {
    max-width: 45%;
  }
  .post, .imageContainer{
    max-width: 36vw;
  }
  .smallImage{
    max-width: auto;
  }
}

@media only screen and (max-width: 1020px){
  .tileContainer {
    width: 80vw;
   }
  .tile {
    width: 39vw;
    height: 39vw;
  }
  .subImage, .halfImage {
    max-width: 100%;
    max-height: 60vh;
    margin: 0px 5px 30px 5px;
  }
  .post, .imageContainer, .highlightBox {
    max-width: 90vw;
    margin: 0px auto 30px auto;
   }
}

@media only screen and (max-width: 760px){
  .container {
    margin-top: 40px;
    margin-bottom: 20px;
   }
  .separationLine {
    margin-top: 40px;
    margin-bottom: 20px;
  }
  .tileContainer {
    width: 90vw;
   }
  .tile {
    width: 90vw;
    height: 90vw;
  }
  .imageContainer > .halfImage {
    max-width: 85%;
    max-height: 100vh;
  }
}