/* ── Gravity Forms Global Styling ── */
/* Uses .gform-theme--foundation prefix to match GF 2.9+ specificity */

.gform-theme--framework.gform-theme--foundation .gform_wrapper .gform_body,
.gform_wrapper .gform_body {
    padding: 0;
}

.gform-theme--framework.gform-theme--foundation .gform_wrapper .gform_fields,
.gform_wrapper .gform-body .gform_fields {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.gform-theme--framework.gform-theme--foundation .gform_wrapper .gfield,
.gform_wrapper .gfield {
    padding: 0;
    margin: 0;
}

/* ── Labels ── */

.gform-theme--framework.gform-theme--foundation .gform-field-label,
.gform-theme--framework.gform-theme--foundation .gform_wrapper .gfield_label,
.gform_wrapper .gfield_label,
.gform_wrapper .gfield_label_before_complex {
    font-family: var(--font-family);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-heading);
    line-height: var(--line-height-normal);
    margin-bottom: 0.5rem;
    display: block;
}

.gform-theme--framework.gform-theme--foundation .gfield_required,
.gform_wrapper .gfield_required {
    color: var(--color-text-heading);
}

/* ── Inputs & Textareas ── */

.gform-theme--framework.gform-theme--foundation .gfield .ginput_container input:where(:not([type='radio']):not([type='checkbox']):not([type='image']):not([type='file']):not([type='submit']):not([type='button']):not([type='reset'])),
.gform-theme--framework.gform-theme--foundation .gfield .ginput_container select,
.gform-theme--framework.gform-theme--foundation .gfield .ginput_container textarea,
.gform_wrapper .gfield .ginput_container input[type="text"],
.gform_wrapper .gfield .ginput_container input[type="email"],
.gform_wrapper .gfield .ginput_container input[type="tel"],
.gform_wrapper .gfield .ginput_container input[type="number"],
.gform_wrapper .gfield .ginput_container input[type="url"],
.gform_wrapper .gfield .ginput_container input[type="date"],
.gform_wrapper .gfield .ginput_container select,
.gform_wrapper .gfield .ginput_container textarea {
    font-family: var(--font-family);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-regular);
    color: rgba(0, 0, 0, 0.8);
    line-height: 1.7;
    background: rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: var(--radius-md);
    padding: 1rem;
    width: 100%;
    height: 3.75rem;
    outline: none;
    transition: border-color 0.2s ease;
    box-shadow: none;
}

.gform-theme--framework.gform-theme--foundation input:where(:not([type='radio']):not([type='checkbox']):not([type='image']):not([type='file']):not([type='submit']):not([type='button']):not([type='reset'])):focus,
.gform-theme--framework.gform-theme--foundation select:focus,
.gform-theme--framework.gform-theme--foundation textarea:focus,
.gform_wrapper input[type="text"]:focus,
.gform_wrapper input[type="email"]:focus,
.gform_wrapper input[type="tel"]:focus,
.gform_wrapper input[type="number"]:focus,
.gform_wrapper input[type="url"]:focus,
.gform_wrapper input[type="date"]:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus {
    border-color: var(--color-primary-dark);
    box-shadow: none;
    outline: none;
}

.gform-theme--frameworkgform-theme--foundation textarea,
.gform_wrapper textarea {
    min-height: 8.5rem;
    resize: vertical;
}

/* ── Two-column fields (half-width) ── */

.gform-theme--framework.gform-theme--foundation .gfield--width-half,
.gform_wrapper .gfield--width-half {
    width: calc(50% - 0.75rem);
    display: inline-block;
    vertical-align: top;
}

.gform-theme--framework.gform-theme--foundation .gfield--width-half + .gfield--width-half,
.gform_wrapper .gfield--width-half + .gfield--width-half {
    margin-left: 1.5rem;
}

/* ── Radio Buttons ── */

.gform-theme--framework.gform-theme--foundation .gfield_radio,
.gform_wrapper .gfield_radio {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.gform-theme--framework.gform-theme--foundation .gfield_radio .gchoice,
.gform_wrapper .gfield_radio .gchoice {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.gform-theme--framework.gform-theme--foundation .gfield_radio input[type="radio"],
.gform_wrapper .gfield_radio input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 1.3125rem;
    height: 1.3125rem;
    border: 2px solid rgba(0, 0, 0, 0.2);
    border-radius: 50%;
    background: var(--color-bg-white);
    cursor: pointer;
    flex-shrink: 0;
    padding: 0;
    box-shadow: none;
}

.gform-theme--framework.gform-theme--foundation .gfield_radio input[type="radio"]:checked,
.gform_wrapper .gfield_radio input[type="radio"]:checked {
    border-color: var(--color-primary-dark);
    background: radial-gradient(circle, var(--color-primary-dark) 40%, transparent 41%);
}

.gform-theme--framework.gform-theme--foundation .gfield_radio label,
.gform_wrapper .gfield_radio label {
    font-family: var(--font-family);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    color: rgba(0, 0, 0, 0.8);
    line-height: 1.7;
    cursor: pointer;
}

/* ── Checkboxes ── */

.gform-theme--framework.gform-theme--foundation .gfield_checkbox,
.gform_wrapper .gfield_checkbox {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.gform-theme--framework.gform-theme--foundation .gfield_checkbox .gchoice,
.gform_wrapper .gfield_checkbox .gchoice {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.gform-theme--framework.gform-theme--foundation .gfield_checkbox input[type="checkbox"],
.gform_wrapper .gfield_checkbox input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 1.3125rem;
    height: 1.3125rem;
    border: 2px solid rgba(0, 0, 0, 0.2);
    border-radius: var(--radius-sm);
    background: var(--color-bg-white);
    cursor: pointer;
    flex-shrink: 0;
    padding: 0;
    box-shadow: none;
}

.gform-theme--framework.gform-theme--foundation .gfield_checkbox input[type="checkbox"]:checked,
.gform_wrapper .gfield_checkbox input[type="checkbox"]:checked {
    border-color: var(--color-primary-dark);
    background: var(--color-primary-dark);
}

.gform-theme--framework.gform-theme--foundation .gfield_checkbox label,
.gform_wrapper .gfield_checkbox label {
    font-family: var(--font-family);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    color: rgba(0, 0, 0, 0.8);
    line-height: 1.7;
    cursor: pointer;
}

/* ── Select dropdown ── */

.gform-theme--framework.gform-theme--foundation select,
.gform_wrapper select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23333' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    padding-right: 2.5rem;
}

/* ── Submit Button ── */

.gform-theme--framework.gform-theme--foundation.gform_wrapper .gform_footer,
.gform-theme--framework.gform-theme--foundation.gform_wrapper .gform_page_footer,
.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer {
    padding: 0;
    margin-top: 1.5rem;
}

html body .gform-theme--framework.gform-theme--foundation.gform_wrapper .gform_button,
html body .gform-theme--framework.gform-theme--foundation.gform_wrapper .gform_next_button,
html body .gform-theme--framework.gform-theme--foundation.gform_wrapper .gform_previous_button,
html body .gform_wrapper .gform_footer .gform_button,
html body .gform_wrapper .gform_footer .gform_next_button,
html body .gform_wrapper .gform_footer .gform_previous_button {
    --gf-ctrl-btn-bg-color-primary: var(--color-primary);
    --gf-ctrl-btn-radius: var(--radius-md);
    --gf-ctrl-btn-border-color-primary: var(--color-primary-hover);
    --gf-ctrl-btn-border-width-primary: 0;
    --gf-local-border-width: 0.25rem;
    --gf-ctrl-btn-border-width-primary: 0.25rem;
    --gf-local-border-color: var(--color-primary-hover);
    --gf-local-border-style: solid;
    --gf-local-border-radius: var(--radius-md);
    --gf-ctrl-btn-shadow: none;
    --gf-ctrl-btn-font-size: var(--font-size-base);
    --gf-ctrl-btn-font-weight: var(--font-weight-bold);
    --gf-ctrl-btn-line-height: var(--line-height-normal);
    --gf-ctrl-btn-padding-y: var(--btn-padding-y);
    --gf-ctrl-btn-padding-x: var(--btn-padding-x);
    border-inline: none!important;
    border-block-start: none!important;
}

html body .gform-theme--framework.gform-theme--foundation.gform_wrapper .gform_button:hover,
html body .gform-theme--framework.gform-theme--foundation.gform_wrapper .gform_next_button:hover,
html body .gform_wrapper .gform_button:hover,
html body .gform_wrapper .gform_next_button:hover {
    --gf-ctrl-btn-bg-color-hover-primary: var(--color-primary-hover);
}

/* ── Sidebar Form Override ── */

html body .quote-request__sidebar-form .gform-theme--framework.gform-theme--foundation.gform_wrapper .gform_button,
html body .quote-request__sidebar-form .gform_wrapper .gform_button {
    --gf-ctrl-btn-bg-color-primary: var(--color-secondary);
    --gf-ctrl-btn-border-color-primary: var(--color-secondary-hover);
}

html body .quote-request__sidebar-form .gform-theme--framework.gform-theme--foundation.gform_wrapper .gform_button:hover,
html body .quote-request__sidebar-form .gform_wrapper .gform_button:hover {
    --gf-ctrl-btn-bg-color-hover-primary: var(--color-secondary-hover);
}

/* ── Validation ── */

.gform-theme--framework.gform-theme--foundation .gfield_error input,
.gform-theme--framework.gform-theme--foundation .gfield_error textarea,
.gform-theme--framework.gform-theme--foundation .gfield_error select,
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error textarea,
.gform_wrapper .gfield_error select {
    border-color: #c02b0a;
}

.gform-theme--framework.gform-theme--foundation .gfield_error .gfield_label,
.gform-theme--framework.gform-theme--foundation .gfield_error .gform-field-label,
.gform_wrapper .gfield_error .gfield_label {
    color: #c02b0a;
}

.gform-theme--framework.gform-theme--foundation .validation_message,
.gform_wrapper .validation_message {
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    color: #c02b0a;
    margin-top: 0.25rem;
}

/* ── Confirmation ── */

.gform_confirmation_message {
    font-family: var(--font-family);
    font-size: var(--font-size-base);
    color: var(--color-text-heading);
    padding: var(--spacing-md);
    background: rgba(0, 0, 0, 0.05);
    border-radius: var(--radius-md);
}
