/* Public listing grid page. This file is intentionally isolated from app.css. */
.public-grid-page{min-height:100vh;color:#123044;background:#f5f8f7}
.public-grid-main{width:min(1320px,calc(100% - 48px));margin:0 auto;padding:14px 0 72px}
.public-grid-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:34px}
.public-grid-intro span{color:#04a57b;font-size:11px;font-weight:900;letter-spacing:2px}
.public-grid-intro h1{margin:8px 0 0;color:#102f42;font-size:36px;line-height:1.2;letter-spacing:-1.4px}
.public-grid-intro p{margin:0;color:#70838d;font-size:15px}
.public-grid-view-links{display:flex;padding:4px;border:1px solid #d7e3e1;border-radius:11px;background:#fff;box-shadow:0 8px 24px rgba(28,62,69,.05)}
.public-grid-view-links a{display:flex;min-width:92px;height:39px;align-items:center;justify-content:center;border-radius:8px;color:#526974;font-size:13px;font-weight:800;transition:.18s ease}
.public-grid-view-links a:hover{color:#087d61;background:#eef8f5}
.public-grid-view-links a.active{color:#fff;background:#11394c}

.public-grid-filters{position:sticky;top:72px;z-index:90;display:grid;grid-template-columns:minmax(280px,1.5fr) repeat(4,minmax(130px,.58fr)) auto;gap:8px;margin-top:14px;padding:9px;border:1px solid #d9e4e2;border-radius:12px;background:#fff;box-shadow:0 7px 18px rgba(24,56,64,.12)}
.public-grid-filters>label{position:relative;display:block;min-width:0}
.public-grid-filters>label>span{position:absolute;top:5px;left:12px;z-index:1;color:#83939b;font-size:9px;font-weight:800;pointer-events:none}
.public-grid-filters input,.public-grid-filters select,.public-grid-filters button{width:100%;height:42px;border:1px solid #d4dfdf;border-radius:8px;color:#294552;background:#fff;font-size:12px;outline:0;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.public-grid-filters select{padding:14px 32px 1px 12px;font-weight:800}
.public-grid-filters select.active{border-color:#11aa81;color:#08785b;background:#f0faf7}
.public-grid-search input{padding:0 15px 0 43px}
.public-grid-search svg{position:absolute;top:12px;left:15px;width:18px;height:18px;fill:none;stroke:#06a27a;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.public-grid-filters input:focus,.public-grid-filters select:focus{border-color:#11aa81;box-shadow:0 0 0 3px rgba(17,170,129,.1)}
.public-grid-filters>button{display:flex;width:auto;align-items:center;justify-content:center;gap:7px;padding:0 15px;color:#536a75;font-weight:800;cursor:pointer}
.public-grid-filters>button:hover{border-color:#11aa81;color:#08785b;background:#f0faf7}
.public-grid-filters>button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.public-grid-filters>.public-grid-filter-toggle{display:none}

.public-grid-results{margin-top:16px}
.public-grid-results>header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}
.public-grid-results>header strong,.public-grid-results>header span{display:block}
.public-grid-results>header strong{font-size:22px}
.public-grid-results>header div>span{margin-top:5px;color:#788a93;font-size:13px}
.public-grid-results>header b{color:#07946f;font-size:17px}
.public-grid-results>header b span{display:inline;font-size:24px}
.public-grid-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.public-grid-card{overflow:hidden;border:1px solid #d8e3e1;border-radius:14px;background:#fff;box-shadow:0 7px 22px rgba(24,55,63,.05);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.public-grid-card:hover{border-color:#97d8c6;transform:translateY(-4px);box-shadow:0 18px 40px rgba(21,72,72,.12)}
.public-grid-card[hidden]{display:none}
.public-grid-card-media{position:relative;display:block;height:220px;overflow:hidden;background:#d9e6e3}
.public-grid-card-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.public-grid-card:hover .public-grid-card-media img{transform:scale(1.035)}
.public-grid-placeholder{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;gap:8px;padding:40px;background:linear-gradient(145deg,#3c6a63,#7da99f)}
.public-grid-placeholder.mixed_use,.public-grid-placeholder.commercial,.public-grid-placeholder.office{background:linear-gradient(145deg,#6e675b,#a89c88)}
.public-grid-placeholder.officetel,.public-grid-placeholder.factory,.public-grid-placeholder.warehouse{background:linear-gradient(145deg,#496779,#83a3b2)}
.public-grid-placeholder i{width:27%;height:55%;border-radius:6px 6px 0 0;background:rgba(255,255,255,.55)}
.public-grid-placeholder i:nth-child(2){height:76%}.public-grid-placeholder i:nth-child(3){height:64%}
.public-grid-card-badges{position:absolute;top:14px;left:14px;display:flex;gap:7px}
.public-grid-card-badges em,.public-grid-card-badges b,.public-grid-photo-count{padding:7px 9px;border-radius:7px;font-size:11px;font-style:normal;font-weight:900;box-shadow:0 4px 14px rgba(20,48,59,.1)}
.public-grid-card-badges em{color:#087b5e;background:rgba(237,251,246,.95)}
.public-grid-card-badges b{color:#fff;background:#0aac82}
.public-grid-photo-count{position:absolute;right:14px;bottom:13px;color:#fff;background:rgba(12,39,53,.84)}
.public-grid-card-body{padding:15px 16px 16px}
.public-grid-card-number{color:#819099;font-size:11px;text-align:right}
.public-grid-card-number strong{color:#087b5e;font-size:12px}
.public-grid-card-body h2{margin:5px 0 10px;overflow:hidden;color:#123044;font-size:18px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap;transition:color .18s ease}
.public-grid-card-body a:hover h2{color:#079b76}
.public-grid-card-price{display:flex;align-items:center;gap:8px;padding-bottom:12px;border-bottom:1px solid #e4eae9}
.public-grid-card-price .deal-badge{padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900}
.public-grid-card-price strong{font-size:17px;letter-spacing:-.3px}
.public-grid-card-body dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:12px 0}
.public-grid-card-body dl div{min-width:0;padding:0 8px;border-right:1px solid #e2e9e8}
.public-grid-card-body dl div:first-child{padding-left:0}.public-grid-card-body dl div:last-child{padding-right:0;border-right:0}
.public-grid-card-body dt{color:#7c8d96;font-size:11px}
.public-grid-card-body dd{margin:4px 0 0;overflow-wrap:anywhere;color:#294654;font-size:12px;font-weight:900}
.public-grid-card-area dd span{display:block;white-space:nowrap}
.public-grid-card-area dd span+span{margin-top:3px}
.public-grid-card-actions{display:grid;grid-template-columns:1fr auto;gap:8px}
.public-grid-card-actions a{display:flex;height:39px;align-items:center;justify-content:space-between;padding:0 12px;border-radius:8px;color:#fff;background:#11394c;font-size:12px;font-weight:900;transition:.18s ease}
.public-grid-card-actions a:hover{color:#fff;background:#079b76;transform:translateY(-1px)}
.public-grid-card-actions a.call{justify-content:center;border:1px solid #badfd4;color:#08785b;background:#eef9f5}
.public-grid-card-actions a.call:hover{border-color:#079b76;color:#fff;background:#079b76}
.public-grid-empty{padding:70px 25px;border:1px dashed #cbdad7;border-radius:15px;color:#72868f;background:#fff;text-align:center}
.public-grid-empty[hidden]{display:none}.public-grid-empty strong,.public-grid-empty span{display:block}.public-grid-empty strong{color:#294654;font-size:18px}.public-grid-empty span{margin-top:8px;font-size:13px}
.public-grid-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px max(24px,calc((100% - 1320px)/2));border-top:1px solid #dce6e5;color:#687e89;background:#fff;font-size:13px}
.public-grid-footer strong{color:#173447;font-size:14px}

@media(max-width:1160px){
  .public-grid-filters{grid-template-columns:2fr repeat(2,1fr)}
  .public-grid-filters>button{width:100%}
  .public-grid-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .public-grid-main{width:calc(100% - 28px);padding:14px 0 56px}
  .public-grid-intro{align-items:flex-start;flex-direction:column}
  .public-grid-intro h1{max-width:100%;font-size:clamp(25px,7.2vw,29px);line-height:1.28;letter-spacing:-1px;word-break:keep-all}
  .public-grid-view-links{width:100%}.public-grid-view-links a{flex:1}
  .public-grid-filters{top:114px;display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;padding:7px}
  .public-grid-search{flex:1 1 calc(100% - 90px)}
  .public-grid-filters input,.public-grid-filters select,.public-grid-filters button{height:38px}
  .public-grid-search svg{top:10px}
  .public-grid-filters>.public-grid-filter-toggle{display:flex;flex:0 0 auto;width:auto;min-width:68px;padding:0 10px;white-space:nowrap}
  .public-grid-filter-toggle span{display:inline-grid;min-width:16px;height:16px;place-items:center;padding:0 3px;border-radius:9px;color:#fff;background:#0a9772;font-size:10px}
  .public-grid-filter-toggle span[hidden]{display:none}
  .public-grid-filters>label:not(.public-grid-search),.public-grid-filters>[data-grid-reset]{display:none}
  .public-grid-filters.is-expanded>label:not(.public-grid-search){display:block;flex:1 1 calc(50% - 3px)}
  .public-grid-filters.is-expanded>[data-grid-reset]{display:flex;flex:1 1 100%}
  .public-grid-cards{grid-template-columns:1fr;gap:17px}
  .public-grid-card-media{height:225px}
  .public-grid-footer{align-items:flex-start;flex-direction:column}
}
@media(max-width:440px){
  .public-grid-card-body{padding:18px}
  .public-grid-card-body dl{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:10px}
  .public-grid-card-body dl .public-grid-card-area{grid-column:1/-1;padding:0 0 9px;border-right:0;border-bottom:1px solid #e2e9e8}
  .public-grid-card-area dd{display:flex;flex-wrap:wrap;gap:3px 12px}
  .public-grid-card-area dd span{white-space:normal}
  .public-grid-card-area dd span+span{margin-top:0}
  .public-grid-card-body dl div:nth-child(2){padding-left:0}
}
