details.accordion>summary {
  margin: 2px 0 0 0;
  padding: .5em .5em .5em .7em;
  cursor: pointer;
  user-select: none;
  display: block;

  border-top-right-radius: 3px;
  border-top-left-radius: 3px;
}

details[open].accordion>summary {
  border: 1px solid #003eff;
  background: #007fff;
  color: #ffffff;
}


details:not([open]).accordion>summary {
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;

  border: 1px solid #c5c5c5;
  background: #f6f6f6;
  color: #454545;
}

details.accordion>summary::before {
  font-family: FontAwesome;
  content: '\f0da';
  margin-right: 5px;
  transition: 700ms;
  font-size: 0.8em;
}

details[open].accordion>summary::before {
  font-family: FontAwesome;
  content: '\f0d7';
}

details.accordion>.accordion-content {
  background: #ffffff;
  color: #333333;
  padding: 1em 2.2em;
  border: 1px solid #dddddd;
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
  overflow: hidden;

  @media screen and (max-width: 600px) {
    padding: .75em 1.5em;
  }
}

@mixin animation($selector) {
  details.accordion#{$selector} {
    opacity: 0;

    @supports (max-height: calc-size(max-content, size)) {
      max-height: 0;
    }
  }

  details[open].accordion#{$selector} {
    opacity: 1;

    // Setting a transition on all states of the content
    // will create a strange behavior where the transition
    // continues without being shown, creating inconsistenties
    transition: all 300ms ease-out;

    @supports (max-height: calc-size(max-content, size)) {
      max-height: calc-size(max-content, size);
    }
  }
}

// ::details-content is available on firefox only since september 2025
// (and wasn't available when this code was initially written)
// we use .accordion-content as a workaround
// But we need to use ::details-content for chrome because it's
// not working correctly otherwise
// it only happens in chrome, not safari or firefox
// Note: `selector` is not supported by scss so we comment it out to
// avoid compiling it and sending it straight to the css
// This is a trick that comes from here :
// https://stackoverflow.com/questions/62665318/using-supports-selector-despite-sass-not-supporting-it
@supports #{'selector(details::details-content)'} {
  @include animation("::details-content")
}

@supports #{'not selector(details::details-content)'} {
  @include animation(">.accordion-content")
}