.top-panel {
  height: 43px;
  background: var(--primary-color-extra-dark);
}

.top-panel .container {
  display: grid;
  grid-template-columns: 0fr 0fr 1fr 0fr 0fr 0fr;
  grid-template-rows: 43px;
  padding: 0 !important;
}

.top-panel__label {
  margin-left: 10px;
  white-space: nowrap;
  font-size: calc(14rem / var(--initial-font-multiplier));
}

.top-panel__group {
  display: flex;
  align-items: stretch;
  justify-content: stretch;
}

.top-panel__group--social {
  align-items: center;
  justify-content: center;
  grid-column: 3;
}

.top-panel__button--menu-toggle + .top-panel__group--social {
  justify-content: flex-start;
}

.top-panel__button {
  color: hsl(0, 0%, 85%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 calc(var(--grid-gap) / 2);
  font-size: calc(16rem / var(--initial-font-multiplier));
  border: none;
  background: transparent;
  cursor: pointer;
  margin: 0;
}

.top-panel__button--circle {
  min-width: 31px;
  width: 31px;
  height: 31px;
  border-radius: 50%;
  background: hsla(0, 0%, 100%, 0.1);
  margin-left: 4px;
  margin-right: 4px;
  padding: 0;
}

.top-panel__age-rating {
  color: hsl(240, 2%, 57%);
  font-size: calc(18rem / var(--initial-font-multiplier));
  font-weight: bold;
  margin-left: 10px;
  margin-right: 10px;
  padding: 0;
}

.top-panel__button--username,
.top-panel__button--sign-in,
.top-panel__button--sign-out {
  max-width: 150px;
  overflow: hidden;
  background: var(--primary-color);
  color: hsl(0, 0%, 100%);
  border: 0;
  font-family: inherit;
}

.top-panel__button--username {
  padding: 0 calc(var(--grid-gap) / 4);
}

.top-panel__button--username span,
.top-panel__button--sign-in span,
.top-panel__button--sign-out span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.top-panel__button--menu-toggle {
  display: none;
}

:root.root--special .top-panel,
:root.root--special .top-panel__button,
:root.root--special .top-panel__age-rating {
  background-color: var(--special-background-color);
  color: var(--special-text-color);
}

@media (hover: hover) {
  .top-panel__button:hover {
    color: hsl(0, 0%, 100%);
    background: var(--primary-color-hover);
    border: none;
  }
}

@media screen and (max-width: 1087px) {
  .top-panel {
    height: 43px;
    overflow: hidden;
  }

  .portals {
    grid-row: 1;
    grid-column: 2;
  }

  .body--menu-expanded {
    height: 100vh;
    width: 100vw;
    overflow: hidden;
    position: fixed;
  }

  .body--menu-expanded .top-panel {
    height: auto;
    overflow: visible;
  }

  .body--menu-expanded #panel {
    display: none !important;
  }

  .body--menu-expanded.body--sticky-top-menu .top-menu,
  .body--menu-expanded .top-menu {
    display: block;
    position: absolute;
    top: calc(2* 43px);
    left: 0;
    right: 0;
    bottom: 0;
    overflow-y: auto;
    z-index: 10001;
  }

  .top-panel__button--menu-toggle .expand,
  .body--menu-expanded .top-panel__button--menu-toggle .collapse {
    display: block;
  }

  .top-panel__button--menu-toggle .collapse,
  .body--menu-expanded .top-panel__button--menu-toggle .expand {
    display: none;
  }

  .top-menu {
    display: none;
    z-index: 1000;
  }

  .top-menu__root-items {
    flex-direction: column !important;
  }

  .top-menu__root-item-link {
    min-height: 45px !important;
  }

  .top-menu__items {
    height: auto !important;
    max-height: none !important;
    box-shadow: none !important;
    width: 100% !important;
    z-index: 0 !important;
  }

  .top-menu__item {
    margin: 6px 37px !important;
  }

  .top-menu__item-link {
    font-size: calc(14rem / var(--initial-font-multiplier));
  }

  .top-panel__button--menu-toggle {
    display: flex;
    grid-row: 1;
    grid-column: 1;
    justify-self: left;
  }

  .top-panel__group--social {
    grid-row: 2;
    grid-column: 1 / span 3;
  }

  .top-panel .container {
    grid-template-columns: repeat(10, 1fr);
  }

  .top-panel__search {
    grid-row: 1;
    grid-column: span 8;
    justify-self: right;
  }

  .top-panel__group--profile {
    grid-row: 1;
  }

  .top-panel__button--lang-toggle {
    align-items: center;
  }

  .top-panel__button--lang-toggle .top-panel__dropdown {
    display: flex;
    position: relative;
    background: transparent;
    z-index: 0;
    box-shadow: none;
    flex-direction: row;
    align-items: center;
    top: auto;
    left: auto;
  }

  .top-panel__button--lang-toggle .top-panel__dropdown-item {
    margin: 0 0 0 calc(var(--grid-gap) / 2) !important;
  }

  .top-panel__button--lang-toggle .top-panel__dropdown-link {
    color: hsl(0, 0%, 85%);
    font-size: calc(14rem / var(--initial-font-multiplier));
    display: block;
  }
}

@media screen and (max-width: 735px) {
  .top-panel .container {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .top-panel__button--portals {
    grid-row: 0;
    grid-column: span 10;
    justify-self: left;
    min-height: 43px;
  }

  .top-panel__button--lang-toggle {
    grid-row: 5;
    grid-column: span 10;
    justify-self: left;
    min-height: 43px;
  }

  .top-panel__group--social {
    display: flex;
    grid-row: 3;
    grid-column: 1;
    min-height: 43px;
    justify-content: start;
  }

  .top-panel__group--icons {
    grid-row: 0;
    grid-column: 1;
    justify-content: space-between;
    min-height: 43px;
  }

  .top-panel .container {
    padding: 0 !important;
  }

  .top-panel__search {
    grid-column: 1;
  }

  .top-panel__search.js-search--expanded {
    grid-column: span 9;
    width: 100%;
  }

  .top-panel__search.js-search--expanded .top-panel__search-input {
    flex: 1;
  }

  .js-search--expanded + div {
    display: none;
  }

  .top-panel__group--profile {
    grid-column: 1;
    justify-self: right;
    margin-right: 48px;
  }

  .body--menu-expanded.body--sticky-top-menu .top-menu,
  .body--menu-expanded .top-menu {
    top: calc(4 * 43px);
  }
}

@media screen and (min-width: 736px) and (max-width: 1087px) {
  .top-panel .container {
    grid-template-rows: repeat(2, 43px);
  }

  .top-panel__button--portals {
    grid-row: 2;
  }

  .top-panel__button--lang-toggle {
    grid-row: 2;
    grid-column: span 4;
    justify-content: left;
  }

  .top-panel__group--social {
    justify-content: start;
  }

  .top-panel__group--icons {
    grid-row: 2;
    grid-column: 8 / span 4;
    justify-self: right;
  }

  .portals {
    grid-row: 1;
    grid-column: 2;
  }
}

@media screen and (min-width: 1088px) {
  .top-panel__group--icons {
    grid-column: 4 / span 1;
  }
}
