/* Nexus Installer Finder - Premium UI Fix */

.nexus-installer-finder {
    --nexus-bg: #020b0d;
    --nexus-panel: #061014;
    --nexus-panel-2: #080f14;
    --nexus-border: #15262c;
    --nexus-border-soft: rgba(196,255,61,.20);
    --nexus-green: #c4ff3d;
    --nexus-green-hover: #b9ff18;
    --nexus-green-dark: #1e340b;
    --nexus-text: #f3f7f8;
    --nexus-muted: #a9b3b8;
    --nexus-muted-2: #7f8b91;

    width: min(1180px, calc(100vw - 32px)) !important;
    max-width: 1180px !important;
    margin-left: 50% !important;
    margin-right: 0 !important;
    transform: translateX(-50%) !important;
    padding: 8px 16px 28px !important;
    color: var(--nexus-text) !important;
    font-family: Inter, Arial, Helvetica, sans-serif !important;
}

.nexus-installer-finder,
.nexus-installer-finder * {
    box-sizing: border-box;
}

.nexus-installer-finder a,
.nexus-installer-finder a:visited,
.nexus-installer-finder a:active {
    text-decoration: none;
    outline: none !important;
}

.nexus-installer-finder svg {
    display: block !important;
    overflow: visible !important;
}

/* SEARCH BOX */

.nexus-search-box {
    position: relative;
    display: grid !important;
    grid-template-columns: minmax(420px, 1fr) 185px 235px !important;
    gap: 30px !important;
    align-items: center !important;
    width: 100%;
    min-height: 198px !important;
    padding: 38px 48px !important;
    border: 1px solid var(--nexus-border-soft) !important;
    border-radius: 12px !important;
    background: linear-gradient(180deg, rgba(8,19,18,.96), rgba(3,9,12,.98)) !important;
    box-shadow: 0 18px 46px rgba(0,0,0,.45), 0 0 34px rgba(196,255,61,.08) !important;
    overflow: hidden;
}

.nexus-search-box:after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, rgba(196,255,61,.55) 50%, transparent 100%);
    box-shadow: 0 0 16px rgba(196,255,61,.8);
}

.search-left {
    min-width: 0;
}

.search-label {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    margin: 0 0 20px !important;
    color: var(--nexus-green) !important;
    font-size: 13px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: 2.8px !important;
    text-transform: uppercase !important;
}

.label-icon {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: rgba(196,255,61,.09) !important;
    color: var(--nexus-green) !important;
    box-shadow: 0 0 20px rgba(196,255,61,.13) !important;
    flex: 0 0 auto !important;
}

.label-icon svg {
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    max-width: 18px !important;
    max-height: 18px !important;
}

.search-input-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 20px !important;
    width: 100% !important;
    height: 72px !important;
    padding: 0 25px !important;
    border: 1px solid #1b2930 !important;
    border-radius: 5px !important;
    background: #050b10 !important;
}

.search-icon {
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    color: #f4f7f8 !important;
}

.search-icon svg,
.search-info svg {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    max-width: 22px !important;
    max-height: 22px !important;
}

.search-input-wrap input,
.search-input-wrap input[type="text"] {
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    color: #f5f8f9 !important;
    box-shadow: none !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    letter-spacing: .3px !important;
}

.search-input-wrap input::placeholder {
    color: #a2adb3 !important;
    opacity: 1 !important;
}

.search-info {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    min-width: 0 !important;
    color: #aab4b9 !important;
    font-size: 15px !important;
    line-height: 1.32 !important;
    font-weight: 600 !important;
}

.search-info span {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    color: var(--nexus-green) !important;
}

.search-info p {
    margin: 0 !important;
}

/* MAIN FIND INSTALLER BUTTON */

.find-installer-btn,
button.find-installer-btn,
.nexus-installer-finder button[type="submit"].find-installer-btn {
    width: 100% !important;
    height: 70px !important;
    margin: 0 !important;
    padding: 0 22px !important;
    border: 1px solid var(--nexus-green) !important;
    border-radius: 6px !important;
    background: var(--nexus-green) !important;
    color: #061014 !important;
    cursor: pointer !important;
    box-shadow: 0 0 34px rgba(196,255,61,.32) !important;
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .6px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    transition: .22s ease !important;
}

.find-installer-btn:hover,
.find-installer-btn:focus,
button.find-installer-btn:hover,
button.find-installer-btn:focus,
.nexus-installer-finder button[type="submit"].find-installer-btn:hover,
.nexus-installer-finder button[type="submit"].find-installer-btn:focus {
    background: var(--nexus-green-hover) !important;
    color: #061014 !important;
    border-color: var(--nexus-green-hover) !important;
    box-shadow: 0 0 44px rgba(196,255,61,.55) !important;
    transform: translateY(-1px) !important;
    text-decoration: none !important;
}

.find-installer-btn *,
.contact-btn *,
.contact-team-btn * {
    color: inherit !important;
}

/* RESULTS HEADER */

.results-header {
    display: flex;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    margin: 38px 0 12px !important;
}

.results-title {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    color: #ffffff !important;
    font-size: 17px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: 1.2px !important;
    text-transform: uppercase !important;
}

.users-icon {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: #0a1216 !important;
    color: var(--nexus-green) !important;
    font-size: 19px !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.03) !important;
    flex: 0 0 auto !important;
}

.results-title svg,
.users-icon svg {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
    max-width: 20px !important;
    max-height: 20px !important;
}

.count {
    color: var(--nexus-green) !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.sort-box {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 800 !important;
}

.sort-box select {
    height: 46px !important;
    min-width: 200px !important;
    padding: 0 42px 0 16px !important;
    border: 1px solid #1c2b32 !important;
    border-radius: 6px !important;
    background: #050b10 !important;
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    outline: 0 !important;
}

/* INSTALLER RESULTS */

#installer-results {
    width: 100%;
}

.installer-card {
    display: grid !important;
    grid-template-columns: 88px minmax(380px, 1.4fr) minmax(270px, .95fr) 252px !important;
    align-items: center !important;
    gap: 24px !important;
    width: 100% !important;
    min-height: 132px !important;
    margin: 0 0 10px !important;
    padding: 24px 22px !important;
    border: 1px solid #121d22 !important;
    border-radius: 7px !important;
    background: #071015 !important;
    color: #ffffff !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.01) !important;
}

.installer-card:hover {
    border-color: rgba(196,255,61,.32) !important;
    box-shadow: 0 0 28px rgba(196,255,61,.07) !important;
}

.installer-logo {
    width: 120px !important;
    height: 120px !important;
    min-width: 120px !important;
    justify-self: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    border: 1px solid rgba(196,255,61,.28) !important;
    background: #03090d !important;
    overflow: hidden !important;
    box-shadow: 0 0 18px rgba(196,255,61,.09) !important;
    line-height: 1 !important;
}

.installer-logo img,
.installer-logo svg {
    width: 90px !important;
    height: 90px !important;
    min-width: 90px !important;
    min-height: 90px !important;
    max-width: 90px !important;
    max-height: 90px !important;
    object-fit: contain !important;
    display: block !important;
}

.installer-details {
    min-width: 0 !important;
    padding-right: 22px !important;
    border-right: 1px solid #19262c !important;
}

.installer-details h3 {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    margin: 0 0 10px !important;
    color: #ffffff !important;
    font-size: 19px !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
}

.rating {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 23px !important;
    padding: 4px 9px !important;
    border-radius: 3px !important;
    background: #20340d !important;
    color: var(--nexus-green) !important;
    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
}

.meta {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 0 9px !important;
    color: #aeb8bd !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
    font-weight: 600 !important;
}

.meta .distance-text {
    color: #aeb8bd !important;
    white-space: nowrap;
}

.installer-address-line {
    display: none !important;
}

/* MINI ICON FIX */

.mini-icon,
#installer-results .mini-icon,
#installer-results .contact-details .mini-icon,
#installer-results .meta .mini-icon {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
    max-width: 20px !important;
    max-height: 20px !important;
    flex: 0 0 20px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--nexus-green) !important;
    font-size: 0 !important;
    line-height: 0 !important;
}

.mini-icon svg,
#installer-results .mini-icon svg,
#installer-results .contact-details .mini-icon svg,
#installer-results .meta .mini-icon svg {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
    max-width: 20px !important;
    max-height: 20px !important;
    flex: 0 0 20px !important;
    display: block !important;
    color: var(--nexus-green) !important;
}

/* SERVICES */

.services {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-top: 8px !important;
}

.services span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    min-height: 25px !important;
    padding: 4px 11px !important;
    border: 1px solid #233138 !important;
    border-radius: 999px !important;
    background: #050b10 !important;
    color: #e2e8ea !important;
    font-size: 13px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
}

.services span:before {
    content: "✓";
    color: var(--nexus-green) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
}

/* CONTACT DETAILS */

.contact-details {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 10px !important;
    min-width: 0 !important;
    min-height: 84px !important;
    padding: 0 22px 0 0 !important;
    border-right: 1px solid #19262c !important;
}

.contact-details div {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    margin: 0 !important;
    color: #d8e1e5 !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    word-break: break-word !important;
    white-space: normal !important;
}

.contact-details div:last-child {
    margin-bottom: 0 !important;
}

/* ACTION BOX */

.action-box {
    width: 100% !important;
    min-width: 0 !important;
    align-self: center !important;
}

.contact-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;
    width: 100% !important;
    min-height: 48px !important;
    padding: 13px 16px !important;
    border: 1px solid var(--nexus-green) !important;
    border-radius: 5px !important;
    background: transparent !important;
    color: var(--nexus-green) !important;
    text-decoration: none !important;
    font-size: 13px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .5px !important;
    text-transform: uppercase !important;
    box-shadow: none !important;
    transition: .22s ease !important;
}

.contact-btn:hover,
.contact-btn:focus {
    background: var(--nexus-green) !important;
    color: #061014 !important;
    border-color: var(--nexus-green) !important;
    text-decoration: none !important;
    box-shadow: 0 0 26px rgba(196,255,61,.35) !important;
    transform: translateY(-1px) !important;
}

.contact-btn span {
    font-size: 21px !important;
    line-height: 1 !important;
}

.view-link {
    display: block !important;
    margin: 14px 0 0 !important;
    color: var(--nexus-green) !important;
    text-align: center !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
}

.view-link:hover,
.view-link:focus {
    color: #ffffff !important;
    text-shadow: 0 0 12px rgba(196,255,61,.55) !important;
    text-decoration: underline !important;
}

/* LOADING / NO RESULTS / BOTTOM CTA */

.loading-message,
.no-results,
.bottom-cta {
    width: 100% !important;
    padding: 22px 26px !important;
    border: 1px solid #121d22 !important;
    border-radius: 7px !important;
    background: #071015 !important;
    color: #ffffff !important;
}

.loading-message {
    color: var(--nexus-green) !important;
    font-weight: 800 !important;
}

.no-results,
.bottom-cta {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 20px !important;
    margin-top: 16px !important;
}

.no-results h4,
.bottom-cta h4 {
    margin: 0 0 6px !important;
    color: #ffffff !important;
    font-size: 16px !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
}

.no-results p,
.bottom-cta p {
    margin: 0 !important;
    color: #aeb8bd !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
    font-weight: 500 !important;
}

/* CONTACT NEXUS TEAM BUTTON */

.contact-team-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 48px !important;
    min-width: 264px !important;
    padding: 12px 26px !important;
    border: 1px solid var(--nexus-green) !important;
    border-radius: 5px !important;
    background: transparent !important;
    color: var(--nexus-green) !important;
    text-decoration: none !important;
    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .5px !important;
    text-transform: uppercase !important;
    box-shadow: none !important;
    transition: .22s ease !important;
}

.contact-team-btn:hover,
.contact-team-btn:focus {
    background: var(--nexus-green) !important;
    color: #061014 !important;
    border-color: var(--nexus-green) !important;
    text-decoration: none !important;
    box-shadow: 0 0 26px rgba(196,255,61,.35) !important;
    transform: translateY(-1px) !important;
}

/* THEME / ELEMENTOR BUTTON OVERRIDE */

.nexus-installer-finder button,
.nexus-installer-finder input,
.nexus-installer-finder select,
.nexus-installer-finder textarea {
    font-family: Inter, Arial, Helvetica, sans-serif !important;
}

.nexus-installer-finder .elementor-button,
.nexus-installer-finder .button,
.nexus-installer-finder a.button {
    text-decoration: none !important;
}

.nexus-installer-finder a:hover {
    text-decoration: none;
}

/* RESPONSIVE */

@media (max-width: 1180px) {
    .installer-card {
        grid-template-columns: 140px minmax(340px, 1.4fr) minmax(270px, .95fr) 252px !important;
        gap: 18px !important;
    }
}

@media (max-width: 1100px) {
    .nexus-search-box {
        grid-template-columns: 1fr !important;
        min-height: auto !important;
        padding: 30px !important;
    }

    .search-info {
        max-width: 260px;
    }

    .installer-card {
        grid-template-columns: 80px 1fr !important;
        gap: 18px !important;
    }

    .installer-details {
        border-right: none !important;
        padding-right: 0 !important;
    }

    .contact-details,
    .action-box {
        grid-column: 1 / -1 !important;
        border-right: none !important;
        padding-right: 0 !important;
    }
}

@media (max-width: 980px) {
    .nexus-installer-finder {
        width: calc(100vw - 24px) !important;
    }

    .installer-card {
        grid-template-columns: 76px 1fr !important;
        align-items: start !important;
    }

    .contact-details,
    .action-box {
        grid-column: 1 / -1 !important;
        border-right: none !important;
        padding-right: 0 !important;
    }
}

@media (max-width: 700px) {
    .nexus-installer-finder {
        width: calc(100vw - 20px) !important;
        padding: 0 10px 22px !important;
        margin-left: 50% !important;
        transform: translateX(-50%) !important;
    }

    .nexus-search-box {
        padding: 24px 18px !important;
        border-radius: 10px !important;
    }

    .search-label {
        font-size: 11px !important;
        letter-spacing: 2px !important;
    }

    .search-input-wrap,
    .find-installer-btn {
        height: 62px !important;
    }

    .results-header {
        align-items: flex-start !important;
        flex-direction: column !important;
        margin-top: 28px !important;
    }

    .sort-box,
    .sort-box select {
        width: 100% !important;
    }

    .installer-card {
        grid-template-columns: 1fr !important;
        padding: 22px 18px !important;
    }

    .installer-logo {
        justify-self: start !important;
    }

    .installer-details h3 {
        font-size: 18px !important;
    }

    .services span {
        font-size: 12px !important;
    }

    .no-results,
    .bottom-cta {
        align-items: flex-start !important;
        flex-direction: column !important;
    }

    .contact-team-btn {
        width: 100% !important;
        min-width: 0 !important;
    }
}