/**
 * @license EUPL-1.2+
 * Copyright Gemeente Amsterdam
 */

@use "../../common/hyphenation" as *;
@use "../../common/text-rendering" as *;

.ams-accordion {
  display: flex;
  flex-direction: column;
  gap: var(--ams-accordion-gap);

  @include hyphenation;
  @include text-rendering;
}

.ams-accordion__header {
  display: flex;
  margin-block: 0;
  margin-inline: 0;
}

@mixin reset-button {
  border: none;
  margin-block: 0; // [1]
  margin-inline: 0; // [1]

  // [1] Remove the margin in older Safari.
}

.ams-accordion__button {
  background-color: transparent;
  color: var(--ams-accordion-button-color);
  cursor: var(--ams-accordion-button-cursor);
  display: flex;
  font-family: var(--ams-accordion-button-font-family);
  font-size: var(--ams-accordion-button-font-size);
  font-weight: var(--ams-accordion-button-font-weight);
  gap: var(--ams-accordion-button-gap);
  inline-size: 100%;
  line-height: var(--ams-accordion-button-line-height);
  outline-offset: var(--ams-accordion-button-outline-offset);
  padding-block: var(--ams-accordion-button-padding-block);
  padding-inline: var(--ams-accordion-button-padding-inline);
  text-align: start;

  @include reset-button;

  &:hover {
    color: var(--ams-accordion-button-hover-color);
  }
}

.ams-accordion__icon svg {
  rotate: 0deg;
  transition: none;

  [aria-expanded="true"] & {
    rotate: -180deg;
  }

  @media not (prefers-reduced-motion) {
    transition: rotate 0.3s ease;
  }
}

.ams-accordion__button[aria-expanded="true"] svg {
  rotate: -180deg;
}

.ams-accordion__panel {
  display: none;
  padding-block: var(--ams-accordion-panel-padding-block);
  padding-inline: var(--ams-accordion-panel-padding-inline);
}

.ams-accordion__panel--expanded {
  display: block;
}
