:host {
  display: block;
}

.hy-accordion__item {
  margin-bottom: 1rem;

  &__is-open {
    border-bottom: 2px solid var(--grayscale-medium);
    border-left: 1px solid var(--grayscale-medium);
    border-right: 1px solid var(--grayscale-medium);
    border-top: 2px solid var(--grayscale-medium);
    box-shadow: 0 2px 12px 1px rgba(#000000, 10%);

    .hy-accordion--heading {
      margin: 0 auto;

      .hy-accordion--heading__icon {
        transform: rotateX(180deg);
      }
    }
  }
}

.hy-accordion__item.mini {
  margin-bottom: 1rem;
  margin-top: 1rem;
}
.hy-accordion__item__is-open.mini {
  margin-bottom: 0;
  margin-top: 0;

  .hy-accordion__item--container {
    border-bottom: 1px solid var(--grayscale-medium-dark);
    border-top: 1px solid var(--grayscale-medium-dark);
    padding-top: 16px;
    padding-bottom: 32px;
    margin-top: -1px;
    transition: padding 0.5s ease-in-out;

    @include breakpoint($narrow) {
      padding-top: 28px;
      padding-bottom: 30px;
    }
    @include breakpoint($wide) {
      padding-top: 32px;
      padding-bottom: 40px;
    }
  }
}

.hy-accordion__item.hy-accordion__item__is-open.mini {
  background-color: var(--grayscale-white);
  border: none;
  box-shadow: 0 -10px 10px -10px rgba(0, 49, 70, 0.05);
}

.hy-accordion--heading {
  justify-content: flex-start;
  letter-spacing: -0.69px;
  line-height: 28px;
  margin: 0 auto;
  transition: all 0.25s ease-in-out;
  width: 100%;

  .hy-accordion__link {
    text-decoration: none;
    &:hover {
      text-decoration: none;
    }
  }

  .hy-accordion__button {
    @include font-size(22px, 28px);
    align-items: flex-start;
    border: none;
    background-color: var(--grayscale-background-box);
    color: var(--brand-main-nearly-black);
    display: flex;
    flex-direction: row;
    font-family: var(--main-font-family);
    font-weight: bold;
    height: 100%;
    justify-content: flex-start;
    letter-spacing: -0.7px;
    padding: 1.125rem 1rem 1.125rem 1rem;
    transition: all 0.35s ease-in;
    width: 100%;

    &:hover {
      cursor: pointer;
    }

    @include breakpoint($narrow) {
      @include font-size(26px, 32px);
      letter-spacing: -0.8px;
      padding: 1rem 2rem 1rem 1.25rem;
    }

    &[aria-expanded='true'] {
      background: none;
    }

    span {
      text-align: left;
    }

    // When accordion item is open.
    &[aria-expanded='true'] {
      position: relative;

      &:after {
        background: linear-gradient(to right, var(--grayscale-medium), var(--grayscale-white));
        bottom: 0;
        content: '';
        height: 2px;
        left: 0;
        position: absolute;
        width: 100%;
      }
    }
  }

  .hy-accordion--heading__icon {
    margin-right: 0.5rem;
    margin-top: 4px;
    z-index: 0;

    @include breakpoint($narrow) {
      margin-right: 1rem;
      margin-top: 6px;
    }

    svg {
      fill: var(--brand-main);

      @include breakpoint($narrow) {
        height: 24px;
        width: 24px;
      }
    }
  }
}

.hy-accordion--heading.mini {
  // accordion clickable header
  .hy-accordion__button {
    @include font-size(18px, 22px);
    background-color: var(--grayscale-white);
    color: var(--link-blue);
    letter-spacing: -0.56px;
    padding: 0;

    @include breakpoint($narrow) {
      @include font-size(22px, 28px);
      letter-spacing: -0.69px;
      padding: 0;
    }

    &[aria-expanded='true'] {
      color: var(--grayscale-black);

      margin-bottom: 20px;
      @include breakpoint($narrow) {
        margin-bottom: 28px;
      }
      @include breakpoint($wide) {
        margin-bottom: 32px;
      }
    }
  }

  //accordion arrow
  .hy-accordion--heading__icon {
    margin-right: 0.5rem;
    z-index: 0;

    @include breakpoint($narrow) {
      margin-right: 10px;
    }

    svg {
      fill: var(--brand-main-light);
      height: 14px;
      width: 14px;
      @include breakpoint($narrow) {
        height: 16px;
        width: 16px;
      }
    }
  }
}

.hy-accordion__content {
  display: block;
  height: 0;
  padding: 0;
  transition: all 0.25s ease-in-out;

  &--inner-wrapper {
    display: block;
    padding: 20px 16px 0;
    @include breakpoint($narrow) {
      padding: 20px 24px 0;
    }
    @include breakpoint($extrawide) {
      // there is a sidebar
      &--common {
        padding: 20px 24px 0;
      }
      // without sidebar
      &--large {
        padding: 24px 32px 0;
      }
    }
    @include breakpoint($xlarge) {
      padding: 24px 32px 0;
    }

    &--mini {
      padding: 0;
      .course-heading {
        h4 {
          padding-top: 0 !important;
        }
      }
    }
  }
}