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

.Homepage {
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  max-width: 38rem;
}
.Homepage-logo {
  display: block;
  height: 14.6rem;
  margin: 0 auto 3.125rem;
  width: 22.8125rem;
}
@media only screen and (min-width: 52rem) {
  .Homepage {
    margin: 2rem auto;
  }
  .Homepage-logo {
    margin: 3.125rem auto;
  }
}
.Homepage-searchForm input {
  background: url('/static/img/icon-search.svg') right no-repeat;
  background-position: left 0.75rem center;
  background-size: 1.5rem;
  border: 0.0625rem solid var(--gray-8);
  border-radius: 0.5rem;
  color: var(--gray-4);
  font-family: inherit;
  font-size: 1rem;
  height: 3rem;
  padding-left: 2.75rem;
  width: 100%;
}
.Homepage-buttonGroup {
  display: flex;
  justify-content: center;
  margin: 2.5rem auto auto 0;
}
.Homepage-searchButton {
  border: none;
  border-radius: 0.25rem;
  background-color: var(--turq-dark);
  color: var(--white);
  cursor: pointer;
  font-family: inherit;
  font-size: 1em;
  height: 2.5rem;
  margin-right: 0.5rem;
  padding: 0 1.375rem;
}
a.Homepage-helpButton {
  align-items: center;
  display: flex;
  border: 0.0625rem solid var(--gray-4);
  border-radius: 0.25rem;
  background: var(--white);
  color: var(--gray-4);
  font-size: 1em;
  height: 2.5rem;
  margin-left: 0.5rem;
  padding: 0 1.375rem;
}
.Homepage-helpButton img {
  height: 1rem;
  margin-left: 0.25rem;
  position: relative;
  top: 0.1875rem;
  width: 1rem;
}
.Homepage-exampleSearches {
  color: var(--gray-2);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.75rem;
  margin: 1.5rem auto;
  text-align: center;
}
.Homepage-exampleSearchesLabel {
  display: block;
  text-transform: uppercase;
}
.Homepage-exampleSearch {
  color: var(--turq-dark);
  font-size: 1rem;
  font-weight: initial;
  padding: 0 0.625rem;
}
@media only screen and (min-width: 30rem) {
  .Homepage-exampleSearchesLabel {
    display: inline;
  }
}
.Questions {
  background: var(--gray-10);
  color: var(--gray-2);
  display: flex;
  padding: 0.5rem 0;
  width: 100vw;
}
.Questions-content {
  flex-grow: 1;
  margin: 0 auto;
  padding: 0 1.5rem;
  max-width: 75.75rem;
}
.Questions-content ul {
  list-style: none;
  padding-inline-start: 0;
}
.Questions-content ul > li {
  line-height: 1.75rem;
  font-size: 0.875rem;
}
