.accordion {
  background-color: transparent;
  border: none;
  margin-bottom: 1rem;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: none;
}

.accordion-header {
  padding: calc(var(--page-space) * 1.25);
  background-color: var(--grey_25);
  cursor: pointer;
  transition: background-color 0.3s;
  user-select: none;
  color: var(--dark);
  display: flex;
  justify-content: space-between;
  align-items: center;
  letter-spacing: -0.3px;
  font-weight: bold;
  line-height: 1.2;
}

.accordion-header .subtitle {
  margin-right: 16px;
}

@media screen and (min-width: 1024px) {
  .accordion-header {
    padding: calc(var(--page-space) * 1.5);
  }
}

.accordion-content {
  padding: 0 calc(var(--page-space) * 1);
  background-color: var(--grey_25);
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s ease, padding 0.5s ease;
}

@media screen and (min-width: 1024px) {
  .accordion-content {
    padding: 0 calc(var(--page-space) * 1.5);
  }
}

.accordion-content .answer {
  margin: calc(var(--page-space) * 0.75) 0;
  line-height: 1.4;
}

@media screen and (min-width: 1024px) {
  .accordion-header:hover .icon::before,
  .accordion-header:hover .icon::after {
    background-color: var(--accent_100);
    transition: all 0.3s ease-in-out;
  }
}

.accordion.active .accordion-content {
  max-height: 4000px;
  padding: calc(var(--page-space) * 0.75) calc(var(--page-space) * 1);
}

@media screen and (min-width: 1024px) {
  .accordion.active .accordion-content {
    padding: calc(var(--page-space) * 0.75) calc(var(--page-space) * 1.5);
  }
}

/* icon */
.icon {
  position: relative;
  width: 16px;
  height: 16px;
  display: inline-block;
  transition: transform 0.3s ease;
  flex-shrink: 0;
}

@media screen and (min-width: 1024px) {
  .icon {
    width: 20px;
    height: 20px;
  }
}

.icon::before,
.icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: var(--accent_50);
  transition: all 0.3s ease;
}

.icon::before {
  transform: translateY(-50%) rotate(0deg);
}

.icon::after {
  transform: translateY(-50%) rotate(90deg);
}

.accordion.active .icon {
  transform: rotate(45deg);
  transition: transform 0.3s ease;
}
