/* Positioning */
.flex-center {
  display: flex;
  justify-content: center;
}

.form--errorlist--center {
  display: flex;
  justify-self: center;
}
ul.errorlist {
  width: calc(600px + 1.5rem);
}

.form-grid {
  display: grid;
  justify-items: center;
  grid-template-columns: 1fr 1fr;
  grid-gap: 1.5em;
}
#div_id_username {
  display: grid;
  justify-self: right;
}
#div_id_password {
  display: grid;
  justify-self: left;
}

.center {
  text-align: center;
}

.intro {
  margin-top: 0;
}

.login-container {
  top: -5rem;
  margin: auto;
}

/* Elements */
.form-group {
  width: 300px;
}

.primary-btn {
  margin: 1em auto;
}

/* Hyperlink */
.login-container a,
.login-container a:hover {
  font-family: var(--paragraph-font), georgia, serif;
  font-size: 0.8rem;
  border: none;
  outline: none;
  background: none;
  color: var(--primary-color);
  text-decoration: underline;
}
a:hover {
  font-family: var(--primary-bold-font), georgia, serif;
}

/* Responsive */
@media (max-width: 768px) {
  .form-grid {
    grid-template-columns: 1fr;
    grid-gap: 0;
  }
  #error_summary,
  #div_id_username,
  #div_id_password {
    justify-self: center;
  }
  ul.errorlist {
    width: 300px;
  }
}

@media (max-width: 576px) {
  .login-container {
    top: 0;
    margin-top: 80px;
    padding-bottom: 1.5rem;
  }
  .banner {
    display: none;
  }
}

@media (max-width: 550px) {
  .form-group {
    width: 100% !important;
  }
  .form-grid {
    margin: 0 1rem;
  }
  ul.errorlist {
    width: 100%;
    margin: 0.5rem 1rem;
  }
}