/**
 * Quote Form Widget Styles
 * Mobile-first approach based on Figma design
 */

/* Wrapper and Container */
.webfx-quote-form-wrapper {
    position: relative;
    width: 100%;
   
}




/* Background Truck */
.webfx-quote-form-bg-truck {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: 1035px;
    height: auto;
    pointer-events: none;
    z-index: 1;
    display: none;
}

.webfx-quote-form-bg-truck img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

@media (min-width: 768px) {
    .webfx-quote-form-bg-truck {
        bottom: 0;
        left: 20px;
    }
}

@media (min-width: 1200px) {
    .webfx-quote-form-bg-truck {
        bottom: 0;
        left: 35px;
        height: 397px;
        display: block;
    }
}

/* Main Container */
.webfx-quote-form-container {
    position: relative;
    background: linear-gradient(180deg, #345aba 0%, #113286 100%);
    border-radius: 10px;
    padding: 40px 20px;
    max-width: 100%;
    margin: 0 auto;
    z-index: 2;
    min-height: 397px;
}
.webfx-quote-form-form-container p {
    color : #fff;
}
@media (min-width: 768px) {
    .webfx-quote-form-container {
        padding: 50px 40px;
    }
}

@media (min-width: 1200px) {
    .container-form-wrapper .webfx-quote-form-container {
        padding: 75px;
        max-width: 1260px;
        margin-left: 330px;
    }
}

/* Texture Overlay */
.webfx-quote-form-texture-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-size: cover;
    background-position: center;
    mix-blend-mode: luminosity;
    opacity: 0.2;
    pointer-events: none;
    border-radius: 10px;
}

/* Corner Fittings */
.webfx-quote-form-corner {
    position: absolute;
    width: 30px;
    height: 30px;
    z-index: 10;
}

@media (min-width: 768px) {
    .webfx-quote-form-corner {
        width: 45px;
        height: 48px;
    }
}

.webfx-quote-form-corner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 10px;
}

.webfx-quote-form-corner::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(17, 50, 134, 0.55);
    border-radius: 10px;
}

.webfx-quote-form-corner-tl {
    top: -5px;
    left: -5px;
    transform: rotate(180deg) scaleY(-1);
}

.webfx-quote-form-corner-tr {
    top: -5px;
    right: -5px;
}

.webfx-quote-form-corner-bl {
    bottom: -5px;
    left: -5px;
    transform: rotate(180deg);
}

.webfx-quote-form-corner-br {
    bottom: -5px;
    right: -5px;
    transform: scaleY(-1);
}

/* Inner Content */
.webfx-quote-form-inner {
    position: relative;
    z-index: 5;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

@media (min-width: 768px) {
    .webfx-quote-form-inner {
        gap: 35px;
    }
}

@media (min-width: 1200px) {
    .webfx-quote-form-inner {
        flex-direction: row;
        gap: 75px;
        align-items: center;
    }
    .flex-column .webfx-quote-form-inner {
        flex-direction: column;
    }
}

/* Content Section */
.webfx-quote-form-content {
    flex: 1;
    max-width: 100%;
}
.fx-radio-button .frm_opt_container{
    display: flex ;
    align-items: center;
    gap: 35px;
}
.fx-radio-button .frm_opt_container .frm_radio{
    margin: 0;
}
.fx-radio-button .frm_opt_container label {
    margin: 0 !important;
    position: relative;
 
}
.fx-radio-button .frm_opt_container label::before {
    content: "\e91c";
    font-family: 'icomoon' !important;
    speak: never;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    transition: transform 0.2s ease, filter 0.2s ease;
    position: absolute;
    font-size: 25px;
    left: 0;
    top: 0%;
    height: 100%;
    width: 42px;
    color: #E88E2C;
    display: flex;
    align-items: center;
    justify-content: center;
}
.fx-radio-button .frm_opt_container .frm_radio:first-child label::before {
    content: "\e917";
}
.fx-radio-button .frm_opt_container label:has(input[type="radio"]:checked)::before { 
    color: #FFFFFF;
}

.fx-radio-button input[type=radio]:before, .fx-radio-button .frm_radio input[type=radio]:before {
   
    border-radius: 0 !important;
    margin: 3px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="25" height="21" viewBox="0 0 25 21" fill="none"><path d="M23.1192 0.0541722C18.6201 1.53099 12.8845 5.4806 7.5955 12.2465L4.47015 8.77767C3.98933 8.22816 3.09637 8.22816 2.61555 8.77767L0.314466 11.3535C-0.132012 11.8687 -0.0976683 12.6243 0.383155 13.0707L7.45812 19.8709C8.04198 20.4205 9.00362 20.2831 9.41576 19.5618C13.1936 12.7273 17.2463 7.6443 24.1152 1.80574C24.9395 1.08451 24.1839 -0.289272 23.1192 0.0541722Z" fill="white"/></svg>') !important;
    background-size: 100%;
    background-position: center;
    background-repeat: no-repeat;
    width: 24.465px !important;
    height: 20.208px !important;
    transform: translate(5px, 8px);
    background-color: transparent !important;
    border: none !important;
    margin: 0 !important;
}

.fx-radio-button .frm_opt_container label input[type="radio"] {
    width: 42px !important;
    min-height: 42px !important;
    transition: all 0.3s ease;
}
.fx-radio-button .frm_opt_container label input[type="radio"]:checked{
    background: linear-gradient(180deg, var(--Primary-Light, #FFBC72) 0%, var(--Primary-Dark, #E88E2C) 100%);
    border: none !important;
    border-color: transparent !important;
}

.fx-radio-button .frm_opt_container label:has(input[type="radio"]:checked)::after { 
    content: '';
    border-radius: 6px;
    background: linear-gradient(90deg, var(--Primary-Dark, #E88E2C) 0%, var(--Primary-Light, #FFBC72) 100%);
    height: 3px;
    width: 24px;
    position: absolute;
    top: 30px;
    right: 0;

}

@media (min-width: 768px) {
    .fx-radio-button .frm_opt_container label input[type="radio"] {
        width: 50px !important;
        min-height: 50px !important;
        height: 100% !important;
    }
    .fx-radio-button .frm_opt_container label::before {
        width: 50px;
    }
    

    .fx-radio-button input[type=radio]:before, .fx-radio-button .frm_radio input[type=radio]:before {
        transform: translate(calc(100% + 5px), calc(100% + 12px));
    }
    .fx-radio-button .frm_opt_container label:has(input[type="radio"]:checked)::after { top: 35px; }

  
}

@media (min-width: 1200px) {
    .container-form-wrapper .webfx-quote-form-content {
        max-width: 415px;
    }
}

.webfx-quote-form-heading {
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    font-size: 32px;
    line-height: 1.1;
    color: #FFFFFF;
    margin: 0 0 15px 0;
}

@media (min-width: 768px) {
    .webfx-quote-form-heading {
        font-size: 40px;
    }
}

@media (min-width: 1200px) {
    .webfx-quote-form-heading {
        font-size: 50px;
        margin-bottom: 10px;
    }
}

.webfx-quote-form-description {
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.6;
    color: #FFFBF7;
    margin: 0;
}

@media (min-width: 768px) {
    .webfx-quote-form-description {
        font-size: 18px;
    }
}

/* Form Container */
.webfx-quote-form-form-container {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 25px;
    width: 100%;
}

@media (min-width: 768px) {
    .webfx-quote-form-form-container {
        gap: 30px;
    }
}

@media (min-width: 1200px) {
    .webfx-quote-form-form-container {
        gap: 35px;
        max-width: 620px;
    }
}

/* Progress Bar */
.webfx-quote-form-progress {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.webfx-quote-form-progress-text {
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    font-size: 16px;
    line-height: 1.1;
    color: #FFFFFF;
    text-align: center;
}

@media (min-width: 768px) {
    .webfx-quote-form-progress-text {
        font-size: 18px;
    }
}

.webfx-quote-form-progress-bar {
    position: relative;
    width: 100%;
}

.webfx-quote-form-progress-bg {
    width: 100%;
    height: 1px;
    background-color: #CACACA;
}

.webfx-quote-form-progress-fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 5px;
    background: linear-gradient(90deg, #E88E2C 0%, #FFBC72 100%);
    transition: width 0.3s ease;
}

/* Form Fields */
.webfx-quote-form-fields {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

@media (min-width: 768px) {
    .webfx-quote-form-fields {
        flex-direction: row;
        gap: 15px;
    }
}

.webfx-quote-form-field-group {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.webfx-quote-form-field-label {
    font-family: 'Outfit', sans-serif;
    font-weight: 500;
    font-size: 16px;
    line-height: 1.1;
    color: #FFFFFF;
}

@media (min-width: 768px) {
    .webfx-quote-form-field-label {
        font-size: 18px;
    }
}

.webfx-quote-form-field {
    width: 100%;
    height: 50px;
    padding: 15px;
    background-color: #FFFBF7;
    border: 1px solid #FEE2C3;
    border-radius: 6px;
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.1;
    color: #4C4C4C;
    outline: none;
    transition: border-color 0.3s ease;
}

@media (min-width: 768px) {
    .webfx-quote-form-field {
        font-size: 18px;
    }
}

.webfx-quote-form-field:focus {
    border-color: #E88E2C;
}

.webfx-quote-form-field::placeholder {
    color: #4C4C4C;
    opacity: 0.7;
}

/* Submit Button */
.webfx-quote-form-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    height: 50px;
    padding: 15px 25px;
    background: linear-gradient(90deg, #E88E2C 0%, #FFBC72 100%);
    border: none;
    border-radius: 6px;
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    font-size: 16px;
    line-height: 1.1;
    color: #000500;
    cursor: pointer;
    transition: all 0.3s ease;
}

@media (min-width: 768px) {
    .webfx-quote-form-submit {
        font-size: 18px;
        width: auto;
        align-self: flex-start;
    }
}

.webfx-quote-form-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(232, 142, 44, 0.3);
}

.webfx-quote-form-submit svg {
    width: 16px;
    height: 12px;
    transition: transform 0.3s ease;
}

.webfx-quote-form-submit:hover svg {
    transform: translateX(3px);
}

/* Form Plugin Specific Styles */

/* Formidable Forms */
.webfx-quote-form-formidable .frm_forms,
.webfx-quote-form-formidable .frm_form_fields {
    margin: 0;
}

.webfx-quote-form-formidable .frm_form_field {
    margin-bottom: 15px;
}

.webfx-quote-form-formidable .frm_form_field label ,
.webfx-quote-form-formidable .frm_primary_label {
    font-family: 'Outfit', sans-serif;
    font-weight: 500;
    font-size: 18px;
    line-height: 1.1;
    color: #FFFFFF;
    margin-bottom: 8px;
    display: block;
}

.webfx-quote-form-formidable input[type="text"],
.webfx-quote-form-formidable input[type="email"],
.webfx-quote-form-formidable input[type="tel"],
.webfx-quote-form-formidable select,
.webfx-quote-form-formidable input[type="number"],
.webfx-quote-form-formidable input[type="date"],
.webfx-quote-form-formidable input[type="time"],
.webfx-quote-form-formidable input[type="datetime-local"],
.webfx-quote-form-formidable input[type="month"],
.webfx-quote-form-formidable input[type="week"],
.webfx-quote-form-formidable input[type="datetime"],
.webfx-quote-form-formidable input[type="datetime-local"],
.webfx-quote-form-formidable input[type="datetime-local"],
.webfx-quote-form-formidable input[type="datetime-local"],
.webfx-quote-form-formidable input[type="datetime-local"],
.webfx-quote-form-formidable textarea {
    width: 100%;
    min-height: 50px;
    height: auto !important;
    padding: 15px;
    background-color: #FFFBF7;
    border: 1px solid #FEE2C3;
    border-radius: 6px;
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.1;
    color: #4C4C4C;
}


.webfx-quote-form-formidable textarea {
    height: auto;
    min-height: 100px;
}

.webfx-quote-form-formidable .frm_submit {
    margin-top: 20px;
}

.webfx-quote-form-formidable .frm_submit input[type="submit"],
.webfx-quote-form-formidable .frm_submit button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 15px 25px;
    background: linear-gradient(90deg, #E88E2C 0%, #FFBC72 100%);
    border: none;
    border-radius: 6px;
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    font-size: 18px;
    line-height: 1.1;
    color: #000500;
    cursor: pointer;
    transition: all 0.3s ease;
}

/* Gravity Forms */
.webfx-quote-form-gravity .gform_wrapper {
    margin: 0;
}

.webfx-quote-form-gravity .gfield {
    margin-bottom: 15px;
}

.webfx-quote-form-gravity .gfield_label {
    font-family: 'Outfit', sans-serif;
    font-weight: 500;
    font-size: 18px;
    line-height: 1.1;
    color: #FFFFFF;
    margin-bottom: 8px;
}

.webfx-quote-form-gravity input[type="text"],
.webfx-quote-form-gravity input[type="email"],
.webfx-quote-form-gravity input[type="tel"],
.webfx-quote-form-gravity select,
.webfx-quote-form-gravity textarea {
    width: 100%;
    height: 50px;
    padding: 15px;
    background-color: #FFFBF7;
    border: 1px solid #FEE2C3;
    border-radius: 6px;
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.1;
    color: #4C4C4C;
}

.webfx-quote-form-gravity textarea {
    height: auto;
    min-height: 100px;
}

.webfx-quote-form-gravity .gform_footer {
    margin-top: 20px;
}

.webfx-quote-form-gravity .gform_button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 15px 25px;
    background: linear-gradient(90deg, #E88E2C 0%, #FFBC72 100%);
    border: none;
    border-radius: 6px;
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    font-size: 18px;
    line-height: 1.1;
    color: #000500;
    cursor: pointer;
    transition: all 0.3s ease;
}

/* Contact Form 7 */
.webfx-quote-form-cf7 .wpcf7-form p {
    margin-bottom: 15px;
}

.webfx-quote-form-cf7 .wpcf7-form label {
    font-family: 'Outfit', sans-serif;
    font-weight: 500;
    font-size: 18px;
    line-height: 1.1;
    color: #FFFFFF;
    margin-bottom: 8px;
    display: block;
}

.webfx-quote-form-cf7 input[type="text"],
.webfx-quote-form-cf7 input[type="email"],
.webfx-quote-form-cf7 input[type="tel"],
.webfx-quote-form-cf7 select,
.webfx-quote-form-cf7 textarea {
    width: 100%;
    height: 50px;
    padding: 15px;
    background-color: #FFFBF7;
    border: 1px solid #FEE2C3;
    border-radius: 6px;
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.1;
    color: #4C4C4C;
}

.webfx-quote-form-cf7 textarea {
    height: auto;
    min-height: 100px;
}

.webfx-quote-form-cf7 .wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 15px 25px;
    background: linear-gradient(90deg, #E88E2C 0%, #FFBC72 100%);
    border: none;
    border-radius: 6px;
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    font-size: 18px;
    line-height: 1.1;
    color: #000500;
    cursor: pointer;
    transition: all 0.3s ease;
}

/* Multi-step Form Navigation */
.webfx-quote-form-step-nav {
    display: flex;
    justify-content: space-between;
    margin-top: 30px;
}

.webfx-quote-form-step-prev,
.webfx-quote-form-step-next {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 15px 25px;
    background: transparent;
    border: 2px solid #FFFFFF;
    border-radius: 6px;
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    font-size: 18px;
    line-height: 1.1;
    color: #FFFFFF;
    cursor: pointer;
    transition: all 0.3s ease;
}

.webfx-quote-form-step-prev:hover,
.webfx-quote-form-step-next:hover {
    background: rgba(255, 255, 255, 0.1);
}

.webfx-quote-form-step-next {
    background: linear-gradient(90deg, #E88E2C 0%, #FFBC72 100%);
    border: none;
    color: #000500;
    margin-left: auto;
}

.webfx-quote-form-step-next:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(232, 142, 44, 0.3);
}

/* Loading State */
.webfx-quote-form-loading {
    position: relative;
    pointer-events: none;
    opacity: 0.6;
}

.webfx-quote-form-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 30px;
    height: 30px;
    margin: -15px 0 0 -15px;
    border: 3px solid #FFFFFF;
    border-top-color: transparent;
    border-radius: 50%;
    animation: webfx-quote-form-spin 1s linear infinite;
}

@keyframes webfx-quote-form-spin {
    to {
        transform: rotate(360deg);
    }
}

/* Success Message */
.webfx-quote-form-success {
    padding: 20px;
    background-color: rgba(255, 255, 255, 0.1);
    border-radius: 6px;
    text-align: center;
}

.webfx-quote-form-success h3 {
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    font-size: 24px;
    line-height: 1.2;
    color: #FFFFFF;
    margin: 0 0 10px 0;
}

.webfx-quote-form-success p {
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    color: #FFFBF7;
    margin: 0;
}

/* Error Messages */
.webfx-quote-form-error {
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.4;
    color: #FF6B6B;
    margin-top: 5px;
}

/* Responsive Adjustments for Form Plugins */
@media (max-width: 767px) {
    .webfx-quote-form-formidable .frm_inline_container,
    .webfx-quote-form-gravity .gform_fields.gform_column_enabled,
    .webfx-quote-form-cf7 .wpcf7-form .columns {
        display: block;
    }
    
    .webfx-quote-form-formidable .frm_form_field,
    .webfx-quote-form-gravity .gfield,
    .webfx-quote-form-cf7 .wpcf7-form p {
        width: 100% !important;
        float: none !important;
    }
}

 button.frm_button_submit,
 button.frm_prev_page,
button.frm_next_page{
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
button.frm_button_submit::after{
    content: '\e928';
    font-family: 'icomoon' !important;
    speak: never;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    font-size: inherit;
    margin-left: 10px;
}
 button.frm_prev_page::before{
    content: '\e927';
    font-family: 'icomoon' !important;
    speak: never;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    font-size: inherit;
    margin-right: 10px;
}
.elementor-widget-webfx_quote_form {
    width: 100%;
}
@media (min-width: 1500px) {
    .container-form-wrapper {
        padding-right: 150px !important;
    }
}

@media (min-width: 1920px) {
    .container-form-wrapper {
        padding-right: 175px !important;
    }
}