/* =========================================
   Reset
========================================= */

* {
    box-sizing: border-box;
}

input,
button,
textarea,
select {

    outline: none !important;

    -webkit-tap-highlight-color: transparent;
}


/* =========================================
   Search Container
========================================= */

.visa-search-box {

    display: flex;

    align-items: flex-start;

    gap: 18px;

    width: 100%;

    padding: 22px;

    border-radius: 28px;

    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,0.96),
            rgba(255,255,255,0.92)
        );

    backdrop-filter: blur(18px);

    border: 1px solid rgba(255,255,255,0.5);

    box-shadow:
        0 12px 40px rgba(15,23,42,0.08),
        0 2px 10px rgba(15,23,42,0.04);

    position: relative;
}


/* =========================================
   Field
========================================= */

.visa-field {

    position: relative;

    flex: 1;

    min-width: 240px;
}

.visa-field label {

    display: block;

    margin-bottom: 12px;

    font-size: 14px;

    font-weight: 600;

    color: #0f172a;

    letter-spacing: -0.2px;
}


/* =========================================
   Autocomplete
========================================= */

.autocomplete {

    position: relative;
}


/* =========================================
   Modern Input
========================================= */

.autocomplete-input {

    width: 100%;

    height: 58px;

    border-radius: 18px;

    border: 1px solid #dbe2ea;

    background:
        linear-gradient(
            180deg,
            #ffffff,
            #fcfdff
        );

    padding: 0 18px;

    font-size: 15px;

    font-weight: 500;

    color: #0f172a;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background 0.2s ease,
        transform 0.15s ease;

    box-shadow:
        inset 0 1px 2px rgba(15,23,42,0.03);
}


/* Placeholder */

.autocomplete-input::placeholder {

    color: #94a3b8;

    font-weight: 400;
}


/* Hover */

.autocomplete-input:hover {

    border-color: #cbd5e1;
}


/* Focus */

.autocomplete-input:focus {

    border-color: #2563eb;

    background: white;

    box-shadow:
        0 0 0 4px rgba(37,99,235,0.08),
        0 8px 24px rgba(37,99,235,0.08);
}


/* =========================================
   Error State
========================================= */

.autocomplete-input.input-error {

    border-color: #dc2626 !important;

    background: #fff;

    box-shadow:
        0 0 0 4px rgba(220,38,38,0.08) !important;
}


/* =========================================
   Floating Dropdown
========================================= */

.autocomplete-menu {

    position: absolute;

    top: calc(100% + 10px);

    left: 0;

    width: 100%;

    background: rgba(255,255,255,0.98);

    backdrop-filter: blur(20px);

    border-radius: 20px;

    border: 1px solid rgba(226,232,240,0.7);

    box-shadow:
        0 24px 80px rgba(15,23,42,0.14),
        0 8px 30px rgba(15,23,42,0.08);

    padding: 8px;

    max-height: 320px;

    overflow-y: auto;

    z-index: 99999;

    opacity: 0;

    visibility: hidden;

    transform:
        translateY(-8px)
        scale(0.98);

    transition:
        opacity 0.16s ease,
        transform 0.16s ease,
        visibility 0.16s ease;
}


/* Open State */

.autocomplete-menu.active {

    opacity: 1;

    visibility: visible;

    transform:
        translateY(0)
        scale(1);
}


/* =========================================
   Scrollbar
========================================= */

.autocomplete-menu::-webkit-scrollbar {

    width: 6px;
}

.autocomplete-menu::-webkit-scrollbar-thumb {

    background: #cbd5e1;

    border-radius: 999px;
}


/* =========================================
   Dropdown Item
========================================= */

.autocomplete-item {

    display: flex;

    align-items: center;

    gap: 14px;

    padding: 13px 14px;

    border-radius: 14px;

    cursor: pointer;

    transition:
        background 0.16s ease,
        transform 0.14s ease;

    font-size: 15px;

    font-weight: 500;

    color: #0f172a;

    user-select: none;
}


/* Hover */

.autocomplete-item:hover {

    background: #f8fafc;

    transform: translateX(2px);
}


/* =========================================
   Country Flag
========================================= */

.country-flag {

    width: 22px;

    height: 16px;

    object-fit: cover;

    border-radius: 4px;

    flex-shrink: 0;

    box-shadow:
        0 1px 3px rgba(0,0,0,0.12);
}


/* =========================================
   Error Text
========================================= */

.visa-error {

    position: absolute;

    left: 0;

    top: calc(100% + 8px);

    font-size: 13px;

    font-weight: 500;

    color: #dc2626;

    line-height: 1.3;

    pointer-events: none;
}


/* =========================================
   Modern Button
========================================= */

#visa-search-btn {

    height: 58px;

    min-width: 190px;

    padding: 0 28px;

    border: none;

    border-radius: 18px;

    background:
        linear-gradient(
            135deg,
            #0f172a,
            #1e3a8a
        );

    color: white;

    font-size: 14px;

    font-weight: 600;

    letter-spacing: -0.2px;

    white-space: nowrap;

    cursor: pointer;

    align-self: flex-end;

    margin-bottom: 0;

    transition:
        transform 0.16s ease,
        box-shadow 0.16s ease;

    box-shadow:
        0 10px 24px rgba(30,58,138,0.18);
}


/* Hover */

#visa-search-btn:hover {

    transform: translateY(-1px);

    box-shadow:
        0 14px 30px rgba(30,58,138,0.24);
}


/* Active */

#visa-search-btn:active {

    transform: translateY(0);
}


/* Focus */

#visa-search-btn:focus {

    box-shadow:
        0 0 0 4px rgba(37,99,235,0.12),
        0 14px 30px rgba(30,58,138,0.24);
}


/* =========================================
   Tablet
========================================= */

@media (max-width: 991px) {

    .visa-search-box {

        flex-direction: column;

        padding: 20px;
    }

    .visa-field {

        width: 100%;

        min-width: 100%;
    }

    #visa-search-btn {

        width: 100%;
    }
}


/* =========================================
   Mobile
========================================= */

@media (max-width: 767px) {

    .visa-search-box {

        padding: 16px;

        border-radius: 22px;

        gap: 16px;
    }

    .autocomplete-input {

        height: 56px;

        border-radius: 16px;
    }

    #visa-search-btn {

        height: 56px;

        border-radius: 16px;
    }

    .autocomplete-menu {

        max-height: 260px;
    }
}