/*!
 * 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.
 */
.go-SearchForm{display:none}.SearchSnippet-sub .go-Chip:hover{background-color:var(--color-background-highlighted)}.SearchResults{font-size:.875rem;padding-top:.75rem}.SearchResults-header{margin:.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:.5rem;height:100%;margin:auto;max-width:63rem;padding:.5rem var(--gutter)}.SearchResults-headerLogo{--logo-height: 1.75rem;--logo-width: calc(var(--logo-height) / .3768);align-items:center;display:flex;margin-right:-.5rem;opacity:0;transition:opacity .25s ease-in-out,width .25s ease-out;visibility:hidden;width:0}.SearchResults-headerLogo[data-fixed]{margin-right:.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-search:after{right:2.75rem}.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:-.25rem 0 .25rem}@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}.SearchResults-divider{margin-bottom:2.5rem}.SearchSnippet{display:flex;flex-direction:column;gap:.375rem;padding:0 0 2.75rem}.SearchSnippet h2{font-size:1.25rem;font-weight:400}.SearchSnippet:last-of-type{padding:0 0 1rem}.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:.5rem 1rem;margin-top:-.0625rem}.SearchSnippet-sub{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.SearchSnippet-symbolCode{font-size:.75rem;margin:.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:.5rem}.SearchSnippet-header-path{color:var(--color-text-subtle)}.SearchSnippet-symbolKind{color:var(--color-text)}.SearchPagination{height:1.5rem}
/*# sourceMappingURL=search.min.css.map */
