:root {
  --trans-time: 300ms;
}

.group ::-webkit-input-placeholder {
  /* Chrome/Opera/Safari */
  color: #afb1b3;
}
.group ::-moz-placeholder {
  /* Firefox 19+ */
  color: #afb1b3;
}
.group :-ms-input-placeholder {
  /* IE 10+ */
  color: #afb1b3;
}
.group :-moz-placeholder {
  /* Firefox 18- */
  color: #afb1b3;
}

.group {
  position: relative;
}

/*  INPUTS  */
.group textarea {
  resize: none;
}

.group input,
.group textarea {
  background: none;
  font-family: "Unineue", sans-serif;
  font-weight: 500;
  font-size: 1rem;
  display: block;
  border-radius: 0;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}

input:focus,
textarea:focus {
  outline: none;
}

.group input:placeholder-shown ~ label,
.group textarea:placeholder-shown ~ label {
  top: 10px !important;
  font-size: 1rem !important;
}

.group input:focus ~ label,
.group textarea:focus ~ label {
  top: -0.875rem !important;
  font-size: 0.875rem !important;
}

.group input:valid ~ label,
.group textarea:valid ~ label,
.group input:invalid ~ label,
.group textarea:invalid ~ label {
  top: -0.875rem;
  font-size: 0.875rem;
}

.group input:focus ~ .bar:before,
.group textarea:focus ~ .bar:before {
  width: 100%;
}

.group input[type="password"] {
  letter-spacing: 0.3em;
}

.group label {
  font-size: 1rem;
  position: absolute;
  pointer-events: none;
  left: 0;
  top: 10px;
  transition: 300ms ease all;
}

.bar {
  position: relative;
  display: block;
  width: 100%;
}

.bar:before {
  content: "";
  height: 2px;
  width: 0;
  bottom: 0px;
  position: absolute;
  background: #1c1c1b;
  transition: 300ms ease all;
  left: 0%;
}

/* CHECKBOX */

.checkbox {
  min-width: 22px;
  min-height: 22px;
  width: 22px;
  height: 22px;
}

.checkbox + label::before {
  display: inline-block;
  border: 1px solid;
  content: "";
  min-width: 22px;
  min-height: 22px;
  width: 22px;
  height: 22px;
  border-radius: 2px;
  background-color: transparent;
  cursor: pointer;
  transition: background 0.5s;
}

.checkbox + label::after {
  content: "";
  position: absolute;
  display: inline-block;
  width: 7px;
  margin-left: 7px;
  margin-top: 2px;
  height: 13px;
  border: solid white;
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  opacity: 0;
  transition: opacity 0.5s;
  cursor: pointer;
}

.checkbox.white + label::before {
  border-color: white;
}

.checkbox.text-black + label::before {
  border-color: #1c1c1b;
}

.checkbox:checked + label:before {
  background-color: #1c1c1b;
  border-color: #1c1c1b;
}

.checkbox:checked + label:after {
  opacity: 1;
}
