.gc-floating-label .elementor-field-group {
  position: relative;
}

/* Label position.
   Physical properties (right/left) are used on purpose: this is a Hebrew (RTL)
   site, and they pin the label to the right regardless of the element's
   computed `direction`. (Logical inset-inline-* properties were flipping the
   label to the wrong side when `direction` resolved to ltr.)

   At rest the label is vertically centered (top: 50% + translateY(-50%)) so it
   sits at exactly the same height as the input cursor. We intentionally do NOT
   add top padding to the input: that would inflate the field height and push
   the cursor off-center. */
.gc-floating-label .elementor-field-label {
  position: absolute;
  top: 50%;
  right: 0.75rem;
  left: auto;
  text-align: right;
  line-height: 1;
  transform: translateY(-50%);
  transform-origin: right top;
  transition: transform 0.15s ease, color 0.15s ease;
  pointer-events: none;
}

/* Floated (filled or focused) state: rises from the center and shrinks. */
.gc-floating-label .elementor-field-group.is-filled .elementor-field-label,
.gc-floating-label .elementor-field-group .elementor-field-textual:focus + .elementor-field-label {
  transform: translateY(calc(-50% - 2rem)) scale(0.85);
  color: #fff;
}

.gc-floating-label .elementor-field-textual:focus {
  outline: none;
}
