/* 매물 카드 (views/parts/ncard.ejs) - 새 화면(web/src/components/site/listing-card.tsx)과 같은 모양
   둥근 모서리, 위에 사진(4:3), 아래에 매물번호 · 주소 · 면적 · 제목 · 가격.
   아파트·전월세 검색(apt-search-app, rent-search-app)도 이 파일을 같이 쓴다 */
.nc {
  display: inline-flex; flex-direction: column; vertical-align: top; box-sizing: border-box;
  overflow: hidden; margin: 12px 6px 4px 0; border: 1px solid #e4e4e7; border-radius: 12px; background: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .05); color: #222 !important; text-decoration: none !important;
  font-family: "Malgun Gothic", "Apple SD Gothic Neo", sans-serif; transition: box-shadow .15s;
}
.nc:hover { box-shadow: 0 4px 14px rgba(0, 0, 0, .12); }
.nc *, .nc *::before, .nc *::after { box-sizing: border-box; }
.nc-photo { position: relative; aspect-ratio: 4 / 3; background: #f4f4f5; }
.nc-photo .nc-img { display: block; width: 100%; height: 100%; object-fit: cover; border: 0; }
.nc-stamp { position: absolute; top: 0; left: 0; height: 56px; width: auto; }
.nc-body { display: flex; flex: 1; flex-direction: column; gap: 6px; padding: 12px 10px; font-size: 14px; line-height: 1.35; }
.nc-row { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.nc-tag { display: inline-flex; align-items: center; height: 16px; padding: 0 4px; border-radius: 4px;
  font-size: 10px; font-weight: 600; line-height: 1; color: #fff; flex: none; }
.nc-tag.id { background: #000; }
.nc-tag.land { background: brown; }
.nc-tag.bld { background: green; }
.nc-tag.sell { background: #000080; padding: 0 6px; }
.nc-tag.jeon { background: #2197bd; padding: 0 6px; }
.nc-tag.dep { background: #ff69b4; padding: 0 6px; }
.nc-tag.rent { background: #87ceeb; padding: 0 6px; }
.nc-id b { color: #dd464d; font-weight: bold; }
.nc-addr { font-size: 12px; font-weight: bold; }
.nc-area { gap: 4px; font-size: 10px; }
.nc-area > span { display: inline-flex; align-items: center; gap: 2px; }
.nc-area b { font-weight: bold; }
.nc-area em { font-style: normal; color: #dd464d; }
.nc-title { overflow: hidden; font-weight: bold; text-overflow: ellipsis; white-space: nowrap; }
.nc-price { margin-top: auto; gap: 4px; font-size: 11px; }
.nc-price > span { display: inline-flex; align-items: center; gap: 4px; }
.nc-price b { font-weight: bold; }

/* 휴대폰 목록: 한 줄에 1개(화면이 넓으면 2개), 사진 크게 */
.nc-grid { display: grid; grid-template-columns: 1fr; gap: 12px; padding: 4px 12px 12px; }
@media (min-width: 520px) { .nc-grid { grid-template-columns: 1fr 1fr; } }
.nc-grid .nc { width: 100% !important; margin: 0; }
.nc-grid .nc-body { padding: 12px 14px; }
.nc-grid .nc-area, .nc-grid .nc-price { font-size: 11px; }
