/* Core styles/functionality */
.tab {
  position: relative;
  margin-bottom: 10px;
}

.tab input {
  position: absolute;
  opacity: 0;
  z-index: -1;
}

.tab-content {
  max-height: 0;
  overflow: hidden;
  transition: all 0.35s;
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.8);
}

.tab input:checked~.tab-content {
  max-height: 1000px;
}

/* Visual styles */
.accordion {
  color: var(--primary);
  overflow: hidden;
}

.tab-label,
.tab__close {
  display: flex;
  color: #fff;
  background: var(--primary);
  cursor: pointer;
}

.tab-label {
  justify-content: space-between;
  padding: 1rem;
  background-color: #eb759b;
  background-color: rgba(235, 117, 155, 0.9);  
}

.tab-label::after {
  content: "\276F";
  width: 1em;
  height: 1em;
  text-align: center;
  transform: rotate(90deg);
  transition: all 0.35s;
}

.tab input:checked+.tab-label::after {
  transform: rotate(270deg);
}

.tab-content p {
  margin: 0;
  padding: 1rem;
}

.tab__close {
  justify-content: flex-end;
  padding: 0.5rem 1rem;
  font-size: 0.75rem;
}

/* Arrow animation */
.tab input:not(:checked)+.tab-label:hover::after {
  animation: bounce .5s infinite;
}

@keyframes bounce {
  25% {
    transform: rotate(90deg) translate(.25rem);
  }

  75% {
    transform: rotate(90deg) translate(-.25rem);
  }
}