/*------------------------------------*\
    
    WebFX CF7 Customizations - Global styling for all CF7 Forms

    Add custom CF7 form styling to this file if it should be applied to all CF7 forms on the site
    Otherwise, put your block-specific styles in individual block stylesheets so that various block-specific styles aren't loaded on every CF7 form

\*------------------------------------*/


/* Default Radio/Checkbox Style (if using CF7) */
.wpcf7-radio .wpcf7-list-item,
.wpcf7-checkbox .wpcf7-list-item {
    display: inline-block;
    margin-right: 15px;
    margin-bottom: 10px;
    /* incase items go to 2 lines */
}

.wpcf7-radio .wpcf7-list-item-label,
.wpcf7-checkbox .wpcf7-list-item-label {
    margin-left: 5px;
}

/* CF7 Validation (Remove if not using CF7) */
form.wpcf7-form.invalid .input-field,
form.wpcf7-form.invalid .form-col {
    margin-bottom: 20px;
}

/* Individual field error messages */
.input-field .wpcf7-not-valid-tip,
.form-col .wpcf7-not-valid-tip {
    font-family: var(--font-barlow);
    font-size: 11px;
    font-weight: 600;
    color: var(--color-primary);
    line-height: 1em;
    padding: 0 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    position: relative;
    bottom: -5px;
    right: 0;
    float: right;
    margin-right: 0;
    text-align: left;
    text-transform: uppercase;
    width: 100%;
}

.wpcf7-not-valid-tip::after {
    content: "\e900";
    color: var(--color-primary);
    display: inline-block;
    font-family: 'playworld-systems-icomoon';
    font-size: 20px;
    position: absolute;
    top: -38px;
    right: 10px;
}

textarea ~ .wpcf7-not-valid-tip::after {
    top: -160px;
}

/* Entire form error message */
.wpcf7-response-output {
    color: var(--text-color);
    font-family: var(--font-barlow);
}

/* Styling for fields that have errors */
select.wpcf7-not-valid,
textarea.wpcf7-not-valid,
input.wpcf7-not-valid,
.wpcf7-not-valid .choices {
    /* border-color: var(--color-primary); */
}

.wpcf7-form .wpcf7-spinner {
    position: absolute;
    right: 8px;
    margin-right: auto;
}

/* custom checkbox styling for contact form 7 checkbox */
span.wpcf7-list-item {
	display: inline-block;
	margin: 0;
}
.wpcf7 .wpcf7-list-item {
	display: block;
	margin-bottom: 10px;
}
.wpcf7-checkbox label {
    font-weight: 700;
	position: relative;
	cursor: pointer;
}
.wpcf7-checkbox input[type=checkbox] {
	/*position: relative;*/
	position: absolute;
	visibility: hidden;
	width: 19px;
	height: 19px;
	top: 0;
	left: 0;
}
.wpcf7-checkbox input[type=checkbox] + span {
	/* border: 3px solid red; */
    margin-left: 35px;
}
.wpcf7-checkbox input[type=checkbox] + span:before {
	display: block;
	position: absolute;
	content: '';
	border-radius: 0;
	height: 19px;
	width: 19px;
	top: 0px;
	left: 0px;
    background: var(--color-light-gray);
	border: 0;
    border-radius: 4px;
}
.wpcf7-checkbox input[type=checkbox] + span:after {
	display: block;
	position: absolute;
	content: "\2713";
    color: var(--color-white);
	height: 19px;
	width: 19px;
	top: 0;
	left: 0;
	visibility: hidden;
	font-size: 12px;
	text-align: center;
	line-height: 19px;
}
.wpcf7-checkbox input[type=checkbox]:checked + span:before {
	background: var(--color-black);
}
.wpcf7-checkbox input[type=checkbox]:checked + span:after {
	visibility: visible;
}
.wpcf7-list-item-label {
	margin-left: 40px;
	display: inline-block;
}

/* Form fields */

.wpcf7 .input-field {
    position: relative;
    margin-bottom: 25px;
}

.cf7-block.has-hidden-field-label .wpcf7 .input-field label {
    display: none;
}

.wpcf7 .input-field label {
    display: block;
    font-weight: 700;
}

.wpcf7 .wpcf7-textarea {
    border: 1px solid #E1E1E1;
    height: 100px;
    padding: 5px 15px;
    width: 100%;
}

.wpcf7 .input-field__checkbox--multiple {
    margin-top: 15px;
}

.wpcf7 .input-field__checkbox--multiple .wpcf7-checkbox {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 10px;
    max-width: 480px;
    width: 100%;
}

.wpcf7 .input-field__checkbox--multiple > label {
    display: block;
    padding-bottom: 15px;
}

.wpcf7 .input-field__checkbox--multiple .wpcf7-checkbox .wpcf7-list-item {
    flex: 0 0 100%;
    margin-right: 0;
    padding-right: 5px;
}

.wpcf7 .input-field__checkbox--multiple .wpcf7-checkbox .wpcf7-list-item > label {
    display: block;
}

.wpcf7 .disclaimer {
    color: var(--color-gray);
    font-size: 14px;
}

.wpcf7 .disclaimer:first-of-type {
    margin-top: 20px;
}

.wpcf7 .disclaimer a {
    color: var(--color-primary);
}

.wpcf7 .form-submit {
    margin-top: 20px;
    padding-left: 5px;
    position: relative;
    z-index: 1;
}

.wpcf7 .cf7mls-btns .cf7mls_btn {
    background: var(--color-primary);
}

/* Custom File Upload */

.wpcf7 .fx-playground-button-closeup .wpcf7-form-control-wrap.input-has-value,
.wpcf7 .fx-playground-button .wpcf7-form-control-wrap.input-has-value {
    margin-top: 10px;
    display: block;
}

.wpcf7 .fx-playground-button-closeup .input-field__label,
.wpcf7 .fx-playground-button .input-field__label {
    padding-top: 10px;
}

input.wpcf7-form-control.wpcf7-not-valid + span.wpcf7-not-valid-tip {
    margin-bottom: 25px;
}

.wpcf7 .cf7mls-btns .cf7mls_btn:after {
    background: var(--color-primary);
    border: 2px solid var(--color-primary);
}

.wpcf7 .cf7mls-btns .cf7mls_btn.cf7mls_next {
    color: var(--color-white);
    margin-right: 6px;
}

.wpcf7 .cf7mls-btns .cf7mls_btn,
.cf7mls_back.action-button {
    display: inline-block;
    border: 0;
    font-family: var(--font-barlow);
    font-size: 18px;
    line-height: 1.3em;
    font-weight: 500;
    padding: 12px 38px 13px;
    position: relative;
    vertical-align: middle;
    text-decoration: none;
    transition: color .3s ease-in-out;
    background: transparent;
    z-index: 1;
    margin: 20px 0 0;
}

.wpcf7 .cf7mls-btns .cf7mls_btn:after,
.cf7mls_back.action-button::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    background: var(--color-primary);
    border: 2px solid var(--color-primary);
    border-radius: 4px 8px;
    transform: skewX(-15deg);
    z-index: -1;
    transition: background .3s ease-in-out,border .3s ease-in-out,color .3s ease-in-out,transform .3s ease-in-out;
}

#cf7-form-15588 .form-submit {
    float: left;
    margin-right: 25px;
}

.cf7mls_back.action-button {
    color: #fff;
}

.cf7mls_back.action-button:hover,
.wpcf7 .cf7mls-btns .cf7mls_btn.cf7mls_next:hover {
    opacity: 1;
    color: var(--color-primary);
}

.cf7mls_back.action-button:hover::after,
.wpcf7 .cf7mls-btns .cf7mls_btn.cf7mls_next:hover::after {
    background: #fff;
}

@media (min-width: 768px) {
    .wpcf7 .input-field__checkbox--multiple .wpcf7-checkbox .wpcf7-list-item {
        flex: 0 0 50%;
    }
}

@media (min-width: 1200px) {
    .wpcf7 .disclaimer a:hover {
        color: var(--color-dark-gray);
    }
}

.cf7mls-btns .cf7mls_next.action-button, 
.cf7mls-btns .cf7mls_back.action-button {
    margin-top: 20px !important;
    background-color: #fff;
}

.cf7mls .form-submit {
    display: flex;
    place-items: center;
}

.cf7mls.submitting .form-submit-spinner {
    position: relative;
    display: block;
    width: 28px;
    height: 28px;
    margin-left: 12px;
    border-radius: 50%;
    background-color: #666;
}

.cf7mls.submitting .form-submit-spinner:before {
	content: '';
	position: absolute;
	background-color: #fbfbfc; /* Light Gray 100 */
	top: 4px;
	left: 4px;
	width: 6px;
	height: 6px;
	border: none;
	border-radius: 100%;
	transform-origin: 10px 10px;
	animation-name: spin;
	animation-duration: 1000ms;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}

.cf7mls.submitting button[type="submit"] {
    cursor: not-allowed;
    pointer-events: none;
}

@keyframes spin {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}