/*!
 * Copyright 2020 The Go Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style
 * license that can be found in the LICENSE file.
 */

.UnitHeader {
  min-height: calc(var(--full-header-height));
  position: sticky;
  top: calc(var(--full-header-height) * -1 + var(--banner-height) + var(--header-height));
  white-space: nowrap;
  z-index: 100;
}

.UnitHeader-breadcrumbs {
  background-color: var(--white);
  line-height: 1.5rem;
  padding-top: 1rem;
  white-space: initial;
}
.UnitHeader-breadcrumbItem {
  color: var(--gray-4);
  display: inline-flex;
  font-size: 0.875rem;
}
.UnitHeader-breadcrumbItem:not(:last-child)::after {
  content: '>';
  padding: 0 0.5rem;
}

.UnitHeader-content {
  background-color: var(--white);
  border-bottom: 0.0625rem solid var(--gray-8);
  position: sticky;
  top: var(--banner-height);
}
.UnitHeader-content > div {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: var(--header-height);
  padding-bottom: 1rem;
}
.UnitHeader--sticky .UnitHeader-content > div {
  align-items: center;
  flex-direction: row;
  padding-bottom: 0;
}

.UnitHeader-title {
  align-items: center;
  display: flex;
  overflow: hidden;
}
.UnitHeader-logo {
  align-items: center;
  display: flex;
  margin-right: 0;
  opacity: 0;
  transition: opacity 0.25s ease-in-out, margin 0.25s ease-in, width 0.25s ease-out;
  visibility: hidden;
  width: 0;
}
.UnitHeader-logo img {
  height: 1.695625rem;
  width: 4.5rem;
}
.UnitHeader--sticky .UnitHeader-logo {
  margin-right: 0.5rem;
  opacity: 1;
  visibility: visible;
  width: 4.5rem;
}
@media only screen and (min-width: 37.5rem) {
  .UnitHeader--sticky .UnitHeader-logo {
    height: 1.9541rem;
    margin-right: 1rem;
    width: 5.1875rem;
  }
}
.UnitHeader-title h1 {
  font-size: 1.75rem;
  font-weight: 600;
  line-height: 2.25rem;
  margin: 0.5rem 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.UnitHeader--sticky .UnitHeader-title h1 {
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.5;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media only screen and (min-width: 37.5rem) {
  .UnitHeader--sticky .UnitHeader-title h1 {
    font-size: 1.5rem;
  }
}
.UnitHeader-content .CopyToClipboardButton {
  display: none;
}
.UnitHeader--sticky .UnitHeader-content .CopyToClipboardButton {
  display: initial;
}

.UnitHeader-details {
  display: none;
  flex-direction: column;
  white-space: nowrap;
}
.UnitHeader--full .UnitHeader-details {
  display: flex;
}
@media only screen and (min-width: 52rem) {
  .UnitHeader-details {
    align-items: center;
    flex-direction: row;
  }
  .UnitHeader--full .UnitHeader-details {
    flex-wrap: wrap;
  }
}
@media only screen and (min-width: 70rem) {
  .UnitHeader-details {
    display: flex;
  }
}
.UnitHeader-detailItem {
  color: var(--gray-4);
  display: inline;
  font-size: 0.875rem;
  line-height: 1.75rem;
}

@media only screen and (min-width: 52rem) {
  .UnitHeader-detailItem:not(:last-of-type)::after {
    content: '|';
    padding: 1rem;
  }
}
.UnitHeader-detailItem > a > span {
  color: var(--gray-4);
}

.UnitHeader-overflowContainer {
  display: none;
  height: 1.5rem;
  position: absolute;
  right: 1rem;
  width: 1.5rem;
}
.UnitHeader--sticky .UnitHeader-overflowContainer {
  display: block;
}
@media only screen and (min-width: 70rem) {
  .UnitHeader--sticky .UnitHeader-overflowContainer {
    display: none;
  }
}
.UnitHeader-overflowImage {
  fill: var(--gray-3);
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.UnitHeader-overflowSelect {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: 0;
  color: transparent;
  cursor: pointer;
  font-size: 1rem;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.UnitHeader-overflowSelect option {
  color: var(--gray-1);
}

.UnitHeader-badge {
  border: 0.0625rem solid var(--gray-4);
  border-radius: 0.125rem;
  display: none;
  font-size: 0.6875rem;
  font-weight: 500;
  line-height: 1rem;
  margin-left: 0.5rem;
  margin-top: 0.125rem;
  padding: 0 0.35rem;
  text-align: center;
}
.UnitHeader--full .UnitHeader-badge {
  display: block;
}
@media only screen and (min-width: 80rem) {
  .UnitHeader--sticky .UnitHeader-badge {
    display: block;
  }
}

.UnitHeader-banners {
  z-index: 10;
}
.UnitHeader-banner {
  display: flex;
  padding: 0.75rem 0;
}
.UnitHeader-bannerContent {
  align-items: center;
  display: flex;
}
.UnitHeader-banner--majorVersion,
.UnitHeader-banner--redirected {
  background-color: var(--gray-9);
}
.UnitHeader-banner--deprecated,
.UnitHeader-banner--retracted {
  background-color: var(--yellow);
}
.UnitHeader-banner-icon {
  color: var(--gray-3);
  margin-right: 0.5rem;
  width: 1rem;
}
.UnitHeader-versionBadge,
.DetailsHeader-badge {
  border-radius: unset;
  color: var(--white);
  font-size: 0.7rem;
  line-height: 0.85rem;
  margin: -1rem 0 -1rem 0.5rem;
  padding: 0.25rem 0.5rem;
  text-transform: uppercase;
  top: -0.0625rem;
}
.UnitHeader-versionBadge--latest,
.DetailsHeader-badge--latest {
  background: var(--turq-dark);
}
.UnitHeader-versionBadge--goToLatest,
.DetailsHeader-badge--goToLatest {
  background: var(--pink);
}
.UnitHeader-versionBadge--unknown,
.DetailsHeader-badge--unknown {
  display: none;
}

a.UnitHeader-backLink {
  color: var(--black);
  display: block;
  font-size: 1rem;
}
.UnitHeader-backLink img {
  height: 0.8125rem;
  margin-right: 0.5rem;
  width: auto;
}
