@import "../../settings/all";
@import "../../tools/all";
@import "../../helpers/all";


@include govuk-exports("govuk/component/accordion") {

  .govuk-accordion {
    @include govuk-responsive-margin(6, "bottom");
    // Border at the bottom of the whole accordion
    border-bottom: 1px solid $govuk-border-colour;
  }

  // Borders between accordion sections
  .govuk-accordion__section {
    border-top: 1px solid $govuk-border-colour;
  }

  .govuk-accordion__section-header {
    padding-bottom: govuk-spacing(3);
  }

  .govuk-accordion__section-heading {
    margin-top: 0; // Override browser default
    margin-bottom: 0; // Override browser default
  }

  // Buttons within the sections don’t need default styling
  .govuk-accordion__section-button {
    @include govuk-font($size: 24, $weight: bold);
    margin-bottom: 0;
    padding-top: govuk-spacing(3);
  }

  .govuk-accordion__section-summary {
    margin-top: govuk-spacing(2);
    margin-bottom: 0;
  }

  // JavaScript enabled
  .js-enabled {

    // Hide the body of collapsed sections
    .govuk-accordion__section-content {
      display: none;
      @include govuk-responsive-padding(3, "top");
      @include govuk-responsive-padding(3, "bottom");
    }

    // Remove the bottom margin from the last item inside the content
    .govuk-accordion__section-content > :last-child {
      margin-bottom: 0;
    }

    // Show the body of expanded sections
    .govuk-accordion__section--expanded .govuk-accordion__section-content {
      display: block;
    }

    // This is styled to look like a link not a button
    .govuk-accordion__open-all {
      @include govuk-font($size: 16);
      @include govuk-link-common;
      display: inline;
      border-width: 0;
      color: $govuk-link-colour;
      background: none;
      cursor: pointer;

      &:focus {
        background: none;
      }
    }

    // Section headers have a pointer cursor as an additional affordance
    .govuk-accordion__section-header {
      position: relative;
      // Safe area on the right to avoid clashing with icon
      padding-right: 40px;
      cursor: pointer;
    }

    // Section headers have a grey background on hover as an additional affodance
    .govuk-accordion__section-header:hover {
      background-color: govuk-colour("grey-4");
    }

    // Setting focus styles on header so that summary that is not part of the button is included in focus
    .govuk-accordion__section-header--focused {
      // These replicate @mixin govuk-focusable (the mixin can't be used as the header doesn't get the focus)
      outline: $govuk-focus-width solid $govuk-focus-colour;
      outline-offset: 0;
    }

    // Buttons within the headers don’t need default styling
    .govuk-accordion__section-button {
      @include govuk-link-common;
      width: 100%;
      margin-top: 0;
      margin-bottom: 0;
      margin-left: 0;
      padding-top: govuk-spacing(3);
      padding-bottom: 0;
      padding-left: 0;
      border-width: 0;
      // Headings in section headers have link colours as an additional affodance
      color: $govuk-link-colour;
      background: none;
      text-align: left;
      cursor: pointer;

      &:focus {
        outline: none;
        background: none;
      }
    }

    // Extend the touch area of the button to span the section header
    .govuk-accordion__section-button:after {
      content: "";
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
    }

    .govuk-accordion__controls {
      text-align: right;
    }

    // Display an icon to the right of each header to indicate open/closed status,
    // and as an additional affordance.
    .govuk-accordion__icon {
      position: absolute;
      top: 50%;
      right: 15px;
      width: 16px;
      height: 16px;
      margin-top: -8px;
    }

    .govuk-accordion__icon:after,
    .govuk-accordion__icon:before {
      content: "";
      box-sizing: border-box;
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      width: 25%;
      height: 25%;
      margin: auto;
      border: 2px solid transparent;
      background-color: govuk-colour("black");
    }

    .govuk-accordion__icon:before {
      width: 100%;
    }

    .govuk-accordion__icon:after {
      height: 100%;
    }

    // Vertical bar should be hidden when section is open, to display a '-' icon
    .govuk-accordion__section--expanded .govuk-accordion__icon:after {
      content: " ";
      display: none;
    }
  }
}
