.Header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  z-index: 10;
  background-color: $color-header-background;
  box-shadow: inset 0 -1px 0 0 rgba(black, 0.25), 0 2px 0 rgba(black, 0.1);
  text-overflow: ellipsis;
  color: $color-header-content;
}

.Header-title {
  display: flex;
  align-items: center;
  padding: 0.5rem 1rem;
  @include link-default(inherit, none);
  font-size: 1.125rem; // 18px
  line-height: (24 / 18);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.Header-title img {
  height: 30px;
  margin-right: 0.5rem;
}

.Header-button {
  display: block;
  flex-shrink: 0;
  border: 0;
  height: 3rem;
  width: 3rem;
  touch-action: manipulation;
  color: inherit;
  cursor: pointer;
  background-color: $color-button-background;

  &:hover {
    outline: none;
    background-color: darken($color-button-background, 10%);
  }

  &:active {
    outline: none;
    background-color: darken($color-button-background, 20%);
  }

  &:focus {
    z-index: 1;
  }
}

.Header > .Header-start,
.Header > .Header-end {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
  align-items: center;
}

[dir='ltr'] .Header-end .Header-button {
  border-right: none;
  border-left: 1px solid rgba(255, 255, 255, 0.25);
}

[dir='right'] .Header-end .Header-button {
  border-right: none;
  border-left: 1px solid rgba(255, 255, 255, 0.25);
}

.Header-button svg {
  margin: 0 auto;
  fill: $color-button-content;
}

$toggles: (
    'name': 'navToggle',
    'toggleClass': 'is-closed',
    'onState': 'open',
    'offState': 'closed',
  ),
  (
    'name': 'javascriptToggle',
    'toggleClass': 'javascript-disabled',
    'onState': 'enabled',
    'offState': 'disabled',
  ),
  (
    'name': 'directionToggle',
    'toggleClass': 'is-rtl',
    'onState': 'ltr',
    'offState': 'rtl',
  );
@each $toggle in $toggles {
  .Header-#{map-get($toggle, 'name')} {
    svg {
      display: none;
      margin: 0 auto;
      fill: $color-button-content;
    }
  }

  .Frame {
    .Header-#{map-get($toggle, 'name')}Icon--#{map-get($toggle, 'onState')} {
      display: block;
    }
  }

  .Frame.#{map-get($toggle, 'toggleClass')} {
    .Header-#{map-get($toggle, 'name')}Icon--#{map-get($toggle, 'onState')} {
      display: none;
    }
    .Header-#{map-get($toggle, 'name')}Icon--#{map-get($toggle, 'offState')} {
      display: block;
    }
  }
}
