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

/* Hide the search form in the header. */
.go-SearchForm {
  display: none;
}

.Homepage-logo {
  border-radius: var(--border-radius);
  display: block;
  height: 10rem;
  margin: 3.125rem auto;
  width: auto;
}
[data-theme='dark'] .Homepage-logo {
  mix-blend-mode: difference;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .Homepage-logo {
    mix-blend-mode: difference;
  }
}
@media only screen and (min-width: 52rem) {
  .Homepage {
    margin: 2rem auto;
  }
  .Homepage-logo {
    margin: 3.5rem auto;
  }
}
.Homepage-search {
  --border-radius: 0.5rem;

  height: 3rem;
  margin: 2.5rem auto 0 auto;
  max-width: 45.0625rem;
  position: relative;
  width: 100%;
}
.Homepage-search::before {
  background: url('/static/shared/icon/search_gm_grey_24dp.svg') left no-repeat;
  content: '';
  height: 3rem;
  left: 0.75rem;
  position: absolute;
  width: 1.5rem;
  z-index: 3;
}
.Homepage-search .go-Select {
  padding-left: 2.5rem;
}
.Homepage-search .go-Input {
  padding-left: 2.5rem;
}
.Homepage-search--symbol .go-Input {
  border-bottom-right-radius: var(--border-radius);
  border-top-right-radius: var(--border-radius);
  padding-left: 2.5rem;
}
.Homepage-search .go-Button {
  justify-content: center;
  width: 7.375rem;
}
.Homepage-search--symbol .go-Button {
  display: none;
}
@media only screen and (min-width: 30rem) {
  .Homepage-search--symbol .go-Input {
    border-bottom-right-radius: 0;
    border-top-right-radius: 0;
  }
  .Homepage-search--symbol .go-Button {
    display: inline-flex;
  }
}
.Homepage-searchHelp {
  align-items: center;
  display: block;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 45.0625rem;
  text-align: center;
  width: 100%;
}
@media only screen and (min-width: 30rem) {
  .Homepage-searchHelp {
    display: flex;
  }
}
a.Homepage-helpLink {
  align-items: center;
  display: inline-flex;
  font-size: 1em;
  font-weight: initial;
  margin-right: 0.5rem;
  white-space: nowrap;
}
.Homepage-helpLink img {
  height: 1rem;
  margin-left: 0.25rem;
  position: relative;
  top: 0.1875rem;
  width: 1rem;
}
.Homepage-exampleSearches {
  align-items: center;
  color: var(--color-text-subtle);
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  text-align: center;
  width: 100%;
}
@media only screen and (min-width: 30rem) {
  .Homepage-exampleSearches {
    display: flex;
  }
}
.Homepage-exampleSearchesLabel {
  display: block;
  margin-bottom: 1rem;
  text-transform: uppercase;
}
@media only screen and (min-width: 30rem) {
  .Homepage-exampleSearchesLabel {
    display: inline;
    margin-bottom: -0.1rem;
  }
}
.Homepage-exampleSearch {
  color: var(--color-brand-primary);
  font-size: 1rem;
  font-weight: initial;
  padding: 0 0.625rem;
}
.Questions {
  background: var(--color-background-accented);
  color: var(--color-text);
  display: flex;
  padding-bottom: 1rem;
  padding-top: 0.5rem;
}
.Questions-header {
  color: var(--color-text);
  font-weight: bold;
  margin: 1rem 0;
}
.Questions-content {
  flex-grow: 1;
  margin: 0 auto;
  max-width: 75.75rem;
  padding: 0 1.5rem;
}
.Questions-content ul {
  list-style: none;
  padding-inline-start: 0;
}
.Questions-content ul > li {
  font-size: 0.875rem;
  line-height: 1.75rem;
}
