.p-section-faq {
  --spacing: var(--v-spacing__sm);
  --size-icon: 2.5rem;
  --padding: 1rem;

  display: flex;
  flex-wrap: wrap;

  margin: 0 calc( var(--spacing) / -2 );
  row-gap: 0.5rem;
}

.p-section-faq__group {
  display: flex;
  flex-wrap: wrap;
  row-gap: 0.5rem;

  flex: 0 0 100%;
}

.p-section-faq__item {
  flex: 0 0 100%;
  border-radius: var(--v-border-radius__sm);
  border: 1px solid var(--v-color__5--alt6);
  overflow: hidden;
  padding: 0 calc( var(--spacing) / 2 );
}

.p-section-faq__item.is-opened {
  border-color: var(--v-color__5--alt3);
}

.p-section-faq__item-title {
  background-color: var(--v-color__2--alt1);

  padding: var(--padding) var(--padding) var(--padding) calc( ( var(--padding) * 1 ) + var(--size-icon) );
  cursor: pointer;
  position: relative;
  transition: var(--v-transition__default);
  font-weight: var(--v-font-weight__default--bold);
  line-height: 1.2;
}

.p-section-faq__item.is-opened .p-section-faq__item-title {
  background-color: var(--v-color__5--alt3);
  color: var(--v-color__2);
}

.p-section-faq__item-title::after {
  --size: var(--size-icon);

  background-color: var(--v-color__2);
  border-radius: 0px;

  transition: var(--v-transition__default);
  content: "+";
  position: absolute;
  z-index: 10;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--size);
  height: var(--size);
  font-size: 150%;
  color: var(--v-color__light);
  font-weight: var(--v-font-weight__default--bold);
}

.p-section-faq__item.is-opened .p-section-faq__item-title::after {
  content: "-";
}

.p-section-faq__item-content {
  visibility: hidden;
  overflow: hidden;
  transition: var(--v-transition__default);
}

.p-section-faq__item-content-inner {
  padding: calc( var(--padding) / 2 ) 0;
}

.p-section-faq__item:not(.is-opened) .p-section-faq__item-content {
  height: 0 !important;
}

.p-section-faq__item.is-opened .p-section-faq__item-content {
  visibility: visible;
}

@media (min-width: 1000px) {
  .p-section-faq__group {
    flex: 0 0 50%;
  }

  .p-section-faq__item-title {
    font-size: 110%;
  }
}
