/* CSS Variables */
.gform-theme--api, .gform-theme--foundation {
    --gf-form-gap-x: 25px;
    --gf-form-gap-y: 25px;
    --gf-field-gap-x: 12px;
    --gf-font-size-primary: 16px;
    --gf-field-gap-y: 12px;
    --gf-label-width: 30%;
    --gf-label-req-gap: 6px;
    --gf-form-footer-margin-y-start: 24px;
    --gf-form-footer-gap: 8px;
    --gf-field-date-width: 168px;
    --gf-field-time-width: 110px;
    --gf-field-list-btns-gap: 8px;
    --gf-field-list-btns-width: calc(32px + var(--gf-field-list-btns-gap) + var(--gf-field-gap-x));
    --gf-field-pg-steps-gap-y: 8px;
    --gf-field-pg-steps-gap-x: 24px;
}

/* Page Steps */
.gf_page_steps {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-bottom: var(--wp--preset--spacing--large);
}

.gf_page_steps:after {
    content: '';
    position: absolute;
    top: calc(50% - 15px);
    left: 0;
    width: 100%;
    height: 2px;
    background: #0000001f;
}

.gf_step {
    position: relative;
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 10px;
}

.gf_step_label {
    font-weight: 600;
    font-size: 16px;
}

.gf_step_number {
    font-size: 22px;
    font-weight: 600;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 70px;
    height: 70px;
    color: #000;
    background: var(--wp--preset--color--secondary);
    border: 1px solid var(--wp--preset--color--secondary);
    box-shadow: inset 0 0 0 5px #ffffff, 0 0 0 8px #ffffff;
    border-radius: 50%;
    z-index: 25;
}

.gf_step_active .gf_step_number {
    background: var(--wp--preset--color--primary);
    border: 1px solid var(--wp--preset--color--primary);
    color: white;
}

.gf_step_active .gf_step_label {
    color: var(--wp--preset--color--primary);
}

/* Primary Background Overrides */
.has-primary-background-color .button {
    background: #000;
}

.has-primary-background-color .ginput_container input {
    border-color: #FFF;
    color: #FFF;
}

.has-primary-background-color ::placeholder {
    color: #FFF;
}

/* Validation Errors */
.gform_validation_errors {
    padding: var(--wp--preset--spacing--small);
    border-radius: var(--wp--custom--border--radius--medium);
    background: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--white);
    margin-bottom: var(--wp--preset--spacing--medium);
}

.gform_validation_errors h2 {
    font-size: var(--wp--preset--font-size--small);
    text-align: center;
}

.gform_validation_errors ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

.gform_validation_errors ol li:last-child {
    margin: 0;
}

.gform_validation_errors > *, 
.gform_validation_errors > ol li {
    font-size: 16px;
    margin: 0;
}

a.gform_validation_error_link {
    color: inherit;
}

/* Required Fields */
.gfield_required {
    font-size: 14px;
    position: static;
    margin: 0;
}

.gfield_required_text {
    margin-left: 5px;
}

/* Labels */
.gfield_label,
.gform-field-label {
    display: flex;
    align-items: center;
    font-size: 16px;
    font-weight: 600;
}

/* Hidden Elements */
.gform-body p, 
.gform-footer br, 
.gform-footer p,
.validation_message {
    display: none;
}

/* Error States */
.gfield_error input {
    border-color: #ff5757;
}

/* Textarea Sizes */
textarea.small {
    height: 150px;
}

textarea.medium {
    height: 250px;
}

textarea.large {
    height: 350px;
}

/* Radio Buttons */
.gfield_radio input {
    min-height: 20px;
    max-height: 20px;
    width: auto;
}

.gfield_radio .gchoice {
    background: var(--wp--preset--color--senary);
}

.gfield_radio .gchoice:hover {
    background: #e9e5fb;
}

.gfield_radio .gchoice.selected {
    background: var(--wp--preset--color--quaternary);
}

.gfield_radio .gchoice label {
    flex: 1;
    cursor: pointer;
    padding: 10px;
}

.gfield_radio .gchoice input {
    margin: 10px;
}

/* Form Layout */
.gform-theme--foundation .gform_fields {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-gap: var(--wp--preset--spacing--small);
    width: 100%;
}

.gform-theme--foundation .gfield {
    grid-column: 1 / -1;
    min-width: 0;
}
.has-primary-background-color .gform_button.button{
    color: white;
}

/* Fieldset */
.gform-theme--foundation fieldset {
    border: none;
    display: block;
    margin: 0;
    padding: 0;
}

/* Footer */
.gform-theme--foundation .gform_footer, 
.gform-theme--foundation .gform_page_footer {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gf-form-footer-gap);
    margin-top: var(--gf-form-footer-margin-y-start);
}

/* Buttons */
form button {
    background-color: var(--wp--preset--color--quaternary);
    border: 0;
}

.gform_button.button {
    background: none;
    border: 1px solid currentColor;
    color: black;
    border-radius: 0;
    padding: 10px 30px;
}

/* Confirmation Message */
.gform_confirmation_message {
    text-align: center;
    margin: auto;
    max-width: var(--wp--custom--layout--small-content);
    background: var(--wp--preset--color--secondary);
    color: var(
    --wp--preset--color--white);
    border-radius: var(
    --wp--custom--border-radius--medium);
    padding: var(--wp--preset--spacing--medium);
    color: black;
}

/* Accessibility */
.gform-theme--foundation .hidden_label .gfield_label,
.gform-theme--foundation .hidden_sub_label,
.gform-theme--foundation .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    border: 0;
}

/* Image Choices */
.ginput_container_image_choice .gfield_radio {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.ginput_container_image_choice .gfield_radio > div {
    flex: 1 1 150px;
    text-align: center;
    background: #ffffff21;
    border: 1px dashed #FFF;
    padding: var(--wp--custom--layout--small-padding);
    border-radius: var(--wp--custom--border-radius--medium);
    cursor: pointer;
    position: relative;
    transition: all .25s cubic-bezier(.4, 0, .2, 1);
}

/* Consent */
.ginput_container_consent {
    display: flex;
    gap: 15px;
    color: inherit;
    flex-direction: row;
    align-items: center;
}

.ginput_container_consent input {
    max-height: 20px;
    max-width: 20px;
}

/* Responsive Grid Columns - Standard */
@media (min-width: 640px) {
    .gform-theme--foundation .gform_fields {
        column-gap: var(--wp--preset--spacing--small);
    }
    
    .gform-theme--foundation .gfield--width-full { grid-column: span 12; }
    .gform-theme--foundation .gfield--width-eleven-twelfths { grid-column: span 11; }
    .gform-theme--foundation .gfield--width-five-sixths { grid-column: span 10; }
    .gform-theme--foundation .gfield--width-three-quarter { grid-column: span 9; }
    .gform-theme--foundation .gfield--width-two-thirds { grid-column: span 8; }
    .gform-theme--foundation .gfield--width-seven-twelfths { grid-column: span 7; }
    .gform-theme--foundation .gfield--width-half { grid-column: span 6; }
    .gform-theme--foundation .gfield--width-five-twelfths { grid-column: span 5; }
    .gform-theme--foundation .gfield--width-third { grid-column: span 4; }
    .gform-theme--foundation .gfield--width-quarter { grid-column: span 3; }
    .gform-theme--foundation .gfield--width-one-sixth { grid-column: span 2; }
    .gform-theme--foundation .gfield--width-one-twelfth { grid-column: span 1; }
}

/* Two-Column Layout - Reset to Full Width */
@media (min-width: 640px) and (max-width: 999px) {
    .columns-2 .gform-theme--foundation .gfield--width-full,
    .columns-2 .gform-theme--foundation .gfield--width-eleven-twelfths,
    .columns-2 .gform-theme--foundation .gfield--width-five-sixths,
    .columns-2 .gform-theme--foundation .gfield--width-three-quarter,
    .columns-2 .gform-theme--foundation .gfield--width-two-thirds,
    .columns-2 .gform-theme--foundation .gfield--width-seven-twelfths,
    .columns-2 .gform-theme--foundation .gfield--width-half,
    .columns-2 .gform-theme--foundation .gfield--width-five-twelfths,
    .columns-2 .gform-theme--foundation .gfield--width-third,
    .columns-2 .gform-theme--foundation .gfield--width-quarter,
    .columns-2 .gform-theme--foundation .gfield--width-one-sixth,
    .columns-2 .gform-theme--foundation .gfield--width-one-twelfth {
        grid-column: span 12;
    }
}

/* Two-Column Layout - Grid */
@media (min-width: 1000px) {
    .columns-2 .gform-theme--foundation .gform_fields {
        column-gap: var(--wp--preset--spacing--medium);
    }
    
    .columns-2 .gform-theme--foundation .gfield--width-full { grid-column: span 12; }
    .columns-2 .gform-theme--foundation .gfield--width-eleven-twelfths { grid-column: span 11; }
    .columns-2 .gform-theme--foundation .gfield--width-five-sixths { grid-column: span 10; }
    .columns-2 .gform-theme--foundation .gfield--width-three-quarter { grid-column: span 9; }
    .columns-2 .gform-theme--foundation .gfield--width-two-thirds { grid-column: span 8; }
    .columns-2 .gform-theme--foundation .gfield--width-seven-twelfths { grid-column: span 7; }
    .columns-2 .gform-theme--foundation .gfield--width-half { grid-column: span 6; }
    .columns-2 .gform-theme--foundation .gfield--width-five-twelfths { grid-column: span 5; }
    .columns-2 .gform-theme--foundation .gfield--width-third { grid-column: span 4; }
    .columns-2 .gform-theme--foundation .gfield--width-quarter { grid-column: span 3; }
    .columns-2 .gform-theme--foundation .gfield--width-one-sixth { grid-column: span 2; }
    .columns-2 .gform-theme--foundation .gfield--width-one-twelfth { grid-column: span 1; }
}