/* cards-base.css — regras do card extraídas do CSS da listagem /lancamentos/ deste portal (replicar.py). */
.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(43,122,120,.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(43,122,120,.28); box-shadow: 0 24px 64px rgba(0,0,0,.08); }
.prop-card:hover::before{ opacity: 1; }
.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-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(43,122,120,.1); border-bottom: 1px solid rgba(43,122,120,.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(43,122,120,.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-price-wrap{ margin-bottom: 12px; margin-top: auto; padding-top: 8px; }
.prop-price-label{ font-family: var(--label-font); font-size: .5rem; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 2px; }
.prop-price{ font-family: var(--heading-font); font-size: 1.5rem; font-weight: 400; color: var(--accent); letter-spacing: -.01em; }
.prop-price.sob-consulta{ font-size: 1.15rem; color: var(--text-secondary); }
.prop-ctas{ display: flex; gap: 8px; }
.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-name{ font-size: 1.05rem; }
.prop-price{ font-size: 1.15rem; }
.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-card.hidden-card{ display:none; }
.prop-card.hidden-card{ display:none; }
.prop-card.hidden-card{ display:none; }
.prop-card.hidden-card{ display:none; }
.prop-construtora, .prop-construtora a{ color: #25D366 !important; }
.prop-construtora a:hover{ color: #1fba59 !important; }
.prop-price:not(.sob-consulta){ color: var(--text-primary) !important; }
.prop-card.hidden-card{ display:none; }
.prop-card.hidden-card{ display:none; }
.prop-badge{
      position: absolute; top: 12px; left: 12px; z-index: 2;
      font-family: var(--label-font); font-size: .44rem; font-weight: 300;
      letter-spacing: .22em; text-transform: uppercase;
      padding: 3px 10px; border-radius: 99px;
      backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
      border: 1px solid rgba(255,255,255,.18);
      white-space: nowrap; line-height: 1.7;
    }
.prop-badge.tabela-zero{
      background: rgba(30,100,220,.55); color: #ddeeff;
      border-color: rgba(100,160,255,.35);
    }
.prop-badge.pre-lancamento{
      background: rgba(20,140,130,.55); color: #ccf5f2;
      border-color: rgba(40,200,185,.35);
    }
.prop-badge.lancamento{
      background: rgba(43,122,120,.65); color: #c8f0ee;
      border-color: rgba(43,200,180,.4);
    }
.prop-badge.inicio-de-obra{
      background: rgba(190,130,10,.60); color: #fff5cc;
      border-color: rgba(240,190,30,.4);
    }
.prop-badge.em-construcao{
      background: rgba(200,90,20,.60); color: #ffedda;
      border-color: rgba(255,130,40,.4);
    }
.prop-badge.obra-avancada{
      background: rgba(210,60,20,.62); color: #ffe5d5;
      border-color: rgba(255,100,50,.4);
    }
.prop-badge.entregue{
      background: rgba(190,30,40,.65); color: #ffe0e2;
      border-color: rgba(255,70,80,.4);
    }
.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-card.lm-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-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: 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-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-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); margin-bottom: 1px; }
.prop-price{ font-family: var(--body-font); font-size: .82rem; font-weight: 600; letter-spacing: -.01em; color: var(--text-primary); line-height: 1.2; }
.prop-price.sob-consulta{ font-size: .78rem; font-weight: 500; color: var(--text-muted); }
.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 svg{width:17px;height:17px;color:#fff;fill:none;stroke:currentColor;stroke-width:2;transition:all .25s}
.fav-btn:hover{background:rgba(0,0,0,.65);transform:scale(1.08)}
.fav-btn.saved svg{fill:#E53935;stroke:#E53935}
.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:13px;height:13px}
.prop-map{ width: 100%; height: 100%; }
.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(43,122,120,.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(43,122,120,.28); box-shadow: 0 24px 64px rgba(0,0,0,.08); }
.prop-card:hover::before{ opacity: 1; }
.prop-thumb{ aspect-ratio: 4/3; overflow: hidden; position: relative; }
.prop-thumb:has(img[src=""]){ display:none; }
.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-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-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(43,122,120,.1); border-bottom: 1px solid rgba(43,122,120,.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(43,122,120,.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-price-wrap{ margin-bottom: 12px; margin-top: auto; padding-top: 8px; }
.prop-price-label{ font-family: var(--label-font); font-size: .5rem; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 2px; }
.prop-price{ font-family: var(--heading-font); font-size: 1.5rem; font-weight: 400; color: var(--accent); letter-spacing: -.01em; }
.prop-price.sob-consulta{ font-size: 1.15rem; color: var(--text-secondary); }
.prop-ctas{ display: flex; gap: 8px; }
.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-name{ font-size: 1.05rem; }
.prop-price{ font-size: 1.15rem; }
.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-card.hidden-card{ display:none; }
.prop-construtora, .prop-construtora a{ color: #25D366 !important; }
.prop-construtora a:hover{ color: #1fba59 !important; }
.prop-price:not(.sob-consulta){ color: var(--text-primary) !important; }
