.accordion {
  display: flex;
  flex-direction: column;
  gap: var(--sds-size-space-400);
  width: 100%;
}

.accordion-item {
  --border-radius: var(--sds-size-radius-200);
  background: var(--sds-color-background-default-secondary);
  box-shadow: inset 0 0 0 var(--sds-size-stroke-border)
    var(--sds-color-border-default-default);
  border-radius: var(--border-radius);
  color: var(--sds-color-text-default-default);
  display: flex;
  flex-direction: column;
  line-height: var(--global-line-height-body);
  width: 100%;

  &:has(.accordion-item-title > button[data-hovered]) {
    background: var(--sds-color-background-default-secondary-hover);
  }

  &:has(.accordion-item-title > button[data-focus-visible]) {
    outline: none;
    position: relative;
    --offset: calc(var(--sds-size-stroke-border) * 2);
    &::before {
      content: "";
      border-radius: calc(var(--border-radius) + var(--offset));
      bottom: calc(-1 * var(--offset));
      box-shadow: 0 0 0 var(--global-focus-ring-size)
        var(--global-focus-ring-color);
      left: calc(-1 * var(--offset));
      position: absolute;
      right: calc(-1 * var(--offset));
      top: calc(-1 * var(--offset));
    }
  }

  .accordion-item-title > button {
    align-items: center;
    color: var(--sds-color-text-default-default);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    padding: var(--sds-size-space-400);
    width: 100%;
  }

  .accordion-item-title,
  .accordion-item-title > button {
    font: var(--sds-font-body-strong);
  }

  .accordion-item-indicator {
    --icon-fill: var(--sds-color-icon-default-default);
  }

  .accordion-item-content {
    max-height: 0;
    overflow-y: hidden;
  }

  &[data-expanded] {
    background: var(--sds-color-background-default-default);

    > .accordion-item-title > button {
      padding-bottom: var(--sds-size-space-200);

      > .accordion-item-indicator {
        transform: scaleY(-1) translateY(2px);
      }
    }

    &:has(.accordion-item-title > button[data-hovered]) {
      background: var(--sds-color-background-default-default-hover);
    }

    > .accordion-item-content {
      margin-left: auto;
      margin-right: auto;
      max-height: initial;
      padding-bottom: var(--sds-size-space-400);
      width: calc(100% - var(--sds-size-space-400) * 2);
    }
  }
}
