.classifications {
  margin: 1rem 0 1.5rem;
  border: 1px solid var(--bs-border-color, currentColor);
  border-radius: 10px;
  padding: 12px;
  color: var(--bs-body-color, inherit);
  font-family: inherit;

  .classifications__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0;
    color: currentColor;
    cursor: pointer;
    list-style: none;

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

    &::marker {
      content: "";
    }

    &:focus-visible {
      outline: 2px solid var(--bs-primary, currentColor);
      outline-offset: 3px;
    }
  }

  .classifications__question {
    font-size: 0.85em;
    font-weight: 600;
  }

  .classifications__title {
    font-size: inherit;
    font-weight: 700;
    text-transform: lowercase;
  }

  .classifications__caret {
    width: 0.55rem;
    height: 0.55rem;
    flex: 0 0 auto;
    margin-right: 10px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-0.15rem) rotate(45deg);
    transition: transform 220ms ease;
  }

  &[open] .classifications__caret {
    transform: translateY(0.15rem) rotate(225deg);
  }

  .classifications__panel {
    display: grid !important;
    grid-template-rows: 1fr;
    border: 1px solid var(--bs-border-color, currentColor);
    border-radius: 5px;
    padding: 12px;
    background: var(--bs-light-bg-subtle, var(--bs-tertiary-bg, transparent));
    margin-top: 10px;
  }

  .classifications__content {
    min-height: 0;
  }

  .classification {
    padding: 0.35rem 0;

    .classification__heading {
      margin: 0 0 0.4rem;
      font-size: 0.8em;
      font-weight: 600;
    }

    .classification__prefix,
    .classification__source {
      font-size: inherit;
    }

    .classification__list {
      margin: 0;
      padding-left: 1.25rem;
    }

    .classification__item {
      padding: 0.1rem 0;
      font-size: 0.75em;
    }

    .classification__description {
      font-size: inherit;
      opacity: 0.8;
    }
  }

  /* CSS Grid fallback for browsers without the details-content pseudo-element. */
  .classifications__content {
    overflow: hidden;
  }

  .classifications__panel {
    grid-template-rows: 0fr;
    transition: grid-template-rows 260ms ease;
  }

  &[open] .classifications__panel {
    grid-template-rows: 1fr;
  }
}

@supports selector(details::details-content) {
  .classifications {
    interpolate-size: allow-keywords;

    &::details-content {
      height: 0;
      overflow: clip;
      transition:
        height 260ms ease,
        content-visibility 260ms allow-discrete;
    }

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

    .classifications__panel {
      grid-template-rows: 1fr;
      transition: none;
    }

    .classifications__content {
      overflow: visible;
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .classifications {
    .classifications__caret,
    .classifications__panel,
    &::details-content {
      transition: none;
    }
  }
}
