/* Styles configuration */
:root {
    --cf7-font: inherit;
    --cf7-font-size: 18px;
    --cf7-font-weight: 300;
    --cf7-labels: #5a6e81;
    --cf7-input-text: #333333;
    --cf7-accent: #4a77b8;
    --cf7-accent-hover: #15457c;
    --cf7-accent-outline: #b9d9ff;
    --cf7-accent-text: #ffffff;
    --cf7-warning: #fb584e;
    --cf7-warning-bg: #ffedec;
    --cf7-success: #00b474;
    --cf7-success-bg: #e6fff0;
}

.message-title {
    margin-top: 20px;
}

.recaptcha-notice {
}

.recaptcha-notice p {
    font-size: 13px;
    color: #5a6e81;
}

.driven-contact-form .subject-field {

}

.driven-contact-form p {
    margin-block-end: 0 !important;
}

.driven-thank-you {
    text-align: center;
    padding: 40px;
    background-color: #f0f8ff;
    border-radius: 8px;
    margin-top: 20px;
    margin-bottom: 20px;
}

.driven-thank-you p {
    margin-block-end: 1em !important;
}

.driven-thank-you h2 {
    margin-block-start: 0.15rem !important;
    font-size: 30px !important;
}

.sent .wpcf7-response-output {
}

.wpcf7-spinner {
    display: block !important;
    background-color: #65a1dd !important;
    position: relative !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
}

.driven-contact-form .form-part-01,
.driven-contact-form .form-part-02,
.driven-contact-form .form-part-03,
.driven-contact-form .form-part-04 {
    pointer-events: none;
}
.driven-contact-form .form-part-active {
    pointer-events: auto;
}

/* Hide all form parts except active */
/* Base state: hidden and removed from layout */
.driven-contact-form .driven-form-start,
.driven-contact-form .form-part-01,
.driven-contact-form .form-part-02,
.driven-contact-form .form-part-03,
.driven-contact-form .form-part-04 {
    opacity: 0;
    visibility: hidden;
    height: 0;
    overflow: hidden;
    transition:
        opacity 0.5s ease,
        visibility 0.5s ease;
}

/* Active state: visible and faded in */
.driven-contact-form .form-part-active {
    opacity: 1;
    visibility: visible;
    height: auto;
    overflow: visible;
}

.driven-thank-you {
    opacity: 0;
    animation: fadeIn 0.6s ease forwards;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* Center pagination buttons */
.driven-form-pagination {
    text-align: center;
    margin-top: 20px;
    margin-bottom: 20px;
}
.driven-form-progress {
    color: #7c848c;
    font-weight: 500;
    padding-top: 20px;
}

.driven-form-pagination button {
    margin: 0 10px;

    background-color: var(--cf7-accent-hover);
    transition: 0.2s linear;
    cursor: pointer;
    color: var(--cf7-accent-text);
    border: 0;
    padding: 24px;
    border-radius: 26px;
    font-size: 18px;
    font-weight: 600;
    font-family: var(--cf7-font);

    line-height: 0px;
    margin-top: 20px;
    margin-bottom: 30px;
}

.next-btn:after {
    content: "\f061";
    font-size: 16px;
    font-family: FontAwesome;
    display: inline-block;
    vertical-align: top;
    margin-left: 4px;
    height: auto;
    width: 20px;
    -webkit-font-smoothing: antialiased;
    text-align: right;
    color: #fcfcfc;
    font-weight: normal;
}
.prev-btn:before {
    content: "\f060";
    font-size: 16px;
    font-family: FontAwesome;
    display: inline-block;
    vertical-align: top;
    margin-right: 4px;
    height: auto;
    width: 20px;
    -webkit-font-smoothing: antialiased;
    text-align: left;
    color: #fcfcfc;
    font-weight: normal;
}

.cf7-container {
    width: 100%;
}

::placeholder {
    color: grey;
}

.form-section-title {
    font-weight: 400;
    display: inline-block;
    font-size: 22px !important;
}

.driven-contact-form .form-txt-area {
    max-width: 685px !important;
}

.form-hr {
    border-left: 0px;
    border-right: 0px;
    border-top: 0px;
    border-bottom: 1px solid #cfd9ea;
    height: 1px;
    margin-top: 20px;
    margin-bottom: 24px;
}

.form-txt-descriptions {
    display: inline-block;
    margin-bottom: 10px;
    font-size: 18px;
}

/* Radio Buttons */

.driven-radio-btn {
    display: flex;
    flex-direction: column;
    gap: 10px; /* Adds spacing between each radio item */
    padding-top: 10px;
    font-size: 18px;
}

.driven-radio-btn .wpcf7-list-item {
    display: block;
}

.driven-drop-menu {
    margin-bottom: 26px;
}

.driven-checkboxes {
    display: flex !important;
    flex-direction: column;
    gap: 10px; /* Adds spacing between each radio item */
    padding-top: 10px;
    font-size: 18px;
}

.driven-checkboxes .wpcf7-list-item {
    display: block;
}

/* Columns */

.two-column-form {
    display: flex;
    flex-wrap: wrap;
    max-width: 98%;
}
.single-form-column {
    margin-top: 20px;
}

.form-column {
    flex: 1;
    min-width: 250px;
}

.cf7-container p {
    font-size: 18px;
    margin-block-start: 0.25em;
    margin-block-end: 0.25em;
}

.form-column input,
.form-column textarea {
    padding: 10px;
    box-sizing: border-box;
}

/* General Settings */
.wpcf7 {
    font-family: var(--cf7-font);
    font-weight: var(--cf7-font-weight);
    width: 100% !important;
}
.wpcf7 label {
    color: var(--cf7-labels);
}
.wpcf7-list-item {
    margin-left: 0 !important;
    margin-right: 15px !important;
}
.wpcf7 a {
    color: var(--cf7-accent) !important;
    text-decoration: none;
}
.wpcf7 a:hover {
    color: var(--cf7-accent-hover) !important;
}
/* General Inputs */
.wpcf7 input[type="color"],
.wpcf7 input[type="date"],
.wpcf7 input[type="datetime-local"],
.wpcf7 input[type="datetime"],
.wpcf7 input[type="email"],
.wpcf7 input[type="month"],
.wpcf7 input[type="number"],
.wpcf7 input[type="search"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="text"],
.wpcf7 input[type="time"],
.wpcf7 input[type="url"],
.wpcf7 input[type="week"],
.wpcf7 textarea {
    border: 1px solid #92acc7;
    background-color: #ffffff;
    border-radius: 6px;
    line-height: 1.3;
    padding: 0.375rem 0.75rem;
    color: var(--cf7-input-text);
    min-height: 35px;
    font-size: var(--cf7-font-size);
    font-weight: var(--cf7-font-weight);
    font-family: var(--cf7-font);
    width: 96%;
    margin-top: 8px;
    margin-bottom: 8px;
}
/* Other Inputs */
.wpcf7 button[type="submit"] {
    background-color: var(--cf7-accent);
    color: var(--cf7-accent-text);
    border: 0;
    padding: 16px 36px;
    border-radius: 26px;
    font-size: 18px;
    font-weight: 460;
    font-family: var(--cf7-font);
    transition: 0.2s linear;
    margin-top: 20px;
    margin-bottom: 0px;
}

.wpcf7 input:hover[type="submit"] {
    background-color: var(--cf7-accent-hover);
    transition: 0.2s linear;
    cursor: pointer;
}
.wpcf7 input:focus[type="submit"] {
    background-color: var(--cf7-accent-hover);
    outline: none;
    border: 0;
    box-shadow: 0 0 0 3px var(--cf7-accent-outline);
}
.wpcf7 input[type="file"] {
    color: var(--cf7-input-text);
    font-size: var(--cf7-font-size);
    font-weight: var(--cf7-font-weight);
    font-family: var(--cf7-font);
}
.wpcf7 input:focus[type="file"] {
    outline: none;
    border: 0;
}
.wpcf7 input[type="file"]::file-selector-button,
.wpcf7 select {
    border: 1px solid #6da9e6;
    background-color: #ffffff;
    border-radius: 6px;
    line-height: 1.3;
    padding: 0.7rem 1rem;
    color: var(--cf7-input-text);
    min-height: 35px;
    font-size: var(--cf7-font-size);
    font-weight: var(--cf7-font-weight);
    font-family: var(--cf7-font);
}
.wpcf7 input[type="file"]::file-selector-button {
    cursor: pointer;
    margin-right: 20px;
}
/* Custom Checkbox */
.wpcf7 input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border: 2px solid var(--cf7-accent);
    border-radius: 6px;
    margin: 0;
    display: grid;
    place-content: center;
    cursor: pointer;
    align-self: start;
    margin-top: 4px;
}
.wpcf7 input[type="checkbox"]:before {
    content: "\f147";
    font-family: "dashicons";
    font-weight: 300;
    font-size: 15px;
    line-height: 17px;
    width: 18px;
    height: 18px;
    color: var(--cf7-accent);
    text-align: center;
    border-radius: 6px;
    transform: scale(0);
    transition: 120ms transform ease-in-out;
    box-shadow: inset 20px 20px var(--cf7-accent);
}
.wpcf7 input[type="checkbox"]:checked::before {
    transform: scale(1);
}
.wpcf7-checkbox label,
.wpcf7-acceptance label,
.wpcf7-radio label {
    display: flex;
    align-items: center;
    gap: 10px;
}
/* Custom Radio */
.wpcf7 input[type="radio"] {
    -webkit-appearance: none;
    appearance: none;
    background-color: transparent;
    margin: 0;
    font: inherit;
    color: var(--cf7-accent);
    width: 16px;
    height: 16px;
    border: 2px solid var(--cf7-accent);
    border-radius: 100%;
    display: grid;
    place-content: center;
    cursor: pointer;
    align-self: start;
    margin-top: 4px;
}
.wpcf7 input[type="radio"]::before {
    content: "";
    width: 13px;
    height: 13px;
    border-radius: 100%;
    transform: scale(0);
    transition: 120ms transform ease-in-out;
    box-shadow: inset 1em 1em var(--cf7-accent);
}
.wpcf7 input[type="radio"]:checked::before {
    transform: scale(1);
}
/* Other States */
.wpcf7 input:hover[type="color"],
.wpcf7 input:hover[type="date"],
.wpcf7 input:hover[type="datetime-local"],
.wpcf7 input:hover[type="datetime"],
.wpcf7 input:hover[type="email"],
.wpcf7 input:hover[type="month"],
.wpcf7 input:hover[type="number"],
.wpcf7 input:hover[type="search"],
.wpcf7 input:hover[type="tel"],
.wpcf7 input:hover[type="text"],
.wpcf7 input:hover[type="time"],
.wpcf7 input:hover[type="url"],
.wpcf7 input:hover[type="week"],
.wpcf7 input:hover[type="file"]::file-selector-button,
.wpcf7 textarea:hover,
.wpcf7 select:hover {
    border: 1px solid #92acc7;
    outline: none;
    background-color: #ffffff;
    font-size: var(--cf7-font-size);
}
.wpcf7 input:focus[type="color"],
.wpcf7 input:focus[type="date"],
.wpcf7 input:focus[type="datetime-local"],
.wpcf7 input:focus[type="datetime"],
.wpcf7 input:focus[type="email"],
.wpcf7 input:focus[type="month"],
.wpcf7 input:focus[type="number"],
.wpcf7 input:focus[type="search"],
.wpcf7 input:focus[type="tel"],
.wpcf7 input:focus[type="text"],
.wpcf7 input:focus[type="time"],
.wpcf7 input:focus[type="url"],
.wpcf7 input:focus[type="week"],
.wpcf7 input:focus[type="checkbox"],
.wpcf7 textarea:focus,
.wpcf7 select:focus,
.wpcf7 a:focus {
    border: 1px solid #92acc7;
    outline: none;
    box-shadow: 0 0 0 3px var(--cf7-accent-outline);
    background-color: #ffffff;
}
/* Invalid Fields */
.wpcf7-not-valid-tip {
    color: var(--cf7-warning) !important;
    font-size: 11px !important;
    text-transform: uppercase;
    font-weight: 460 !important;
    letter-spacing: 0px;
    margin-top: 0px;
    padding-left: 5px;
}
.wpcf7-not-valid:not(input[type="file"]):not(span) {
    border-color: #ffbab6 !important;
    background-color: #fffafa !important;
}
.wpcf7 input:disabled[type="submit"],
.wpcf7 input:disabled[type="submit"]:hover {
    color: #ffffff;
    background-color: var(--cf7-warning);
    border: 0;
    cursor: not-allowed;
}
/* Response Messages */
.wpcf7 form.init .wpcf7-response-output {
    display: none;
}
.wpcf7 form .wpcf7-response-output {
    /* Default */
    margin: 15px 0 !important;
    padding: 10px 20px !important;
    border: 1px solid !important;
    border-radius: 6px !important;
}
.wpcf7 form.sent .wpcf7-response-output {
    /* Success */
    background-color: var(--cf7-success-bg) !important;
    color: var(--cf7-success) !important;
    border: 1px solid !important;
    text-align: center;
}
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
    /* Failed */
    background-color: var(--cf7-warning-bg) !important;
    color: var(--cf7-warning) !important;
    border: 1px solid !important;
    text-align: center;
}
