/* landsearch_list — 검색결과 리스트 반응형
 * 기본(≥1281): 1200px 가운데 정렬 PC large
 * 모바일(≤767/≤480/≤375): molist-list.css + responnsive-list.css 처리 — 이 파일에선 손대지 않음
 * 여백(padding·margin)은 clamp()로 viewport에 따라 부드럽게 축소
 * scope: .rsl-list.rsl-list--auction
 */

/* ============================================
   기본 — 1200 고정폭 풀기 + 긴 주소 대비 컬럼 위쪽 정렬
   우측(가격·상태)은 row 세로 가운데로 별도 정렬
   ============================================ */
.rsl-list .list-item {
  align-items: flex-start;
}

.rsl-list .item-prices,
.rsl-list .item-status {
  align-self: center;
}

/* 진행현황·매각기일·조회수 셀 사이 간격 */
.rsl-list .item-status,
.rsl-list .th-status {
  gap: 12px;
}

/* ============================================
   정렬 버튼 — 탭 underline 스타일 (활성 = 하단 파란 라인)
   ============================================ */
.rsl-list .listtmp__sorts {
  display: flex;
  align-items: stretch;
  gap: 0;
  flex-wrap: nowrap;
  border-bottom: 1px solid #d0d5e2;
}

.rsl-list .listtmp__sort {
  padding: 10px 18px;
  margin-bottom: -1px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  font-size: 15px;
  font-weight: 500;
  color: #767676;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.rsl-list .listtmp__sort-arrow {
  font-size: 11px;
  color: #c4c4c4;
}

.rsl-list .listtmp__sort.is-active {
  color: #1860ef;
  font-weight: 600;
  border-bottom-color: #1860ef;
}

.rsl-list .listtmp__sort.is-active .listtmp__sort-arrow {
  color: #1860ef;
}

/* ============================================
   선택보기 모드 — 라벨 체크박스 + row 체크박스 + 보기 버튼
   ============================================ */

/* row 체크박스 (사진 좌상단) — 기본 숨김 */
.rsl-list .item-rowcheck {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 2;
  display: none;
  cursor: pointer;
}

.rsl-list.is-select-mode .item-rowcheck {
  display: block;
}

.rsl-list .item-rowcheck__input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.rsl-list .item-rowcheck__box {
  display: block;
  width: 22px;
  height: 22px;
  border: 2px solid #fff;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.6);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  position: relative;
}

.rsl-list .item-rowcheck__input:checked + .item-rowcheck__box {
  background: #1860ef;
  border-color: #fff;
}

.rsl-list .item-rowcheck__input:checked + .item-rowcheck__box::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 1px;
  width: 6px;
  height: 11px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
}

/* 선택보기 영역 — 체크박스 2개 세로 / 그 우측 가운데에 버튼 */
.rsl-list .rsl-list__recommend {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px;
}

.rsl-list .rsl-list__recommend-checks {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

/* 전체선택 — 선택보기 모드 활성 시만 표시 */
.rsl-list .rsl-list__select-all {
  display: none;
}

.rsl-list.is-select-mode .rsl-list__select-all {
  display: inline-flex;
}

.rsl-list .rsl-list__view-selected {
  display: none;
  padding: 7px 14px;
  border: 1px solid #1860ef;
  border-radius: 6px;
  background: #fff;
  color: #1860ef;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.04em;
  cursor: pointer;
  gap: 4px;
}

.rsl-list .rsl-list__view-selected::after {
  content: "›";
  font-size: 14px;
  line-height: 1;
}

.rsl-list .rsl-list__view-selected:hover {
  background: #e8f1ff;
}

.rsl-list.is-select-mode .rsl-list__view-selected {
  display: inline-flex;
  align-items: center;
}

/* 추천물건 체크박스 — 정렬 톤과 통일 (보더만, 체크 시 파란 배경 + V 체크) */
.rsl-list .listtmp__check-box {
  width: 18px;
  height: 18px;
  border: 1px solid #d0d5e2;
  border-radius: 4px;
  background: #fff;
  position: relative;
  box-shadow: none;
}

.rsl-list .listtmp__check input:checked + .listtmp__check-box {
  background: #1860ef;
  border-color: #1860ef;
  box-shadow: none;
}

.rsl-list .listtmp__check input:checked + .listtmp__check-box::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 2px;
  width: 5px;
  height: 9px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
}

.rsl-list .listtmp__check-text {
  font-size: 15px;
  font-weight: 500;
  color: #767676;
}

/* 페이지당 개수 select — 정렬 톤과 통일 */
.rsl-list .rsl-list__perpage {
  width: auto;
  height: 36px;
  border: 1px solid #d0d5e2;
  border-radius: 6px;
  background: #fff;
  display: inline-flex;
  align-items: center;
}

.rsl-list .listtmp__page {
  height: 100%;
  padding: 0 32px 0 12px;
  border: 0;
  background: transparent
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%23767676' d='M0 0l5 6 5-6z'/></svg>")
    no-repeat right 12px center;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  color: #505050;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  outline: 0;
}

/* 주소 — 디자인 시스템 Body 2 SBold (16px / 150% / -4%)
   2행까지만 표시, 넘으면 ... ellipsis */
.rsl-list .item-address {
  font-size: 16px;
  line-height: 24px;
  letter-spacing: -0.04em;
  font-weight: 600;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-all;
}

.rsl-list .list-wrapper {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  box-sizing: border-box;
}

.rsl-list .rsl-list__main {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  box-sizing: border-box;
}

.rsl-list .rsl-list__pagination {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* ============================================
   PC (≥1026) — Grid 5행 4열, 컬럼 간 행 동기화

   행 구성:
     Row 1 — body-head (사건번호·아파트)
     Row 2 — 주소 line 1 | 감정가 | 진행현황 main + 매각기일 main
     Row 3 — 주소 line 2 | 최저가 | 진행현황 sub  + 매각기일 sub
     Row 4 — 면적        | (빈)   | (빈)
     Row 5 — 특수조건    | (빈)   | (빈)
   ============================================ */
@media (min-width: 1026px) {
  .rsl-list .list-item--molist {
    display: grid;
    /* v2_010: status 컬럼 폭 확대 — 매각기일/진행현황 줄바꿈·겹침 해소
       photo 220→140, prices 256→160, status 300→220 (1281+~768 자동 비례) */
    grid-template-columns:
      clamp(140px, 17vw, 220px)
      1fr
      clamp(160px, 20vw, 256px)
      clamp(170px, 21vw, 268px);
    grid-template-rows: auto auto auto auto auto;
    column-gap: 0;
    row-gap: 0;
    align-items: start;
  }

  /* photo: 5행 spans, 세로 가운데 (PC base height:160 유지) */
  .rsl-list .list-item--molist > .item-photo {
    grid-row: 1 / 6;
    grid-column: 1;
    align-self: center;
  }

  /* body·body-detail·prices: display:contents로 자식이 grid item이 되도록 */
  .rsl-list .list-item--molist > .item-body { display: contents; }
  .rsl-list .list-item--molist > .item-body > .item-body-detail { display: contents; }
  .rsl-list .list-item--molist > .item-prices { display: contents; }

  /* body 컬럼 자식들 — base의 .item-body padding-left:20을 자식에 전달 */
  .rsl-list .list-item--molist > .item-body > .item-body-head {
    grid-row: 1;
    grid-column: 2;
    padding-left: 20px;
  }
  .rsl-list .list-item--molist .item-body-detail > .item-address {
    grid-row: 2 / 4;            /* 주소 = row 2~3 영역 항상 reserve */
    grid-column: 2;
    padding-left: 20px;
    padding-right: 20px;        /* 주소 우측 여백 — 40→20 (h5: body 확장) */
    margin: 0;
    /* 주소가 1줄이어도 2줄 높이(line-height 24 × 2) 영역 점유
       → row 3가 공란이라도 면적/유치권이 row 3로 올라오지 않음 */
    min-height: 48px;
    /* 주소 최대 2행 + ... ellipsis (길어도 카드 높이 늘어나지 않음) */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-all;
  }
  .rsl-list .list-item--molist .item-body-detail > .item-spec {
    grid-row: 4;
    grid-column: 2;
    padding-left: 20px;
  }
  /* 특수조건(item-tags) — row 5, body 컬럼에만 표시 (prices col 3는 KB시세 자리 확보) */
  .rsl-list .list-item--molist .item-body-detail > .item-tags {
    grid-row: 5;
    grid-column: 2 / 4;         /* body 컬럼(2)~prices 컬럼(3) — status(4) 제외, KB 자리 확보 */
    padding-left: 20px;
    padding-right: 20px;
    margin: 0;
    align-self: start;
    display: flex;
    gap: 4px 6px;
    flex-wrap: nowrap;          /* 줄바꿈 안 함 */
    overflow: hidden;
    min-width: 0;
  }
  .rsl-list .list-item--molist .item-body-detail > .item-tags .tag {
    white-space: nowrap;
    flex: 0 0 auto;
  }

  /* prices 컬럼 자식들 — 컬럼 가로 중앙 정렬 (thead와 정렬 일치)
     감정가 row 2 / 최저가 row 3 / 실거래(있을 때만) row 4 / KB시세 row 5 */
  .rsl-list .list-item--molist > .item-prices > .price-row:nth-child(1) {
    grid-row: 2;
    grid-column: 3;
    padding-left: 0;
    padding-right: 0;
    justify-content: center;     /* flex 가로 중앙 — label+value 박스가 컬럼 중심에 위치 */
  }
  .rsl-list .list-item--molist > .item-prices > .price-row:nth-child(2) {
    grid-row: 3;
    grid-column: 3;
    padding-left: 0;
    padding-right: 0;
    justify-content: center;
  }
  .rsl-list .list-item--molist > .item-prices > .price-row:nth-child(3) {
    grid-row: 4;                /* 실거래 or KB(실거래 없을 때) = row 4 */
    grid-column: 3;
    padding-left: 0;
    padding-right: 0;
    justify-content: center;
  }
  /* 실거래+KB 모두 있을 때 KB = :nth-child(4) → row 5로 명시 배치
     (미지정 시 grid auto-placement가 빈 row 1 col 3으로 올려버림) */
  .rsl-list .list-item--molist > .item-prices > .price-row:nth-child(4) {
    grid-row: 5;
    grid-column: 3;
    padding-left: 0;
    padding-right: 0;
    justify-content: center;
  }

  /* price-row 글자 baseline을 address와 정확 매칭
     base: min-height 27 + align-items center + line-height 19.5
        → 박스 안 글자가 세로 중앙(약 3.75px 아래) → address(line-height 24, 자연 흐름)와 어긋남
     수정: min-height 풀고 + 글자 top 정렬 + line-height 24로 통일
     + 너비를 컬럼 100%로 통일 → 감정가/최저가/실거래/KB시세 수직 정렬 일치 */
  .rsl-list .list-item--molist > .item-prices > .price-row {
    min-height: 0;
    align-items: flex-start;
    line-height: 24px;
    max-width: none;          /* base 216 풀기 */
    width: 100%;              /* 열 전체 폭 사용 → 모든 행 너비 통일 → 수직 정렬 일치 */
    box-sizing: border-box;
    justify-self: stretch;    /* 컬럼 전체에 걸쳐 늘어남 */
    justify-content: center;  /* label+value 그룹을 행 중앙에 배치 */
  }
  .rsl-list .list-item--molist .price-label,
  .rsl-list .list-item--molist .price-value {
    line-height: 24px;
  }
  /* thead를 본문 grid와 동일 구조로 동기화 + 각 컬럼 가로 중앙 정렬
     본문 .list-item--molist grid: 220px 1fr 256px 268px
     thead도 같은 그리드 → 컬럼이 시각적으로 정확히 일치 */
  .rsl-list .rsl-list__thead {
    display: grid;
    /* v2_010: 본문 grid와 동일한 clamp 곡선 — status 폭 확대로 통일 */
    grid-template-columns:
      clamp(140px, 17vw, 220px)
      1fr
      clamp(160px, 20vw, 256px)
      clamp(170px, 21vw, 268px);
    column-gap: 0;
    align-items: center;
  }
  .rsl-list .th-photo {
    text-align: center;
    padding-left: 0;
    padding-right: 0;
    transform: none;
  }
  /* th-info "물건정보" — 컬럼 중앙정렬 (i: transform 제거) */
  .rsl-list .th-info {
    text-align: center;
    padding-left: 0;
    padding-right: 0;
  }
  /* === 컬럼 중앙정렬 기반 (20260514i) ===
     transform 8개 모두 제거. thead와 본문 모두 자기 컬럼 가운데 정렬.
     컬럼 폭(grid-template-columns)이 변하면 자동으로 같이 따라감 → 점프 없음 */

  /* th-price — 컬럼 중앙정렬 */
  .rsl-list .th-price {
    text-align: center;
    padding-left: 0;
    padding-right: 0;
  }
  /* th-status — flex 균등 분할 */
  .rsl-list .th-status {
    display: flex;
    justify-content: space-around;
    align-items: center;
    gap: 0;
  }
  .rsl-list .th-status > .th-status-col {
    flex: 1 1 0;
    text-align: center;
  }
  /* base의 매각기일 col만 flex:1.4 → 본문 cell(1:1:1)과 일치하도록 균등 */
  .rsl-list .th-status > .th-status-col:nth-child(2) {
    flex: 1 1 0;
  }

  /* status: row 2~3 점유, 내부 cell은 base flex 유지 */
  .rsl-list .list-item--molist > .item-status {
    grid-row: 2 / 4;
    grid-column: 4;
  }

  /* 라벨 — 박스 우측 정렬 + 라벨~값 간격 24→16 축소
     base text-align:right 유지(라벨 글자가 box 우측에 정렬, 값 가까이) */
  .rsl-list .list-item--molist .price-label {
    margin-right: 16px;
  }

  /* (위쪽 status 3개 cell transform 통합 룰로 이동) */
}

/* ============================================
   PC 전 영역 공통 — 1281+, 1280, 1025+ 까지 (v2: 미디어쿼리 unwrap)
   기존 @media (max-width: 1280px) 미디어쿼리 제거 → 1281+에도 적용
   → 1281↔1280 경계 점프 본질적으로 제거
   ============================================ */
/* @media (max-width: 1280px) { -- v2: unwrap */
  /* 컨테이너 상하·좌우 여백 — viewport 따라 부드럽게 */
  .rsl-list {
    padding-top: clamp(16px, 3vw, 32px);
    padding-bottom: clamp(24px, 3vw, 40px);
  }
  /* 좌우 여백 — 1280에서 0 시작, viewport 줄수록 점진 증가 (1281+와 점프 없음)
     1280→0 / 1024→~10 / 768→~20 (reverse vw 계산) */
  .rsl-list .list-wrapper {
    padding-left: max(0px, calc((1280px - 100vw) * 0.04));
    padding-right: max(0px, calc((1280px - 100vw) * 0.04));
  }

  /* row min-height 풀기 — 사진 비율 축소에 맞춤 */
  .rsl-list .list-item {
    min-height: 0;
  }

  /* 4컬럼 min-width 풀기 — 전체 비율 축소 (row + thead 동일) */
  .rsl-list .item-photo,
  .rsl-list .item-body,
  .rsl-list .item-prices,
  .rsl-list .item-status,
  .rsl-list .th-photo,
  .rsl-list .th-info,
  .rsl-list .th-price,
  .rsl-list .th-status {
    min-width: 0;
  }

  /* 컬럼 비율 — 뷰포트 따라 prices/status 폭이 함께 축소.
     body는 width:auto + flex:1로 남는 공간 흡수.
     prices: 1280 → 320 (현행 최대), 점차 줄어 1025에서 ≈256
     status: 1280 → 280 (현행 최대), 점차 줄어 1025에서 ≈225 */
  .rsl-list .list-item--molist .item-body {
    width: auto;
    min-width: 0;
    flex: 1 1 auto;
  }
  .rsl-list .th-info {
    width: auto;
    min-width: 0;
    flex: 1 1 auto;
  }
  /* PC base의 256/268과 일치하도록 clamp 상한 조정 — 1280에서 점프 없음 */
  .rsl-list .item-prices,
  .rsl-list .th-price {
    width: clamp(160px, 20vw, 256px);
  }
  .rsl-list .item-status,
  .rsl-list .th-status {
    width: clamp(170px, 21vw, 268px);
  }

  /* 사진 비율 유지 (220:160) — v2_005: width 100%로 grid 컬럼 폭 따라감 (겹침 해결) */
  .rsl-list .item-photo {
    width: 100%;
    height: auto;
    aspect-ratio: 220 / 160;
    overflow: hidden;
  }
  .rsl-list .list-item--molist > .item-photo > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* 컬럼 내부 여백 — viewport 따라 부드럽게 */
  .rsl-list .item-body {
    padding-left: clamp(12px, 1.5vw, 20px);
  }
  .rsl-list .item-prices {
    padding-left: 0;             /* h6: 1281+와 동일 (점프 제거) */
  }
  .rsl-list .price-label {
    margin-right: 0;             /* h7: 1281+와 동일 (점프 제거) */
  }
  /* v2_015: thead padding 룰은 1025↓ 블록으로 이동 (PC base 16px 정렬 복원) */

  /* 가격행 — 폭 풀기 + 한 줄 (잘림 금지) */
  .rsl-list .price-row {
    max-width: none;
  }
  .rsl-list .price-value {
    width: auto;
    min-width: 0;
    flex: 1;
    white-space: nowrap;
    text-align: right;
  }

  /* 매각기일 날짜 한 줄 유지 */
  .rsl-list .status-main {
    white-space: nowrap;
  }

  /* 진행현황 셀 비율 늘림 (1 → 1.3) — "(감정가 대비율)" 줄바꿈 방지 */
  .rsl-list .th-status-col:first-child,
  .rsl-list .status-cell:first-child {
    flex: 1.3 1 0;
  }

  /* v2_016: thead 매각기일 셀 min-width 90 — 본문 "2026-06-15" nowrap 폭과 매칭
     본문 둘째 셀이 콘텐츠 폭으로 자동 확장(86→90)되며 우측으로 시프트되던 어긋남 해소.
     본문(.status-cell:nth-child(2))은 이미 콘텐츠가 폭 보장 → 별도 룰 불필요.
     1025↓에서는 status 컬럼이 좁아져 90이 과함 → 아래 미디어에서 0으로 오버라이드. */
  .rsl-list .th-status-col:nth-child(2) {
    min-width: 90px;
  }

  /* thead status 한 줄 유지 */
  .rsl-list .th-status-title,
  .rsl-list .th-status-sub {
    white-space: nowrap;
  }
/* } -- v2: unwrap 끝 */

/* ============================================
   ≤1024 — Tablet: 컬럼 한 단계 더 축소 + 폰트 보완
   ============================================ */
@media (max-width: 1025px) {
  .rsl-list .rsl-list__main {
    min-height: auto;
  }

  /* 컬럼 폭 — v2: unwrapped 영역의 clamp 곡선과 일치 (1026↔1025 점프 제거)
     photo: 220 (1281+) → 1025 ≈174 → 768 140
     prices: 256 (max) → 1025 205 → 768 160
     status: 268 (max) → 1025 215 → 768 170
     body는 1fr/flex로 남는 공간 흡수 */
  .rsl-list .item-photo,
  .rsl-list .th-photo {
    width: clamp(140px, 17vw, 220px);
  }
  .rsl-list .item-body,
  .rsl-list .th-info {
    width: auto;
    min-width: 0;
    flex: 1 1 auto;
  }
  .rsl-list .item-prices,
  .rsl-list .th-price {
    width: clamp(160px, 20vw, 256px);     /* v2: 25vw,320 → 20vw,256 (unwrapped와 일치) */
  }
  .rsl-list .item-status,
  .rsl-list .th-status {
    width: clamp(170px, 21vw, 268px);     /* v2: 22vw,280 → 21vw,268 (unwrapped와 일치) */
  }

  /* status 컬럼 안 cell 사이 간격 12 → 16 (좁은 폭에서 매각기일이 옆 셀에 붙어 보이는 문제 해소) */
  .rsl-list .item-status,
  .rsl-list .th-status {
    gap: 16px;
  }

  /* row 패딩: 위8 / 우5 / 아래8 / 좌5 */
  .rsl-list .list-item {
    padding: 8px 5px;
  }

  /* v2_015: thead 좌우 padding을 list-item과 통일 (1025↓ 한정)
     PC base의 16/16 정렬은 그대로 두고, 1025↓에서만 5/5로 통일 */
  .rsl-list .rsl-list__thead {
    padding-left: 5px;
    padding-right: 5px;
  }

  /* v2_015: 1025↓에서 thead status 첫 셀(진행현황) 비율을 본문과 동일하게 균등(1)
     본문은 v2_007에서 .status-cell { flex: 1 1 0 } 으로 이미 균등화됨
     thead만 .th-status-col:first-child { flex: 1.3 } (unwrap 영역) 남아 어긋남 → 여기서 오버라이드 */
  .rsl-list .th-status-col:first-child {
    flex: 1 1 0;
  }

  /* v2_016: 1025↓에서 PC 영역의 thead 매각기일 min-width 90 무력화
     status 컬럼 폭이 클램프로 줄어 90px가 과해지는 영역 — 콘텐츠 폭만 차지 */
  .rsl-list .th-status-col:nth-child(2) {
    min-width: 0;
  }

  /* body-head 한 줄 정리 — [사건번호] [아파트] (법원·구분자 숨김) */
  .rsl-list .item-body-head {
    flex-direction: row;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
  }
  .rsl-list .item-body-head .item-meta { order: 1; }
  .rsl-list .item-body-head .item-type { order: 2; }
  .rsl-list .item-court,
  .rsl-list .item-meta .item-divider { display: none; }
  .rsl-list .item-case { white-space: nowrap; }

  /* === ≤1025 5-row 그리드 레이아웃 ===
     컬럼 간 행(y)을 동기화하기 위해 .list-item을 그리드로 재구성.
     중간 컨테이너(.item-body, .item-body-detail, .item-prices)는 display:contents로 풀어서
     자식들이 직접 grid item이 되도록 함.

     행 구성:
       Row 1  — body-head (아파트/사건번호)
       Row 2  — 주소 line 1  | 감정가     | 진행현황 main + 매각기일 main
       Row 3  — 주소 line 2  | 최저가     | 진행현황 sub  + 매각기일 sub
       Row 4  — 면적        | (빈)       | (빈)
       Row 5  — 특수조건    | (빈)       | (빈)
     조회수는 status 안에서 row 2~3 사이 세로 중앙 정렬.
  */
  .rsl-list .list-item--molist {
    position: relative;       /* absolute 사진의 기준점 */
    display: grid;
    /* v2_006: thead와 동일한 단일 clamp 곡선 grid — 1025 이하에서도 thead↔본문 컬럼 정렬 보장
       (auto → clamp로 변경: prices/status가 thead와 같은 컬럼 폭 사용) */
    --rsl-photo-w: clamp(140px, 17vw, 220px);
    grid-template-columns:
      var(--rsl-photo-w)
      1fr
      clamp(160px, 20vw, 256px)
      clamp(170px, 21vw, 268px);    /* v2_010: status 폭 확대 */
    grid-template-rows: auto auto auto auto auto;
    align-items: start;
    column-gap: 0;
    row-gap: 2px;             /* 행 사이 2px */
  }

  /* photo: grid에서 제외(absolute) — 사진 intrinsic 높이가 행 높이를 끌어올리는 문제 차단.
     사진은 좌측 grid 첫 컬럼 영역을 독립 점유, 폭은 위 변수와 동기화. */
  .rsl-list .list-item--molist > .item-photo {
    position: absolute;
    left: 5px;                /* .list-item padding-left과 매칭 */
    top: 8px;                 /* .list-item padding-top과 매칭 */
    bottom: 8px;              /* .list-item padding-bottom과 매칭 */
    width: var(--rsl-photo-w);
    height: auto;
    aspect-ratio: auto;       /* 기본 220/160 override */
    overflow: hidden;
  }
  .rsl-list .list-item--molist > .item-photo > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* body / body-detail: display:contents로 자식들이 직접 grid item이 되도록 */
  .rsl-list .list-item--molist > .item-body { display: contents; }
  .rsl-list .list-item--molist > .item-body > .item-body-detail { display: contents; }

  /* body padding-left이 사라지므로 각 grid item에 직접 부여 */
  .rsl-list .list-item--molist > .item-body > .item-body-head {
    grid-row: 1;
    grid-column: 2;
    padding-left: clamp(12px, 1.5vw, 20px);
  }
  .rsl-list .list-item--molist .item-body-detail > .item-address {
    grid-row: 2 / 4;            /* 주소 = row 2~3 (감정가·최저가와 같은 영역) */
    grid-column: 2;
    padding-left: clamp(12px, 1.5vw, 20px);
    margin: 0;
  }
  .rsl-list .list-item--molist .item-body-detail > .item-spec {
    grid-row: 4;                /* 면적 = row 4 */
    grid-column: 2;
    padding-left: clamp(12px, 1.5vw, 20px);
    font-size: clamp(14px, 1.1vw, 15px);  /* 1280에서 15 → 1025 이하 14 (점프 제거) */
    line-height: 1.5;
  }
  .rsl-list .list-item--molist .item-body-detail > .item-tags {
    grid-row: 5;                /* 특수조건 = row 5 (면적 밑) */
    grid-column: 2 / -1;        /* v2_007: body~status 가로행 전체 (1026+와 통일, 줄바꿈 금지) */
    padding-left: clamp(12px, 1.5vw, 20px);
    padding-right: clamp(12px, 1.5vw, 20px);
    margin: 0;
    display: flex;
    gap: 4px 6px;
    flex-wrap: nowrap;          /* v2_007: 줄바꿈 금지 (798↓에서 발생하던 줄바꿈 제거) */
    overflow: hidden;           /* 폭 초과 시 잘림 */
    min-width: 0;
    justify-content: flex-start;
    align-self: start;
  }
  .rsl-list .list-item--molist .item-body-detail > .item-tags .tag {
    font-size: clamp(14px, 1.1vw, 15px);
    line-height: 1.5;
    white-space: nowrap;        /* v2_007: 각 태그 한 줄 유지 */
    flex: 0 0 auto;             /* v2_007: 태그 자체 폭 유지 */
  }

  /* prices: display:contents로 풀어서 각 price-row를 grid item으로 */
  .rsl-list .list-item--molist > .item-prices { display: contents; }

  .rsl-list .list-item--molist > .item-prices > .price-row:nth-child(1) {
    grid-row: 2;                /* 감정가 = row 2 (주소 line 1과 같은 행) */
    grid-column: 3;
    padding-left: 0;
    padding-right: 0;
    justify-self: center;       /* v2_006: row가 컬럼 가운데 (1026+와 통일) */
    justify-content: center;
  }
  .rsl-list .list-item--molist > .item-prices > .price-row:nth-child(2) {
    grid-row: 3;                /* 최저가 = row 3 (주소 line 2와 같은 행) */
    grid-column: 3;
    padding-left: 0;
    padding-right: 0;
    justify-self: center;
    justify-content: center;
  }
  .rsl-list .list-item--molist > .item-prices > .price-row:nth-child(3) {
    grid-row: 4;                /* 실거래(있을 때만) = row 4 (면적과 같은 가로행) */
    grid-column: 3;
    padding-left: 0;
    padding-right: 0;
    justify-self: center;
    justify-content: center;
  }
  /* PC base의 .price-row { min-height: 27px / max-width: 216px / width: 100% } 해소
     → row가 콘텐츠 폭만 차지, 가격 컬럼 가운데 정렬 */
  .rsl-list .list-item--molist > .item-prices > .price-row {
    min-height: 0;
    max-width: none;
    width: auto;
  }
  /* price-value 의 flex:1 (responsive) 해제 → 값 텍스트 크기에 딱 맞춤 */
  .rsl-list .list-item--molist .price-value {
    flex: 0 0 auto;
    width: auto;
  }
  /* 폰트가 16→14로 줄어드는 동안 line-height도 비례 (1.5 고정) */
  .rsl-list .list-item--molist .price-label,
  .rsl-list .list-item--molist .price-value {
    line-height: 1.5;
  }

  /* status: row 2~3 영역에 위치, 내부 cell의 main/sub를 row 2/3 경계로 분리.
     cell 3(조회수)은 단일 값 → row 2~3 영역 안에서 세로 중앙. */
  .rsl-list .list-item--molist > .item-status {
    grid-row: 2 / 4;
    grid-column: 4;
    align-self: stretch;
  }
  .rsl-list .list-item--molist > .item-status > .status-cell {
    display: flex;
    flex-direction: column;
    justify-content: space-between;   /* main → top(row 2), sub → bottom(row 3) */
    gap: 0;                           /* PC base 2px gap 제거 */
    flex: 1 1 0;                      /* v2_008: PC와 동일 균등 분배 (thead↔본문 컬럼 정렬) */
    align-items: center;              /* v2_008: cell 안 main/sub 가로 중앙 */
  }
  .rsl-list .list-item--molist > .item-status > .status-cell:nth-child(3) {
    justify-content: center;          /* 조회수 단일값 → 세로 중앙 */
  }
  /* status-main/sub — 15→14 점프 제거 (clamp), line-height 비례 */
  .rsl-list .list-item--molist .status-main,
  .rsl-list .list-item--molist .status-sub {
    font-size: clamp(14px, 1.17vw, 15px);
    line-height: 1.5;
  }

  /* thead 헤더 폰트 — 15→14 점프 제거 */
  .rsl-list .th-photo,
  .rsl-list .th-info,
  .rsl-list .th-price,
  .rsl-list .th-status-title {
    font-size: clamp(14px, 1.1vw, 15px);
  }

  /* 가격 폰트 — 16→14 점프 제거 (PC base 16 → 1025 이하 14) */
  .rsl-list .price-label,
  .rsl-list .price-value {
    font-size: clamp(14px, 1.25vw, 16px);
  }
  /* status-main — 15→14 점프 제거 */
  .rsl-list .status-main {
    font-size: clamp(14px, 1.17vw, 15px);
  }

  /* 기존 보완 룰 */
  .rsl-list .total-count {
    font-size: 16px;
    line-height: 1.45;
  }

  .rsl-list .listtmp__sort {
    font-size: clamp(14px, 1.17vw, 15px);
  }

  /* 주소(item-address) — 15→14 점프 제거 */
  .rsl-list .item-address {
    font-size: clamp(14px, 1.1vw, 15px);
    line-height: 1.5;
  }
}

/* ============================================
   ≤900 — landsearch_result 한정: 정렬 버튼 우측 유지
   responnsive-list.css:282 의 width:100%/space-between 오버라이드
   PC base의 margin-left:auto 동작과 동일하게 복원
   ============================================ */
@media (max-width: 900px) {
  .rsl-list .rsl-list__controls.listtmp .listtmp__right {
    justify-content: flex-end;
    width: auto;
  }
}

/* ============================================
   ≤767 — Mobile large: 기존 molist-list.css 카드형 그대로
   ============================================ */
@media (max-width: 767px) {

}

/* ============================================
   ≤480 — Mobile medium: 기존 룰 유지
   ============================================ */
@media (max-width: 480px) {

}

/* ============================================
   ≤375 — Mobile small: 기존 룰 유지
   ============================================ */
@media (max-width: 375px) {

}
