/*!
 * 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 {
  border-bottom: 0.0625rem solid var(--gray-8);
  padding: 0.5rem 1rem;
}
@media only screen and (min-width: 57.7rem) {
  .UnitHeader {
    border-bottom: 0.0625rem solid var(--gray-8);
    padding: 0.5rem 1.5rem;
  }
}
.UnitHeader-container {
  margin: auto;
  max-width: 95rem;
}
.UnitHeader-breadcrumb {
  margin-top: 0.5rem;
}
.UnitHeader-breadcrumbItem {
  color: var(--gray-4);
  display: inline-flex;
  font-size: 0.875rem;
  line-height: 1.5rem;
}
.UnitHeader-breadcrumbItem:not(:last-child)::after {
  content: '>';
  padding: 0 0.5rem;
}
.UnitHeader-heading {
  align-items: center;
  display: flex;
}
.UnitHeader-title {
  font-size: 1.75rem;
  line-height: 2.25rem;
  margin-bottom: 1rem;
  margin-top: 0.625rem;
}
.UnitHeader-detail {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  white-space: nowrap;
}
@media only screen and (min-width: 64rem) {
  .UnitHeader-detail {
    margin-bottom: 0.5rem;
  }
}
.UnitHeader-detailItem {
  color: var(--gray-4);
  font-size: 0.875rem;
  margin-bottom: 0.5rem;
}
.UnitHeader-detailItem img {
  margin-right: 0.5rem;
  vertical-align: middle;
}
.UnitHeader-detailItem a > span {
  color: var(--gray-4);
}
.UnitHeader-detailItem:not(:last-of-type)::after {
  content: '|';
  padding: 1rem;
}
@media only screen and (max-width: 52rem) {
  .UnitHeader-detailItem:not(:last-of-type)::after {
    padding: 0.5rem;
  }
}

/*
 * TODO: Replace DetailsHeader-badge with UnitHeader-versionBadge in
 * middleware/latestversion.go after unit page is launched.
 */
.UnitHeader-versionBadge,
.DetailsHeader-badge {
  border-radius: unset;
  color: var(--white);
  font-size: 0.7rem;
  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;
}
.UnitHeader-majorVersionBanner {
  background-color: var(--gray-10);
  display: flex;
  margin: -0.5rem 0 1rem 0;
  padding: 0.75rem 0;
}

/*
 * TODO: Replace DetailsHeader-banner with UnitHeader-majorVersionBanner in
 * middleware/latestversion.go after unit page is launched.
 */
.UnitHeader-majorVersionBanner--latest,
.DetailsHeader-banner--latest {
  display: none;
}
.UnitHeader-detailIcon {
  color: var(--gray-3);
  flex-shrink: 0;
  margin-left: 1rem;
  margin-right: 0.7rem;
  width: 1rem;
}
a.UnitHeader-backLink {
  color: var(--black);
  display: block;
  font-size: 1rem;
}
.UnitHeader-backLink img {
  height: 0.8125rem;
  margin-right: 0.5rem;
  position: relative;
  top: -0.0625rem;
  width: auto;
}
.UnitHeader-badge {
  border: 0.0625rem solid var(--gray-4);
  border-radius: 0.125rem;
  font-size: 0.6875rem;
  font-weight: 500;
  line-height: 1rem;
  margin-left: 0.5rem;
  padding: 0 0.35rem;
  text-align: center;
}
