/* ############################
## FORM RESET
############################ */
form {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: 0 0
}
button,
input,
select,
textarea {
    margin: 0;
    border: 0;
    padding: 0;
    display: inline-block;
    vertical-align: middle;
    white-space: normal;
    background: 0 0;
    line-height: 1;
    font-size: 14px;
    line-height: 18px;
    font-family: Arial;
    -webkit-appearance: none;
    -moz-appearance: none;
    border-radius: 0;
    border: 0;
    border-style: solid;
}
input[type=checkbox],
input[type=radio] {
    padding: 0;
    border-radius: 100%;
    margin-right: 4px;
}
input[type=checkbox] {
    border-radius: 0;
}
button,
input[type=button],
input[type=reset],
input[type=submit] {
    overflow: visible;
    width: auto;
    cursor: pointer
}
::-webkit-file-upload-button {
    padding: 0;
    border: 0;
    background: 0 0
}
textarea {
    vertical-align: top;
    overflow: auto
}
select[multiple] {
    vertical-align: top
}
input[type=range] {
    -webkit-appearance: none;
    width: 100%;
    margin: 0;
    background: 0 0;
    padding: 0
}
input[type=range]::-webkit-slider-thumb {
    -webkit-appearance: none;
    border: none;
    width: 16px;
    height: 16px;
    border-radius: 100%;
    background: black;
    margin-top: -6px
}
input[type=range]::-moz-range-thumb {
    border: none;
    width: 16px;
    height: 16px;
    border-radius: 100%;
    background: black
}
input[type=range]::-ms-thumb {
    border: none;
    height: 16px;
    width: 16px;
    border-radius: 100%;
    background: black;
    cursor: pointer;
    margin-top: 0
}
input[type=range]::-webkit-slider-runnable-track {
    width: 100%;
    height: 4px;
    cursor: pointer;
    background: gray
}
input[type=range]:focus {
    outline: 0
}
input[type=range]:focus::-webkit-slider-runnable-track {
    background: black
}
input[type=range]::-moz-range-track {
    width: 100%;
    height: 4px;
    cursor: pointer;
    background: gray
}
input[type=range]:focus::-moz-range-track {
    background: black
}
select:not([multiple]) {
    background-image: url(../media/select_arrow.png);
    background-position: right;
    background-size: auto;
    background-repeat: no-repeat
}
select {
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
}
::-webkit-input-placeholder {
    line-height:normal!important;
  }
::-moz-placeholder {
    line-height:normal!important;
}
::placeholder {
    line-height:normal!important;
  }
/* ############################
## FORM ELEMENTS
############################ */
form select,
select {
    padding: 6px 48px 6px 16px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    min-width: 128px;
    -webkit-transition: background-color .3s;
    transition: background-color .3s
}
.l-archive-select select {
    max-width: 320px;
}
form input {
    width: 100%;
    padding-left: 16px;
    padding-right: 16px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    text-align: left;
    -webkit-transition: background-color .3s;
    transition: background-color .3s
}
form textarea {
    width: 100%;
    padding-top: 8px;
    padding-bottom: 8px;
    padding-left: 16px;
    padding-right: 16px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    text-align: left;
    -webkit-transition: background-color .3s;
    transition: background-color .3s
}
form input[type=file] {
    width: 100%;
    height: 32px;
    cursor: pointer
}
form input[type=button],
form input[type=reset],
form input[type=submit] {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-transition: background-color .3s, color .3s, padding .3s;
    -webkit-transition: background-color .3s, color .3s, border-color .3s;
    transition: background-color .3s, color .3s, border-color .3s
}
form input[type=button] {
    -webkit-transition: background-color .3s, color .3s, padding .3s;
    transition: background-color .3s, color .3s, padding .3s
}
form button {
    font-size: 12px;
    padding-top: 8px;
    padding-bottom: 8px;
    padding-left: 16px;
    padding-right: 16px;
    border-radius: 32px;
    height: 32px;
    text-transform: uppercase;
    font-weight: 700;
    min-width: 128px;
    -webkit-transition: background-color .3s, padding .3s;
    transition: background-color .3s, padding .3s;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    text-align: center
}
form label {
    width: 100%;
}
/* ############################
## FORM LAYOUT
############################ */
.l-form-row {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
}
.l-form-row:last-child {
    margin-bottom: 0;
}
.l-form-row--margin-reset {
    margin-bottom: 0 !important;
}
@media all and (min-width:768px) {
    .l-form-row--1-col {
        grid-template-columns: 1fr;
    }
    .l-form-row--2-cols {
        grid-template-columns: repeat(2, 1fr)
    }
}
@media all and (min-width:1024px) {
    .l-form-row--3-cols {
        grid-template-columns: repeat(3, 1fr);
    }
}
.l-form-col {
    display: flex;
    flex-direction: column;
    width: 100%;
}

@media all and (min-width: 768px) {
    .l-form-col--2-cols {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
}
.l-form-row:last-child .l-form-col {
    margin-bottom: 0;
}

.l-form-col__sub-col:last-child {
    margin-bottom: 0;
}

.l-form__item--input,
.l-form__item--box,
.l-form__item--textarea {
    width: 100%;
}
.l-form__item:last-child {
    margin-bottom: 0;
}

.l-form__item > span {
    height: 100%;
}
.l-form__acceptance {
    display: flex;
    justify-content: center;
}
.e-form__acceptance {
    display: flex;
    max-width: 768px;
}
.e-form__acceptance input[type=checkbox] {
    margin-right: 16px;
    margin-top: -3px
}
.l-form__annotation {
    display: flex;
    justify-self: center;
}
.e-form__annotation {
    display: flex;
    max-width: 768px;
}
.l-form__submit {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.l-form-row .c-cta {
    margin-top: 0;
}
/* Custom CF7 Loader */
div.wpcf7 .ajax-loader {
    display: none;
}
div.wpcf7 .ajax-loader.is-active {
    display: block;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    width: 100%;
    height: 48px;
}
/* ############################
## CF7 ELEMENTS
############################ */
.wpcf7 select {
    width: 100%;
    max-width: 100%
}
.wpcf7 textarea {
    max-width: 100%
}
.wpcf7 input[type=checkbox],
.wpcf7 input[type=radio] {
    margin: 0 8px 0 0
}
.wpcf7 .inputs-column {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column
}
.wpcf7-form-control {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column
}
.wpcf7 br {
    display: none
}
.wpcf7 input[type=submit] {
    margin-bottom: 0
}
.wpcf7-submit:disabled {
    background-color: gray !important;
    color: white !important;
}
span.wpcf7-not-valid-tip {
    display: none;
    position: relative;
    width: 100%;
    font-size: inherit;
    font-weight: inherit;
}
span.wpcf7-list-item {
    margin: 0 0 4px 0;
    display: flex;
    align-items: center;
}
@media all and (min-width:768px) {
    .wpcf7-list-item label {
        display: inline-block;
        margin-bottom: 0
    }
}
input.wpcf7-not-valid,
textarea.wpcf7-not-valid,
select.wpcf7-not-valid {
    border-style: solid
}
.wpcf7 label {
    width: 100%;
    display: inline-block
}
.wpcf7 label .wpcf7-form-control-wrap {
    display: inline-block
}
.wpcf7-form-control-wrap {
    display: block;
    width: 100%
}
div.wpcf7-response-output {
    padding: 0 !important;
    margin: 0 !important;
    border: none;
    max-width: 768px;
    justify-self: center;
    border: none !important
}
div.wpcf7 .ajax-loader {
    margin: 16px 0 0 0 !important
}
div.wpcf7-validation-errors {
    border: none !important
}
.l-form-acceptance .wpcf7-form-control-wrap {
    width: unset;
    min-width: 24px;
    margin-bottom: 0
}
.e-form-acceptance .wpcf7-form-control-wrap {
    margin-top: 0 !important
}
.e-form-acceptance .wpcf7-list-item {
    margin-left: 0
}
/* ############################
## DATEPICKER
############################ */
.only-timepicker .datepicker--nav,
.only-timepicker .datepicker--content {
    display: none;
}
.only-timepicker .datepicker--time {
    border-top: none;
}
.datepicker--time-row input[type='range']::-webkit-slider-thumb {
    height: 14px !important;
    width: 14px !important;
}
.datepicker--time-row input[type='range']::-moz-range-thumb {
    height: 14px !important;
    width: 14px !important;
}