/*
 * Select2 da página de anúncios.
 * Todas as regras dependem de classes adicionadas pelo plugin, para não
 * interferir nos campos Select2 usados pelo WooCommerce ou por outros plugins.
 */

:root {
    --cds-anuncios-verde: #496621;
    --cds-anuncios-verde-escuro: #324817;
    --cds-anuncios-verde-destaque: #628f30;
    --cds-anuncios-verde-claro: #e8f0df;
    --cds-anuncios-verde-borda: #92ab78;
}

/*
 * Realce de interação dos cards da listagem.
 * Reversão: remover este bloco inteiro restaura o visual anterior.
 */
.anuncios .item-list {
    position: relative;
    transition: background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.anuncios .item-list > .d-flex > .flex-grow-1 {
    overflow: hidden;
}

.anuncios .item-list .img {
    transition: transform 220ms ease;
}

.anuncios .item-list::after {
    color: var(--cds-anuncios-verde);
    content: "→";
    font-size: 1.15rem;
    font-weight: 600;
    opacity: 0;
    position: absolute;
    right: 0.8rem;
    top: 50%;
    transform: translate(-0.35rem, -50%);
    transition: opacity 180ms ease, transform 180ms ease;
}

/*
 * Indicação de foco por teclado permanece em qualquer dispositivo.
 * O realce de hover é restrito a dispositivos com ponteiro preciso, para
 * não deixar o efeito "preso" após um toque em telas sensíveis ao toque.
 */
.anuncios .item-list:focus-visible {
    background-color: #fff;
    box-shadow: 0 2px 8px rgba(31, 46, 16, 0.08);
    transform: translateY(-1px);
}

.anuncios .item-list:focus-visible .img {
    transform: scale(1.02);
}

.anuncios .item-list:focus-visible .item-titulo {
    color: var(--cds-anuncios-verde);
}

.anuncios .item-list:focus-visible::after {
    opacity: 1;
    transform: translate(0, -50%);
}

@media (hover: hover) and (pointer: fine) {
    .anuncios .item-list:hover {
        background-color: #fff;
        box-shadow: 0 2px 8px rgba(31, 46, 16, 0.08);
        transform: translateY(-1px);
    }

    .anuncios .item-list:hover .img {
        transform: scale(1.02);
    }

    .anuncios .item-list:hover .item-titulo {
        color: var(--cds-anuncios-verde);
    }

    .anuncios .item-list:hover::after {
        opacity: 1;
        transform: translate(0, -50%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .anuncios .item-list,
    .anuncios .item-list .img,
    .anuncios .item-list::after {
        transition: none;
    }
}

/* Estado de foco e abertura do campo. */
.cds-anuncios-select2.select2-container--bootstrap4.select2-container--focus
    .select2-selection,
.cds-anuncios-select2.select2-container--bootstrap4.select2-container--open
    .select2-selection {
    border-color: var(--cds-anuncios-verde);
    box-shadow: 0 0 0 0.2rem rgba(73, 102, 33, 0.22);
}

/*
 * Texto sempre centralizado: placeholder e valor escolhido usam a mesma
 * altura e o mesmo alinhamento vertical.
 */
.cds-anuncios-select2
    .select2-selection--single
    .select2-selection__rendered {
    align-items: center;
    display: flex;
    height: calc(1.5em + 0.75rem);
    line-height: 1.5 !important;
    padding-bottom: 0;
    padding-top: 0;
    transform: translateY(2px);
}

.cds-anuncios-select2
    .select2-selection--single
    .select2-selection__placeholder {
    line-height: 1.5 !important;
}

/* Centraliza a seta na altura do campo (o tema a desloca para baixo). */
.cds-anuncios-select2
    .select2-selection--single
    .select2-selection__arrow {
    height: 100%;
    top: 0;
}

.cds-anuncios-select2
    .select2-selection--single
    .select2-selection__arrow b {
    top: 50%;
}

/* Botão explícito para voltar ao placeholder (Todas). */
.cds-anuncios-select2 .select2-selection--single {
    position: relative;
}

.cds-anuncios-select2-clear {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--cds-anuncios-verde);
    cursor: pointer;
    display: none;
    font-size: 1.35rem;
    font-weight: 400;
    height: 100%;
    justify-content: center;
    line-height: 1;
    padding: 0;
    position: absolute;
    right: 1.4rem;
    top: 0;
    width: 1.25rem;
    z-index: 2;
}

.cds-anuncios-select2--has-value .cds-anuncios-select2-clear {
    display: flex;
}

.cds-anuncios-select2-clear:hover,
.cds-anuncios-select2-clear:focus {
    color: var(--cds-anuncios-verde-escuro);
    outline: 0;
}

/* Um valor selecionado recebe destaque verde mais vivo, sem depender do foco. */
.cds-anuncios-select2.cds-anuncios-select2--has-value .select2-selection {
    background-color: #f4f8ef;
    border-color: var(--cds-anuncios-verde-destaque);
}

.cds-anuncios-select2.cds-anuncios-select2--has-value
    .select2-selection__rendered {
    box-sizing: border-box;
    color: #23320f !important;
    font-weight: 500;
    padding-right: 3.75rem !important;
}

/*
 * Reserva espaço para o "x" e a seta. O gradiente torna o corte de
 * valores longos mais natural, sem sobrepor os controles do Select2.
 */
.cds-anuncios-select2.cds-anuncios-select2--has-value
    .select2-selection--single::after {
    background: linear-gradient(to right, rgba(244, 248, 239, 0), #f4f8ef 75%);
    bottom: 1px;
    content: "";
    pointer-events: none;
    position: absolute;
    right: 3.05rem;
    top: 1px;
    width: 1.25rem;
    z-index: 1;
}

/* Itens selecionados em campos de múltipla escolha, como Funções. */
.cds-anuncios-select2
    .select2-selection--multiple
    .select2-selection__choice {
    background-color: var(--cds-anuncios-verde-claro);
    border-color: var(--cds-anuncios-verde-borda);
    color: var(--cds-anuncios-verde-escuro);
}

.cds-anuncios-select2
    .select2-selection--multiple
    .select2-selection__choice__remove {
    border-color: var(--cds-anuncios-verde-borda);
    color: var(--cds-anuncios-verde);
}

.cds-anuncios-select2
    .select2-selection--multiple
    .select2-selection__choice__remove:hover,
.cds-anuncios-select2
    .select2-selection--multiple
    .select2-selection__choice__remove:focus {
    background-color: var(--cds-anuncios-verde-claro);
    color: var(--cds-anuncios-verde-escuro);
}

/*
 * Opção sob o cursor ou selecionada dentro da lista aberta.
 * O tema Bootstrap do Select2 aplica azul com seletor específico; o
 * important é seguro aqui porque a classe existe apenas nos anúncios.
 */
.cds-anuncios-select2-dropdown .select2-results__option--highlighted,
.cds-anuncios-select2-dropdown
    .select2-results__option--highlighted[aria-selected="true"] {
    background-color: var(--cds-anuncios-verde) !important;
    color: #fff !important;
}

.cds-anuncios-select2-dropdown .select2-results__option--selected {
    background-color: var(--cds-anuncios-verde-claro);
    color: var(--cds-anuncios-verde-escuro);
}

/* Campo de pesquisa dentro do dropdown. */
.cds-anuncios-select2-dropdown .select2-search__field:focus {
    border-color: var(--cds-anuncios-verde);
    box-shadow: 0 0 0 0.15rem rgba(73, 102, 33, 0.18);
    outline: 0;
}

/* Campos nativos seguem a borda neutra e o foco verde dos selects. */
#formBusca .form-control {
    border-color: rgba(32, 7, 7, 0.8) !important;
}

#formBusca .form-control:focus {
    border-color: var(--cds-anuncios-verde-destaque) !important;
    box-shadow: 0 0 0 0.2rem rgba(73, 102, 33, 0.18) !important;
    outline: 0;
}

/* Ação principal da busca. */
#formBusca button[name="sb"] {
    background-color: var(--cds-anuncios-verde);
    border-color: var(--cds-anuncios-verde);
    color: #fff;
    padding-left: 1.45rem;
    padding-right: 1.45rem;
}

#formBusca button[name="sb"]:hover,
#formBusca button[name="sb"]:focus {
    background-color: var(--cds-anuncios-verde-escuro);
    border-color: var(--cds-anuncios-verde-escuro);
    box-shadow: 0 0 0 0.2rem rgba(73, 102, 33, 0.22);
    color: #fff;
    outline: 0;
}

/*
 * Somente no desktop (mesmo breakpoint do rótulo "Encontrar Ofertas"), o
 * botão fica mais compacto e ganha uma lupa decorativa à esquerda do texto.
 * O ícone é um pseudo-elemento com mask (sem conteúdo textual): o nome
 * acessível continua sendo o texto do botão. Em mobile nada muda.
 */
@media (min-width: 1200px) {
    #formBusca button[name="sb"] {
        align-items: center;
        display: inline-flex;
        font-size: 1rem;
        gap: 0.45rem;
        padding: 0.5rem 1.1rem;
        white-space: nowrap;
    }

    #formBusca button[name="sb"]::before {
        -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='11'%20cy='11'%20r='7'/%3E%3Cpath%20d='M21%2021l-4.35-4.35'/%3E%3C/svg%3E")
            center / contain no-repeat;
        background-color: currentColor;
        content: "";
        display: inline-block;
        flex: 0 0 auto;
        height: 1rem;
        mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='11'%20cy='11'%20r='7'/%3E%3Cpath%20d='M21%2021l-4.35-4.35'/%3E%3C/svg%3E")
            center / contain no-repeat;
        width: 1rem;
    }
}

/* Checkboxes do filtro, com aparência consistente e foco acessível. */
#formBusca .form-check-input[type="checkbox"],
#formBusca .cds-anuncios-funcoes__input {
    -webkit-appearance: none;
    appearance: none;
    background-color: #fff;
    border: 0.12rem solid #212529;
    border-radius: 0.18rem;
    color: var(--cds-anuncios-verde);
    cursor: pointer;
    display: grid;
    flex: 0 0 auto;
    float: none;
    font: inherit;
    height: 1rem;
    margin: 0 0.5rem 0 0;
    place-content: center;
    transform: translateY(-0.02rem);
    width: 1rem;
}

#formBusca .form-check-input[type="checkbox"]::before,
#formBusca .cds-anuncios-funcoes__input::before {
    background-color: CanvasText;
    box-shadow: inset 1em 1em currentColor;
    clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
    content: "";
    height: 0.58em;
    transform: scale(0);
    transform-origin: bottom left;
    transition: transform 120ms ease-in-out;
    width: 0.58em;
}

#formBusca .form-check-input[type="checkbox"]:checked::before,
#formBusca .cds-anuncios-funcoes__input:checked::before {
    transform: scale(1);
}

#formBusca .form-check-input[type="checkbox"]:focus-visible,
#formBusca .cds-anuncios-funcoes__input:focus-visible {
    outline: none;
}

#formBusca .form-check-input[type="checkbox"]:focus,
#formBusca .cds-anuncios-funcoes__input:focus {
    border-color: var(--cds-anuncios-verde);
    box-shadow: 0 0 0 0.16rem rgba(73, 102, 33, 0.18);
}

#formBusca .form-check {
    align-items: center;
    display: inline-flex;
    margin-bottom: 0;
}

/* Lista de funções do filtro: uma opção por linha, sem Select2. */
#formBusca .cds-anuncios-funcoes {
    display: grid;
    gap: 0.45rem;
}

#formBusca .cds-anuncios-funcoes__item {
    align-items: center;
    display: flex;
    min-height: 1.5rem;
}

#formBusca .cds-anuncios-funcoes__input {
    margin-right: 0.55rem;
}

#formBusca .form-check-label,
#formBusca .cds-anuncios-funcoes__label {
    color: #343a40;
    cursor: pointer;
    line-height: 1.35;
    margin: 0;
}

@media (prefers-reduced-motion: reduce) {
    #formBusca .form-check-input[type="checkbox"]::before,
    #formBusca .cds-anuncios-funcoes__input::before {
        transition: none;
    }
}

/*
 * Em telas menores, a altura do card pode ser maior que a miniatura por
 * causa do título e das características. A coluna da foto acompanha então
 * a altura do card, preservando uma largura proporcional ao viewport.
 */
@media (max-width: 768px) {
    /* Tipografia um pouco menor nos cards da listagem em telas móveis. */
    .anuncios .item-list .item-titulo {
        font-size: 13px;
    }

    .anuncios .item-list .item-valor {
        font-size: 11px;
    }

    .anuncios .item-list .item-valor > span {
        font-size: 9px;
    }

    .anuncios .item-list .inner-opc > div,
    .anuncios .item-list .item-location {
        font-size: 12px;
    }

    .anuncios .item-list > .d-flex {
        align-items: stretch;
    }

    .anuncios .item-list > .d-flex > .flex-grow-1 {
        align-self: stretch;
        display: flex;
        flex: 0 0 clamp(100px, 28vw, 160px) !important;
        position: relative;
    }

    .anuncios .item-list .img {
        flex: 1 1 auto;
        inset: 0;
        min-height: 0;
        position: absolute;
        width: 100%;
        height: 100%;
    }

    /* Cards mais compactos: menos espaço entre itens. */
    .anuncios .item-list {
        margin-bottom: 12px;
    }

    /* Espaços internos mais enxutos, preservando ícones e conteúdo. */
    .anuncios .item-list .inner-opc {
        padding-top: 4px;
        padding-bottom: 4px;
    }

    .anuncios .item-list .inner-opc > div {
        min-height: 24px;
    }

    .anuncios .item-list .inner-location.pt-2 {
        padding-top: 4px !important;
    }

    .anuncios .item-list .inner-location.pb-2 {
        padding-bottom: 4px !important;
    }
}

/*
 * Somente em telas estreitas: título e preço empilhados. O título ocupa toda
 * a largura disponível e o preço fica logo abaixo, alinhado à esquerda, sem
 * reserva fixa. Acima de 480px o preço volta a ficar ao lado do título.
 */
@media (max-width: 480px) {
    .anuncios .item-list .inner-top {
        align-items: stretch;
        flex-direction: column;
        gap: 4px;
        min-height: 0;
    }

    .anuncios .item-list .inner-top > div {
        flex: 0 0 auto;
        width: 100%;
    }

    .anuncios .item-list .item-titulo {
        line-height: 1.25;
    }

    .anuncios .item-list .item-valor {
        min-width: 0;
        text-align: left;
        width: auto;
    }
}

/* Controles exclusivos do fluxo mobile de filtros. */
.cds-anuncios-toolbar__filter,
.cds-anuncios-modal__header,
.cds-anuncios-modal__overlay,
.cds-anuncios-modal__clear,
.cds-anuncios-submit__mobile {
    display: none;
}

.cds-anuncios-toolbar__order-label {
    color: #343a40;
    display: inline-block;
    font-size: 0.9rem;
    white-space: nowrap;
}

.anuncios #content-select-02 .p-2 {
    align-items: center;
    display: flex;
    gap: 0.5rem;
}

.anuncios #content-select-02 .cds-anuncios-select2 {
    flex: 1 1 auto;
}

@media (max-width: 1199.98px) {
    body {
        overflow-x: hidden;
    }

    body.cds-anuncios-modal-open {
        overflow: hidden;
    }

    .cds-anuncios-toolbar-wrapper {
        background-color: #fff;
        box-shadow: 0 2px 7px rgba(0, 0, 0, 0.08);
        position: sticky;
        top: 0;
        z-index: 1040;
    }

    .anuncios #cds-anuncios-toolbar {
        background: transparent;
        box-shadow: none;
        margin: 0;
        padding: 0 !important;
    }

    .anuncios .cds-anuncios-toolbar__row {
        flex-wrap: nowrap;
        justify-content: space-between !important;
        margin: 0;
    }

    .anuncios .cds-anuncios-toolbar__filter,
    .anuncios .cds-anuncios-toolbar__control {
        display: block;
        padding: 0;
        width: 33.333333%;
    }

    .anuncios .cds-anuncios-toolbar__filter {
        flex: 0 0 auto;
        width: auto;
    }

    .anuncios #content-select-02 {
        flex: 0 0 auto;
        width: auto;
    }

    .anuncios .cds-anuncios-filter-column {
        flex: 0 0 0;
        max-width: 0;
        padding: 0;
    }

    .anuncios .cds-anuncios-results-column {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .anuncios .cds-anuncios-toolbar__filter .p-2,
    .anuncios .cds-anuncios-toolbar__control .p-2 {
        padding: 0.35rem !important;
    }

    .cds-anuncios-toolbar__order-label {
        font-size: 0.78rem;
    }

    .cds-anuncios-toolbar__filter-button {
        background: #fff;
        align-items: center;
        border: 2px solid var(--cds-anuncios-verde);
        border-radius: 0.55rem;
        color: var(--cds-anuncios-verde-escuro);
        display: inline-flex;
        font-size: 0.86rem;
        gap: 0.4rem;
        height: calc(1.5em + 0.75rem + 6px);
        justify-content: center;
        overflow: hidden;
        padding: 0.375rem 0.75rem;
        text-overflow: ellipsis;
        white-space: nowrap;
        width: 100%;
    }

    .cds-anuncios-toolbar__filter-icon {
        fill: none;
        height: 1rem;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-width: 1.8;
        width: 1rem;
    }

    .cds-anuncios-toolbar__filter-button:focus-visible {
        border-color: var(--cds-anuncios-verde);
        box-shadow: 0 0 0 0.15rem rgba(73, 102, 33, 0.18);
        outline: 0;
    }

    .anuncios .cds-anuncios-toolbar__control .cds-anuncios-select2 {
        flex: 1 1 auto;
        width: 100% !important;
    }

    .anuncios #content-select-02 .cds-anuncios-select2 {
        flex: 0 1 160px;
        max-width: 160px;
        width: 160px !important;
    }

    .anuncios .cds-anuncios-toolbar__control
        .select2-selection__rendered {
        font-size: 0.78rem;
        padding-left: 0.5rem !important;
        padding-right: 1.5rem !important;
    }

    .anuncios .sidebar-form {
        background: #fff;
        border: 0;
        border-radius: 0.75rem;
        bottom: 0.75rem;
        display: none;
        flex-direction: column;
        left: 0.75rem;
        max-height: calc(100dvh - 1.5rem);
        overflow: hidden;
        position: fixed !important;
        right: 0.75rem;
        top: 0.75rem;
        z-index: 1051;
    }

    .anuncios .sidebar-form.cds-anuncios-modal--open {
        display: flex;
    }

    .cds-anuncios-modal__header {
        align-items: center;
        border-bottom: 1px solid #dee2e6;
        display: flex;
        flex: 0 0 auto;
        justify-content: space-between;
        padding: 0.85rem 1rem;
    }

    .cds-anuncios-modal__header h2 {
        font-size: 1rem;
        font-weight: 600;
        margin: 0;
    }

    .cds-anuncios-modal__close {
        background: transparent;
        border: 0;
        color: #343a40;
        font-size: 1.75rem;
        line-height: 1;
        padding: 0 0.15rem;
    }

    .anuncios .sidebar-form .side-form {
        display: flex;
        flex: 1 1 auto;
        flex-direction: column;
        min-height: 0;
    }

    .cds-anuncios-modal__body {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
    }

    .cds-anuncios-modal__body > h5 {
        display: none;
    }

    .anuncios .sidebar-form .block-bottom {
        background: #fff;
        border-top: 1px solid #dee2e6;
        flex: 0 0 auto;
        padding: 0.75rem 1rem;
    }

    .cds-anuncios-modal__actions {
        align-items: center;
        display: flex;
        gap: 0.75rem;
        justify-content: flex-end;
    }

    .cds-anuncios-modal__clear {
        background: transparent;
        border: 0;
        color: #6c757d;
        display: inline-block;
        font-size: 0.85rem;
        padding: 0.5rem 0;
        text-decoration: underline;
    }

    #formBusca button[name="sb"] {
        font-size: 0.9rem;
        padding: 0.55rem 1rem;
    }

    .cds-anuncios-submit__desktop {
        display: none;
    }

    .cds-anuncios-submit__mobile {
        display: inline;
    }

    .cds-anuncios-modal__overlay {
        background: rgba(0, 0, 0, 0.5);
        bottom: 0;
        display: none;
        left: 0;
        position: fixed;
        right: 0;
        top: 0;
        z-index: 1050;
    }

    .cds-anuncios-modal__overlay.cds-anuncios-modal__overlay--visible {
        display: block;
    }
}

/*
 * Loader do fluxo AJAX dos filtros. Bloqueia somente a região de resultados
 * (resumo e cards), sem cobrir a sidebar nem a página inteira. O tema marca
 * a região com #cds-anuncios-results e aria-busy.
 */
@media (min-width: 1200px) {
    /* Dá ao sticky da sidebar um trecho de rolagem mesmo com poucos resultados. */
    .anuncios #cds-anuncios-results {
        min-height: calc(100vh + 100px);
    }
}

#cds-anuncios-results {
    position: relative;
}

#cds-anuncios-results.cds-anuncios-results--busy::after {
    background: rgba(255, 255, 255, 0.65);
    bottom: 0;
    content: "";
    cursor: progress;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 5;
}

/*
 * Spinner sobre a área de resultados, posicionado na metade superior da tela
 * via sticky (top em vh). Assim fica abaixo do topo e continua visível caso a
 * listagem seja longa e a página esteja rolada. O margin-bottom negativo
 * cancela o espaço em fluxo, então não empurra o resumo/cards.
 */
#cds-anuncios-results.cds-anuncios-results--busy::before {
    animation: cds-anuncios-spin 0.8s linear infinite;
    border: 3px solid var(--cds-anuncios-verde-claro);
    border-radius: 50%;
    border-top-color: var(--cds-anuncios-verde);
    content: "";
    display: block;
    height: 2rem;
    margin: 0 0 -2rem calc(50% - 1rem);
    position: sticky;
    top: 33vh;
    width: 2rem;
    z-index: 6;
}

@keyframes cds-anuncios-spin {
    to {
        transform: rotate(360deg);
    }
}

.cds-anuncios-results__error {
    margin-bottom: 1rem;
}

/*
 * Loader da paginação por rolagem (dentro de #anuncios-items). O JS alterna
 * display: flex/none; aqui centralizamos o conteúdo, damos respiro em relação
 * ao rodapé e exibimos um spinner inline após a legenda.
 */
#anuncios-items .loading-ajax {
    align-items: center;
    gap: 0.65rem;
    justify-content: center;
    padding: 2rem 1rem 3rem;
}

#anuncios-items .loading-ajax__text {
    color: #6c757d;
    font-size: 1.05rem;
    font-weight: 500;
    letter-spacing: 0.01em;
}

#anuncios-items .loading-ajax__spinner {
    animation: cds-anuncios-spin 0.8s linear infinite;
    border: 2px solid var(--cds-anuncios-verde-claro);
    border-radius: 50%;
    border-top-color: var(--cds-anuncios-verde);
    display: inline-block;
    height: 1.05rem;
    width: 1.05rem;
}

/*
 * Overlay complementar dos filtros durante a busca automática na sidebar
 * desktop. É apenas visual: pointer-events: none mantém os campos
 * utilizáveis. O plugin marca o estado com aria-busy no contêiner.
 */
#sidebar-form.cds-anuncios-filters--busy::after {
    background: rgba(255, 255, 255, 0.55);
    bottom: 0;
    content: "";
    left: 0;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 4;
}

/* Mesmo breakpoint do modal: mantém o spinner abaixo da barra sticky. */
@media (max-width: 1199.98px) {
    #cds-anuncios-results.cds-anuncios-results--busy::before {
        top: 40vh;
    }
}

@media (prefers-reduced-motion: reduce) {
    #cds-anuncios-results.cds-anuncios-results--busy::before,
    #anuncios-items .loading-ajax__spinner {
        animation: none;
    }
}

/*
 * Visual dos cards da listagem: fundo cinza bem claro e características
 * (idade, raça, pelagem, andadura e registro) como badges verdes compactos.
 * Os ícones vinham do tema via background-image; aqui são substituídos pelo
 * badge. Carregado após o estilo do tema, o que mantém as duas rotas
 * (render inicial no tema e atualização AJAX no plugin) idênticas.
 * Reversão: remover este bloco restaura o visual anterior com ícones.
 */
.anuncios .item-list {
    background-color: #fbfbfb;
}

.anuncios .item-list .inner-opc {
    border-bottom: 0;
    gap: 6px;
    padding-top: 6px;
    padding-bottom: 6px;
}

.anuncios .item-list .inner-opc > div.opc-idade,
.anuncios .item-list .inner-opc > div.opc-raca,
.anuncios .item-list .inner-opc > div.opc-pelagem,
.anuncios .item-list .inner-opc > div.opc-andadura,
.anuncios .item-list .inner-opc > div.opc-genero {
    align-items: center;
    background-color: var(--cds-anuncios-verde);
    background-image: none;
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    flex-direction: row;
    font-size: 12px;
    font-weight: 500;
    justify-content: center;
    line-height: 1.2;
    margin: 0;
    max-width: 100%;
    min-height: 0;
    overflow-wrap: anywhere;
    padding: 3px 10px;
}

.anuncios .item-list .inner-opc > div > span {
    overflow-wrap: anywhere;
}

/* Localização ao final do card, preservando o ícone do tema. */
.anuncios .item-list .item-location {
    color: #343a40;
}

.anuncios .item-list .item-titulo,
.anuncios .item-list .item-valor,
.anuncios .item-list .item-location {
    overflow-wrap: anywhere;
}

.anuncios .item-list .inner-top > div {
    min-width: 0;
}

@media (max-width: 768px) {
    .anuncios .item-list .inner-opc > div.opc-idade,
    .anuncios .item-list .inner-opc > div.opc-raca,
    .anuncios .item-list .inner-opc > div.opc-pelagem,
    .anuncios .item-list .inner-opc > div.opc-andadura,
    .anuncios .item-list .inner-opc > div.opc-genero {
        font-size: 11px;
        padding: 2px 8px;
    }
}

/* Mais respiro acima dos badges de características em telas maiores. */
@media (min-width: 571px) {
    .anuncios .item-list .inner-opc {
        padding-top: 14px;
    }
}
