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

.SearchResults {
  font-size: 0.875rem;
}
.SearchResults-instead {
  font-size: 1.25rem;
}
.SearchResults-insteadPrefix {
  color: var(--color-text);
}
.SearchResults-instead:hover .SearchResults-insteadPrefix {
   color: var(--color-brand-primary);
}
.SearchResults-summary {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  justify-content: space-between;
  line-height: 1.5rem;
  color: var(--color-text-subtle);
}
@media only screen and (min-width: 64rem) {
  .SearchResults-summary {
    align-items: baseline;
    flex-direction: row;
  }
}
.SearchResults-emptyContentMessage {
  text-align: center;
}

.SearchSnippet {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0 0 2.5rem 0;
}
.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;
}
.SearchSnippet-sub {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.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);
}
