/***** Base *****/
* {
  box-sizing: border-box;
}

body {
  background-color: $background_color;
  color: $text_color;
  font-family: $text_font;
  font-size: $font-size-base;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;

  > main {
    @include desktop {
      min-height: 65vh;
    }
  }
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: $heading_font;
  margin-top: 0;
}

h1 {
  font-size: 32px;
}

h2 {
  font-size: 22px;
}

h3 {
  font-size: 18px;
  font-weight: $font-weight-semibold;
}

h4 {
  font-size: 16px;
}

a {
  color: $link_color;
  text-decoration: none;

  &:visited {
    color: $visited_link_color;
  }

  &:hover,
  &:active,
  &:focus {
    text-decoration: underline;
  }
}

.hbs-form, .search {
  input,
  textarea {
    color: #000;
    font-size: $input-font-size;
  }
  
  input {
    max-width: 100%;
    box-sizing: border-box;
    transition: $input-transition;
  
    /* We use the :where selector to not increase the specificity of the selector */
    &:where(:not([type="checkbox"])) {
      outline: none;
  
      &:focus {
        border: 1px solid $brand_color;
      }
    }
  }
  
  input[disabled] {
    background-color: #ddd;
  }
  
  select {
    -webkit-appearance: none;
    -moz-appearance: none;
    background: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23CCC' d='M0 0h10L5 6 0 0z'/%3E%3C/svg%3E%0A")
      no-repeat #fff;
    background-position: right 10px center;
    border: 1px solid $high-contrast-border-color;
    border-radius: 4px;
    padding: 8px 30px 8px 10px;
    outline: none;
    color: $field-text-focus-color;
    width: 100%;
  
    &:focus {
      border: 1px solid $brand_color;
    }
  
    &::-ms-expand {
      display: none;
    }
  }
  
  textarea {
    border: 1px solid $high-contrast-border-color;
    border-radius: 2px;
    resize: vertical;
    width: 100%;
    outline: none;
    padding: 10px;
  
    &:focus {
      border: 1px solid $brand_color;
    }
  }
}


.container {
  @include max-width-container;
}

.container-divider {
  border-top: 1px solid $low-contrast-border-color;
  margin-bottom: 20px;
}

ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.error-page {
  @include max-width-container;
}

.visibility-hidden {
  @include visually-hidden;
}
