.accordion summary {
  display: flex;
  align-items: center;
  position: relative;
  line-height: 1.4;
  padding: var(--space-3-5) 0;
  cursor: pointer;
  scroll-margin-top: calc(var(--header-height, 100px) + var(--space-6));
  transition: color var(--duration-fast) var(--ease-default);
}

.accordion summary:hover .accordion__title {
  color: var(--color-primary);
}

.accordion .summary__title {
  display: flex;
  align-items: center;
  gap: var(--space-2-5);
  flex: 1;
}

.accordion .icon-caret,
.accordion .icon-plus,
.accordion .icon-minus {
  position: absolute;
  inset-inline-end: 0;
  top: calc(50% - var(--icon-xs) / 2);
  width: var(--icon-xs);
  height: var(--icon-xs);
  flex-shrink: 0;
  transform-origin: center;
  transition: transform var(--duration-normal) var(--ease-out-expo),
    opacity var(--duration-fast) var(--ease-default);
}

.accordion details:not([open]) > summary .icon-plus,
.accordion details.is-closing > summary .icon-plus {
  transform: rotate(0deg);
  opacity: var(--opacity-100);
}

.accordion details:not([open]) > summary .icon-minus,
.accordion details.is-closing > summary .icon-minus {
  transform: rotate(-90deg);
  opacity: var(--opacity-0);
  pointer-events: none;
}

.accordion details:not([open]) > summary .icon-caret,
.accordion details.is-closing > summary .icon-caret {
  transform: rotate(0deg);
}

.accordion + .accordion {
  margin-top: 0;
  border-top: none;
}

.accordion {
  margin-top: var(--space-4);
  margin-bottom: 0;
  border-top: none;
  border-bottom: var(--border-hairline) solid rgba(var(--color-foreground), 0.08);
}

.accordion__title {
  display: inline-block;
  max-width: calc(100% - var(--space-12));
  min-height: var(--space-4);
  margin: 0;
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  color: rgb(var(--color-foreground));
  word-break: break-word;
  transition: color var(--duration-fast) var(--ease-default);
}

.accordion .svg-wrapper {
  align-self: center;
  fill: rgb(var(--color-foreground));
  height: var(--icon-md);
  width: var(--icon-md);
  flex-shrink: 0;
}

.accordion details[open]:not(.is-closing) > summary .icon-caret {
  transform: rotate(180deg);
}

.accordion details[open]:not(.is-closing) > summary .icon-plus {
  transform: rotate(90deg);
  opacity: var(--opacity-0);
  pointer-events: none;
}

.accordion details[open]:not(.is-closing) > summary .icon-minus {
  transform: rotate(0deg);
  opacity: var(--opacity-100);
}

.accordion__content {
  margin-bottom: var(--space-4);
  word-break: break-word;
  overflow-x: auto;
  padding: 0 var(--space-1);
  font-size: var(--font-size-sm);
  line-height: 1.5;
  color: rgba(var(--color-foreground), var(--opacity-80));
  will-change: opacity, transform;
}

.accordion__content img {
  max-width: 100%;
}
