.main-header {
  display: flex;
  padding: 24px 0;
  align-items: center;
  background: hsl(0, 0%, 100%);
  z-index: 99;
}

.main-header > .container {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: right;
  flex-wrap: wrap;
  gap: 10px;
}

.main-header__logo {
  display: flex;
  gap: 20px;
  justify-content: flex-start;
  align-items: center;
  margin-right: auto;
}

.main-header .logo {
  width: 100%;
  min-width: 30px;
  max-width: 76px;
}

.main-header__sitename {
  min-width: 220px;
  max-width: 373px;
  color: var(--text-color);
}

.main-header__sitename img {
  width: 100%;
}

.main-header__controls {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.main-header__controls > * {
  display: flex;
}

.main-header__button,
.main-header__search,
.main-header__user-button-name,
.main-header__user-button-icon {
  display: flex;
  align-items: center;
  padding: 12px 16px;
  border-radius: 12px;
  background: var(--light-gray-color);
  color: var(--text-color);
  font-size: calc(18rem / var(--initial-font-multiplier));
  font-weight: 500;
  border: 0;
  cursor: pointer;
}

.main-header__search {
  padding: 0;
  align-items: stretch;
}

.main-header__button > span {
  margin-right: 6px;
}

.main-header__button,
.main-header__search,
.main-header__user-button-name,
.main-header__user-button-icon {
  transition: background 0.15s ease-out;
}

.main-header__search-field {
  width: 0;
  border-width: 0;
  margin: 0;
  padding: 12px 0;
  background: transparent;
  transition: width 0.15s ease-out;
  visibility: hidden;
  border-radius: 12px;
}

.main-header__search-button {
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 12px 16px;
  color: var(--text-color);
  border-radius: 12px;
}

.main-header__search-button:focus-visible {
  background: hsl(240, 29%, 94%);
}

.main-header__search--expanded .main-header__search-field {
  width: 150px;
  visibility: visible;
  padding: 12px 16px;
}

.main-header__search--expanded .main-header__search-field:focus-visible {
  outline-color: var(--secondary-color);
}

.main-header__user-button-name {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  padding-right: 3px;
}

.main-header__user-button-icon {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  padding-left: 3px;
}

:root.root--special[data-special-color="black"] .main-header__logo {
  filter: invert(100%) sepia(7%) saturate(28%) hue-rotate(53deg) brightness(106%) contrast(107%);
}

:root.root--special .main-header__logo {
  filter: grayscale(1);
}

:root.root--special .main-header,
:root.root--special .main-header__button,
:root.root--special .main-header__search,
:root.root--special .main-header__user-button-name,
:root.root--special .main-header__user-button-icon {
  background-color: var(--special-background-color);
  transition: unset;
}
:root.root--special .main-header__user-button,
:root.root--special .main-header__user-button-name,
:root.root--special .main-header__search-button,
:root.root--special .main-header__button {
  color: var(--special-text-color);
}

@media (hover: hover) {
  .main-header .sitename:hover {
    color: var(--primary-color-hover);
    border: none;
  }

  .main-header__button:hover,
  .main-header__search:hover,
  .main-header__user-button-name:hover,
  .main-header__user-button-icon:hover,
  .main-header__button:focus-visible,
  .main-header__search:focus-visible,
  .main-header__user-button-name:focus-visible,
  .main-header__user-button-icon:focus-visible {
    color: var(--text-color);
    background: hsl(240, 29%, 94%);
  }
}

@media screen and (max-width: 1087px) {
  .main-header {
    box-shadow: 0 14px 80px 0 hsla(0, 0%, 0%, 0.05);
  }

  .main-header__logo {
    flex: 1 0 100%;
  }
}

@media screen and (max-width: 735px) {
  .main-header > .container {
    justify-content: unset;
  }

  .main-header .logo {
    max-width: 50px;
  }

  .main-header .sitename {
    font-size: calc(14rem/var(--initial-font-multiplier));
  }
}

@media screen and (min-width: 736px) and (max-width: 895px) {
  .main-header .sitename {
    font-size: calc(14rem/var(--initial-font-multiplier));
  }
}
