/* =========================================================
 *  * Aspire to Change Therapy
 *   * Setup a Consultation Form
 *    *
 *     * /newsite/assets/css/contact.css
 *      *
 *       * The upper page layout uses about.css.
 *        * This stylesheet is only for the consultation form.
 *         * ========================================================= */


/* =========================================================
 *  * FORM SECTION
 *   * ========================================================= */

.consultation-form-section {
    padding: 100px 0 115px;
    background: #ffffff;
}

.consultation-form-shell {
    width: min(100%, 980px);
    margin: 0 auto;

    padding: 55px 60px 60px;

    background: #f7f7f8;

    border: 1px solid rgba(98, 59, 114, 0.10);
    border-radius: 18px;

    box-shadow:
        0 14px 45px
        rgba(37, 31, 47, 0.06);
}

.consultation-form {
    width: 100%;
}


/* =========================================================
 *  * FORM GROUPS
 *   * ========================================================= */

.form-group {
    margin: 0 0 28px;
    padding: 0;
    border: 0;
}

.form-group label,
.form-group legend {
    display: block;
    width: 100%;

    margin: 0 0 10px;

    color: #302939;

    font-size: 16px;
    line-height: 1.55;
    font-weight: 600;
}

.form-group-intro label {
    margin-bottom: 14px;
    font-weight: 500;
    line-height: 1.75;
}

.required {
    color: #b42318;
}


/* =========================================================
 *  * INPUTS
 *   * ========================================================= */

.consultation-form input[type="text"],
.consultation-form input[type="email"],
.consultation-form input[type="tel"],
.consultation-form select,
.consultation-form textarea {
    display: block;

    width: 100%;
    min-height: 54px;

    padding:
        13px
        16px;

    border:
        1px solid
        #d8d3da;

    border-radius: 7px;

    background: #ffffff;
    color: #302939;

    font-family: inherit;
    font-size: 16px;
    line-height: 1.5;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.consultation-form textarea {
    min-height: 150px;
    resize: vertical;
}

.consultation-form select {
    cursor: pointer;
}

.consultation-form input:focus,
.consultation-form select:focus,
.consultation-form textarea:focus {
    outline: none;

    border-color:
        var(
            --theme-purple,
            #623b72
        );

    box-shadow:
        0 0 0 3px
        rgba(98, 59, 114, 0.11);
}


/* =========================================================
 *  * MULTI-COLUMN FIELDS
 *   * ========================================================= */

.form-row {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 24px;
}

.form-address-row {
    display: grid;

    grid-template-columns:
        1.4fr
        0.8fr
        0.7fr;

    gap: 20px;
}


/* =========================================================
 *  * CHECKBOXES / RADIO BUTTONS
 *   * ========================================================= */

.choice-group {
    margin-bottom: 31px;
}

.choice-group legend {
    margin-bottom: 13px;
}

.choice-option {
    display: flex !important;
    align-items: flex-start;

    gap: 10px;

    width: fit-content !important;

    margin:
        0
        0
        10px !important;

    cursor: pointer;

    font-weight: 400 !important;
}

.choice-option input[type="radio"],
.choice-option input[type="checkbox"] {
    flex: 0 0 auto;

    width: 18px;
    height: 18px;

    margin: 3px 0 0;

    accent-color:
        var(
            --theme-purple,
            #623b72
        );
}

.choice-option span {
    display: block;
}

.help-group {
    padding-top: 6px;
}


/* =========================================================
 *  * CONSENT
 *   * ========================================================= */

.consent-group {
    margin-top: 5px;
}

.consent-option {
    width: 100% !important;
}

.consent-option a {
    color:
        var(
            --theme-purple,
            #623b72
        );

    text-decoration: underline;
}

.consent-option a:hover {
    color:
        var(
            --theme-peach,
            #f2a477
        );
}


/* =========================================================
 *  * SUBMIT
 *   *
 *    * Main appearance and hover motion come from .theme-btn
 *     * in the site's shared stylesheet.
 *      * ========================================================= */

.form-submit-row {
    padding-top: 12px;
}

#consultation-submit {
    min-width: 150px;

    appearance: none;
    -webkit-appearance: none;

    cursor: pointer;

    font-family: inherit;
}

#consultation-submit:disabled {
    cursor: wait;
    opacity: 0.7;
    pointer-events: none;
}


/* =========================================================
 *  * STATUS MESSAGES
 *   * ========================================================= */

.form-status {
    margin: 0 0 36px;

    padding:
        24px
        26px;

    border-radius: 9px;
}

.form-status h3 {
    margin: 0 0 7px;
    font-size: 22px;
}

.form-status p {
    margin: 0;

    font-size: 16px;
    line-height: 1.65;
}

.form-status-success {
    border:
        1px solid
        #b7dfc7;

    background: #f2faf5;
}

.form-status-error {
    border:
        1px solid
        #edc4c0;

    background: #fff6f5;
}

.form-status a {
    font-weight: 600;

    color:
        var(
            --theme-purple,
            #623b72
        );
}


/* =========================================================
 *  * HONEYPOT
 *   * ========================================================= */

.contact-honeypot {
    position: absolute !important;

    left: -10000px !important;
    top: auto !important;

    width: 1px !important;
    height: 1px !important;

    overflow: hidden !important;
}


/* =========================================================
 *  * RESPONSIVE
 *   * ========================================================= */

@media (max-width: 1100px) {

    .consultation-form-shell {
        width: 100%;
    }

}


@media (max-width: 900px) {

    .consultation-form-section {
        padding:
            80px
            0
            90px;
    }

    .consultation-form-shell {
        padding:
            45px
            40px
            50px;
    }

}


@media (max-width: 767px) {

    .consultation-form-section {
        padding:
            65px
            0
            75px;
    }

    .consultation-form-shell {
        padding:
            38px
            24px
            42px;

        border-radius: 14px;
    }

    .form-row,
    .form-address-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

}


@media (max-width: 480px) {

    .consultation-form-section {
        padding:
            55px
            0
            65px;
    }

    .consultation-form-shell {
        padding:
            32px
            18px
            36px;
    }

    .consultation-form input[type="text"],
    .consultation-form input[type="email"],
    .consultation-form input[type="tel"],
    .consultation-form select,
    .consultation-form textarea {
        font-size: 16px;
    }

}
