#home .mil-banner {
    position: relative;
    width: 100vw;
    padding: 0;
    margin: 0;
    max-width: initial;
}

/* Anti-CLS: sem isto, no primeiro paint o form (flex column) estica os
   .mil-field-frame para a altura toda (h~1000px) e depois colapsa para
   ~152px quando o layout final aplica -> shift de ~0.67. */
#home .mil-search-panel form,
#home .mil-search-panel .form_direction,
#home .mil-search-panel form .mil-form-grid {
    align-items: flex-start;
    align-content: flex-start;
}
#home .mil-search-panel form .mil-form-grid .mil-field-frame {
    align-self: flex-start;
}

#home .mil-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgba(255, 255, 255, 0.6);
    z-index: 1;
}

#home .mil-banner > video {
    position: absolute;
    inset: 0;
    width: 100vw;
    height: 100vh;
    object-fit: cover;
    z-index: 0;
}

#home .mil-banner > .container {
    position: relative;
    z-index: 2;
}

#home .mil-banner .container,
#home .mil-search-panel {
    width: 100vw;
    padding: 0;
    margin: 0;
    max-width: initial;
}

#home .mil-content-pad.mil-search-window.casas.mil-mt-20 {
    margin: 0;
}

#home .mil-search-panel {
    border-radius: 25px;
    padding: 32px 256px !important;
    background-color: rgba(255, 255, 255, .6);
    backdrop-filter: blur(16px);
}

#home .mil-search-panel form {
    gap: 32px;
}

#home .mil-search-panel .filter,
.casas form .filter,
.casas form .form_direction {
    padding-top: 0 !important;
}

#home .mil-banner > .container {
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Posição absoluta (painel sobre o banner) apenas em telas grandes.
   No mobile o painel deve fluir logo após o banner/vídeo, antes das casas. */
@media screen and (min-width: 769px) {
    #home .mil-content-pad.mil-search-window.casas.mil-mt-20 {
        left: 0;
        bottom: 0;
        position: absolute;
    }
}

@media screen and (max-width: 768px) {
    #home .mil-content-pad.mil-search-window.casas.mil-mt-20 {
        position: relative;
        left: auto;
        bottom: auto;
        top: auto;
        margin: 0;
    }
    #home .mil-search-panel {
        margin-top: 0 !important;
    }
}

#home .mil-search-panel .filter {
    width: initial !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin-left: 16px;
}

@media screen and (max-width: 1400px) {
    #home .mil-search-panel {
        padding: 32px 128px !important;
    }

    .custom-select-trigger-guests, .custom-select-trigger-rooms {
        height: 60px;
    }

    .mil-menu ul li {
        margin-right: 32px !important;
    }

    .mil-top-panel-content {
        gap: 23px !important;
    }

    .mil-menu,
    .mil-header-search-desktop {
        margin-left: 0 !important;
    }
}

@media screen and (max-width: 1300px) {
    .mil-top-panel > .container {
        padding: 0 !important;
    }
}

/* Botões "Buscar" e "Filtros Avançados" do mesmo tamanho, com espaçamento vertical (mobile) */
@media screen and (max-width: 768px) {
    #home .mil-search-panel .form_direction,
    #home .mil-search-panel .filter {
        width: 100% !important;
        margin-left: 0 !important;
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    #home .mil-search-panel .form_direction > button[type="submit"],
    #home .mil-search-panel .filter > button {
        width: 100%;
        margin: 0;
    }
}

/* Desabilitar filtro antigo */
#home .mil-search-panel .filter .mil-form-grid {
    display: none !important;
    pointer-events: none !important;
}

/* Modal de Filtros */
#filterModal {
    display: none;
    position: fixed;
    z-index: 999;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.5);
    animation: fadeIn 0.3s ease-in-out;
}

#filterModal.active {
    display: flex;
    align-items: center;
    justify-content: center;
}
