/*------------------------------------------------------------------*\
    4. COMPONENTS - Forms
\*------------------------------------------------------------------*/

/* ==========================================================================
   GRID LAYOUT
   ========================================================================== */

@media screen and (min-width: 1024px) {

    #form_budget .elementor-form-fields-wrapper {
        display: grid !important;
        grid-template-columns: repeat(12, 1fr);
        gap: 25px 8px;
        position: relative;
    }

    /* Reset Elementor default widths */
    #form_budget .elementor-form-fields-wrapper > .elementor-field-group {
        width: 100%;
        flex-basis: unset !important;
        padding: 0 !important;
        margin-bottom: 0;
    }

    /* ---- Top fields: 50% each (span 6 of 12 columns) ---- */
    #form_budget .elementor-field-group-name,
    #form_budget .elementor-field-group-company,
    #form_budget .elementor-field-group-email,
    #form_budget .elementor-field-group-phone,
    #form_budget .elementor-field-group-local,
    #form_budget .elementor-field-group-project_type,
    #form_budget .elementor-field-group-deadline,
    #form_budget .elementor-field-group-budget {
        grid-column: span 6;
    }

    /* ---- Textarea: full width, before services ---- */
    #form_budget .elementor-field-group-project_detail {
        grid-column: 1 / -1;
        grid-row: 5;
    }

    /* ---- Services title: full width ---- */
    #form_budget .elementor-field-type-html {
        grid-column: 1 / -1;
        grid-row: 6;
    }

    /* ---- Services: checkboxes span 3, dropdowns span 1 ---- */

    /* CB1 — cols 1-3, spans both service rows */
    #form_budget .elementor-field-group-service_checkbox_1 {
        grid-column: 1 / 4;
        grid-row: 7 / 9;
    }

    /* DD1 — col 4, spans both service rows */
    #form_budget .elementor-field-group-service_dropdown_1 {
        grid-column: 4 / 5;
        grid-row: 7 / 9;
        align-self: start;
    }

    /* CB2 — cols 5-7, spans both service rows */
    #form_budget .elementor-field-group-service_checkbox_2 {
        grid-column: 5 / 8;
        grid-row: 7 / 9;
        align-self: start;
    }

    /* DD2 — col 8, top row only */
    #form_budget .elementor-field-group-service_dropdown_2 {
        grid-column: 8 / 9;
        grid-row: 7;
        align-self: start;
    }

    /* DD3 — col 8, bottom row only (stacked under DD2) */
    #form_budget .elementor-field-group-service_dropdown_3 {
        grid-column: 8 / 9;
        grid-row: 8;
        align-self: flex-end;
    }

    /* CB3 — cols 9-11, spans both service rows */
    #form_budget .elementor-field-group-service_checkbox_3 {
        grid-column: 9 / 12;
        grid-row: 7 / 9;
    }

    /* DD4 — col 12, spans both service rows */
    #form_budget .elementor-field-group-service_dropdown_4 {
        grid-column: 12 / 13;
        grid-row: 7 / 9;
    }

    /* ---- File upload: absolute positioned over textarea ---- */
    #form_budget .elementor-field-group-services_file_upload {
        position: absolute;
        top: 50.5%;
        left: 730px;
        width: 200px !important;
    }

    #form_budget .elementor-field-group-service_dropdown_2_1 {
        grid-column: 12 / 12;
        grid-row: 7;
        align-self: start;
    }

    /* ---- Acceptance: full width, before submit ---- */
    #form_budget .elementor-field-group-acceptance_text {
        grid-column: 1 / -1;
        grid-row: 9;
        margin-bottom: 0px;
    }

    #form_budget .elementor-acceptance-field label::before {
        border: 1px solid #fff !important;
    }

    /* ---- Submit: full width ---- */
    #form_budget .elementor-field-type-submit {
        grid-column: 1 / -1;
        grid-row: 10;
        justify-content: center;
        margin-top: 49px !important;
    }

}

/* ==========================================================================
   CHECKBOX STYLING
   ========================================================================== */

/* Checkbox options - vertical column layout */
#form_budget .elementor-field-subgroup.elementor-subgroup-inline {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 12px !important;
}

/* Individual checkbox option */
#form_budget .elementor-field-subgroup.elementor-subgroup-inline .elementor-field-option {
    border: 1px solid var(--color-border) !important;
    border-radius: 4px !important;
    display: flex;
    justify-content: start;
    align-items: center;
    accent-color: var(--color-accent-alt);
    line-height: 25px;
    margin-left: 10px;
    padding: 12px 15px;
    margin-bottom: 2px !important;
}

#form_budget .elementor-field-option label {
    font-size: 11px;
}

/* Hide native checkbox */
#form_budget .elementor-field-option input[type="checkbox"] {
    display: none !important;
}

/* Custom checkbox - unchecked */
#form_budget .elementor-field-option input ~ label::before {
    content: '\00a0';
    font-family: 'FontAwesome';
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 1px solid var(--color-accent-alt);
    font-size: 14px !important;
    line-height: 17px !important;
    margin-right: 10px !important;
}

.elementor-field-group-acceptance_text label:before {
    border: 1px solid #fff !important;
}

/* Custom checkbox - checked */
#form_budget .elementor-field-option input:checked ~ label::before {
    content: '\00a0';
    background-image: url('/makeitvisually/wp-content/uploads/2026/03/checked-icon.svg');
    background-repeat: no-repeat;
    background-size: 8px 9px;
    background-position: 3px 3px;
}

/* ==========================================================================
   DROPDOWN STYLING
   ========================================================================== */

#form_budget .elementor-field-group .elementor-select-wrapper select {
    font-size: 12px;
}

/* Bootstrap chevron arrow (all selects) */
#form_budget .elementor-field-type-select .elementor-select-wrapper select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 18px center;
    background-size: 12px;
    padding-right: 24px;
}

/* Service dropdowns - smaller style */
#form_budget .elementor-field-group-service_dropdown_1 .elementor-select-wrapper select,
#form_budget .elementor-field-group-service_dropdown_2 .elementor-select-wrapper select,
#form_budget .elementor-field-group-service_dropdown_3 .elementor-select-wrapper select,
#form_budget .elementor-field-group-service_dropdown_4 .elementor-select-wrapper select,
#form_budget .elementor-field-group-service_dropdown_2_1 .elementor-select-wrapper select {
    background-color: #1f1f1f;
    border: 1px solid var(--color-border) !important;
    border-radius: 4px !important;
    font-size: 10px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 8px center;
    background-size: 12px;
    padding-right: 24px;
}

/* Service dropdown options */
#form_budget .elementor-field-group-service_dropdown_1 .elementor-select-wrapper select option,
#form_budget .elementor-field-group-service_dropdown_2 .elementor-select-wrapper select option,
#form_budget .elementor-field-group-service_dropdown_3 .elementor-select-wrapper select option,
#form_budget .elementor-field-group-service_dropdown_4 .elementor-select-wrapper select option,
#form_budget .elementor-field-group-service_dropdown_2_1 .elementor-select-wrapper select option {
    background-color: #1f1f1f;
    color: var(--neutral-0);
}

/* Hide Elementor default arrow */
#form_budget .elementor-select-wrapper .select-caret-down-wrapper svg {
    display: none;
}

/* ==========================================================================
   FILE UPLOAD STYLING
   ========================================================================== */

#form_budget .elementor-field-type-upload input[type="file"] {
    color: var(--color-accent-alt) !important;
    background-color: transparent;
    font-size: 0px;
}

#form_budget .elementor-field-type-upload input[type="file"]::before {
    content: 'Adicionar arquivo';
    padding: 15px 15px;
    border-radius: 25px;
    color: #A6A6A6;
    font-size: 14px;
    line-height: 1em !important;
}

#form_budget .elementor-field-type-upload input[type="file"]::after {
    content: '';
    background-image: url("/makeitvisually/wp-content/uploads/2026/03/arrow-upload-icon.svg");
    background-repeat: no-repeat;
    background-size: contain;
    width: 16px;
    height: 16px;
    display: inline-block;
    margin: -5px -7px;
}

#form_budget .elementor-field-type-upload input[type="file"]::file-selector-button {
    display: none;
}

/* ==========================================================================
   MOBILE LAYOUT (< 1024px)
   ========================================================================== */

@media screen and (max-width: 1023px) {

    /* Mobile grid — 2 columns: services | dropdowns */
    #form_budget .elementor-form-fields-wrapper {
        display: grid !important;
        grid-template-columns: 1fr auto;
        gap: 16px 8px;
    }

    /* All fields span full width by default */
    #form_budget .elementor-form-fields-wrapper .elementor-field-group-name, 
    #form_budget .elementor-form-fields-wrapper .elementor-field-group-company, 
    #form_budget .elementor-form-fields-wrapper .elementor-field-group-email,
    #form_budget .elementor-form-fields-wrapper .elementor-field-group-phone,
    #form_budget .elementor-form-fields-wrapper .elementor-field-group-local, 
    #form_budget .elementor-form-fields-wrapper .elementor-field-group-project_type,
    #form_budget .elementor-form-fields-wrapper .elementor-field-group-deadline, 
    #form_budget .elementor-form-fields-wrapper .elementor-field-group-budget,
    #form_budget .elementor-form-fields-wrapper .elementor-field-group-project_detail,
    #form_budget .elementor-form-fields-wrapper .elementor-field-group-acceptance_text,
    #form_budget .elementor-form-fields-wrapper .elementor-field-type-submit  {
        grid-column: 1 / -1;
        width: 100% !important;
        flex-basis: unset !important;
        padding: 0 !important;
        margin: 0 !important;
    }

 #form_budget .elementor-form-fields-wrapper .elementor-field-group {
    padding-right: 0px !important;
    padding-left: 0px !important;
    margin-bottom: 0px;
}

    /* ---- Checkbox groups: column 1 only ---- */

    #form_budget .elementor-field-group-service_checkbox_1 {
        grid-column: 1;
    }

    /* checkbox_2 spans 2 rows to pair with dropdown_2 + dropdown_3 */
    #form_budget .elementor-field-group-service_checkbox_2 {
        grid-column: 1;
        grid-row: span 2;
    }

    /* checkbox_3 spans 2 rows to pair with dropdown_4 + dropdown_2_1 */
    #form_budget .elementor-field-group-service_checkbox_3 {
        grid-column: 1;
        grid-row: span 2;
    }

    /* ---- Service dropdowns: column 2 ---- */

    #form_budget .elementor-field-group-service_dropdown_1,
    #form_budget .elementor-field-group-service_dropdown_2_1,
    #form_budget .elementor-field-group-service_dropdown_3,
    #form_budget .elementor-field-group-service_dropdown_4,
    #form_budget .elementor-field-group-service_dropdown_2 {
        grid-column: 2;
        width: auto !important;
        margin-left: 24px;
    }

    
    #form_budget .elementor-field-group-service_dropdown_1 select,
    #form_budget .elementor-field-group-service_dropdown_2_1 select,
    #form_budget .elementor-field-group-service_dropdown_3 select,
    #form_budget .elementor-field-group-service_dropdown_4 select,
    #form_budget .elementor-field-group-service_dropdown_2 select {
        font-size: 11px !important;
    }

    /* DD1 — top of checkbox_1 → Interior Images */
    #form_budget .elementor-field-group-service_dropdown_1 {
        align-self: start;
    }

    /* DD2_1 — top of checkbox_2 */
    #form_budget .elementor-field-group-service_dropdown_2_1 {
        align-self: start;
    }

    /* DD3 — bottom of checkbox_2 → Exterior Images */
    #form_budget .elementor-field-group-service_dropdown_3 {
        align-self: end;
    }

    /* DD4 — center of checkbox_3 → Humanized Floorplans */
    #form_budget .elementor-field-group-service_dropdown_4 {
        align-self: center;
    }

    /* DD2 */
    #form_budget .elementor-field-group-service_dropdown_2 {
        align-self: start;
    }

    /* ---- Checkbox options: remove left margin on mobile ---- */
    #form_budget .elementor-field-subgroup.elementor-subgroup-inline .elementor-field-option {
        margin-left: 0;
    }

    /* ---- File upload: reset absolute positioning ---- */
    #form_budget .elementor-field-group-services_file_upload {
        position: static;
    }

    /* ---- Submit button ---- */
    #form_budget .elementor-field-type-submit {
        justify-content: center;
        margin-top: 33px;
    }

    #form_budget .elementor-field-group .elementor-select-wrapper select {
        font-size: 6px;
    }

    #form_budget .elementor-field-group-project_detail textarea::placeholder {
        font-size: 6px;
        color: #fff;
    }

    /* ---- File upload: bottom-right corner ---- */

    #form_budget .elementor-field-group-services_file_upload {
        position: absolute;
        top: 52%;
        left: 150px;
        width: 100px;
    }

    #form_budget .elementor-field-type-upload input[type="file"]::before {
        font-size: 6px;
    }

    #form_budget .elementor-field-type-upload input[type="file"]::after {
        width: 8px;
        height: 8px;
        margin: -3px -7px;
    }
}

/* ==========================================================================
   FOCUS HIGHLIGHT
   ========================================================================== */

#form_budget .elementor-field-group input:not([type="checkbox"]):not([type="file"]),
#form_budget .elementor-field-group textarea,
#form_budget .elementor-field-group select {
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

#form_budget .elementor-field-group input:not([type="checkbox"]):not([type="file"]):focus,
#form_budget .elementor-field-group textarea:focus,
#form_budget .elementor-field-group select:focus {
    border-color: var(--input-focus-border) !important;
    box-shadow: 0 0 0 1px var(--input-focus-border);
    outline: none;
}

/* ==========================================================================
   VALIDATION STATES
   ========================================================================== */

/* Error state — red border on the field group */
#form_budget .miv-field-error input:not([type="checkbox"]):not([type="file"]),
#form_budget .miv-field-error textarea,
#form_budget .miv-field-error select {
    border-color: var(--input-error) !important;
    box-shadow: 0 0 0 1px var(--input-error);
}

/* Error state — service dropdowns (higher specificity to override !important border) */
#form_budget .miv-field-error.elementor-field-type-select .elementor-select-wrapper select {
    border-color: var(--input-error) !important;
    box-shadow: 0 0 0 1px var(--input-error);
}

/* Error message */
#form_budget .miv-error-message {
    display: block;
    color: var(--input-error);
    font-family: var(--font-secondary);
    font-size: var(--fluid-label);
    margin-top: 6px;
    opacity: 0;
}

/* Filled state — accent border after valid blur */
#form_budget .miv-field-success input:not([type="checkbox"]):not([type="file"]),
#form_budget .miv-field-success textarea,
#form_budget .miv-field-success select {
    border-color: var(--input-filled) !important;
    box-shadow: 0 0 0 1px var(--input-filled);
}

/* ==========================================================================
   ELEMENTOR SUCCESS / ERROR MESSAGES
   ========================================================================== */

#form_budget .elementor-message {
    font-family: var(--font-secondary);
    font-size: var(--fluid-label);
    padding: 16px 20px;
    border-radius: var(--input-radius);
    margin-top: 16px;
}

#form_budget .elementor-message-success {
    color: var(--input-success);
    background: rgba(78, 203, 113, 0.08);
    border: 1px solid rgba(78, 203, 113, 0.25);
    margin-top: 60px;
}

#form_budget .elementor-message-danger {
    color: var(--input-error);
    background: rgba(255, 107, 107, 0.08);
    border: 1px solid rgba(255, 107, 107, 0.25);
    margin-top: 60px;
}
