/* ============================================================
   CARD DE IMÓVEL — mesmo design da nova home (home_zroo).
   Usado na /aluga (SSR + AJAX). Classes .property-card* são
   BEM (não colidem com o Tailwind do site). Os tokens ficam
   ESCOPADOS no .property-card pra não vazar pro resto do site.
   ============================================================ */

/* Grid da listagem — mesmo responsivo da nova home (.property-grid):
   4 colunas → 3 (≤1200) → 2 (≤992) → 1 (≤576). Este CSS carrega DEPOIS
   do Tailwind (ver inc/head.php), então vence as classes grid-cols-* do
   container .retono_filtro (que não renomeamos: é o alvo do AJAX). */
.retono_filtro, .imovel-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}
@media (max-width: 1200px) { .retono_filtro, .imovel-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 992px)  { .retono_filtro, .imovel-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 576px)  { .retono_filtro, .imovel-grid { grid-template-columns: 1fr; } }
.property-card {
  /* tokens (valores de home_zroo/css/variables.css), escopados aqui */
  --pc-primary: #F60F9E;
  --pc-dark: #1C1C28;
  --pc-text: #2B2B38;
  --pc-muted: #8A8EA8;
  --pc-border: #E7E9F2;
  --pc-surface: #FFFFFF;
  --pc-radius-lg: 20px;
  --pc-radius-pill: 999px;
  --pc-shadow-sm: 0 2px 8px rgba(20, 20, 40, 0.06);
  --pc-shadow-lg: 0 24px 60px rgba(20, 20, 40, 0.16);
  --pc-transition: 0.25s ease;

  position: relative;
  height: 100%;                 /* preenche a célula do grid → cards da linha ficam iguais */
  display: flex;
  flex-direction: column;
  background: var(--pc-surface);
  border-radius: var(--pc-radius-lg);
  overflow: hidden;
  box-shadow: var(--pc-shadow-sm);
  border: 1px solid var(--pc-border);
  transition: transform var(--pc-transition), box-shadow var(--pc-transition);
  color: var(--pc-text);
  font-family: inherit;
}
.property-card:hover { transform: translateY(-6px); box-shadow: var(--pc-shadow-lg); }

/* Link que cobre o card inteiro; o favoritar fica acima. */
.property-card__overlay { position: absolute; inset: 0; z-index: 1; }

/* Mídia + carrossel de fotos */
.property-card__media { position: relative; aspect-ratio: 4 / 3; }
.property-card__slides { position: absolute; inset: 0; }
.property-card__photo {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity var(--pc-transition);
}
.property-card__photo.is-active { opacity: 1; }

/* Setas ‹ › — canto inferior direito; aparecem no hover (desktop) */
.property-card__nav {
  position: absolute; right: 14px; bottom: 14px; z-index: 2;
  display: flex; gap: 6px;
  opacity: 0; transition: opacity var(--pc-transition);
}
.property-card:hover .property-card__nav { opacity: 1; }
.property-card__arrow {
  display: grid; place-items: center;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
  color: #fff; border: none; cursor: pointer;
  backdrop-filter: blur(6px);
  transition: background var(--pc-transition);
}
.property-card__arrow:hover { background: rgba(255, 255, 255, 0.45); }
.property-card__arrow svg { width: 16px; height: 16px; }
.property-card__arrow--prev { transform: scaleX(-1); }

/* Dots — canto inferior esquerdo; aparecem no hover (desktop) */
.property-card__dots {
  position: absolute; left: 16px; bottom: 20px; z-index: 2;
  display: flex; align-items: center; gap: 5px;
  opacity: 0; transition: opacity var(--pc-transition);
}
.property-card:hover .property-card__dots { opacity: 1; }
.property-card__dots span {
  width: 6px; height: 6px; border-radius: 50%;
  background: rgba(255, 255, 255, 0.6);
  cursor: pointer; transition: width var(--pc-transition), background var(--pc-transition);
}
.property-card__dots span.is-active { background: #fff; width: 16px; border-radius: var(--pc-radius-pill); }

/* Mobile / telas de toque: setas e dots SEMPRE visíveis (não há hover). */
@media (hover: none) {
  .property-card__nav, .property-card__dots { opacity: 1; }
}

/* Badge do tipo — topo-esquerdo */
.property-card__badge {
  position: absolute; top: 12px; left: 12px; z-index: 2;
  background: var(--pc-surface);
  color: var(--pc-dark);
  font-size: 0.8125rem; font-weight: 600;
  padding: 0.4rem 0.85rem;
  border-radius: var(--pc-radius-pill);
  box-shadow: var(--pc-shadow-sm);
}

/* Favoritar — círculo no topo-direito. Mantém a estrutura de 2 SVGs que o
   handler do site (.favoritar) espera; só estilizamos como o home. */
.property-card__fav {
  position: absolute; top: 12px; right: 12px; z-index: 3;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
  backdrop-filter: blur(6px);
  transition: background var(--pc-transition), transform var(--pc-transition);
}
.property-card__fav:hover { background: rgba(255, 255, 255, 0.4); transform: scale(1.1); }
/* Os 2 corações ficam sobrepostos, centralizados no círculo. */
.property-card__fav svg { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
/* 1º SVG = contorno branco (sempre visível). */
.property-card__fav > svg:first-child { width: 22px; height: 22px; }
/* 2º SVG = coração sólido: escondido quando NÃO favoritado (fica só o contorno),
   e aparece rosa quando favoritado. O handler do site alterna essas classes. */
.property-card__fav > svg + svg { width: 18px; height: 18px; }
.property-card__fav > svg + svg.fill-neutral-500\/70 { display: none; }
.property-card__fav > svg + svg.fill-brand-primary { fill: var(--pc-primary); }

/* Corpo — cresce pra preencher o card e empurra o preço pro rodapé (alinha a linha) */
.property-card__body { padding: 1rem 1.5rem 1.5rem; flex: 1; display: flex; flex-direction: column; }
.property-card__row {
  display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem;
}
.property-card__location { font-size: 1.125rem; font-weight: 700; color: var(--pc-dark); margin: 0; }
.property-card__ref { font-size: 0.8125rem; color: var(--pc-muted); white-space: nowrap; }

.property-card__specs {
  display: flex; flex-wrap: nowrap; justify-content: space-between;
  gap: 0.6rem; margin: 1rem 0; padding: 0; list-style: none;
  color: var(--pc-muted); font-size: 0.8125rem;
}
.property-card__specs li { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.property-card__specs .icon { width: 0.95rem; height: 0.95rem; flex-shrink: 0; }

.property-card__price {
  font-size: 1.375rem; font-weight: 800; color: var(--pc-dark);
  letter-spacing: -0.02em; margin: 0;
  margin-top: auto;   /* preço no rodapé → preços alinhados na linha */
}
.property-card__price span { font-size: 0.9375rem; font-weight: 500; color: var(--pc-muted); }
