/* ===== Keeton & Co. listings (listings.html + home teaser) ===== */
.lst-filters{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:18px;display:grid;grid-template-columns:1.7fr 1.15fr .95fr .95fr 1.3fr 1.3fr;gap:12px;align-items:end}
.lst-filters label{display:block;font-size:13px;font-weight:600;color:var(--ink-2);margin:0 0 6px}
.lst-filters input,.lst-filters select{width:100%;height:46px;border:1px solid var(--line);border-radius:12px;padding:0 12px;font:500 15px var(--sans);color:var(--ink);background:#fff}
.lst-filters input:focus,.lst-filters select:focus{outline:2px solid var(--emerald);outline-offset:1px;border-color:var(--emerald)}
.lst-search{position:relative}.lst-search svg{position:absolute;left:12px;bottom:14px;width:18px;height:18px;color:var(--muted)}
.lst-search input{padding-left:38px}
.lst-chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 6px}
.lst-chip{border:1px solid var(--line);background:#fff;border-radius:99px;padding:8px 14px;font:600 14px var(--head);color:var(--ink-2);cursor:pointer}
.lst-chip[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:#fff}
.lst-chip .n{opacity:.7;font-weight:500;margin-left:4px}
.lst-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0 18px;color:var(--muted);font-size:15px}
.lst-bar strong{color:var(--ink)}
.lst-clear{background:none;border:0;color:var(--green);font:600 14px var(--head);text-decoration:underline;cursor:pointer;padding:4px}
.lst-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.lst-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.lst-ph{position:relative;height:120px;background:linear-gradient(135deg,var(--mint),#F4EFE0);display:grid;place-items:center;color:#7FB79B}
.lst-ph svg{width:54px;height:54px}
.lst-ph .ph-note{position:absolute;right:10px;bottom:8px;font-size:11.5px;color:#6B8F7C}
.lst-badge{position:absolute;left:12px;top:12px;font:700 12px var(--head);letter-spacing:.4px;padding:6px 10px;border-radius:99px;background:#fff;color:var(--green);border:1px solid #CFE3D6}
.lst-badge.s-coming_soon{background:#FBF6E9;color:#7A5A12;border-color:#E4D3A1}
.lst-badge.s-pre_listing{background:#EEF2FF;color:#3730A3;border-color:#C7D2FE}
.lst-badge::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin-right:6px;vertical-align:1px}
.lst-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:4px;flex:1}
.lst-price{font:800 24px var(--head);color:var(--ink);letter-spacing:-.3px}
.lst-price.na{font-size:17px;color:var(--muted);font-weight:700}
.lst-addr{font:700 16px var(--head);color:var(--ink);margin:2px 0 0;overflow-wrap:anywhere}
.lst-city{color:var(--ink-2);font-size:15px}
.lst-meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:13.5px;margin-top:6px}
.lst-by{font-size:13.5px;color:var(--muted);margin-top:8px;padding-top:10px;border-top:1px dashed var(--line)}
.lst-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-top:auto;padding-top:14px}
.lst-actions .btn{padding:12px 16px;font-size:15px}
.lst-call{text-align:center;font-size:14px;color:var(--muted)}
.lst-call a{color:var(--green);font-weight:600}
.lst-by{margin-bottom:0}
.lst-more{display:flex;justify-content:center;margin-top:26px}
.lst-empty{text-align:center;padding:40px 20px;background:var(--surface);border:1px dashed var(--line);border-radius:20px;color:var(--ink-2)}
.lst-note{margin:28px auto 0;max-width:760px;text-align:center;color:var(--muted);font-size:14px}
.lst-note a{color:var(--green)}
.lst-maplink{display:inline-flex;margin-top:14px}
/* home teaser */
.lst-teaser .lst-grid{margin-top:8px}
.lst-teaser .lst-cta{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:26px}
@media (max-width:1060px){.lst-filters{grid-template-columns:1fr 1fr 1fr}.lst-search{grid-column:1/-1}.lst-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.lst-filters{grid-template-columns:1fr 1fr;padding:14px}.lst-filters>div:last-child{grid-column:1/-1}.lst-grid{grid-template-columns:1fr}.lst-ph{height:96px}}
