/* ==========================================================================
   Gravity Forms — Custom styling overrides to match Figma design
   ========================================================================== */

/* Reset GF theme framework */
.franchise-form__form-wrap .gform_wrapper,
.franchise-form__form-wrap .gform_wrapper.gform-theme--framework {
    --gf-color-primary: var(--color-blue);
    --gf-color-danger: #F53333;
    font-family: var(--font-primary);
}

.franchise-form__form-wrap .gform_wrapper * {
    box-sizing: border-box;
}

/* Override GF theme orbital styles */
.franchise-form__form-wrap .gform_wrapper.gform-theme--framework input:not([type=hidden]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]):not([type=checkbox]):not([type=radio]),
.franchise-form__form-wrap .gform_wrapper.gform-theme--framework select,
.franchise-form__form-wrap .gform_wrapper.gform-theme--framework textarea {
    appearance: none;
    -webkit-appearance: none;
    background: var(--color-white);
    border: 0.3px solid var(--color-gray-border) !important;
    border-radius: var(--radius-sm) !important;
    padding: 5px 10px !important;
    font-family: var(--font-primary) !important;
    font-size: var(--fs-xs) !important;
    font-weight: var(--fw-light) !important;
    color: var(--color-black) !important;
    width: 100% !important;
    box-shadow: none !important;
    transition: border-color 0.2s ease;
    min-height: 0 !important;
    height: auto !important;
}

/* Form fields grid — 2 columns for half-width fields */
.franchise-form__form-wrap .gform_fields {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 20px !important;
    list-style: none;
    padding: 0 !important;
    margin: 0 !important;
}

/* Individual field reset */
.franchise-form__form-wrap .gfield {
    padding: 0 !important;
    margin: 0 !important;
}

/* Half-width fields */
.franchise-form__form-wrap .snooze-field-half {
    grid-column: span 1;
}

/* Full-width fields: textarea, consent, HTML */
.franchise-form__form-wrap .gfield--type-textarea,
.franchise-form__form-wrap .gfield--type-consent,
.franchise-form__form-wrap .gfield--type-html,
.franchise-form__form-wrap .snooze-field-full {
    grid-column: 1 / -1;
}

/* Field labels */
.franchise-form__form-wrap .gfield_label {
    font-family: var(--font-primary) !important;
    font-size: var(--fs-sm) !important;
    font-weight: var(--fw-regular) !important;
    color: var(--color-black) !important;
    margin-bottom: var(--space-sm) !important;
    display: block;
    padding: 0 !important;
}

/* Required asterisk */
.franchise-form__form-wrap .gfield_required {
    color: #F53333 !important;
}

/* Input container reset */
.franchise-form__form-wrap .ginput_container {
    margin: 0 !important;
    padding: 0 !important;
}

/* Placeholders */
.franchise-form__form-wrap input::placeholder,
.franchise-form__form-wrap textarea::placeholder {
    color: var(--color-gray-border) !important;
    font-weight: 200 !important;
}

/* Focus state */
.franchise-form__form-wrap input:focus,
.franchise-form__form-wrap textarea:focus {
    border-color: var(--color-blue) !important;
}

/* Textarea */
.franchise-form__form-wrap textarea {
    min-height: 76px !important;
    resize: vertical;
}

/* Consent checkbox field */
.franchise-form__form-wrap .gfield--type-consent,
.franchise-form__form-wrap .gfield--type-consent * {
    border: none !important;
    box-shadow: none !important;
}

.franchise-form__form-wrap .gfield--type-consent .ginput_container {
    display: flex !important;
    align-items: flex-start;
    gap: 8px;
}

.franchise-form__form-wrap .gfield--type-consent input[type="checkbox"] {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px;
    flex-shrink: 0;
    margin-top: 3px;
    border: 1px solid var(--color-gray-border) !important;
    border-radius: 3px !important;
}

.franchise-form__form-wrap .gfield_consent_label,
.franchise-form__form-wrap .gfield_consent_description {
    font-family: var(--font-primary);
    font-size: var(--fs-xs);
    color: var(--color-gray-text);
    padding: 0 !important;
    margin: 0 !important;
    height: auto !important;
    overflow: visible !important;
    background: none !important;
}

/* Submit button */
.franchise-form__form-wrap .gform_footer {
    margin-top: var(--space-lg) !important;
    padding: 0 !important;
}

.franchise-form__form-wrap .gform_button,
.franchise-form__form-wrap input[type="submit"] {
    background: var(--color-orange) !important;
    color: var(--color-white) !important;
    border: none !important;
    border-radius: var(--radius-sm) !important;
    padding: 15px 25px !important;
    font-family: var(--font-primary) !important;
    font-size: var(--fs-md) !important;
    font-weight: var(--fw-semibold) !important;
    width: 100% !important;
    cursor: pointer;
    transition: opacity 0.2s ease;
    box-shadow: none !important;
}

.franchise-form__form-wrap .gform_button:hover,
.franchise-form__form-wrap input[type="submit"]:hover {
    opacity: 0.9;
}

/* Confirmation message */
.franchise-form__form-wrap .gform_confirmation_message {
    font-family: var(--font-primary);
    font-size: var(--fs-md);
    color: var(--color-blue);
    text-align: center;
    padding: var(--space-xl);
}

/* Validation errors */
.franchise-form__form-wrap .gfield_error input,
.franchise-form__form-wrap .gfield_error textarea {
    border-color: #F53333 !important;
}

.franchise-form__form-wrap .validation_message,
.franchise-form__form-wrap .gfield_validation_message {
    font-family: var(--font-primary);
    font-size: var(--fs-xs);
    color: #F53333;
    margin-top: 4px;
}

/* Hide GF validation top box */
.franchise-form__form-wrap .gform_validation_errors {
    display: none;
}

/* GF field description */
.franchise-form__form-wrap .gfield_description {
    font-family: var(--font-primary);
    font-size: var(--fs-xs);
    color: var(--color-gray-text);
    margin-top: 4px;
}

/* Hide complex sub-labels */
.franchise-form__form-wrap .gfield_label.gfield_label_before_complex {
    display: none;
}

/* GF body/anchor resets */
.franchise-form__form-wrap .gform-body {
    padding: 0 !important;
}

.franchise-form__form-wrap .gform_anchor {
    display: none;
}

/* GF spinner */
.franchise-form__form-wrap .gform_ajax_spinner {
    margin-left: 10px;
}

@media (max-width: 1023px) {
    .franchise-form__form-wrap .gform_fields {
        grid-template-columns: 1fr !important;
    }
}
