/* CSS Update - Nuclear Specificity v6.0 - Force browser refresh */

/* Critical Grid Layout Overrides - Ultimate Specificity */
.horizontal-form-row,
div[style*="grid-template-columns"] {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important;
    gap: 10px !important;
    width: 100% !important;
    align-items: stretch !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.horizontal-form-row .form-group,
div[style*="grid-template-columns"] .form-group {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: none !important;
    min-width: 0 !important;
    max-width: none !important;
    display: block !important;
    box-sizing: border-box !important;
}

.horizontal-form-row input,
.horizontal-form-row select,
.horizontal-form-row input[type="submit"],
.horizontal-form-row input[type="text"],
div[style*="grid-template-columns"] input,
div[style*="grid-template-columns"] select {
    width: 100% !important;
    height: 48px !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 12px 15px !important;
    font-size: 14px !important;
    border: 1px solid #ddd !important;
    border-radius: 0 !important;
    display: block !important;
    flex: none !important;
    min-width: 0 !important;
    max-width: none !important;
    line-height: 1.4 !important;
}

/* Service Type Selector Styling */
.service-type-selector {
    margin-bottom: 15px;
    width: 100%;
}

.service-type-selector .btn-group {
    width: 100%;
    display: flex;
}

.service-type-selector .btn {
    border-radius: 0 !important; /* 90 degree corners */
    font-size: 14px;
    font-weight: 500;
    transition: all 0.3s ease;
    flex: 1;
    text-align: center;
    border: 1px solid #dee2e6;
    padding: 8px 16px;
}

.service-type-selector .btn.active {
    background-color: #F9690E !important; /* Orange highlight color as requested */
    border-color: #F9690E !important;
    color: white !important;
}

.service-type-selector .btn:not(.active) {
    background-color: #f8f9fa !important;
    border-color: #dee2e6 !important;
    color: #495057 !important;
}

.service-type-selector .btn:hover:not(.active) {
    background-color: #e9ecef !important;
    border-color: #adb5bd !important;
}

/* Two-line layout for the main search form */
.newsletter-style-one .row {
    display: flex;
    flex-direction: column;
}

.newsletter-style-one .title-column {
    width: 100% !important;
    margin-bottom: 20px;
    text-align: center;
    margin-left: 0 !important;
}

.newsletter-style-one .form-column {
    width: 100% !important;
    margin-left: 0 !important;
}

/* Horizontal form layout - Force equal widths using CSS Grid - Override Bootstrap */
.newsletter-form .horizontal-form-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important; /* Three equal columns */
    gap: 10px !important;
    width: 100% !important;
    align-items: stretch !important;
    /* Override any Bootstrap table/flex layouts */
    table-layout: unset !important;
    border-collapse: unset !important;
}

.newsletter-form .horizontal-form-row .form-group {
    margin-bottom: 0 !important;
    display: block !important;
    width: 100% !important;
    /* Override Bootstrap */
    float: none !important;
    position: relative !important;
    flex: none !important;
}

.newsletter-form .horizontal-form-row .form-group.button-group {
    margin-bottom: 0 !important;
    display: block !important;
    width: 100% !important;
    /* Override Bootstrap */
    float: none !important;
    position: relative !important;
    flex: none !important;
}

.newsletter-form .service-type-selector {
    margin-bottom: 15px;
    width: 100%;
}

/* Form alignment improvements */
.newsletter-form .fields-outer {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

.newsletter-form .form-group {
    margin-bottom: 10px !important;
    width: 100%;
}

.newsletter-form .form-group.button-group {
    margin-top: 5px;
    margin-bottom: 0 !important;
}

/* Input and select styling */
.newsletter-form input[type="text"],
.newsletter-form input.main_zipcode,
.newsletter-form input.zipcode,
.newsletter-form select.main_zipcode,
.newsletter-form select.zipcode {
    width: 100% !important;
    padding: 12px 15px !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    font-size: 14px !important;
    background-color: white !important;
    box-sizing: border-box !important;
    height: 45px !important;
    line-height: 1.4 !important;
    margin-bottom: 0 !important;
}

/* Button styling */
.newsletter-form .theme-btn,
.newsletter-form input[type="submit"] {
    width: 100% !important;
    padding: 12px 20px !important;
    height: 45px !important;
    border: none !important;
    border-radius: 4px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    box-sizing: border-box !important;
    background-color: #F9690E !important; /* Match selector highlight color */
    color: white !important;
}

.newsletter-form .theme-btn:hover,
.newsletter-form input[type="submit"]:hover {
    background-color: #E8590B !important; /* Darker shade for hover */
}

/* Ensure consistent heights across all form elements */
.newsletter-form .fields-outer > .form-group > * {
    height: 45px !important;
    box-sizing: border-box !important;
}

.newsletter-form .horizontal-form-row > .form-group > * {
    height: 45px !important;
    box-sizing: border-box !important;
}

/* Ensure form elements fill their containers completely */
.newsletter-form .horizontal-form-row .form-group input,
.newsletter-form .horizontal-form-row .form-group select,
.newsletter-form .horizontal-form-row .form-group .theme-btn {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* Override any conflicting Bootstrap or other CSS */
.newsletter-form .horizontal-form-row .form-group {
    position: relative !important;
    display: block !important;
}

/* Fix for Bootstrap btn-group */
.btn-group-justified {
    display: flex !important;
    width: 100% !important;
}

/* Override Bootstrap btn-group-justified to use CSS Grid for equal widths */
.service-type-selector .btn-group-justified {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0 !important;
    width: 100% !important;
    table-layout: unset !important;
    border-collapse: unset !important;
}

.service-type-selector .btn-group-justified > .btn,
.service-type-selector .btn-group-justified > label.btn {
    display: block !important;
    float: none !important;
    width: 100% !important;
    flex: none !important;
    position: relative !important;
}

/* Additional alignment fixes */
.newsletter-form {
    width: 100%;
}

.newsletter-form form {
    width: 100%;
}

/* Override any conflicting styles */
.newsletter-form .form-group input,
.newsletter-form .form-group select {
    margin: 0 !important;
    display: block !important;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .newsletter-form .horizontal-form-row {
        grid-template-columns: 1fr !important; /* Single column on mobile */
        gap: 10px !important;
    }
    
    .newsletter-form .horizontal-form-row .form-group.button-group {
        min-width: auto;
    }
    
    .service-type-selector .btn {
        font-size: 12px !important;
        padding: 6px 12px !important;
    }
    
    .newsletter-form input[type="text"],
    .newsletter-form select,
    .newsletter-form .theme-btn {
        height: 40px !important;
        padding: 10px 12px !important;
        font-size: 13px !important;
    }
    
    .newsletter-form .fields-outer > .form-group > *,
    .newsletter-form .horizontal-form-row > .form-group > * {
        height: 40px !important;
    }
}

/* Modal-specific styling to match form styling */
.modal .service-type-selector .btn {
    border-radius: 0 !important; /* 90 degree corners */
    font-size: 14px;
    font-weight: 500;
    transition: all 0.3s ease;
    flex: 1;
    text-align: center;
    border: 1px solid #dee2e6;
    padding: 8px 16px;
}

.modal .service-type-selector .btn.active {
    background-color: #F9690E !important; /* Orange highlight color as requested */
    border-color: #F9690E !important;
    color: white !important;
}

.modal .service-type-selector .btn:not(.active) {
    background-color: #f8f9fa !important;
    border-color: #dee2e6 !important;
    color: #495057 !important;
}

.modal .service-type-selector .btn:hover:not(.active) {
    background-color: #e9ecef !important;
    border-color: #adb5bd !important;
}

.modal .btn-primary.theme-btn {
    background-color: #F9690E !important;
    border-color: #F9690E !important;
}

.modal .btn-primary.theme-btn:hover {
    background-color: #E8590B !important;
    border-color: #E8590B !important;
}

/* Ultra-specific CSS to override existing form styles and force equal widths */
.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important;
    gap: 10px !important;
    width: 100% !important;
    align-items: stretch !important;
}

.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group {
    margin-bottom: 0 !important;
    display: block !important;
    width: 100% !important;
    position: relative !important;
    float: none !important;
    flex: none !important;
}

.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group input[type="text"],
.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group select,
.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group .theme-btn,
.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group input[type="submit"] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    display: block !important;
}

/* Force all form elements in horizontal row to have identical dimensions */
.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group input.zipcode,
.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group select.zipcode,
.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group input.theme-btn,
.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group .theme-btn {
    width: 100% !important;
    height: 45px !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 45px !important;
    max-height: 45px !important;
    box-sizing: border-box !important;
    display: block !important;
    margin: 0 !important;
    padding: 12px 15px !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
}

/* Specific override for the submit button to match input styling */
.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group.button-group input[type="submit"],
.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group.button-group .theme-btn {
    background-color: #F9690E !important;
    color: white !important;
    border: 1px solid #F9690E !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    text-align: center !important;
}

/* Ensure all form-group containers are identical */
.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group {
    height: 45px !important;
    min-height: 45px !important;
    max-height: 45px !important;
    display: flex !important;
    align-items: stretch !important;
}

/* Nuclear option - Force equal widths with maximum specificity */
.main-footer.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important;
    gap: 10px !important;
    width: 100% !important;
    align-items: stretch !important;
}

.main-footer.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.main-footer.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group input[type="text"].zipcode,
.main-footer.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group select.zipcode,
.main-footer.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group.button-group input[type="submit"].theme-btn,
.main-footer.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group.button-group .theme-btn {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    height: 45px !important;
    min-height: 45px !important;
    max-height: 45px !important;
    box-sizing: border-box !important;
    display: block !important;
    margin: 0 !important;
    padding: 12px 15px !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    background-color: white !important;
    flex: none !important;
    float: none !important;
    position: relative !important;
    inline-size: auto !important;
    block-size: auto !important;
}

/* Special styling for submit button */
.main-footer.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group.button-group input[type="submit"].theme-btn,
.main-footer.main-footer .newsletter-style-one .newsletter-form .horizontal-form-row .form-group.button-group .theme-btn {
    background-color: #F9690E !important;
    color: white !important;
    border-color: #F9690E !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
}

/* Direct attribute targeting with maximum specificity */
input[type="text"][name="zip"].zipcode,
select[name="category"].zipcode,
input[type="submit"][value="FIND RATES"].theme-btn {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 45px !important;
    box-sizing: border-box !important;
    display: block !important;
    inline-size: auto !important;
    block-size: auto !important;
}

/* Grid container with attribute targeting */
div.horizontal-form-row {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    align-items: stretch !important;
}

div.horizontal-form-row > div.form-group {
    width: 100% !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}
