form {
    margin: 0 0 1.6rem;
    padding: 0 0 1.6rem;
    display: inline-block;
    width: 100%;
}

form :last-child {
    margin-bottom: 0;
}

form, label, input, textarea, select,
.select select, .select optgroup option,
.select optgroup option, .checkbox > span label,
.radio > span label, form .message, .btn {
    font-family: 'Lato', sans-serif;
    font-weight: normal;
}

/***** Button Reset *****/
input::-moz-focus-inner,
button::-moz-focus-inner {
    border: 0;
    padding: 0;
}

/***** Forms with inline labels *****/
.labels-inline fieldset{
    height: 3.4rem;
}

.labels-inline label {
    padding: 1.1rem 1.6rem 0 0;
    float: left;
    width: 30%;
    white-space: nowrap;
    text-align: right;
}

.labels-inline label + input,
.labels-inline label + .select,
.labels-inline label + textarea,
.labels-inline label + .toggled {
    width: 70%;
    float: right;
}

.labels-inline label + input + .message,
.labels-inline label + .select + .message,
.labels-inline label + textarea + .message,
.labels-inline label + .toggled + .message{
    width: 70%;
    float: right;
}

.labels-inline button:first-of-type {
    margin-left: 30%;
}

.labels-inline  label + .checkbox,
.labels-inline  label + .radio {
    margin-left: 30%;
    width: 70%;
}

.labels-inline  label + .radio input,
.labels-inline  label + .checkbox input {
    width: auto;
}

.labels-inline  label + .toggled label {
    width: 5rem;
}

/***** Inline items *****/
.inline-parent {
    display: flex;
}

.inline-parent input,
.inline-parent textarea,
.inline-parent select,
.inline-parent .select {
    width: 100%;
}

.inline-parent .inline-child {
    margin: 0 2rem 2rem 0;
    display: flex;
    flex: 1;
    flex-direction: column;
}

.inline-parent .inline-child .message {
    width: 100%;
}

.inline-parent .inline-child:last-child {
    margin-right: 0;
}

.inline-parent .inline-child-grid-1 {
    flex: 0 0 calc(10% - 1rem);
}

.inline-parent .inline-child-grid-2 {
    flex: 0 0 calc(20% - 1rem);
}

.inline-parent .inline-child-grid-3 {
    flex: 0 0 calc(30% - 1rem);
}

.inline-parent .inline-child-grid-4 {
    flex: 0 0 calc(40% - 1rem);
}

.inline-parent .inline-child-grid-5 {
    flex: 0 0 calc(50% - 1rem);
}

.inline-parent .inline-child-grid-6 {
    flex: 0 0 calc(60% - 1rem);
}

.inline-parent .inline-child-grid-7 {
    flex: 0 0 calc(70% - 1rem);
}

.inline-parent .inline-child-grid-8 {
    flex: 0 0 calc(80% - 1rem);
}

.inline-child-grid-9 {
    flex: 0 0 calc(90% - 1rem);
}

/***** Inline elements *****/
.has-inline-elements {
    position: relative;
    display: table;
    border-collapse: separate;
    width: 100%;
}

.has-inline-elements input,
.has-inline-elements textarea,
.has-inline-elements select,
.has-inline-elements .select {
    width: 100%;
}

.flex-grow {
    flex-grow: 1;
}

.inline-btn-group {
    padding: 0 0 0 1rem;
    width: 1%;
    white-space: nowrap;
    vertical-align: middle;
    display: table-cell;
}

