/*!
 * 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;
  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-tips {
  margin: auto;
  max-width: 45.0625rem;
  width: 100%;
}

.Homepage-examples {
  align-items: center;
  display: flex;
  flex-direction: column;
  font-size: 0.875rem;
  gap: 0.5rem 1rem;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 45.0625rem;
  white-space: nowrap;
  width: inherit;
}
@media only screen and (min-width: 52rem) {
  .Homepage-examples {
    flex-direction: row;
  }
}

.Homepage-examplesTitle {
  color: var(--color-text-subtle);
  font-weight: 500;
  text-transform: uppercase;
}

.Homepage-examplesList {
  display: flex;
  flex-grow: 1;
  flex-wrap: wrap;
  gap: 0.5rem 2rem;
}

a.Homepage-helpLink {
  align-items: center;
  display: inline-flex;
  font-size: 1em;
  font-weight: initial;
  margin-left: 0.5rem;
  white-space: nowrap;
}

.Homepage-helpLink img {
  height: 1rem;
  margin-left: 0.25rem;
  position: relative;
  top: 0.1875rem;
  width: 1rem;
}

.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;
}
