/*
 * Copyright 2021 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.
 */

/* Hide the search form in the header. */
.go-SearchForm {
  display: none;
}
.SearchSnippet .go-Chip:hover {
  background-color: var(--color-background-highlighted);
}

.SearchResults {
  font-size: 0.875rem;
  padding-top: 0.75rem;
}
.SearchResults-header {
  margin: 0.5rem 0 0;
}
.SearchResults-header[data-fixed] {
  background-color: var(--color-background-accented);
  border-bottom: var(--border);
  height: 3.5rem;
  position: sticky;
  top: 0;
}
.SearchResults-headerContent {
  align-items: center;
  display: flex;
  gap: 0.5rem;
  height: 100%;
  margin: auto;
  max-width: 63rem;
  padding: 0.5rem var(--gutter);
}
.SearchResults-headerLogo {
  --logo-height: 1.75rem;
  --logo-width: calc(var(--logo-height) / 0.3768);

  align-items: center;
  display: flex;
  margin-right: -0.5rem;
  opacity: 0;
  transition: opacity 0.25s ease-in-out, width 0.25s ease-out;
  visibility: hidden;
  width: 0;
}
.SearchResults-headerLogo[data-fixed] {
  margin-right: 0.5rem;
  opacity: 1;
  visibility: visible;
  width: var(--logo-width);
}
.SearchResults-headerLogo img {
  height: var(--logo-height);
  margin: -1rem 0;
  width: var(--logo-width);
}
.SearchResults-search {
  flex-grow: 1;
  max-width: 31.5rem;
}
.SearchResults-tabs {
  border-bottom: var(--border);
}
.SearchResults-tabs nav {
  margin: auto;
  max-width: 63rem;
  padding: 0 var(--gutter);
}
.SearchResults-summary {
  color: var(--color-text-subtle);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  justify-content: space-between;
  line-height: 1.5rem;
  margin: -0.25rem 0 0.25rem 0;
}
@media only screen and (min-width: 64rem) {
  .SearchResults-summary {
    align-items: baseline;
    flex-direction: row;
  }
}
.SearchResults-summary h1 {
  font-size: inherit;
  font-weight: inherit;
}
.SearchResults-emptyContentMessage {
  text-align: center;
}

.SearchSnippet {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 0 0 2.75rem 0;
}
.SearchSnippet h2 {
  font-size: 1.25rem;
  font-weight: 400;
}
.SearchSnippet:last-of-type {
  padding: 0 0 1rem 0;
}
.SearchSnippet-synopsis {
  -webkit-box-orient: vertical;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}
.SearchSnippet-infoLabel {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin-top: -0.0625rem;
}
.SearchSnippet-sub {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.SearchSnippet-symbolCode {
  font-size: 0.75rem;
  margin: 0.25rem 0;
}
.SearchSnippet-sub a[data-hidden] {
  display: none;
}
.SearchSnippet-sub a {
  color: var(--color-text-subtle);
}
.SearchSnippet-sub a:hover {
  color: var(--color-brand-primary);
}
.SearchSnippet-headerContainer {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.SearchSnippet-header-name {
  color: var(--color-text);
}
.SearchSnippet-header-dash {
  color: var(--color-text-subtle);
}
.SearchSnippet-symbolKind {
  color: var(--color-text);
}
.SearchPagination {
  height: 1.5rem;
}
