.fields__group {
  margin-bottom: 0.5rem;
}

.fields__group.fields__group--flex-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.fields__group .field {
  margin-bottom: 0 !important;
}

.field {
  display: flex;
  flex-flow: column-reverse nowrap;
  margin-bottom: 1rem;
}

.field__label {
  font-size: var(--font-size-sm);
  line-height: calc(0.875rem * 1.4);
  opacity: 0;
  transition: opacity 0.1s linear;
  display: none;
}

@supports selector(:focus-within) {
  .field:focus-within .field__label {
    opacity: 1;
  }
}

.field__input {
  font-size: var(--field-input-font-size);
  border-radius: 0.25rem;
  background-color: var(--field-input-background);
  padding: 0 1.5rem;
  border: var(--field-input-border);
  height: 3rem;
  color: #333333;
}

.field__input::placeholder {
  color: rgba(51, 51, 51, 0.6);
}

/* Checkbox filed overrides */

.field.field--checkbox {
  display: flex;
  justify-content: center;
  flex-direction: column;
  height: 3rem;
}

.field.field--checkbox .field__label {
  display: block;
  position: relative;
  padding-left: 1.5rem;
  cursor: pointer;
  font-size: var(--font-size-base);
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* Hide the browser's default checkbox */
.field.field--checkbox .field__label .field__input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

/* Create a custom checkbox */
.checkmark {
  position: absolute;
  top: 1px;
  left: 0;
  height: 1rem;
  width: 1rem;
  border: 1px solid #1d1d1d;
}

.field.field--checkbox .field__label .field__input:checked ~ .checkmark {
  background-color: #1d1d1d;
}

/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the checkmark when checked */
.field.field--checkbox .field__label .field__input:checked ~ .checkmark:after {
  display: block;
}

/* Style the checkmark/indicator */
.field.field--checkbox .field__label .checkmark:after {
  left: 0.25rem;
  top: 1px;
  width: 0.25rem;
  height: 0.5rem;
  border: solid white;
  border-width: 0 0.125rem 0.125rem 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

.field.field--checkbox .field__label {
  opacity: 1;
  font-size: var(--font-size-base);
}

/* Field with errors override  */

.field .errorlist {
  padding: 0.25rem 0;
  margin: 0;
  list-style: none;
  font-size: var(--font-size-sm);
  color: #be0303;
}

.field .field__input:not(:placeholder-shown) ~ .field__label,
.field .errorlist ~ .field__label {
  opacity: 1;
}

.field .errorlist ~ .field__input {
  border: 1px solid #be0303;
}

/* Password field overrides */

.field.field--password {
  position: relative;
}

.field.field--password .field__input {
  padding-right: 3rem;
}

.field.field--password [data-toggle] {
  content: "SHOW";
  display: block;
  position: absolute;
  top: 1rem;
  right: 0;
  padding: 0 1rem;
  color: rgba(51, 51, 51, 0.6);
  font-size: var(--font-size-sm);
  cursor: pointer;
  margin: 0;
  border: none;
  background: none;
}
