/* cards-base.css — regras do card de empreendimento, extraídas do CSS da listagem /lancamentos/ (gerado por phase_d.py).
   Para páginas que não têm o CSS do card (bairros, construtoras). cards-v2.css vem depois e ajusta o visual. */
.prop-card.lm-hidden{ display: none; }
.prop-card{ content-visibility: auto; contain-intrinsic-size: auto 450px; }
.prop-grid{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.prop-card{ background: #fff; border: 1px solid rgba(168,139,74,.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(168,139,74,.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: 9/16; 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: #25D366; margin-bottom: 5px; }
.prop-construtora a{ color: #25D366; text-decoration: none; transition: color .2s; }
.prop-construtora a:hover{ color: #1fba59; }
.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(168,139,74,.1); border-bottom: 1px solid rgba(168,139,74,.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(168,139,74,.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: 0; flex-shrink: 0; }
.prop-btn-primary{ flex: 0 0 auto; font-family: var(--label-font); font-size: .58rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #fff; background: var(--accent); border: 1px solid var(--accent); padding: 9px 13px; border-radius: 6px; text-align: center; transition: all .4s; display: flex; align-items: center; justify-content: center; gap: 4px; white-space: nowrap; }
.prop-btn-primary:hover{ background: var(--accent-hover); border-color: var(--accent-hover); transform: scale(1.02); }
.prop-btn-wa{ width: 34px; height: 34px; 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; gap: 10px; }
.prop-card{ flex-direction: row; align-items: stretch; border-radius: 12px; }
.prop-thumb{ flex: 0 0 34%; width: 34%; aspect-ratio: auto; }
.prop-body{ flex: 1; min-width: 0; padding: 9px 10px 8px; }
.prop-construtora{ font-size: .46rem; letter-spacing: .12em; margin-bottom: 2px; }
.prop-name{ font-size: .86rem; margin-bottom: 1px; line-height: 1.15; }
.prop-location{ font-size: .58rem; margin-bottom: 4px; line-height: 1.25; }
.prop-registro{ display: none; }
.prop-specs{ margin-bottom: 6px; border-top: none; border-bottom: none; gap: 6px; }
.prop-spec{ padding: 0; flex: 0 0 auto; text-align: left; }
.prop-spec:not(:last-child)::after{ display: none; }
.spec-val{ font-size: .62rem; }
.spec-lbl{ font-size: .38rem; }
.prop-details{ display: none; }
.prop-price-cta-row{ flex-wrap: wrap; gap: 4px 8px; padding-top: 4px; }
.prop-price-label{ font-size: .46rem; }
.prop-price{ font-size: .68rem; }
.prop-ctas{ gap: 5px; }
.prop-btn-primary{ font-size: .5rem; padding: 6px 7px; }
.prop-btn-wa{ width: 26px; height: 26px; }
.prop-btn-wa svg{ width: 13px; height: 13px; }
}
.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-amber{ background: rgba(180,140,15,0.60); border-color: rgba(180,140,15,0.4); }
.prop-badge-cyan{ background: rgba(20,150,190,0.55); border-color: rgba(20,150,190,0.4); }
.prop-badge-ribbon{
      position: absolute; bottom: 18px; left: -38px; z-index: 2; width: 150px;
      padding: 5px 0; background: linear-gradient(135deg,#d6394a,#a91d2e); color: #fff;
      font-family: var(--label-font, inherit); font-size: .56rem; font-weight: 700;
      letter-spacing: .1em; text-transform: uppercase; text-align: center;
      transform: rotate(45deg); box-shadow: 0 2px 8px rgba(0,0,0,.3);
      border-top: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25);
    }
.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-price-cta-row{
      display: flex; align-items: center; justify-content: space-between; gap: 10px;
      margin-top: auto; padding-top: 10px;
    }
.prop-price-wrap{
      text-align: left;
      min-width: 0;
    }
.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, #1A1A18);
      line-height: 1.2;
    }
.prop-price.sob-consulta{
      font-size: .78rem;
      font-weight: 500;
      color: var(--text-muted, #888);
    }
.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-card{cursor:pointer}
.photos-btn{position:absolute;bottom:10px;right:10px;z-index:6;display:inline-flex;align-items:center;gap:5px;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);border:none;color:#fff;font-family:var(--label-font,Inter,sans-serif);font-size:.56rem;font-weight:500;letter-spacing:.06em;padding:6px 12px;border-radius:20px;cursor:pointer;transition:all .3s;text-transform:uppercase}
.photos-btn:hover{background:rgba(0,0,0,.75)}
.photos-btn svg{width:14px;height:14px}
.photos-btn .photo-count{font-weight:700}
@media (max-width: 768px){
.prop-grid .prop-badge{ font-size: .44rem; padding: 3px 6px; top: 6px; left: 6px; white-space: nowrap; letter-spacing: .03em; }
.prop-grid .prop-badge-entrega{ font-size: .4rem; padding: 2px 5px; top: 23px; left: 6px; white-space: nowrap; }
.prop-grid .fav-btn{ width: 24px; height: 24px; top: 5px; right: 5px; }
.prop-grid .fav-btn svg{ width: 12px; height: 12px; }
.prop-grid .photos-btn{ font-size: .46rem; padding: 3px 6px; bottom: 5px; right: 5px; gap: 3px; }
.prop-grid .photos-btn svg{ width: 10px; height: 10px; }
.prop-grid .prop-badge-ribbon{ width: 90px; bottom: 6px; left: -20px; font-size: .4rem; padding: 3px 0; }
}
