/* FIXME: Cleanup CSS */

.horizontal-accordion {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;

  .horizontal-accordion-button-content.mobile {
    display: none;
  }

  .horizontal-accordion-buttons {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  &.purple {
    .horizontal-accordion-button {
      background-color: #fff;
      border-color: var(--sa-purple-300);

      &.active {
        background-color: var(--sa-purple-200);
        border-color: var(--sa-purple-400);
      }

      &:hover:not(.active),
      &:focus:not(.active) {
        background-color: var(--sa-purple-100);
        border-color: var(--sa-purple-300);
      }

      &:active {
        background-color: var(--sa-purple-300);
        border-color: var(--sa-purple-300);
      }
    }

    .horizontal-accordion-button-content,
    .horizontal-accordion-button-content.mobile {
      ul {
        ::marker {
          color: var(--sa-purple-400);
        }
      }
    }
  }

  &.pink {
    .horizontal-accordion-button {
      background-color: #fff;
      border-color: var(--sa-pink-300);

      &.active {
        background-color: var(--sa-pink-200);
        border-color: var(--sa-pink-400);
      }

      &:hover:not(.active),
      &:focus:not(.active) {
        background-color: var(--sa-pink-100);
        border-color: var(--sa-pink-300);
      }

      &:active {
        background-color: var(--sa-pink-300);
        border-color: var(--sa-pink-300);
      }
    }

    .horizontal-accordion-button-content,
    .horizontal-accordion-button-content.mobile {
      ul {
        ::marker {
          color: var(--sa-pink-400);
        }
      }
    }
  }

  &.green {
    .horizontal-accordion-button {
      background-color: #fff;
      border-color: var(--sa-green-300);

      &.active {
        background-color: var(--sa-green-200);
        border-color: var(--sa-green-400);
      }

      &:hover:not(.active),
      &:focus:not(.active) {
        background-color: var(--sa-green-100);
        border-color: var(--sa-green-300);
      }

      &:active {
        background-color: var(--sa-green-300);
        border-color: var(--sa-green-300);
      }
    }

    .horizontal-accordion-button-content,
    .horizontal-accordion-button-content.mobile {
      ul {
        ::marker {
          color: var(--sa-green-400);
        }
      }
    }
  }

  .horizontal-accordion-content {
    display: flex;
    flex-direction: column;

    @media (max-width: 768px) {
      display: block;
    }

    .horizontal-accordion-button-content {
      display: none;
      opacity: 0;
      transition: opacity 0.3s ease;

      font-size: 16px;
      line-height: 24px;
      font-family: "proxima_nova_rgregular", "Open Sans", sans-serif;
      color: var(--sa-sub-primary);

      padding: 16px 0;

      p {
        margin-bottom: 8px;
      }

      h1,
      h2,
      h3,
      h4,
      h5,
      h6 {
        font-family: "proxima_nova_semibold", "Open Sans", sans-serif;
        font-weight: 600;
        margin-top: 0px;
      }

      &.active {
        display: block;
        opacity: 1;
      }

      ul,
      ol {
        line-height: 26px;
        margin: 0;

        li {
          margin-bottom: 2px;
        }
      }

      ul {
        padding-left: 20px;

        ::marker {
          color: var(--sa-primary);
        }
      }

      ol {
        padding-left: 24px;
      }

      ul.fa-ul,
      ol.fa-ul {
        padding-left: 30px;
      }
    }

    /* Sliding animation for accordion panels */
    .horizontal-accordion-button-content {
      overflow: hidden;
      max-height: 0;
      transition: opacity 0.3s ease, padding 0.3s ease;
      opacity: 0;
      padding-top: 0;
      padding-bottom: 0;
      display: block !important; /* Always block for animation */
    }

    .horizontal-accordion-button-content.active {
      max-height: 1000px; /* Large enough for your content */
      opacity: 1;
    }
  }

  .horizontal-accordion-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 13px 16px;
    font-size: 20px;
    line-height: 30px;
    font-weight: 600;
    font-family: "proxima_nova_rgregular", "Open Sans", sans-serif;
    border-radius: 8px;
    width: 100%;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0px 5px 10px 0px rgba(104, 36, 0, 0.1);

    .horizontal-accordion-title-show {
      font-size: 14px;
      line-height: 24px;
      font-weight: 400;
    }

    .left {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .right {
      display: flex;
      align-items: center;
      gap: 8px;

      i {
        transition: transform 0.2s ease;

        @media (max-width: 768px) {
          transform: rotate(90deg);
        }
      }
    }

    background-color: #fff;
    border: 1px solid var(--sa-primary-200);

    &:hover,
    &:focus {
      background-color: var(--sa-primary-25);
      border-color: var(--sa-primary-300);
    }

    &.active {
      background-color: var(--sa-primary-200);
      border-color: var(--sa-primary);
      cursor: default;
      pointer-events: none;

      @media (max-width: 768px) {
        .right {
          i {
            transform: rotate(270deg);
          }
        }
      }
    }

    &:active {
      background-color: var(--sa-primary-300);
      border-color: var(--sa-primary-300);
    }

    i {
      font-size: 16px;
    }
  }

  .color-circle {
    width: 12px;
    height: 12px;
    border-radius: 100px;

    &.none {
      display: none;
    }

    &.primary-orange {
      background-color: var(--sa-primary);
    }

    &.orange-300 {
      background-color: var(--sa-primary-300);
    }

    &.orange-200 {
      background-color: var(--sa-primary-200);
    }

    &.orange-100 {
      background-color: var(--sa-primary-100);
    }

    &.orange-50 {
      background-color: var(--sa-primary-50);
    }

    &.orange-25 {
      background-color: var(--sa-primary-25);
    }

    &.neutral-300 {
      background-color: var(--sa-neutral-300);
    }

    &.neutral-200 {
      background-color: var(--sa-neutral-200);
    }

    &.neutral-100 {
      background-color: var(--sa-neutral-100);
    }

    &.neutral-50 {
      background-color: var(--sa-neutral-50);
    }

    &.neutral-25 {
      background-color: var(--sa-neutral-25);
    }

    &.yellow-400 {
      background-color: var(--sa-yellow-400);
    }

    &.yellow-200 {
      background-color: var(--sa-yellow-200);
    }

    &.yellow-100 {
      background-color: var(--sa-yellow-100);
    }

    &.purple-400 {
      background-color: var(--sa-purple-400);
    }

    &.purple-200 {
      background-color: var(--sa-purple-200);
    }

    &.purple-100 {
      background-color: var(--sa-purple-100);
    }

    &.green-400 {
      background-color: var(--sa-green-400);
    }

    &.green-200 {
      background-color: var(--sa-green-200);
    }

    &.green-100 {
      background-color: var(--sa-green-100);
    }

    &.white {
      background-color: var(--sa-white);
    }

    &.black {
      background-color: var(--sa-black);
    }

    &.pink {
      background-color: #ff8bc9;
    }
  }
}

@media (max-width: 768px) {
  .horizontal-accordion {
    grid-template-columns: 1fr;

    .horizontal-accordion-buttons {
      gap: 4px;
    }

    ul {
      ::marker {
        color: var(--sa-primary);
      }
    }
  }
  .horizontal-accordion-content {
    display: block;
  }
  .horizontal-accordion-button-content.desktop {
    display: none !important;
    max-height: 0 !important;
    opacity: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .horizontal-accordion-button-content.mobile {
    display: block !important;
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    padding-top: 0;
    padding-bottom: 0;
    transition: max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease;

    color: var(--sa-sub-primary);
    font-family: "proxima_nova_rgregular", "Open Sans", sans-serif;
    font-size: 16px;
    line-height: 24px;

    ul {
      padding-left: 21px;
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
      font-family: "proxima_nova_semibold", "Open Sans", sans-serif;
      font-weight: 600;
      margin-top: 0px;
    }
  }
  .horizontal-accordion-button-content.mobile.active {
    max-height: 1000px;
    opacity: 1;
    padding: 16px 0;
  }
}
