﻿:root {
    --black: #222;
    --input-border: #ccc;
    --input-border-hover: #999;
    --input-focus: #f9f9f9;
    --primary-red: #e00;
    --secondary-blue: #007fa5;
    --white: #fff;
}

form.form-builder {
    margin: 30px 0;
}

form.form-builder .form-field {
    padding-bottom: 18px;
}

form.form-builder .form-field textarea {
    min-height: 150px;
}

form.form-builder .form-field .ktc-radio-list,
form.form-builder .form-field .ktc-checkbox-list {
    display: grid;
}

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 {
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 400;
    margin: 0 0 0.5rem;
    position: relative;
}

form.form-builder .form-field input[type=checkbox] + label:hover::before,
form.form-builder .form-field input[type=checkbox]:focus + label::before {
    border: 1px solid var(--black);
}

form.form-builder .form-field input[type=radio]:checked + label:hover::before,
form.form-builder .form-field input[type=radio]:checked:focus + label::before {
    outline: 1px solid var(--primary-red);
}

form.form-builder .form-field input[type=radio] + label:hover::before,
form.form-builder .form-field input[type=radio]:focus + label::before {
    outline: 1px solid var(--black);
}


form.form-builder .form-field input[type=radio]:checked + label::before {
    background: #e00;
    border: 4px solid var(--white);
    outline: 1px solid var(--primary-red);
}

form.form-builder .form-field input[type=radio] + label::before {
    outline: 1px solid var(--input-border);
    border-radius: 50%;
    content: '';
    display: inline-block;
    height: 16px;
    margin-top: 1px;
    transform: translate(-10px, 0);
    vertical-align: text-top;
    width: 16px;
}

form.form-builder .form-field input[type=checkbox]:checked + label:hover::before,
form.form-builder .form-field input[type=checkbox]:checked + label:focus::before {
    border: 1px solid var(--primary-red);
}

form.form-builder .form-field input[type=checkbox]:checked + label::before {
    border: 1px solid var(--black);
}

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: 3px;
    position: absolute;
    top: 10px;
    transform: rotate(45deg);
    width: 2px;
}

form.form-builder .form-field input[type=checkbox] + label::before {
    background: var(--white);
    border: 1px solid var(--input-border);
    border-radius: 3px;
    content: '';
    display: inline-block;
    height: 16px;
    margin-right: 7px;
    margin-top: 2px;
    -webkit-transition: all 240ms ease-in-out 10ms;
    transition: all 240ms ease-in-out 10ms;
    vertical-align: text-top;
    width: 16px;
}

form.form-builder .form-field > label {
    color: var(--black);
    display: inline-block;
    font-size: 0.875rem;
    font-weight: 600;
    margin: 0 0 5px 0;
}

form.form-builder .form-field input,
form.form-builder .form-field select,
form.form-builder .form-field textarea {
    border: 1px solid var(--input-border);
    border-radius: 3px;
    box-shadow: none;
    color: var(--black);
    font-family: 'Open Sans', Arial, sans-serif;
    margin-bottom: 0;
}

form.form-builder .form-field input[type=file] {
    font-size: 0.850rem;
    outline: 0;
    padding: 10px;
}

form.form-builder .form-field input[type=file]::file-selector-button {
    background-color: var(--secondary-blue);
    color: var(--white);
    cursor: pointer;
    border: 0;
    border-radius: 3px;
    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 {
    display: inline-block;
    background-color: var(--secondary-blue);
    color: var(--white);
    cursor: pointer;
    border: 0;
    border-radius: 3px;
    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], [type=radio]):hover,
form.form-builder .form-field input[type=checkbox]:hover + label::before,
form.form-builder .form-field input[type=radio]:hover + label::before,
form.form-builder .form-field select:hover,
form.form-builder .form-field textarea:hover,
form.form-builder .form-field .ktc-file-component-wrapper:has(input[type=file][hidden]):hover,
form.form-builder .form-field .file-drop-zone:hover,
form.form-builder .form-field .ck-editor:hover,
form.form-builder .form-field.field-RecaptchaComponent iframe:hover {
    box-shadow: 0 0 0 1px var(--white), 0 0 0 2px var(--input-border-hover);
}

form.form-builder .form-field input:not([type=checkbox], [type=radio]):focus,
form.form-builder .form-field input[type=checkbox]:focus + label::before,
form.form-builder .form-field input[type=radio]:focus + label::before,
form.form-builder .form-field select:focus,
form.form-builder .form-field textarea:focus,
form.form-builder .form-field .ktc-file-component-wrapper:has(input[type=file][hidden]):focus-within,
form.form-builder .form-field .file-drop-zone:focus,
form.form-builder .form-field .ck-editor:focus-within,
form.form-builder .form-field.field-RecaptchaComponent iframe:focus-within {
    box-shadow: 0 0 0 1px var(--white), 0 0 0 2px var(--input-border-hover);
}

form.form-builder .form-field .ck-editor {
    border-radius: 3px;
}

form.form-builder .form-field .ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable) {
    border: 1px solid var(--input-border);
}

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 select:focus,
form.form-builder .form-field textarea:focus {
    background-color: var(--input-focus);
}

form.form-builder .form-field .field-validation-error {
    color: var(--primary-red);
    font-size: 12px;
    margin-top: 5px;
}

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) 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) input[type=checkbox] + label::before,
form.form-builder .form-field:has(.field-validation-error) input[type=radio] + label::before,
form.form-builder .form-field:has(.field-validation-error) .ck-editor,
form.form-builder .form-field.field-RecaptchaComponent:has(.field-validation-error) iframe {
    border: 1px solid var(--primary-red);
}

form.form-builder .form-field:has(.field-validation-error) input:not([type=checkbox], [type=radio]):hover,
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=radio]:hover + label::before,
form.form-builder .form-field:has(.field-validation-error) select:hover,
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) .ck-editor:hover,
form.form-builder .form-field:has(.field-validation-error).field-RecaptchaComponent iframe:hover {
    box-shadow: 0 0 0 1px var(--white), 0 0 0 2px var(--primary-red);
}

form.form-builder .form-field:has(.field-validation-error) input:not([type=checkbox], [type=radio]):focus,
form.form-builder .form-field:has(.field-validation-error) input[type=checkbox]:focus + 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) select:focus,
form.form-builder .form-field:has(.field-validation-error) textarea:focus,
form.form-builder .form-field:has(.field-validation-error) .file-drop-zone:focus,
form.form-builder .form-field:has(.field-validation-error) .ck-editor:focus-within,
form.form-builder .form-field:has(.field-validation-error).field-RecaptchaComponent iframe:focus-within {
    box-shadow: 0 0 0 1px var(--white), 0 0 0 2px var(--primary-red);
}


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(--secondary-blue);
    color: var(--white);
    cursor: pointer;
    border: 0;
    border-radius: 6px;
    font-family: "Open Sans", Arial, sans-serif;
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 11px 24px;
    position: relative;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color 200ms ease-out;
    white-space: normal;
}
