@use "./site-config";
@use "./colors";
@use "./fontawesome";
@use "./text-styles";
@use "s360-scss-toolkit";

%accordion {
  $_icon-size: 0.5em;

  border-bottom: 1px solid var(--highlight-color);

  summary {
    --summary--color: var(--accordion--summary--color);
    --summary--margin: var(--accordion--summary--margin, 0);
    --summary--margin--open: var(--accordion--summary--margin--open, 0em 0 0.25em 0);
    --summary--display: var(--accordion--summary--display, block);
    --summary--font-size: #{ s360-scss-toolkit.linear-scale(s360-scss-toolkit.modular-scale(3), s360-scss-toolkit.modular-scale(9)) };
    --summary--font-weight: var(--accordion--font-weight);
    --summary--text-transform: uppercase;
    --summary--line-height: 1;

    overflow: hidden;
    height: 0.8em;
    padding-right: calc($_icon-size * 1.2);

    span + span {
      max-height: 0;
      display: block;
      overflow: hidden;
    }

    &::after,
    &::before {
      @include fontawesome.icon('circle-minus');

      font-size: $_icon-size;
      position: absolute;
      top: 0.65em;
      right: 0;
      transition: rotate 200ms ease-in-out;
    }

    &::before {
      rotate: var(--accordion--summary--before--rotate, 0deg);
    }

    &::after {
      rotate: var(--accordion--summary--after--rotate, 90deg);
    }
  }

  &[open] {
    padding-bottom: site-config.spacer(0);

    > summary {
      --accordion--summary--after--rotate: 0deg;
      --accordion--summary--before--rotate: 0deg;

      height: auto;

      span + span {
        max-height: unset;
        overflow: visible;
      }
    }
  }
}
