 /* =====================================================
   HERO
===================================================== */

.hero-photo{
  position:relative;
  min-height:700px;

  display:flex;
  align-items:center;
  justify-content:center;

  overflow:hidden;

  background:
    linear-gradient(
      180deg,
      rgba(10,15,12,.55) 0%,
      rgba(10,15,12,.35) 35%,
      rgba(8,10,9,.78) 100%
    ),
    url('../../img/hero-unix.jpg') center center / cover no-repeat;
}

/* Conteúdo central da hero */
.hero-photo-content{
  position:relative;
  z-index:2;

  width:100%;
  max-width:1100px;
  margin:0 auto;
  padding:50px 12px;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:34px;

  text-align:center;
}

/* Barra de busca */
.search-card{
  width:100%;
  margin:0;
  padding:20px;

  background:#fff;
  border-radius:18px;
  box-shadow:0 20px 50px rgba(0,0,0,.22);
}

/* Botões de finalidade */
.hero-toggle{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;

  margin:0;
}

/* Área dos tipos */
.property-types{
  width:100%;
}

.property-types-subtitle{
  color:rgba(255,255,255,.82);
  margin-bottom:0;
}
  .hero-photo-content h1{ color:#fff; font-weight:800; font-size:2.6rem; max-width:820px; margin:0 auto 14px; }
  .hero-photo-content p{ color:rgba(255,255,255,.85); margin-bottom:24px; }
  .hero-toggle{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;

    margin-top: 35px;
}
  .hero-toggle button{
    padding:12px 28px; border-radius:30px; font-size:.95rem; font-weight:700; border:none;
    transition:background-color .18s ease, color .18s ease;
  }
  .hero-toggle button.active{ background:var(--Primary); color:var(--On-primary); }
  .hero-toggle button:not(.active){ background:#fff; color:var(--Heading); }
  .hero-toggle button:not(.active):hover,
  .hero-toggle button:not(.active):focus-visible{ background:var(--Primary-dark); color:var(--On-primary); }

  /* Abaixo do breakpoint md, acompanha a grade 2x2 dos tipos de imovel. */
  @media (max-width:767.98px){
    .hero-toggle{
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      width:100%;
      gap:16px;
    }
    .hero-toggle button{
      width:100%;
      min-width:0;
      min-height:48px;
      padding:12px 10px;
    }
  }

  .search-card{
    max-width:1100px; margin:-3.4rem auto 0; background:#fff; border-radius:18px;
    box-shadow:0 20px 50px rgba(0,0,0,.22); padding:1.3rem; position:relative; z-index:2;
  }
  .search-card .form-control, .search-card .form-select{ border-radius:10px; }
  .search-autocomplete{ position:relative; }
  .search-suggestions{
    position:absolute;
    top:calc(100% + 6px);
    left:0;
    z-index:30;
    width:100%;
    max-height:280px;
    overflow-y:auto;
    padding:6px;
    border:1px solid rgba(69,68,66,.16);
    border-radius:14px;
    background:#fff;
    box-shadow:0 18px 42px rgba(17,17,17,.18);
    text-align:left;
  }
  .search-suggestions[hidden]{ display:none; }
  .search-suggestion{
    display:flex;
    width:100%;
    min-height:42px;
    align-items:center;
    gap:10px;
    padding:9px 11px;
    border:0;
    border-radius:10px;
    background:transparent;
    color:var(--Heading);
    font-size:.88rem;
    text-align:left;
    cursor:pointer;
  }
  .search-suggestion i{
    width:18px;
    flex:0 0 18px;
    color:var(--Note-2);
    text-align:center;
  }
  .search-suggestion > span{ display:flex; flex-direction:column; min-width:0; }
  .search-suggestion > span small{ color:var(--Text-3); font-size:.69rem; font-weight:600; }
  .search-suggestion:hover,
  .search-suggestion.is-active{
    background:var(--Sub-primary-1);
    color:#111;
    outline:none;
  }
  .enterprise-empty-state{
    width:100%; padding:42px 24px; border:1px solid var(--Line); border-radius:18px;
    background:linear-gradient(135deg,#fff,var(--Sub-primary-1)); text-align:center;
  }
  .enterprise-empty-state strong{ display:block; margin-top:14px; color:var(--Heading); font-size:1.05rem; }
  .approximation-empty-state{ text-align:left; }
  .approximation-empty-state h2{ font-size:clamp(1.25rem,2.5vw,1.7rem); }
  .enterprise-empty-state h2{ margin:5px 0 8px; color:var(--Heading); font-weight:850; }
  .enterprise-empty-state p{ margin:0 0 18px; color:var(--Text); }
  .search-card .btn-brand{
    border-radius:30px;
    transition:background-color .18s ease, border-color .18s ease, transform .18s ease;
  }
  .search-card .btn-brand:hover,
  .search-card .btn-brand:focus-visible{
    background:var(--Primary-dark);
    border-color:var(--Primary-dark);
    color:var(--On-primary);
    transform:translateY(-1px);
  }

  /* ---------- Property Type icons ---------- */
  .tipo-card{
    border:1px solid var(--Line); border-radius:14px; padding:22px; display:flex; align-items:center; gap:16px;
    text-decoration:none; color:inherit; transition:.18s; height:100%; background:#fff;
  }
  .tipo-card:hover{ box-shadow:0 14px 32px var(--shadown); transform:translateY(-3px); color:inherit; }
  .tipo-card.active{
    border-color:var(--Primary);
    background:var(--Sub-primary-1);
    box-shadow:0 0 0 3px color-mix(in srgb, var(--Primary) 28%, transparent), 0 14px 32px var(--shadown);
    transform:translateY(-3px);
  }
  .tipo-card .ic{
    width:54px; height:54px; border-radius:12px; background:var(--Sub-primary-1); color:var(--Secondary);
    display:flex; align-items:center; justify-content:center; font-size:1.5rem; flex-shrink:0;
  }
  .tipo-card.active .ic{ background:var(--Primary); color:var(--On-primary); }
  .tipo-card.active h5{ color:var(--Primary-dark); }
  .tipo-card h5{ font-size:1rem; font-weight:700; margin-bottom:4px; color:var(--Heading); }
  .tipo-card .qtd{ font-size:.82rem; color:var(--Secondary); }
  .tipo-card.is-disabled{
    opacity:.48;
    filter:grayscale(1);
    cursor:not-allowed;
    pointer-events:none;
    box-shadow:none;
    transform:none;
  }

  /* ---------- Trusted section ---------- */
  .trusted-section{ background:var(--Sub-primary-1); padding:4rem 0; }
  .trusted-section h2{ font-weight:800; color:var(--Heading); font-size:2rem; }
  .trust-mini{ background:#fff; border-radius:14px; padding:24px; height:100%; }
  .trust-mini .ic{
    width:44px; height:44px; border-radius:10px; background:var(--Sub-primary-2); color:var(--Secondary);
    display:flex; align-items:center; justify-content:center; font-size:1.1rem; margin-bottom:14px;
  }
  .trust-mini h6{ font-weight:700; color:var(--Heading); margin-bottom:8px; }
  .trust-mini p{ font-size:.85rem; color:var(--Text-3); margin-bottom:0; }

  .results-anchor{ scroll-margin-top:90px; }
  .seo-breadcrumb{
    display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin:12px 0 40px;
    color:var(--Text-3); font-size:.76rem;
  }
  .seo-breadcrumb a{ color:var(--Secondary); text-decoration:none; }
  .seo-breadcrumb i{ font-size:.62rem; }

  .filters-toolbar{
    position:relative;
    z-index:3;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:.75rem;
    max-width:1180px;
    margin:-30px auto 1rem;
    padding:14px 18px;
    background:#fff;
    border:1px solid var(--Line);
    border-radius:16px;
    box-shadow:0 16px 38px rgba(0,0,0,.24), 0 4px 10px rgba(0,0,0,.10);
  }
  .filters-toolbar-search{ flex:1 1 360px; }
  .filters-toolbar-search{
    position:relative;
  }
  .filters-toolbar-search .search-suggestions{
    top:calc(100% + 6px);
    z-index:20;
  }
  .filters-toolbar-search-button{
    position:absolute;
    top:50%;
    left:1rem;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    padding:0;
    border:0;
    border-radius:50%;
    background:transparent;
    color:var(--Secondary);
    transform:translateY(-50%);
    cursor:pointer;
    transition:background-color .18s ease, color .18s ease;
  }
  .filters-toolbar-search-button:hover,
  .filters-toolbar-search-button:focus-visible{
    background:var(--Sub-primary-1);
    color:var(--Secondary);
    outline:none;
  }
  .filters-toolbar-search-button:focus-visible{
    box-shadow:0 0 0 2px rgba(69,68,66,.2);
  }
  .filters-toolbar-search .form-control{
    height:44px;
    padding-left:3.15rem;
    padding-right:3rem;
    border-color:var(--Line);
    border-radius:30px;
  }
  .filters-toolbar-search .form-control::-webkit-search-cancel-button{
    display:none;
    -webkit-appearance:none;
    appearance:none;
  }
  .filters-toolbar-search .form-control::-ms-clear{
    display:none;
  }
  .filters-toolbar-clear-button{
    position:absolute;
    top:50%;
    right:.75rem;
    z-index:2;
    display:none;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    padding:0;
    border:0;
    border-radius:50%;
    background:transparent;
    color:var(--Secondary);
    transform:translateY(-50%);
    cursor:pointer;
    transition:background-color .18s ease, color .18s ease;
  }
  .filters-toolbar-clear-button.is-visible{
    display:flex;
  }
  .filters-toolbar-clear-button:hover,
  .filters-toolbar-clear-button:focus-visible{
    background:rgba(210,206,195,.35);
    color:var(--Secondary);
    outline:none;
  }
  .filters-toolbar-clear-button:focus-visible{
    box-shadow:0 0 0 2px rgba(69,68,66,.22);
  }
  .filters-toolbar-search .form-control:focus{
    border-color:var(--Primary);
    box-shadow:0 0 0 .2rem rgba(69,68,66,.12);
  }

  .active-filters{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin:14px 0 2px;
  }
  .active-filters[hidden]{ display:none; }
  .active-filters-label{
    color:var(--Text-3);
    font-size:.86rem;
    font-weight:600;
  }
  .active-filter-chip{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:7px 11px;
    border:1px solid rgba(69,68,66,.35);
    border-radius:999px;
    background:var(--Sub-primary-1);
    color:var(--Secondary);
    font-size:.88rem;
    font-weight:700;
    cursor:pointer;
  }
  .active-filter-chip:hover,
  .active-filter-chip:focus-visible{
    border-color:var(--Primary);
    background:#fff;
    outline:none;
    box-shadow:0 0 0 3px rgba(69,68,66,.12);
  }
  .empty-state-action{
    display:block;
    margin:14px auto 0;
    padding:9px 16px;
    border:1px solid var(--Primary);
    border-radius:999px;
    background:var(--Secondary);
    color:#fff;
    font-weight:700;
    cursor:pointer;
  }
  .empty-state-action:hover,
  .empty-state-action:focus-visible{
    background:var(--Primary);
    outline:none;
  }

  .results-filter,
  .results-order{
    display:flex;
    align-items:center;
    gap:.65rem;
  }
  .results-filter label,
  .results-order label{
    color:var(--Text-3);
    font-size:.88rem;
    white-space:nowrap;
  }
  .results-filter .form-select,
  .results-order .form-select{
    min-width:180px;
    height:44px;
    border-color:var(--Line);
    border-radius:30px;
    padding:.5rem 2.25rem .5rem 1rem;
    color:var(--Heading);
    cursor:pointer;
  }
  .results-filter .form-select{ min-width:145px; }
  .results-total-filter{ display:flex; align-items:center; gap:8px; }
  .results-total-filter[hidden],
  .results-order[hidden]{ display:none !important; }
  .results-total-filter label{ color:var(--Text-3); font-size:.78rem; white-space:nowrap; }
  .results-total-filter .form-control{ width:120px; min-height:44px; border-color:var(--Line); border-radius:12px; }
  .clear-all-filters{
    display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:42px;
    padding:8px 12px; border:1px solid var(--Line); border-radius:12px; background:#fff;
    color:var(--Secondary); font-size:.76rem; font-weight:750; white-space:nowrap;
  }
  .imovel-card .img-wrap{ position:relative; }
  .imovel-card .property-name{
    margin:0 0 .35rem; color:var(--Secondary); font-size:1rem; font-weight:800;
    line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .compare-toggle{
    position:absolute; z-index:3; top:10px; right:10px; display:grid; place-items:center;
    width:32px; height:32px; padding:0; border:1px solid rgba(255,255,255,.8); border-radius:50%;
    background:rgba(255,255,255,.94); color:var(--Secondary); box-shadow:0 5px 14px rgba(0,0,0,.15);
    font-size:.85rem !important; line-height:1;
  }
  .compare-toggle i,
  .compare-toggle i::before{ font-size:.85rem !important; line-height:1; }
  .compare-toggle.is-selected{ border-color:var(--Secondary); background:var(--Secondary); color:#fff; }
  .compare-bar{
    position:fixed; z-index:1035; left:50%; bottom:18px; transform:translateX(-50%);
    display:flex; align-items:center; justify-content:space-between; gap:24px; width:min(620px,calc(100% - 28px));
    padding:12px 14px 12px 18px; border:1px solid rgba(255,255,255,.45); border-radius:16px;
    background:rgba(69,68,66,.96); color:#fff; box-shadow:0 14px 38px rgba(0,0,0,.25);
  }
  .compare-bar[hidden]{ display:none; }
  .compare-bar > span{ font-size:.86rem; }
  .compare-bar > div{ display:flex; gap:8px; }
  .compare-bar button{ min-height:38px; padding:7px 13px; border:0; border-radius:10px; font-weight:750; }
  .compare-bar > div > button:first-child{ background:transparent; color:#fff; }
  .compare-bar .btn-brand{ background:var(--Primary); color:var(--On-primary); }
  .compare-bar .btn-brand:disabled{ opacity:.5; }
  .compare-overlay{
    position:fixed; z-index:1060; inset:0; display:grid; place-items:center; padding:20px;
    background:rgba(31,33,36,.62); backdrop-filter:blur(4px);
  }
  .compare-overlay[hidden]{ display:none; }
  .compare-dialog{
    width:min(1040px,100%); max-height:90vh; overflow:hidden; border-radius:18px; background:#fff;
    box-shadow:0 24px 70px rgba(0,0,0,.3);
  }
  .compare-dialog-header{
    display:flex; align-items:flex-start; justify-content:space-between; gap:20px;
    padding:22px 24px 16px; border-bottom:1px solid var(--Line);
  }
  .compare-dialog-header h2{ margin:0; color:var(--Heading); font-size:1.45rem; font-weight:850; }
  .compare-dialog-header > button{
    display:grid; place-items:center; width:38px; height:38px; border:1px solid var(--Line);
    border-radius:50%; background:#fff; color:var(--Secondary);
  }
  .compare-table-wrap{ max-height:calc(90vh - 92px); overflow:auto; padding:0 24px 24px; }
  .compare-table{ width:100%; min-width:700px; border-collapse:collapse; }
  .compare-table th,
  .compare-table td{ min-width:170px; padding:12px; border-bottom:1px solid var(--Line); text-align:center; }
  .compare-table thead th{ position:sticky; top:0; z-index:1; background:#fff; vertical-align:top; }
  .compare-table thead th:first-child,
  .compare-table tbody th{ min-width:140px; color:var(--Text-3); font-size:.76rem; text-align:left; }
  .compare-table thead img{ width:100%; height:110px; margin-bottom:8px; border-radius:10px; object-fit:cover; }
  .compare-table thead strong,
  .compare-table thead small{ display:block; color:var(--Heading); }
  .compare-table thead small{ color:var(--Text-3); font-size:.68rem; }
  .compare-table td{ color:var(--Heading); font-size:.84rem; }
  .compare-table td a{
    display:block; padding:9px 10px; border-radius:9px; background:var(--Secondary);
    color:#fff; font-weight:750; text-decoration:none;
  }
  body.compare-open{ overflow:hidden; }
  .results-filter .form-select:focus,
  .results-order .form-select:focus{
    border-color:var(--Primary);
    box-shadow:0 0 0 .2rem rgba(69,68,66,.12);
  }
  .share-search-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    min-height:40px;
    padding:.55rem 1rem;
    border:1px solid var(--Primary-dark);
    border-radius:30px;
    background:#fff;
    color:var(--Secondary);
    font-size:.88rem;
    font-weight:700;
    cursor:pointer;
    transition:background-color .18s ease, color .18s ease, transform .18s ease;
  }
  .share-search-button:hover,
  .share-search-button:focus-visible{
    background:var(--Primary-dark);
    color:var(--On-primary);
    outline:none;
    transform:translateY(-1px);
  }
  .results-actions{ display:flex; align-items:center; gap:10px; }
  .radar-open-button{
    display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:8px 16px;
    border:1px solid var(--Secondary); border-radius:24px; background:var(--Secondary); color:#fff;
    font-size:.82rem; font-weight:800; transition:transform .18s,box-shadow .18s;
  }
  .radar-open-button:hover,.radar-open-button:focus-visible{ transform:translateY(-1px); box-shadow:0 8px 20px rgba(31,33,36,.2); }
  .radar-modal .modal-content{ overflow:hidden; border:0; border-radius:24px; box-shadow:0 28px 80px rgba(17,17,17,.34); }
  .radar-close{ position:absolute; z-index:3; top:18px; right:18px; }
  .radar-modal-grid{ display:grid; grid-template-columns:.9fr 1.1fr; }
  .radar-intro{ padding:42px 38px; background:linear-gradient(145deg,var(--Secondary),#242629); color:#fff; }
  .radar-intro .section-eyebrow{ color:var(--Primary); }
  .radar-icon{ display:grid; place-items:center; width:58px; height:58px; margin-bottom:24px; border-radius:18px; background:rgba(255,255,255,.1); color:var(--Primary); font-size:1.7rem; }
  .radar-intro h2{ margin:7px 0 14px; font-size:clamp(1.7rem,3vw,2.35rem); font-weight:900; line-height:1.08; letter-spacing:-.035em; }
  .radar-intro > p{ margin-bottom:26px; color:rgba(255,255,255,.78); line-height:1.6; }
  .radar-benefit{ display:flex; align-items:center; gap:11px; margin-top:16px; }
  .radar-benefit > i{ color:var(--Primary); font-size:1.2rem; }
  .radar-benefit span{ display:flex; flex-direction:column; }
  .radar-benefit small{ color:rgba(255,255,255,.62); }
  .radar-form{ display:flex; flex-direction:column; gap:17px; padding:42px 38px 32px; background:#fff; }
  .radar-label,.radar-field > span,.radar-fields-row label > span{ display:block; margin-bottom:7px; color:var(--Heading); font-size:.78rem; font-weight:800; }
  .radar-options{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .radar-options input{ position:absolute; opacity:0; pointer-events:none; }
  .radar-options span{ display:flex; align-items:center; justify-content:center; gap:8px; min-height:46px; border:1px solid var(--Line); border-radius:12px; color:var(--Text); font-weight:750; cursor:pointer; }
  .radar-options input:checked + span{ border-color:var(--Secondary); background:var(--Sub-primary-1); color:var(--Heading); box-shadow:inset 0 0 0 1px var(--Secondary); }
  .radar-fields-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .radar-form .form-select,.radar-field input{ min-height:46px; border:1px solid var(--Line); border-radius:12px; }
  .radar-field > input{ width:100%; padding:10px 12px; }
  .radar-money{ display:flex; align-items:center; overflow:hidden; min-height:46px; border:1px solid var(--Line); border-radius:12px; }
  .radar-money > span{ padding-left:13px; color:var(--Text-3); }
  .radar-money input{ width:100%; min-width:0; border:0; outline:0; padding:10px; }
  .radar-consent{ display:flex; align-items:flex-start; gap:9px; color:var(--Text); font-size:.72rem; line-height:1.4; }
  .radar-consent input{ margin-top:3px; accent-color:var(--Secondary); }
  .radar-submit{ min-height:50px; border:0; border-radius:14px; background:#25d366; color:#102a19; font-weight:850; }
  .radar-submit:hover{ background:#20bd5a; }
  .radar-privacy,.radar-error{ color:var(--Text-3); text-align:center; }
  .radar-error{ color:#a22727; }
  .share-search-button:focus-visible{
    box-shadow:0 0 0 3px rgba(69,68,66,.2);
  }

  @media (max-width:575.98px){
    .filters-toolbar{
      flex-direction:column;
      align-items:stretch;
      margin-top:-24px;
      padding:12px;
      border-radius:14px;
    }
    .filters-toolbar-search{ flex:0 0 auto; width:100%; }
    .results-bar{ align-items:stretch; }
    .results-actions{ width:100%; flex-direction:column; }
    .share-search-button,.radar-open-button{ width:100%; justify-content:center; }
    .radar-modal-grid{ grid-template-columns:1fr; }
    .radar-close{ filter:invert(1) grayscale(100%) brightness(200%); }
    .radar-intro{ padding:30px 24px; }
    .radar-benefit{ display:none; }
    .radar-form{ padding:28px 24px 24px; }
    .results-filter,
    .results-order{ width:100%; justify-content:space-between; }
    .results-filter .form-select,
    .results-order .form-select{ flex:1; min-width:0; }
    .results-total-filter{ width:100%; }
    .results-total-filter .form-control{ flex:1; width:auto; }
    .clear-all-filters{ width:100%; }
    .compare-bar{ bottom:10px; gap:10px; }
    .compare-bar > span{ font-size:.75rem; }
    .compare-dialog{ max-height:94vh; }
    .compare-table-wrap{ max-height:calc(94vh - 88px); padding:0 14px 18px; }
  }

  /* Em celulares estreitos, preserva nome, icone e quantidade no card. */
  @media (max-width:420px){
    .tipo-card{
      min-height:128px;
      justify-content:center;
      flex-direction:column;
      gap:7px;
      padding:12px 8px;
    }
    .tipo-card .tipo-card-info{ text-align:center; line-height:1.15; }
    .tipo-card .tipo-card-info h5{
      display:block;
      margin-bottom:4px;
      font-size:.9rem;
      overflow-wrap:anywhere;
    }
    .tipo-card .ic{ width:54px; height:54px; font-size:1.55rem; }
    .tipo-card .qtd{ display:block; font-size:.78rem; white-space:nowrap; }
  }

  /* Ritmo vertical mais compacto e previsivel em celulares e tablets. */
  @media (max-width:767.98px){
    .hero-photo-content{
      padding-top:20px;
      padding-bottom:36px;
      gap:24px;
    }
    .search-card{
      margin:0 auto;
    }
    .hero-toggle{
      margin-top:0;
    }
  }
