.accordion {
  details {
    border-block-end-width: var(--border);
    font-size: var(--text-sm);
    overflow: hidden;

    &::details-content {
      block-size: 0;
      transition-behavior: allow-discrete;
      transition-duration: var(--time-200);
      transition-property: content-visibility block-size;
    }

    &[open]::details-content {
      block-size: auto;
    }
  }

  summary {
    align-items: center;
    cursor: default;
    display: flex;
    font-weight: var(--font-medium);
    padding-block: var(--size-4);

    &:hover {
      text-decoration: underline;
    }

    &:focus-visible {
      outline: var(--border-2) auto var(--color-selected-dark);
    }

    &::-webkit-details-marker {
      display: none;
    }

    &::after {
      background-image: url("/assets/chevron-down-e4b9f07f.svg");
      background-size: cover;
      block-size: var(--size-4);
      content: "";
      filter: var(--color-filter-text);
      inline-size: var(--size-4);
      margin-inline-start: auto;
      transition: transform var(--time-200);
    }

    details[open] > &::after {
      transform: var(--rotate-180);
    }
  }
}

.accordion--compact {
  details:last-child {
    border-block-end-width: 0;
  }

  summary {
    cursor: pointer;
    padding: var(--size-2) var(--size-3);

    &:hover {
      background-color: rgb(from var(--color-border-light) r g b / 0.3);
      text-decoration: none;
    }
  }

  details[open] > summary {
    background-color: rgb(from var(--color-border-light) r g b / 0.3);
  }
}

@media (prefers-reduced-motion: reduce) {
  .accordion details::details-content,
  .accordion summary::after {
    transition-duration: 0.01ms;
  }
}
