/* Tabs */
button.tabs__button {
  font-size: var(--f-size-l-2);
  font-family: var(--f-family);
  color: rgb(var(--c-neutral-dark));
  text-transform: uppercase;
  -webkit-box-shadow: inset 0 -2px 0 0 rgb(var(--c-neutral-light), 0.4);
  box-shadow: inset 0 -2px 0 0 rgb(var(--c-neutral-light), 0.4);
  display: block;
  padding: 0 0.6rem 0.3rem 0.6rem;
  border: none;
  position: relative;
  outline: none;
  background: transparent;
}

.tabs__button.-active {
  color: rgb(var(--c-primary));
  -webkit-box-shadow: inset 0 -2px 0 0 rgb(var(--c-primary));
  box-shadow: inset 0 -2px 0 0 rgb(var(--c-primary));
}

.tabs__button::after {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  left: 50%;
  bottom: 0;
  border-bottom: 2px solid rgb(var(--c-neutral-dark));
  -webkit-transition: opacity 0.05s 0.1s, width 0.2s 0.4s, height 0.2s 0.2s;
  -moz-transition: opacity 0.05s 0.1s, width 0.2s 0.4s, height 0.2s 0.2s;
  -o-transition: opacity 0.05s 0.1s, width 0.2s 0.4s, height 0.2s 0.2s;
  transition: opacity 0.05s 0.1s, width 0.2s 0.4s, height 0.2s 0.2s;
  transform: translateX(-50%) translateY(0);
  -ms-transform: translateX(-50%) translateY(0);
  -moz-transform: translateX(-50%) translateY(0);
  -webkit-transform: translateX(-50%) translateY(0);
}

.page .tabs__nav {
  gap: 0;
  margin-bottom: 4rem;
  justify-content: center;
}

.tabs__nav button {
  border-radius: 0;
}

@media (hover: hover) {
  .tabs__button:hover {
    background: transparent;
    color: rgb(var(--c-neutral-dark));
  }

  .tabs__button.-active:hover::after {
    border-bottom: 1px solid rgb(var(--c-primary));
  }

  .tabs__button.-active:hover {
    color: rgb(var(--c-primary));
  }

  .tabs__button:hover::after {
    opacity: 1;
    width: 100%;
    height: 100%;
    -webkit-transition: opacity 0.05s, width 0.2s, height 0.2s 0.2s;
    -moz-transition: opacity 0.05s, width 0.2s, height 0.2s 0.2s;
    -o-transition: opacity 0.05s, width 0.2s, height 0.2s 0.2s;
    transition: opacity 0.05s, width 0.2s, height 0.2s 0.2s;
  }
}

/* Tabs vertical */
.tabs.-vertical {
  grid-gap: 0 !important;

  & .tabs__nav {
    margin-bottom: 0 !important;
  }

  & .tabs__button {
    text-align: left;
    background: rgb(var(--c-neutral-lighter));
    color: rgb(var(--c-primary));
    font-size: var(--f-size);
    padding: 0.6rem 1rem;
    width: 100%;
    border: 1px solid rgb(var(--c-neutral-light));
    box-shadow: none;
    border-bottom: none;
    border-left: 3px solid rgb(var(--c-neutral-light));

    &.-active {
      background: rgb(var(--c-neutral-lightest));
      border-left: 3px solid rgb(var(--c-primary));
    }
  }

  & .tabs__content {
    background: rgb(var(--c-neutral-lighter));
    padding: 2rem;
    border: 1px solid rgb(var(--c-neutral-light));
  }
}

@media (hover: hover) {
  .tabs.-vertical .tabs__button:hover {
    background: rgb(var(--c-neutral-lightest));
    border-left: 3px solid rgb(var(--c-primary));

    &::after {
      display: none;
    }
  }
}

/* Accordion vertical */
.accordion.-vertical .accordion__item:not(:first-child) .accordion__header {
  margin-top: var(--g-gap-s);
}

.accordion.-vertical .accordion__item {
  background: transparent;
  border-bottom: 1px solid rgb(var(--c-neutral-light));
}

.accordion.-vertical .accordion__item:first-child {
  border-top: 1px solid rgb(var(--c-neutral-light));
}

.frame-bg-grey .accordion.-vertical .accordion__item {
  background: rgb(var(--c-neutral-lightest));
}

.accordion.-vertical .accordion__content {
  padding: 1.2rem;
}

.accordion.-vertical .accordion__button {
  background: transparent;
  color: rgb(var(--c-neutral-darker));
  font-weight: var(--f-weight);
}

button.accordion__button {
  border: none;
}

.accordion.-vertical .accordion__header::after {
  color: rgb(var(--c-neutral-darker));
}

/* Accordion horizontal */
.accordion.-horizontal .accordion__content {
  padding: 2rem;
}

.accordion.-horizontal .accordion__headertext {
  font-size: var(--f-size-l-3);
  font-weight: var(--f-weight-sb);
}

.accordion.-horizontal .accordion__button {
  background-color: rgb(var(--c-primary));
  color: rgb(var(--c-neutral-lightest));
}

.accordion.-horizontal .accordion__button {
  background: transparent;
  color: rgb(var(--c-primary));
  border: 2px solid rgb(var(--c-primary));
  font-weight: var(--f-weight-sb);
}

.accordion.-horizontal .accordion__buttontext {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 1.5rem 2rem;
  width: 100%;
  height: 100%;
  hyphens: none;
}

.accordion.-horizontal .accordion__header.-active + .accordion__content {
  background: rgb(var(--c-primary));
  color: rgb(var(--c-neutral-lightest));
  border-radius: var(--b-radius-s);
  overflow: hidden;
}

.accordion.-horizontal .accordion__header.-active + .accordion__content h2,
.accordion.-horizontal .accordion__header.-active + .accordion__content h3,
.accordion.-horizontal .accordion__header.-active + .accordion__content h4,
.accordion.-horizontal .accordion__header.-active + .accordion__content a {
  color: rgb(var(--c-neutral-lightest));
}

/* =============================================================================
   Media Queries
   ========================================================================== */

@media (min-width: 640px) {
  .tabs.-vertical {
    grid-template-columns: 1fr 3fr !important;

    & .tabs__button {
      border-right: none;

      &:last-child {
        border-bottom: 1px solid rgb(var(--c-neutral-light));
      }
    }
  }
}

@media (min-width: 800px) {
  /* Accordion horizontal */
  .accordion.-horizontal .accordion__buttontext {
    padding: 2rem 0.5rem;
  }
}
