/* cards-base.css — regras do card extraídas do CSS da listagem /lancamentos/ deste portal (replicar.py). */
.prop-card.lm-hidden{ display: none; }
.prop-grid{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.prop-card{ background: rgba(255,255,255,.85); backdrop-filter: blur(10px); border: 1px solid rgba(74,199,240,.12); border-radius: 14px; overflow: hidden; transition: all .5s cubic-bezier(.25,.46,.45,.94); position: relative; box-shadow: 0 2px 24px rgba(0,0,0,.04); display: flex; flex-direction: column; }
.prop-card::before{ content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 2px; background: linear-gradient(90deg, transparent, var(--accent), transparent); opacity: 0; transition: opacity .5s; }
.prop-card:hover{ transform: translateY(-5px); border-color: rgba(74,199,240,.28); box-shadow: 0 24px 64px rgba(0,0,0,.08); }
.prop-card:hover::before{ opacity: 1; }
.prop-card.hidden{ display: none; }
.prop-thumb{ aspect-ratio: 4/3; overflow: hidden; position: relative; }
.prop-thumb img{ width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.prop-card:hover .prop-thumb img{ transform: scale(1.06); }
.prop-thumb-overlay{ position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 55%, rgba(255,255,255,.45) 100%); }
.prop-badge.entregue{ background: #777; }
.prop-badge.em-obras{ background: var(--text-secondary); }
.prop-badge.ultimas{ background: #c45; }
.prop-badge.pre{ background: #5b7fa6; }
.prop-body{ padding: 16px 16px 14px; flex: 1; display: flex; flex-direction: column; }
.prop-construtora{ font-family: var(--label-font); font-size: .55rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--accent); margin-bottom: 5px; }
.prop-construtora a{ color: var(--accent); text-decoration: none; transition: color .2s; }
.prop-construtora a:hover{ color: var(--accent-hover); }
.prop-name{ font-family: var(--heading-font); font-size: 1.4rem; font-weight: 400; color: var(--text-primary); margin-bottom: 3px; letter-spacing: -.01em; line-height: 1.1; }
.prop-location{ font-size: .72rem; font-weight: 300; color: var(--text-muted); margin-bottom: 10px; }
.prop-specs{ display: flex; gap: 0; border-top: 1px solid rgba(74,199,240,.1); border-bottom: 1px solid rgba(74,199,240,.1); margin-bottom: 18px; }
.prop-spec{ flex: 1; text-align: center; padding: 9px 4px; position: relative; }
.prop-spec:not(:last-child)::after{ content: ""; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 1px; height: 28px; background: rgba(74,199,240,.12); }
.spec-val{ font-family: var(--heading-font); font-size: 1.1rem; font-weight: 400; color: var(--text-primary); line-height: 1.1; }
.spec-lbl{ font-family: var(--label-font); font-size: .48rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); margin-top: 2px; }
.prop-details{ list-style: none; margin-bottom: 10px; }
.prop-details li{ font-size: .72rem; font-weight: 300; color: var(--text-secondary); padding: 2px 0; display: flex; align-items: center; gap: 8px; }
.prop-details li::before{ content: ""; width: 3px; height: 3px; border-radius: 50%; background: var(--accent); opacity: .5; flex-shrink: 0; }
.prop-ctas{ display: flex; gap: 8px; margin-top: 12px; }
.prop-btn-primary{ flex: 1; font-family: var(--label-font); font-size: .6rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: #fff; background: var(--accent); border: 1px solid var(--accent); padding: 10px 10px; border-radius: 6px; text-align: center; transition: all .4s; display: flex; align-items: center; justify-content: center; gap: 6px; }
.prop-btn-primary:hover{ background: var(--accent-hover); border-color: var(--accent-hover); transform: scale(1.02); }
.prop-btn-wa{ width: 38px; height: 38px; border-radius: 6px; background: #25D366; border: 1px solid #25D366; display: flex; align-items: center; justify-content: center; transition: all .3s; flex-shrink: 0; }
.prop-btn-wa:hover{ background: #1fba59; border-color: #1fba59; }
.prop-btn-wa svg{ width: 18px; height: 18px; color: #fff; }
@media (max-width: 1200px){
.prop-grid{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1024px){
.prop-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px){
.prop-grid{ grid-template-columns: 1fr; }
.prop-thumb{ aspect-ratio: 16/9; }
.prop-body{ padding: 12px 12px 10px; }
.prop-name{ font-size: 1.05rem; }
.prop-location{ font-size: .65rem; margin-bottom: 7px; }
.prop-specs{ margin-bottom: 12px; }
.spec-val{ font-size: .9rem; }
.spec-lbl{ font-size: .42rem; }
.prop-details li{ font-size: .65rem; }
.prop-btn-primary{ font-size: .56rem; padding: 9px 8px; }
.prop-btn-wa{ width: 34px; height: 34px; }
.prop-btn-wa svg{ width: 15px; height: 15px; }
}
.prop-badge{
      position: absolute;
      top: 16px;
      left: 16px;
      z-index: 1;
      font-size: .6rem;
      font-weight: 600;
      letter-spacing: .08em;
      text-transform: uppercase;
      padding: 4px 9px;
      border-radius: 20px;
      border: 1px solid rgba(255,255,255,0.18);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      color: #fff;
    }
.prop-badge-blue{ background: rgba(30,100,220,0.55); border-color: rgba(30,100,220,0.4); }
.prop-badge-teal{ background: rgba(0,160,130,0.55); border-color: rgba(0,160,130,0.4); }
.prop-badge-orange{ background: rgba(220,100,20,0.60); border-color: rgba(220,100,20,0.4); }
.prop-badge-green{ background: rgba(15,160,80,0.65); border-color: rgba(15,160,80,0.4); }
.prop-badge-purple{ background: rgba(100,50,200,0.55); border-color: rgba(100,50,200,0.4); }
.prop-badge-red{ background: rgba(200,40,40,0.60); border-color: rgba(200,40,40,0.4); }
.prop-badge-entrega{
      position: absolute;
      top: 44px;
      left: 16px;
      z-index: 1;
      font-size: .55rem;
      font-weight: 600;
      letter-spacing: .07em;
      text-transform: uppercase;
      padding: 3px 7px;
      border-radius: 20px;
      background: rgba(0,0,0,0.50);
      border: 1px solid rgba(255,255,255,0.14);
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
      color: rgba(255,255,255,0.85);
    }
.prop-photo-count{
      position: absolute;
      bottom: 10px;
      right: 10px;
      z-index: 1;
      display: inline-flex;
      align-items: center;
      gap: 5px;
      background: rgba(0,0,0,.55);
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
      color: #fff;
      font-family: var(--label-font);
      font-size: .56rem;
      font-weight: 500;
      letter-spacing: .06em;
      text-transform: uppercase;
      padding: 5px 10px;
      border-radius: 20px;
    }
.prop-photo-count svg{ width: 12px; height: 12px; flex-shrink: 0; }
.prop-price-wrap{
      margin-top: auto;
      padding-top: 10px;
      text-align: left;
    }
.prop-price-label{
      font-size: .58rem;
      font-weight: 500;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: var(--text-muted, #888);
      margin-bottom: 1px;
    }
.prop-price{
      font-family: var(--body-font, sans-serif);
      font-size: .82rem;
      font-weight: 600;
      letter-spacing: -.01em;
      color: var(--text-primary, #191f23);
      line-height: 1.2;
    }
.prop-price.sob-consulta{
      font-size: .78rem;
      font-weight: 500;
      color: var(--text-muted, #888);
    }
.prop-construtora a{color:#25D366!important;font-weight:600;}
.fav-btn{ position: absolute; top: 12px; right: 12px; z-index: 6; width: 36px; height: 36px; border-radius: 50%; background: rgba(0,0,0,.45); backdrop-filter: blur(4px); border: none; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all .3s; padding: 0; }
.fav-btn:hover{ background: rgba(0,0,0,.65); transform: scale(1.1); }
.fav-btn svg{ width: 18px; height: 18px; color: #fff; transition: all .2s; }
.fav-btn.saved svg{ color: #E53935; fill: #E53935; }
.prop-map{ width: 100%; height: 100%; }
