﻿@import "../main/variables.css";

form.form-builder {
    background-color: var(--white);
    border: 1px solid var(--form-border-grey);
    box-shadow: var(--form-box-shadow);
    margin: 20px 0;
    max-width: 768px;
    padding: 20px;
}

form.form-builder:has(.form-field.field-RecaptchaComponent) {
    min-width: 345px;
    /* ^ Captcha */
}

@media screen and (min-width: 768px) {
    form.form-builder {
        margin: 30px 0;
    }
}

form.form-builder {
    background-color: var(--white);
    border: 1px solid var(--form-border-grey);
    box-shadow: var(--form-box-shadow);
    margin: 30px auto;
    padding: 20px;
}

form.form-builder .form-field {
    margin-bottom: 0;
    padding-bottom: 18px;
}

form.form-builder .ktc-default-section > .form-field:first-of-type.field-TextBlockComponent {
    /* FORM TITLE */
    border-bottom: 1px solid var(--border-grey);
    font-size: 1.375rem;
    font-weight: 600;
    line-height: 1.25;
    margin-bottom: 18px;
}

form.form-builder .ktc-default-section > .form-field.field-TextBlockComponent:has( + .form-field.field-RecaptchaComponent) {
    /* Link at the bottom the form, before ReCAPTHCHA which includes html */
    font-size: .875rem;
    margin-top: -18px;
}

form.form-builder .form-field textarea {
    min-height: 150px;
    margin-top: 5px;
    max-height: 200px;
}

form.form-builder .form-field .ktc-radio-list {
    margin: 5px 8px 5px 13px;
}

form.form-builder .form-field .ktc-checkbox-list {
    margin: 5px 8px 5px 3px;
}

form.form-builder .form-field .ktc-radio-list,
form.form-builder .form-field .ktc-checkbox-list {
    display: grid;
}

form.form-builder .form-field > label {
    color: var(--black);
    display: inline-block;
    font-size: .9375rem;
    font-weight: 600;
    line-height: 1.5;
    margin: 0 0 5px 0;
}

form.form-builder .form-field input[type=radio],
form.form-builder .form-field input[type=checkbox] {
    display: inline-block;
    height: 0;
    position: absolute;
    width: 0;
}

form.form-builder .form-field input[type=radio] + label,
form.form-builder .form-field input[type=checkbox] + label {
    color: var(--grey-black);
    cursor: pointer;
    display: inline-block;
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.5;
    margin-left: 10px;
    position: relative;
    text-indent: -12px;
    vertical-align: baseline;
}

form.form-builder .form-field input[type=checkbox] + label {
    margin-left: 23px;
    text-indent: -25px;
}

form.form-builder .form-field.field-RadioButtonsComponent .ktc-radio-list > .ktc-radio,
form.form-builder .form-field.field-MultipleChoiceComponent .ktc-checkbox-list > .ktc-checkbox {
    line-height: 1.5;
    margin-bottom: 8px;
}

form.form-builder .form-field.field-RadioButtonsComponent .ktc-radio-list > .ktc-radio:last-of-type {
    margin-bottom: 0;
}

form.form-builder .form-field input[type=checkbox] + label::before {
    background: var(--white);
    border: none;
    border-radius: 3px;
    content: '';
    display: inline-block;
    height: 16px;
    margin-right: 10px;
    margin-top: 2px;
    outline: 1px solid var(--radio-border);
    -webkit-transition: all 240ms ease-in-out 10ms;
    transition: all 240ms ease-in-out 10ms;
    vertical-align: text-top;
    width: 16px;
}

/* Checkbox Check */
form.form-builder .form-field input[type=checkbox]:checked + label::after {
    background: var(--primary-red);
    box-shadow: 
        2px 0 0 var(--primary-red), 
        4px 0 0 var(--primary-red), 
        4px -2px 0 var(--primary-red), 
        4px -4px 0 var(--primary-red), 
        4px -6px 0 var(--primary-red), 
        4px -8px 0 var(--primary-red);
    content: '';
    height: 2px;
    left: -22px;
    position: absolute;
    top: 10px;
    transform: rotate(45deg);
    width: 2px;
}

form.form-builder .form-field input[type=checkbox]:hover + label::before,
form.form-builder .form-field input[type=checkbox]:focus + label::before,
form.form-builder .form-field input[type=checkbox]:checked + label::before,
form.form-builder .form-field input[type=checkbox]:checked:hover + label::before,
form.form-builder .form-field input[type=checkbox]:checked:focus + label::before {
    outline: 1px solid var(--primary-red);
}

form.form-builder .form-field input[type=radio] + label::before {
    border: none;
    border-radius: 50%;
    content: '';
    display: inline-block;
    height: 16px;
    margin-top: 2px;
    outline: 1px solid var(--radio-border);
    transform: translate(-10px, 0);
    vertical-align: text-top;
    width: 16px;
}

form.form-builder .form-field input[type=radio] + label:hover::before,
form.form-builder .form-field input[type=radio] + label:focus::before,
form.form-builder .form-field input[type=radio]:focus + label::before {
    outline: 1px solid var(--primary-red);
}

/* Radio Selected */
form.form-builder .form-field input[type=radio]:checked + label::before,
form.form-builder .form-field input[type=radio]:checked:focus + label::before,
form.form-builder .form-field input[type=radio]:checked:hover + label::before {
    background: var(--primary-red);
    border: 4px solid var(--white);
    outline: 1px solid var(--primary-red);
}

form.form-builder .form-field .explanation-text {
    color: var(--medium-grey-darker);
    font-size: .75rem;
}

form.form-builder .form-field .explanation-text::before {
    color: var(--medium-grey-darker);
}

form.form-builder .form-field input:not([type=radio], [type=checkbox]),
form.form-builder .form-field select,
form.form-builder .form-field textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-color: var(--white);
    border: 1px solid var(--input-border);
    border-radius: 3px;
    box-shadow: none;
    box-sizing: border-box;
    color: var(--black);
    display: block;
    font-family: 'Open Sans', Arial, sans-serif;
    height: 40px;
    margin-bottom: 0;
    outline: none;
    padding: .5rem;
    transition: all 0.15s linear;
    width: 100%;
}

form.form-builder .form-field input:hover,
form.form-builder .form-field select:hover,
form.form-builder .form-field textarea:hover {
    border: 1px solid var(--input-border-hover);
}

form.form-builder .form-field select {
    background: url("/assets/icons/chevron-down-333.png") right/90% no-repeat;
    background-size: 14px;
    background-position: calc(100% - 10px);
    padding: 6px 22px 6px 10px;
}

form.form-builder .form-field input[type=file] {
    font-size: .875rem;
    outline: 0;
    padding: 10px;
}

form.form-builder .form-field input[type=file]::file-selector-button {
    background-color: var(--secondary-blue);
    border: 0;
    border-radius: 3px;
    color: var(--white);
    cursor: pointer;
    font-family: "Open Sans", Arial, sans-serif;
    font-size: 0.850rem;
    padding: 3px 6px;
    transition: background-color 200ms ease-out;
    white-space: normal;
}

.ktc-file-component-wrapper:has(input[type=file][hidden]) {
    border: 1px solid var(--input-border);
    border-radius: 3px;
    box-shadow: none;
    color: var(--black);
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 0.850rem;
    margin-bottom: 0;
    padding: 10px;
}

.ktc-file-component-wrapper:has(input[type=file][hidden]) a {
    background-color: var(--secondary-blue);
    border: 0;
    border-radius: 3px;
    color: var(--white);
    cursor: pointer;
    display: inline-block;
    font-family: "Open Sans", Arial, sans-serif;
    margin-left: 5px;
    padding: 3px 6px;
    text-decoration: none;
    transition: background-color 200ms ease-out;
    white-space: normal;
}

form.form-builder .form-field input:not([type=checkbox]):hover,
form.form-builder .form-field input:not([type=checkbox]):focus,
form.form-builder .form-field input:not([type=radio]):hover,
form.form-builder .form-field input:not([type=radio]):focus
form.form-builder .form-field input[type=checkbox]:hover + label::before,
form.form-builder .form-field input[type=checkbox]:focus + label::before
form.form-builder .form-field input[type=radio]:hover + label::before
form.form-builder .form-field input[type=radio]:focus + label::before,
form.form-builder .form-field select:hover,
form.form-builder .form-field select:focus,
form.form-builder .form-field textarea:hover,
form.form-builder .form-field textarea:focus,
form.form-builder .form-field .ktc-file-component-wrapper:has(input[type=file][hidden]):hover,
form.form-builder .form-field .ktc-file-component-wrapper:has(input[type=file][hidden]):focus,
form.form-builder .form-field .file-drop-zone:hover,
form.form-builder .form-field .file-drop-zone:focus,
form.form-builder .form-field .ck-editor:hover,
form.form-builder .form-field .ck-editor:focus,
form.form-builder .form-field.field-RecaptchaComponent iframe:focus {
    border: 1px solid var(--input-border-hover);
}

form.form-builder .form-field .ck-editor {
    border-radius: 3px;
}

form.form-builder .form-field.field-FileUploaderComponent .ktc-uploader-text {
    display: none;
}

form.form-builder .form-field.field-RecaptchaComponent iframe {
    border-radius: 3px;
}

form.form-builder .form-field select:focus-visible,
form.form-builder .form-field .file-drop-zone:focus-visible {
    outline: 0;
}

form.form-builder .form-field input:focus,
form.form-builder .form-field input:not([type=radio]):focus,
form.form-builder .form-field input:not([type=checkbox]):focus,
form.form-builder .form-field select:focus,
form.form-builder .form-field textarea:focus,
form.form-builder .form-field .ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable) {
    background-color: var(--input-focus);
    border: 1px solid var(--input-border-hover);
    box-shadow: none;
}
/* Errors */
form.form-builder .form-field .field-validation-error {
    color: var(--primary-red);
    display: block;
    font-size: 12px;
    margin-top: 5px;
}

form.form-builder .form-field .ktc-radio-list + .field-validation-error {
    margin-top: 0;
}

form.form-builder .form-field .field-validation-error::before {
    color: var(--primary-red);
    content: "\f071";
    font-family: FontAwesome;
    padding-right: 5px;
}

form.form-builder .form-field:has(.field-validation-error) input,
form.form-builder .form-field:has(.field-validation-error) input:not([type=radio]),
form.form-builder .form-field:has(.field-validation-error) input:not([type=checkbox]),
form.form-builder .form-field:has(.field-validation-error) select,
form.form-builder .form-field:has(.field-validation-error) textarea,
form.form-builder .form-field:has(.field-validation-error) .file-drop-zone,
/* form.form-builder .form-field:has(.field-validation-error) .ck-editor, */
form.form-builder .form-field.field-RecaptchaComponent:has(.field-validation-error) iframe {
    background-color: var(--error-bg);
    border: 1px solid var(--primary-red);
}

form.form-builder .form-field:has(.field-validation-error) .file-drop-zone a {
    color: var(--primary-red);
}

form.form-builder .form-field:has(.field-validation-error) .file-drop-zone a:hover,
form.form-builder .form-field:has(.field-validation-error) .file-drop-zone a:focus {
    color: var(--secondary-red);
}


form.form-builder .form-field:has(.field-validation-error) .ck-editor .ck-sticky-panel__content {
    border-left: 1px solid var(--primary-red);
    border-top: 1px solid var(--primary-red);
    border-right: 1px solid var(--primary-red);
}
form.form-builder .form-field:has(.field-validation-error) .ck-editor__editable:not(.ck-focused) {
    border-bottom: 1px solid var(--primary-red);
    border-left: 1px solid var(--primary-red);
    border-right: 1px solid var(--primary-red);
}

form.form-builder .form-field:has(.field-validation-error) input:hover,
form.form-builder .form-field:has(.field-validation-error) input:focus,
form.form-builder .form-field:has(.field-validation-error) input:not([type=checkbox]):hover, 
form.form-builder .form-field:has(.field-validation-error) input:not([type=checkbox]):focus,
form.form-builder .form-field:has(.field-validation-error) input:not([type=radio]):hover,
form.form-builder .form-field:has(.field-validation-error) input:not([type=radio]):focus,
form.form-builder .form-field:has(.field-validation-error) select:hover,
form.form-builder .form-field:has(.field-validation-error) select:focus,
form.form-builder .form-field:has(.field-validation-error) textarea:focus,
form.form-builder .form-field:has(.field-validation-error) textarea:hover,
form.form-builder .form-field:has(.field-validation-error) .file-drop-zone:hover,
form.form-builder .form-field:has(.field-validation-error) .file-drop-zone:focus,
form.form-builder .form-field:has(.field-validation-error).field-RecaptchaComponent iframe:hover,
form.form-builder .form-field:has(.field-validation-error).field-RecaptchaComponent iframe:focus-within {
    border: 1px solid var(--black);
}

form.form-builder .form-field:has(.field-validation-error) input[type=radio] + label::before,
form.form-builder .form-field:has(.field-validation-error) input[type=checkbox] + label::before {
    background-color: var(--error-bg);
    outline: 1px solid var(--primary-red);
}

form.form-builder .form-field:has(.field-validation-error) input[type=radio]:hover + label::before,
form.form-builder .form-field:has(.field-validation-error) input[type=radio]:focus + label::before,
form.form-builder .form-field:has(.field-validation-error) input[type=checkbox]:hover + label::before,
form.form-builder .form-field:has(.field-validation-error) input[type=checkbox]:focus + label::before {
    outline: 1px solid var(--black);
}

form.form-builder .form-field label.required-field-red-star::after {
    color: var(--primary-red);
    content: '*';
}

form.form-builder input[type=submit] {
    background-color: var(--primary-blue);
    border: 1px solid var(--primary-blue);
    border-radius: 6px;
    color: var(--white);
    cursor: pointer;
    font-family: "Open Sans", Arial, sans-serif;
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: normal;
    min-width: 150px;
    padding: 11px 24px;
    position: relative;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color 200ms ease-out;
    white-space: normal;
}

form.form-builder input[type=submit]:hover,
form.form-builder input[type=submit]:focus {
    background-color: var(--black);
    border: 1px solid var(--black);
}
