form.form {
  padding: 0.3rem;
}

form.form {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 1em 1fr 1em 1fr 1em 1fr 1em 1fr 1em 1fr 1em 1fr 1em 1fr
    1em 1fr 1em 1fr 1em 1fr 1em 1fr;
  grid-template-columns: repeat(12, 1fr);
  -webkit-column-gap: 1em;
  -moz-column-gap: 1em;
  column-gap: 1em;
}

form.form > .message {
  -ms-grid-column-span: 12;
  grid-column: span 12;
  font-size: 0.9rem;
}

form.form > button {
  -ms-grid-column-span: 12;
  grid-column: span 12;
  width: 100%;
  font-size: 1em;
}

form .field {
  position: relative;
  margin-bottom: 1em;
  padding-top: 0.5em;
  margin-top: 0.4em;
}

.field {
  -ms-grid-column-span: 12;
  grid-column: span 12;
}

@media (min-width: 420px) {
  .field.one {
    -ms-grid-column-span: 12;
    grid-column: span 12;
  }

  .field.three-fourths {
    -ms-grid-column-span: 9;
    grid-column: span 9;
  }

  .field.two-thirds {
    -ms-grid-column-span: 8;
    grid-column: span 8;
  }

  .field.one-half,
  .field.id_first_name,
  .field.id_last_name {
    -ms-grid-column-span: 6;
    grid-column: span 6;
  }

  .field.one-third {
    -ms-grid-column-span: 4;
    grid-column: span 4;
  }

  .field.one-fourth {
    -ms-grid-column-span: 3;
    grid-column: span 3;
  }
}

.field > label {
  position: absolute;
  top: -0.5em;
  left: 0.1rem;
  color: var(--text-color);
  display: block;
  font-size: 0.9rem;
}

.feature-content label {
  color: var(--light-color);
  top: -1rem;
  font-size: 1.2rem;
}

.feature-content form {
  padding: 0;
}

.field > input[type="checkbox"] {
  width: auto;
  display: inline;
}

.field > input[type="checkbox"] + label {
  color: var(--text-color);
  display: inline;
  font-size: 1rem;
  position: relative;
  padding-top: 0.7em;
  vertical-align: middle;
}

.field > input[type="checkbox"] + label + small {
  display: block;
  -webkit-transform: translateY(-0.5em);
  -ms-transform: translateY(-0.5em);
  transform: translateY(-0.5em);
}

.field > small,
.field > label {
  -webkit-transition: color 100ms ease-in-out;
  -o-transition: color 100ms ease-in-out;
  transition: color 100ms ease-in-out;
  opacity: 0.7;
}

.field > input:focus,
.field > textarea:focus {
  border-bottom-color: var(--highlight-color);
  outline: none;
}

.field > input:focus + label,
.field > input:focus ~ small {
  color: var(--highlight-color);
  opacity: 1;
}

.field > input,
.field > select,
.field > textarea {
  width: 100%;
  background: var(--background-color);
  border: none;
  color: var(--text-color);
  border-bottom: solid var(--text-color) 2px;
  margin-bottom: -0.3rem;
  font-size: 1em;
  padding: 0.3em;
  -webkit-transition: border 100ms ease-in-out;
  -o-transition: border 100ms ease-in-out;
  transition: border 100ms ease-in-out;
  font-family: var(--body-font);
}

.field > small {
  font-size: 0.6em;
  margin-top: 0em;
}

form .field.two {
  display: none;
}
