/*
 * Imóveis Favoritos — v1.0.5
 * Estilos isolados em ifav-; protegidos contra regras de botões do tema/Elementor.
 * Cor do cabeçalho no hover: #9D672B (valor #9D672 informado é inválido em CSS).
 */
:root {
    --ifav-gold-light: #efc45d;
    --ifav-gold-mid: #c69645;
    --ifav-gold-dark: #a8722f;
    --ifav-solid-gold: #9D672B;
    --ifav-gold-gradient: linear-gradient(105deg, #f0c65f 0%, #c89946 53%, #a36e2d 100%);
    --ifav-ink: #252525;
    --ifav-font: "Montserrat", sans-serif;
}

/* Reset SOMENTE nos controles do plugin. Evita bordas duplas, sombras,
   pseudo-elementos e backgrounds impostos pelo tema e Elementor. */
body button.ifav-heart,
body a.ifav-link,
body a.ifav-whatsapp {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle;
    box-sizing: border-box !important;
    outline: 0;
    margin: 0 !important;
    background-clip: padding-box !important;
    text-decoration: none !important;
    text-transform: none !important;
    font-family: var(--ifav-font) !important;
    font-style: normal !important;
    letter-spacing: normal !important;
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
    transform: none !important;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease !important;
}
body button.ifav-heart::before,
body button.ifav-heart::after,
body a.ifav-link::before,
body a.ifav-link::after,
body a.ifav-whatsapp::before,
body a.ifav-whatsapp::after {
    content: none !important;
    display: none !important;
}
body button.ifav-heart:focus-visible,
body a.ifav-link:focus-visible,
body a.ifav-whatsapp:focus-visible {
    outline: 2px solid var(--ifav-solid-gold) !important;
    outline-offset: 3px !important;
}

/* Coração: cor sólida no hover e quando selecionado (nunca degradê). */
body button.ifav-heart {
    --ifav-heart-size: 25px;
    flex: 0 0 auto !important;
    gap: 0 !important;
    width: calc(var(--ifav-heart-size) + 32px) !important;
    min-width: calc(var(--ifav-heart-size) + 32px) !important;
    max-width: none !important;
    height: calc(var(--ifav-heart-size) + 15px) !important;
    min-height: calc(var(--ifav-heart-size) + 15px) !important;
    padding: 7px 15px !important;
    border: 1px solid var(--ifav-solid-gold) !important;
    border-radius: 999px !important;
    background: #fff !important;
    background-image: none !important;
    color: var(--ifav-solid-gold) !important;
    line-height: 1 !important;
    font-size: inherit !important;
    cursor: pointer;
}
body button.ifav-heart .ifav-heart__svg {
    display: block !important;
    flex: 0 0 auto !important;
    width: var(--ifav-heart-size) !important;
    height: var(--ifav-heart-size) !important;
    fill: transparent;
    stroke: currentColor;
    stroke-width: 1.8;
    transition: fill .2s ease, stroke .2s ease;
}
body button.ifav-heart:hover,
body button.ifav-heart:active,
body button.ifav-heart.is-active,
body button.ifav-heart.is-active:hover,
body button.ifav-heart.is-active:focus {
    background: var(--ifav-solid-gold) !important;
    background-image: none !important;
    border-color: var(--ifav-solid-gold) !important;
    color: #fff !important;
    box-shadow: none !important;
    filter: none !important;
}
body button.ifav-heart.is-active .ifav-heart__svg {
    fill: currentColor;
}

/* Variação circular para sobrepor à fotografia do imóvel. */
body button.ifav-heart.ifav-heart--imagem {
    width: calc(var(--ifav-heart-size) + 17px) !important;
    min-width: calc(var(--ifav-heart-size) + 17px) !important;
    height: calc(var(--ifav-heart-size) + 17px) !important;
    min-height: calc(var(--ifav-heart-size) + 17px) !important;
    padding: 8px !important;
    border: 1px solid rgba(255,255,255,.95) !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.96) !important;
    background-image: none !important;
    color: var(--ifav-solid-gold) !important;
}
body button.ifav-heart.ifav-heart--imagem:hover,
body button.ifav-heart.ifav-heart--imagem:active,
body button.ifav-heart.ifav-heart--imagem.is-active,
body button.ifav-heart.ifav-heart--imagem.is-active:hover {
    border-color: var(--ifav-solid-gold) !important;
    background: var(--ifav-solid-gold) !important;
    background-image: none !important;
    color: #fff !important;
}

/* Link de acesso aos favoritos: mesma cápsula dourada do site. */
body a.ifav-link {
    position: relative;
    flex: 0 0 auto;
    gap: 10px !important;
    min-height: 46px !important;
    max-width: 100%;
    padding: 10px 17px !important;
    border: 1px solid transparent !important;
    border-radius: 999px !important;
    background: var(--ifav-gold-gradient) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    text-align: center;
    white-space: nowrap;
    cursor: pointer;
}
body a.ifav-link:hover,
body a.ifav-link:focus,
body a.ifav-link:active,
body a.ifav-link:visited {
    background: var(--ifav-gold-gradient) !important;
    color: #fff !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
}
body a.ifav-link .ifav-heart__svg {
    width: 19px !important;
    height: 19px !important;
    flex: 0 0 19px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}
body a.ifav-link .ifav-link__label { color: inherit !important; }
body .ifav-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: 23px;
    height: 23px;
    padding: 0 5px;
    box-sizing: border-box;
    border: 0 !important;
    border-radius: 50px;
    background: #fff;
    color: var(--ifav-solid-gold);
    font-family: var(--ifav-font);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
body .ifav-total {
    color: var(--ifav-solid-gold);
    font-family: var(--ifav-font);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* Cabeçalho: fundo #FFFFFF26 e hover dourado sólido (#9D672B). */
body a.ifav-link.ifav-link--cabecalho {
    width: 50px !important;
    min-width: 50px !important;
    max-width: 50px !important;
    height: 50px !important;
    min-height: 50px !important;
    gap: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 11px !important;
    background: #FFFFFF26 !important;
    background-image: none !important;
    color: #fff !important;
    box-shadow: none !important;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}
body a.ifav-link.ifav-link--cabecalho:hover,
body a.ifav-link.ifav-link--cabecalho:focus,
body a.ifav-link.ifav-link--cabecalho:active {
    background: var(--ifav-solid-gold) !important;
    background-image: none !important;
    color: #fff !important;
    border: 0 !important;
    box-shadow: none !important;
}
body a.ifav-link.ifav-link--cabecalho .ifav-link__label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
body a.ifav-link.ifav-link--cabecalho .ifav-heart__svg {
    width: 24px !important;
    height: 24px !important;
    flex: 0 0 24px !important;
}
body a.ifav-link.ifav-link--cabecalho .ifav-count {
    position: absolute !important;
    top: -7px;
    right: -7px;
    min-width: 21px;
    height: 21px;
    padding: 0 4px;
    border: 1px solid rgba(255,255,255,.85) !important;
    color: #fff;
    background: var(--ifav-solid-gold);
    font-size: 10px;
}

/* Barra de controles da página de favoritos: sem título automático. */
.ifav-list-tools {
    width: 100%;
    margin: 0 !important;
    font-family: var(--ifav-font);
    color: var(--ifav-ink);
}
.ifav-list-tools__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    width: 100%;
}
.ifav-list-tools__heading p {
    margin: 0 !important;
    color: #616161;
    font-family: var(--ifav-font);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
}
.ifav-list-tools__heading [data-ifav-list-count] {
    color: var(--ifav-solid-gold);
    font-weight: 700;
}
.ifav-list-tools__empty {
    margin-top: 22px;
    padding: 24px 26px;
    background: #fcf9f1;
    color: #614a2e;
    border: 1px solid #ead8b6;
    border-left: 3px solid var(--ifav-gold-mid);
    border-radius: 12px;
    font-family: var(--ifav-font);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.6;
}
[hidden].ifav-list-tools__empty { display: none !important; }

/* Compartilhamento por WhatsApp. */
body a.ifav-whatsapp {
    gap: 10px !important;
    min-height: 46px !important;
    padding: 12px 22px !important;
    border: 0 !important;
    border-color: transparent !important;
    outline: 0 !important;
    border-radius: 999px !important;
    background: var(--ifav-gold-gradient) !important;
    background-image: var(--ifav-gold-gradient) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    line-height: 1.3 !important;
    text-align: center;
    white-space: nowrap;
    cursor: pointer;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
}
body a.ifav-whatsapp:hover,
body a.ifav-whatsapp:focus,
body a.ifav-whatsapp:active,
body a.ifav-whatsapp:visited {
    background: var(--ifav-gold-gradient) !important;
    background-image: var(--ifav-gold-gradient) !important;
    color: #fff !important;
    border: 0 !important;
    border-color: transparent !important;
    outline: 0 !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
}
body a.ifav-whatsapp svg {
    width: 20px !important;
    height: 20px !important;
    flex: 0 0 20px !important;
    stroke: none !important;
    fill: currentColor !important;
}
body a.ifav-whatsapp.is-disabled,
body a.ifav-whatsapp.is-disabled:hover,
body a.ifav-whatsapp.is-disabled:focus {
    opacity: .47;
    cursor: not-allowed;
}

/* Exclusivamente o grid de favoritos (não altera outros Listing Grids). */
.ifav-list-empty #imoveis-favoritos-grid,
.ifav-list-empty .ifav-listing-grid { display: none !important; }

@media (max-width: 767px) {
    .ifav-list-tools__top { align-items: flex-start; gap: 18px; }
    .ifav-list-tools__empty { padding: 20px; }
}
@media (max-width: 540px) {
    .ifav-list-tools__top { flex-direction: column; align-items: stretch; }
    body .ifav-list-tools__top a.ifav-whatsapp { width: 100% !important; }
    body a.ifav-link { font-size: 11px !important; }
}
@media (prefers-reduced-motion: reduce) {
    body button.ifav-heart,
    body button.ifav-heart .ifav-heart__svg,
    body a.ifav-link,
    body a.ifav-whatsapp { transition: none !important; }
}
