.nl-form {
    font-size: 2.4rem;
    font-weight: 300;
    line-height: 1.5;
    position: relative;
    max-width: 1200px;
    margin: 50px auto 0;
    text-align: center;
    color: #666;
}
.nl-form ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* normalize the input elements, make them look like everything else */

.nl-form input, .nl-form select, .nl-form button {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    display: inline-block;
    margin: 0;
    padding: 0;
    color: inherit;
    border: none;
    background: transparent;
    -webkit-appearance: none;
    -moz-appearance: none;
}
.nl-form input:focus {
    outline: none;
}

/* custom field (drop-down, text element) styling  */

.nl-field {
    position: relative;
    display: inline-block;
}
.nl-field.nl-field-open {
    z-index: 10000;
}

/* the toggle is the visible part in the form */

.nl-field-toggle, .nl-form input, .nl-form select {
    font-weight: 400;
    line-height: inherit;
    display: inline-block;
    cursor: pointer;
    color: #32aacd;
    border-bottom: 2px dashed #32aacd;
}

/* drop-down list / text element */

.nl-field ul {
    font-size: 80%;
    font-weight: 300;
    position: absolute;
    top: 50%;
    left: -.5em;
    visibility: hidden;
    -webkit-transition: visibility 0s .3s, opacity .3s, -webkit-transform .3s;
    -moz-transition: visibility 0s .3s, opacity .3s, -moz-transform .3s;
    transition: visibility 0s .3s, opacity .3s, transform .3s;
    -webkit-transform: translateY(-40%) scale(.9);
    -moz-transform: translateY(-40%) scale(.9);
    transform: translateY(-40%) scale(.9);
    opacity: 0;
    background: #32aacd;
}
.nl-field.nl-field-open ul {
    visibility: visible;
    -webkit-transition: visibility 0s 0s, opacity .3s, -webkit-transform .3s;
    -moz-transition: visibility 0s 0s, opacity .3s, -moz-transform .3s;
    transition: visibility 0s 0s, opacity .3s, transform .3s;
    -webkit-transform: translateY(-50%) scale(1);
    -moz-transform: translateY(-50%) scale(1);
    transform: translateY(-50%) scale(1);
    opacity: 1;
}
.nl-field ul li {
    font-weight: 300;
    position: relative;
    color: #fff;
}
.nl-dd ul li {
    padding: 0 10px;
    cursor: pointer;
    white-space: nowrap;
}
.nl-dd ul li.nl-dd-checked {
    color: #028aad;
}
.no-touch .nl-dd ul li:hover {
    background: rgba(0, 0, 0, .05);
}
.no-touch .nl-dd ul li:hover:active {
    color: #478982;
}
.nl-ti-text ul {
    min-width: 8em;
}
.nl-ti-text ul li.nl-ti-input input {
    width: 100%;
    padding: .2em 2em .2em .5em;
    color: #fff;
    border-bottom: none;
}
.nl-form .nl-field-go {
    position: absolute;
    top: 0;
    right: 0;
    width: 1.8em;
    height: 100%;
    cursor: pointer;
    color: transparent;
    background: rgba(0, 0, 0, .1);
}

/* custom placeholder color */

input::-webkit-input-placeholder {
    color: rgba(255, 255, 255, .8);
}
input:active::-webkit-input-placeholder, input:focus::-webkit-input-placeholder {
    color: rgba(255, 255, 255, .2);
}
input::-moz-placeholder {
    color: rgba(255, 255, 255, .8);
}
input:active::-moz-placeholder, input:focus::-moz-placeholder {
    color: rgba(255, 255, 255, .2);
}
input:-ms-input-placeholder {
    color: rgba(255, 255, 255, .8);
}
input:active::-ms-input-placeholder, input:focus::-ms-input-placeholder {
    color: rgba(255, 255, 255, .2);
}

/* example field below text input */

.nl-ti-text ul li.nl-ti-example {
    font-size: 40%;
    font-weight: 400;
    font-style: italic;
    padding: .4em 1em;
    color: rgba(0, 0, 0, .2);
    border-top: 1px dashed rgba(255, 255, 255, .7);
}
.nl-ti-text ul li.nl-ti-example em {
    color: #fff;
}

/* submit button */

.nl-submit-wrap {
    margin-top: .4em;
}
.nl-form .nl-submit {
    font-size: 40%;
    font-weight: bold;
    line-height: 3;
    position: relative;
    padding: 0 1em 0 0;
    cursor: pointer;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #fff;
    background: #76c3bd;
}
.no-touch .nl-form .nl-submit:hover, .no-touch .nl-form .nl-submit:active {
    background: #69b1a9;
}

/* overlay becomes visible when a field is opened */

.nl-overlay {
    position: fixed;
    z-index: 9999;
    top: 0;
    left: 0;
    visibility: hidden;
    width: 100%;
    height: 100%;
    -webkit-transition: visibility 0s .3s, opacity .3s;
    -moz-transition: visibility 0s .3s, opacity .3s;
    transition: visibility 0s .3s, opacity .3s;
    opacity: 0;
    background: rgba(0, 0, 0, .5);
}
.nl-field.nl-field-open ~ .nl-overlay {
    visibility: visible;
    -webkit-transition-delay: 0s;
    -moz-transition-delay: 0s;
    transition-delay: 0s;
    opacity: 1;
}
@media screen and (max-width: 45em) {
    .nl-form {
        font-size: 3em;
    }
}
@media screen and (max-width: 25em) {
    .nl-form {
        font-size: 2em;
    }
}
