/* FINCAS LAXE - BUSCADOR V3 */

.flx-search {
    --flx-search-blue: #007AC2;
    width: 100%;
    box-sizing: border-box;
    font-family: inherit;
}

.flx-search *,
.flx-search *::before,
.flx-search *::after {
    box-sizing: border-box;
}

.flx-search--archive {
    margin: 0 0 24px;
    padding: 22px;
    border: 1px solid #E2EAF0;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 5px 22px rgba(20,60,90,.045);
}

.flx-search--home {
    background: transparent;
}

.flx-search__grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr))
        auto
        minmax(110px, 145px);
    gap: 12px;
    align-items: end;
}

.flx-search__campo {
    min-width: 0;
}

.flx-search__campo label {
    display: block;
    margin-bottom: 8px;
    color: #172D3C;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
}

.flx-search__campo select,
.flx-search__campo input {
    display: block;
    width: 100%;
    min-width: 0;
    height: 48px;
    margin: 0;
    padding: 0 12px;
    border: 1px solid #D7E2E8;
    border-radius: 9px;
    background-color: white;
    color: #172D3C;
    font-family: inherit;
    font-size: 15px;
}

.flx-search__submit {
    width: 100%;
    min-height: 48px;
    padding: 0 15px;
    border: 0;
    border-radius: 11px;
    background: var(--fl-primary, #007AC2);
    color: #fff;
    font-family: inherit;
    font-size: 15px;
    font-weight: 750;
    cursor: pointer;
    white-space: nowrap;
}

.flx-search__submit:hover {
    background: #0066A3;
    color: #fff;
}

.flx-search__advanced {
    position: relative;
    min-width: 0;
    align-self: end;
}

.flx-search__advanced > summary {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 8px 10px;
    border: 1px solid #D7E2E8;
    border-radius: 9px;
    background: #F5F9FC;
    color: #0874AE;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    list-style: none;
}

.flx-search__advanced > summary::-webkit-details-marker {
    display: none;
}

.flx-search__advanced > summary:hover {
    background: #EAF4FA;
}

.flx-search__extras {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    z-index: 20;
    display: grid;
    gap: 12px;
    width: min(350px, 85vw);
    padding: 18px;
    border: 1px solid #D7E2E8;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 14px 40px rgba(20,60,90,.17);
}

/* O buscador doméstico conserva a tarxeta flotante existente */

.flx-search--home .flx-search__grid {
    gap: 12px;
}

/* Resumo mostrado só no móbil */

.flx-search__mobilebar {
    display: none;
}

.flx-search__toggle {
    display: none;
}

.flx-search__campo select:focus-visible,
.flx-search__campo input:focus-visible,
.flx-search__submit:focus-visible,
.flx-search__advanced > summary:focus-visible {
    outline: 2px solid #007AC2;
    outline-offset: 3px;
}

/* Pantallas intermedias */

@media (min-width: 701px) and (max-width: 1050px) {

    .flx-search__grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .flx-search__advanced,
    .flx-search__submit {
        width: 100%;
    }
}

/* Móbil */

@media (max-width: 700px) {

    .flx-search--archive {
        padding: 16px;
    }

    .flx-search__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 15px;
    }

    .flx-search__campo select,
    .flx-search__campo input {
        font-size: 16px;
        min-height: 48px;
    }

    .flx-search__submit {
        min-height: 49px;
    }

    .flx-search__advanced > summary {
        justify-content: flex-start;
        padding-inline: 15px;
    }

    .flx-search__extras {
        position: static;
        width: 100%;
        margin-top: 12px;
        padding: 14px;
        box-shadow: none;
    }

    .flx-search--compact .flx-search__mobilebar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 12px;
    }

    .flx-search__resumen {
        flex: 1 1 160px;
        min-width: 0;
        color: #172D3C;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.4;
    }

    .flx-search__toggle {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
        padding: 9px 13px;
        border: 1px solid #D7E2E8;
        border-radius: 9px;
        background: #F1F7FB;
        color: #007AC2;
        font-size: 14px;
        font-weight: 700;
        cursor: pointer;
    }

    .flx-search--compact:not(.flx-search--expanded)
    .flx-search__body {
        display: none;
    }

    .flx-search--compact.flx-search--expanded
    .flx-search__body {
        margin-top: 16px;
    }
}


/* FLX_CATALOGO_COMPACTO_V1 */

/* Cabeceira breve, sen textos decorativos */

.flc-cabecera {
    padding-top: 16px;
    padding-bottom: 10px;
    margin-bottom: 12px;
}

.flc-cabecera > :not(h1) {
    display: none;
}

.flc-cabecera h1 {
    margin: 0;
    font-size: clamp(24px, 2.4vw, 32px);
    font-weight: 750;
    line-height: 1.2;
    letter-spacing: -.035em;
}

/* O contador non necesita ocupar unha liña */

.flc-resultados-cabecera > p:first-child {
    display: none;
}

/* Buscador fixo ao desprazarse polo catálogo */

.flx-search--archive {
    position: sticky;
    top: 0;
    z-index: 80;
    margin-bottom: 18px;
    background: #fff;
    border: 1px solid #e0e9ef;
    box-shadow: 0 5px 18px rgba(15,50,80,.09);
}

/* Compatibilidade coa barra de WordPress */

.admin-bar .flx-search--archive {
    top: 32px;
}

/* Móbil: cero elementos decorativos antes dos inmobles */

@media (max-width:700px) {

    .flc-cabecera {
        position: relative;
        margin: 0;
        padding: 0;
        height: 0;
    }

    /* O título segue existindo semanticamente */

    .flc-cabecera h1 {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0,0,0,0);
        white-space: nowrap;
        border: 0;
    }

    .flx-search--archive {
        padding: 11px 13px;
        margin-bottom: 10px;
        border-radius: 10px;
    }

    .admin-bar .flx-search--archive {
        top: 46px;
    }

    .flx-search__mobilebar {
        gap: 9px;
    }

    .flx-search__resumen {
        font-size: 14px;
        font-weight: 700;
        line-height: 1.35;
    }

    .flx-search__toggle {
        min-height: 40px;
        padding: 8px 13px;
        font-size: 13px;
        border-radius: 8px;
        white-space: nowrap;
    }

    .flc-resultados-cabecera {
        margin-top: 8px;
        margin-bottom: 14px;
    }
}


/* FLX_STICKY_AZUL_MOBILE_V2 */

@media (max-width:700px) {

    /* Barra sticky azul corporativo */

    .flx-search--archive.flx-search--compact {
        background: #155F8D;
        border-color: #155F8D;
        box-shadow: 0 6px 18px rgba(10,55,90,.20);
    }

    /* Resumo da busca */

    .flx-search--compact .flx-search__resumen {
        color: #FFFFFF;
        font-weight: 700;
    }

    /* Botón Filtros */

    .flx-search--compact .flx-search__toggle {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        background: rgba(255,255,255,.13);
        border: 1px solid rgba(255,255,255,.50);
        color: #FFFFFF;
        border-radius: 9px;
        font-weight: 750;
    }

    .flx-search--compact .flx-search__toggle::before {
        content: "⚙︎";
        font-family: Arial, sans-serif;
        font-size: 19px;
        line-height: 1;
    }

    /* Etiquetas cando se despregan os filtros */

    .flx-search--compact .flx-search__campo label {
        color: #FFFFFF;
    }

}

/* FIN_FLX_CATALOGO_COMPACTO_V1 */



/* FLX_FILTROS_LIMPIOS_V2 */

/* Ordenador */

@media (min-width:1051px) {

    .flx-search--archive .flx-search__grid {
        grid-template-columns:
            repeat(3,minmax(0,1fr))
            minmax(135px,.7fr)
            minmax(115px,140px);
        align-items:end;
        gap:12px;
    }

}

/* Pantallas intermedias */

@media (min-width:701px) and (max-width:1050px) {

    .flx-search--archive .flx-search__grid {
        grid-template-columns:
            repeat(3,minmax(0,1fr));
    }

    .flx-search--archive .flx-search__precio {
        grid-column:1 / 3;
    }

    .flx-search--archive .flx-search__submit {
        grid-column:3;
    }

}

/* Móbil */

@media (max-width:700px) {

    .flx-search--archive .flx-search__grid {
        display:grid;
        grid-template-columns:minmax(0,1fr);
        gap:15px;
    }

    /*
     * SEN RESULTADOS:
     * formulario normal, nunca sticky.
     */

    .flx-search--archive:not(.flx-search--compact) {
        position:static !important;
        top:auto !important;
    }

    /*
     * CON RESULTADOS:
     * barra pequena e sticky.
     */

    .flx-search--archive.flx-search--compact {
        position:sticky;
        top:0;
        z-index:100;
    }

    /*
     * FILTROS ABERTOS:
     * conserva a posición sticky.
     * Non salta á posición orixinal.
     */

    .flx-search--archive.flx-search--compact.flx-search--expanded {
        position:sticky !important;
        top:0 !important;

        display:flex;
        flex-direction:column;

        max-height:calc(100dvh - 12px);

        background:#FFFFFF;
        border-color:#DFE9EF;

        box-shadow:
            0 8px 26px rgba(15,50,80,.16);
    }

    /*
     * A cabeceira do formulario permanece visible.
     */

    .flx-search--compact.flx-search--expanded
    .flx-search__mobilebar {
        flex:0 0 auto;
    }

    /*
     * Só desprazamos o interior do formulario.
     */

    .flx-search--compact.flx-search--expanded
    .flx-search__body {
        flex:1 1 auto;
        min-height:0;

        overflow-y:auto;
        overscroll-behavior:contain;

        padding-bottom:8px;
        scrollbar-width:thin;
    }

    /* Textos sobre branco ao abrir */

    .flx-search--compact.flx-search--expanded
    .flx-search__resumen {
        color:#172D3C;
    }

    .flx-search--compact.flx-search--expanded
    .flx-search__campo label {
        color:#172D3C;
    }

    /* Botón Cerrar filtros */

    .flx-search--compact.flx-search--expanded
    .flx-search__toggle {
        background:#007AC2;
        border-color:#007AC2;
        color:#FFFFFF;
    }

    /* Campo prezo */

    .flx-search--archive .flx-search__precio input {
        width:100%;
        min-height:48px;
        font-size:16px;
    }

    /*
     * Barra de administración de WordPress.
     */

    .admin-bar
    .flx-search--archive.flx-search--compact.flx-search--expanded {
        top:46px !important;
        max-height:calc(100dvh - 58px);
    }

}

/* FIN_FLX_FILTROS_LIMPIOS_V2 */



/* FLX_BOTONES_COHERENTES_V1 */

@media (max-width: 700px) {

    /* Barra sticky pechada */

    .flx-search--archive.flx-search--compact:not(.flx-search--expanded) {
        background: #155F8C;
        border-color: #155F8C;
    }

    /* Botón Filtros: mesmo azul e bordo branco */

    .flx-search--archive.flx-search--compact:not(.flx-search--expanded)
    .flx-search__toggle {
        background: #155F8C;
        border: 1px solid #FFFFFF;
        color: #FFFFFF;
    }

    /* Ao despregar, conservamos o estilo do botón */

    .flx-search--archive.flx-search--compact.flx-search--expanded
    .flx-search__toggle {
        background: #155F8C;
        border: 1px solid #FFFFFF;
        color: #FFFFFF;
    }

}

/* FIN_FLX_BOTONES_COHERENTES_V1 */
