* {
  box-sizing: border-box
}

body {
  position: static;
  padding: 0 2rem;
  font-family: 'Dosis', sans-serif;
  line-height: 1.6;
  color: #666;
  background: #F6F6F6;
}

main {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

header {
  text-align: center;
}

.logo {
  display: block;
  margin: 1rem auto;
  width: 10em;
}

footer .logo {
  max-width: 15em;
}

/* overview page */
h1 {
  text-align: center;
  padding: 1rem 2rem;
  background-image: linear-gradient(120deg, #fbc2eb 0%, #a6c1ee 100%);
  margin: 0 0 2rem 0;
  font-size: 1.2rem;
  color: white;
}

p {
  padding: 0 2.5rem 2.5rem;
  margin: 0;
}

a {
  margin: 0;
  padding: 0;
  text-decoration: none;
  color: #000;
}

article {
  margin: 1rem;
  background: white;
  box-shadow: 2px 4px 25px rgba(0, 0, 0, .1);
  border-radius: 12px;
  overflow: hidden;
  transition: all .2s linear;
}

article:hover {
  box-shadow: 2px 8px 45px rgba(0, 0, 0, .15);
  transform: translate3D(0, -2px, 0);
}

/* detail page */
section {
  text-align: center;
  grid-column: span 3;
  margin-left: 10em;
  margin-right: 10em;
}

section > h1 {
  background: none;
  color: #000;
  margin: 1.5rem 0;
  padding: 0;
}

section > h3 {
  padding: 0;
  margin: 1rem 0 0;
}

section > p {
  padding: .8rem 0;
}

section > a {
  background-image: linear-gradient(120deg, #fbc2eb 0%, #a6c1ee 100%);
  padding: .5rem 1rem;
  display: block;
  margin-top: 1rem;
  color: #fff;
  border-radius: 10px;
}

/* loading state */
#spinner {
  grid-column: span 3;
  width: 40px;
  height: 40px;
  position: relative;
  margin: 100px auto;
}

.double-bounce1, .double-bounce2 {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #333;
  opacity: 0.6;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-animation: sk-bounce 2.0s infinite ease-in-out;
  animation: sk-bounce 2.0s infinite ease-in-out;
}

.double-bounce2 {
  -webkit-animation-delay: -1.0s;
  animation-delay: -1.0s;
}

@-webkit-keyframes sk-bounce {
  0%, 100% {
    -webkit-transform: scale(0.0)
  } 50% {
    -webkit-transform: scale(1.0)
  }
}

@keyframes sk-bounce {
 0%, 100% {
   transform: scale(0.0);
   -webkit-transform: scale(0.0);
 } 50% {
   transform: scale(1.0);
   -webkit-transform: scale(1.0);
 }
}

/* tablet */
@media (max-width: 60em) {
  main {
    grid-template-columns: repeat(2, 1fr);
  }

  article {
    min-height: 40vh;
    max-height: 60vh;
  }

  section {
    text-align: center;
    grid-column: span 2;
    margin-left: 5em;
    margin-right: 5em;
  }

}

/* mobile */
@media (max-width: 42em) {
  main {
    grid-template-columns: 1fr;
  }

  article {
    min-height: 30vh;
    max-height: 50vh;
  }

  section {
    text-align: center;
    grid-column: span 1;
    margin-left: 2em;
    margin-right: 2em;
  }
}
