.tabs {
  margin: 3em 0;
  margin-right: .5em;
  position:relative;
  width: 84%;
  background: var(--bg-primary);
  padding:1em 20px;
}
.tabs .tab-header {
  margin-top: 1.25em;
  height:4.5em;
  display:flex;
  align-items:center;
}
.tabs .tab-header > div {
  width:calc(100% / 4);
  text-align:center;
  color: var(--text-primary);
  font-weight:600;
  cursor:pointer;
  outline:none;
}
.tabs .tab-header > div > i {
  display:block;
  margin-bottom:5px;
  font-size: 1.2em;
}
.tabs .tab-header > div.active {
  color:var(--fa-p);
}
.tabs .tab-indicator {
  margin-top: .5em;
  position:relative;
  width:calc(80% / 4);
  margin-left: 2.5%;
  height:4px;
  background:var(--fa-p);
  left:0px;
  border-radius:0.25rem;
  transition:all 500ms ease-in-out;
}
.tabs .tab-body {
  position:relative;
  height:calc(100% - 60px);
  padding:2em 1em;
  height: auto;
  overflow: hidden;
}
.tabs .tab-body > div {
  display: none;
  top:-200%;
  opacity:0;
}
.tabs .tab-body > div.active {
  display: block;
  padding-bottom: 2.5em;
  top:0;
  opacity:1;
  transform:scale(1);
  animation: zoomIn 0.45s ease-in-out;
}

@keyframes zoomIn {
  from {
    opacity: 0;
    transform:scale(0.9);
  }
  to {
    opacity: 1;
    transform:scale(1);
  }
}

@media (max-width:915px) {
  .tabs .tab-header {
      height: 13rem;
      flex-direction: column;
  }
  .tabs .tab-header > div {
    display: flex;
    flex-flow: column wrap;
    justify-content: space-around;
    align-items: center;
    width: 50%;
    margin-bottom: 1em;
  }
}

@media (max-width:900px) {
  .tabs .tab-indicator {
    margin: auto;
    display: none;
  }
}

@media (max-width:480px) {
  .tabs {margin-bottom: 6em;}
  .tabs .tab-header > div {
    padding-bottom: 4px;
  }

  .tabs .tab-header > div.active {
    border-bottom: 4px solid var(--fa-s);
    transition:border-bottom 300ms ease;
  }
}