/* wrapper */
.floating-field {
  position: relative;
}

/* INPUT — stała wysokość */
.floating-field .form-control {
  padding: 9px 16px;
  line-height: 1.4;
}

/* LABEL — start jak placeholder */
.floating-field label.floating-label {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;

  font-size: 14px;
  line-height: 1;
  color: #777;

  padding: 0 6px;
  background: transparent;

  z-index: 2;
  transition: top .15s ease, font-size .15s ease, color .15s ease;
}

/* LABEL — floating */
.floating-field .form-control:focus + label.floating-label,
.floating-field .form-control:not(:placeholder-shown) + label.floating-label {
  top: 0;
  font-size: 12px;
  background: #fff;          /* KLUCZOWE */
  z-index: 3;                /* NAD INPUTEM */
}

/* BIAŁY PROSTOKĄT ZAKRYWAJĄCY BORDER */
.floating-field
.form-control:focus + label.floating-label::before,
.floating-field
.form-control:not(:placeholder-shown) + label.floating-label::before {
  content: "";
  position: absolute;
  left: -8px;
  right: -8px;
  top: 50%;
  transform: translateY(-50%);
  height: 18px;

  background: #fff;
  z-index: -1;               /* POD TEKSTEM LABELA */
}

/* brak tła gdy label jest w środku */
.floating-field
.form-control:placeholder-shown + label.floating-label::before {
  display: none;
}
