.generic-input {
    position: relative;

    &__label {
        // Needs to be positioned to appear above the input.
        font-size: 18px;
        left: 10px;
        position: absolute;
        top: 25px;
        transition: font-size .25s, top .25s;

        &.focus {
            top: 6px;
            font-size: 11px;
        }
    }

    &__field[type=text] {
        @extend %input;
        width: calc(100% - 20px);
        margin-bottom: 20px;
        padding-top: 25px;
        padding-bottom: 7px;
    }

    &__errors {
        @extend %list-style;
        margin: -10px 0 30px 0;
    }

    &__error {
        padding: 10px 20px;
        background-color: $error;
        border-radius: $border-radius;
        color: $white;
    }
}

.generic-input {
    position: relative;

    &__label {
        // Needs to be positioned to appear above the input.
        color: $cool-grey;
        left: 10px;
        position: absolute;
        top: 25px;
        transition: font-size .25s, top .25s;

        &.focus {
            color: $warm-grey;
            font-size: 12px;
            top: 6px;
        }
    }

    &__field[type=text] {
        @extend %input;
        width: calc(100% - 20px);
        margin-bottom: 20px;
        padding-top: 25px;
        padding-bottom: 7px;
    }

    &__errors {
        @extend %list-style;
        margin: -10px 0 30px 0;
    }

    &__error {
        padding: 10px 20px;
        background-color: $error;
        border-radius: $border-radius;
        color: $white;
    }
}

Tweak label size/color to match spec.
Tweak label size/color to match spec.
