/* =========================================
   장비다 리스트
========================================= */

.jb-list-page {
  padding: 30px 0 60px;
  background: #f5f7fa;
}

/* =========================================
   서비스 메뉴
========================================= */

.jb-service-menu {

  display: flex;
  align-items: center;

  gap: 10px;

  overflow-x: auto;

  margin-bottom: 24px;

  padding-bottom: 4px;

  -webkit-overflow-scrolling: touch;

  scrollbar-width: none;
  -ms-overflow-style: none;

}

.jb-service-menu::-webkit-scrollbar {

  display: none;

}

.jb-service-menu a {

  flex-shrink: 0;

  height: 42px;

  padding:
    0 18px;

  border: 1px solid #e5e7eb;
  border-radius: 10px;

  background: #fff;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  text-decoration: none;

  font-size: 14px;
  font-weight: 800;

  color: #111827;

  transition:
    all .15s ease;

}

.jb-service-menu a:hover {

  border-color: #111827;

}

.jb-service-menu a.active {

  background: #111827;

  border-color: #111827;

  color: #fff;

}



/* =========================================
   레이아웃
========================================= */

.jb-list-layout {
  display: flex;
  align-items: flex-start;

  gap: 24px;
}

/* =========================================
   좌측 사이드
========================================= */

.jb-list-sidebar {
  width: 280px;
  flex-shrink: 0;

  position: sticky;
  top: 170px;

  height: fit-content;
}

.jb-side-box {

  background: #fff;

  border-radius: 18px;

  margin-bottom: 20px;

  border: 1px solid #edf0f4;

  overflow: hidden;

}

.jb-side-box h3 {
  margin: 0 0 18px;
  font-size: 18px;
  font-weight: 800;
  color: #111827;
}

.jb-side-box ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.jb-side-box ul li+li {
  margin-top: 12px;
}

.jb-side-box ul li a {
  display: block;
  font-size: 15px;
  font-weight: 600;
  color: #374151;
  transition: all .2s ease;
}

.jb-side-box ul li a:hover {
  color: #2563eb;
}

/* =========================================
   필터
========================================= */

/* =========================================
   필터 - 엔카형 단일 탐색 패널
========================================= */

.jb-search-head {

  display: flex;
  align-items: flex-start;
  justify-content: space-between;

  padding: 24px 24px 18px;

}

.jb-search-head h3 {
  margin: 0 0 6px;
  font-size: 20px;
  font-weight: 900;
  color: #111827;
}

.jb-search-head p {
  margin: 0;
  font-size: 14px;
  font-weight: 800;
  color: #2563eb;
}

.jb-reset-btn {
  font-size: 13px;
  font-weight: 700;
  color: #6b7280;
}

.jb-reset-btn:hover {
  color: #2563eb;
}

.jb-explorer {

  border-top:
    1px solid rgba(0, 0, 0, .04);

  border-bottom:
    1px solid rgba(0, 0, 0, .04);

}

.jb-explorer-title {

  width: 100%;
  height: 56px;

  padding: 0 24px;

  display: flex;
  align-items: center;
  justify-content: space-between;

  border: 0;
  background: none;

  font-size: 16px;
  font-weight: 900;

  color: #111827;

  cursor: pointer;

}

.jb-explorer-title em {
  font-style: normal;
  color: #9ca3af;
}

.jb-selected-stack {

  display: flex;
  flex-direction: column;

  gap: 10px;

  margin: 0 24px;

  padding: 0 0 14px;

}

.jb-selected-tag {

  width: 100%;

  display: flex;
  align-items: center;
  justify-content: space-between;

  height: 32px;

  padding: 0 12px;

  background: #f3f4f6;

  border-radius: 999px;

  font-size: 13px;
  font-weight: 800;

  color: #111827;

}

.jb-selected-tag b {
  width: 16px;
  height: 16px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  background: #111827;
  color: #fff;

  font-size: 11px;
  line-height: 1;

  cursor: pointer;
}

.jb-explorer-scroll {

  max-height: 320px;

  overflow-y: auto;

  padding:
    10px 14px 18px;

  background:
    linear-gradient(180deg,
      #fbfbfb 0%,
      #fdfdfd 18%,
      #ffffff 100%);

}

.jb-explorer-scroll::-webkit-scrollbar {
  width: 5px;
}

.jb-explorer-scroll::-webkit-scrollbar-thumb {
  background: #9ca3af;
  border-radius: 999px;
}

.jb-explorer-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.jb-explorer-list li+li {
  margin-top: 2px;
}

.jb-explorer-item {

  width: 100%;

  min-height: 38px;

  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 0 10px;

  border: 0;
  border-radius: 8px;

  background: none;

  font-size: 15px;
  font-weight: 700;

  color: #111827;

  cursor: pointer;

  transition: all .15s ease;

}

.jb-explorer-item:hover {

  background:
    rgba(0, 0, 0, .045);

}

.jb-explorer-item em {
  font-style: normal;
  font-size: 12px;
  color: #9ca3af;
}

/* 하단 상세필터 */

.jb-filter-section {

  padding: 10px 20px;

  border-bottom:
    1px solid #eef2f7;

}

.jb-filter-title {

  width: 100%;
  min-height: 54px;

  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 0 4px;

  border: 0;
  background: transparent;

  border-radius: 12px;

  font-size: 15px;
  font-weight: 900;
  color: #111827;

  cursor: pointer;

  transition: all .2s ease;

}

.jb-filter-title:hover {

  background: #f3f4f6;

}

.jb-filter-title.active {

  background: #f3f4f6;

}

.jb-filter-title span {

  color: #9ca3af;

  transition: transform .2s ease;

}

.jb-filter-title.active span {

  transform: rotate(180deg);

}

.jb-filter-title .arrow {

  width: 7px;
  height: 7px;

  border-right: 1.5px solid #9ca3af;
  border-bottom: 1.5px solid #9ca3af;

  transform: rotate(45deg);

  transition: transform .2s ease;

}

.jb-filter-title.active .arrow {

  transform: rotate(-135deg);

}


.jb-filter-body {

  display: none;

  padding-top: 8px;


}

.jb-filter-body select {
  width: 100%;
  height: 44px;

  padding: 0 12px;

  border: 1px solid #dbe2ea;
  border-radius: 10px;

  background: #fff;

  font-size: 14px;
}

.jb-filter-body select:focus {
  outline: none;
  border-color: #2563eb;
}

.jb-filter-body input{

    width:100%;
    height:48px;

    padding:0 14px;

    border:1px solid #dbe1ea;
    border-radius:12px;

    background:#fff;

    font-size:15px;
    color:#111827;

    outline:none;

    transition:.2s;

}

.jb-filter-body input:focus{

    border-color:#2563eb;

}


.jb-year-range {

  display: flex;
  flex-direction: column;

  gap: 12px;

}

.jb-year-row {

  display: flex;
  align-items: center;

  gap: 8px;

}

.jb-year-row select {

  flex: 1;

}

.jb-year-text {

  flex-shrink: 0;

  font-size: 13px;
  font-weight: 700;

  color: #4b5563;

}


.jb-mileage-range {

  display: flex;
  flex-direction: column;

  gap: 12px;

}

.jb-mileage-row {

  display: flex;
  align-items: center;

  gap: 12px;

}

.jb-mileage-row select {

  flex: 1;

}

.jb-mileage-text {

  flex-shrink: 0;

  font-size: 13px;
  font-weight: 700;

  color: #4b5563;

}


/* 가격 */

.jb-price-range {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.jb-price-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.jb-price-row select {
  flex: 1;
  height: 44px;
  padding: 0 14px;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #fff;
  font-size: 14px;
  color: #222;
}

.jb-price-text {
  flex-shrink: 0;
  font-size: 13px;
  color: #666;
}


.jb-direct-price-box {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 6px;
}

.jb-direct-price-row {
  display: flex;
  align-items: stretch;
}

.jb-direct-price-row input {

  width: calc(100% - 64px);

  height: 46px;

  padding: 0 14px;

  border: 1px solid #ddd;

  border-radius: 8px 0 0 8px;

  background: #fff;

  font-size: 14px;

  box-sizing: border-box;
}

.jb-direct-price-row input:focus {
  outline: none;
  border-color: #111827;
  position: relative;
  z-index: 2;
}


.jb-direct-price-row span {

  width: 64px;
  min-width: 64px;

  margin-left: -1px;

  white-space: nowrap;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid #ddd;

  border-radius: 0 8px 8px 0;

  background: #fafafa;

  font-size: 13px;
  font-weight: 600;

  color: #555;

  box-sizing: border-box;
}

.jb-direct-price-btn {
  width: 100%;
  height: 46px;
  border: 0;
  border-radius: 8px;
  background: #222;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}


/* 지역 */

.jb-area-range {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.jb-area-row {
  display: flex;
  align-items: center;
}

.jb-area-row select {
  width: 100%;

  height: 44px;

  padding: 0 14px;

  border: 1px solid #ddd;
  border-radius: 8px;

  background: #fff;

  font-size: 14px;
  color: #222;

  box-sizing: border-box;

  transition: border-color .15s ease;
}

.jb-area-row select:focus {
  outline: none;
  border-color: #111827;
}

/* 모바일 */

@media all and (max-width:768px) {

  .jb-area-row select {
    font-size: 13px;
  }

}


.jb-filter-empty {
  font-size: 13px;
  color: #9ca3af;
}

.jb-check-item {
  display: flex;
  align-items: center;
  gap: 8px;

  min-height: 34px;

  font-size: 14px;
  font-weight: 700;
  color: #374151;
}

.jb-check-item input[type="checkbox"]{

    width:16px;
    height:16px;

    margin:0;

    flex-shrink:0;

    accent-color:#2563eb;

}


/* =========================================
   직접검색
========================================= */

.jb-direct-search {

  padding: 20px;

}

.jb-direct-search label {

  display: block;

  margin-bottom: 12px;

  font-size: 15px;
  font-weight: 900;

  line-height: 1.4;

  color: #111827;

}

.jb-direct-search-box {

  position: relative;

  width: 100%;

}

.jb-direct-search-box input {

  width: 100%;

  height: 46px;

  padding:
    0 48px 0 14px;

  border: 1px solid #dbe2ea;
  border-radius: 12px;

  background: #fff;

  font-size: 14px;
  font-weight: 500;

  color: #111827;

  box-sizing: border-box;

  appearance: none;
  -webkit-appearance: none;

  transition:
    border-color .15s ease,
    box-shadow .15s ease,
    background .15s ease;

}

.jb-direct-search-box input:focus {

  outline: none;

  border-color: #111827;

  box-shadow:
    0 0 0 3px rgba(17, 24, 39, 0.06);

}

.jb-direct-search-box input::placeholder {

  color: #b0b7c3;

  font-weight: 500;

}

.jb-direct-search-btn {

  position: absolute;

  top: 50%;
  right: 14px;

  transform: translateY(-50%);

  width: 20px;
  height: 20px;

  padding: 0;
  margin: 0;

  border: 0;

  background: transparent;

  color: #111827;

  appearance: none;
  -webkit-appearance: none;

  display: flex;
  align-items: center;
  justify-content: center;

  cursor: pointer;

}

.jb-direct-search-btn svg {

  width: 18px;
  height: 18px;

  display: block;

  stroke-width: 2.2;

}



/* =========================================
   우측 컨텐츠
========================================= */

.jb-list-content {
  flex: 1;
  min-width: 0;
}

/* =========================================
   섹션
========================================= */

.jb-list-section {
  margin-bottom: 50px;
}

.jb-section-title {
  margin-bottom: 18px;
  font-size: 24px;
  font-weight: 800;
  color: #111827;
}

/* =========================================
   카드 그리드
========================================= */

.jb-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* =========================================
   카드
========================================= */

.jb-card {
  display: block;
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid #edf0f4;
  transition: all .2s ease;
}

.jb-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}

/* =========================================
   썸네일
========================================= */

.jb-card-thumb {
  position: relative;
  aspect-ratio: 4 / 3;
  background: #f3f4f6;
  overflow: hidden;
}

.jb-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* =========================================
   카드 내용
========================================= */

.jb-card-body {
  padding: 18px;
}

.jb-card-title{

    margin-bottom:8px;

    font-size:18px;
    font-weight:800;
    line-height:1.45;

    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;

    overflow:hidden;
}

.jb-card-meta {
  margin-bottom: 14px;
  font-size: 14px;
  color: #6b7280;
}

.jb-card-category{
  margin-bottom:12px;

  font-size:13px;
  color:#6b7280;
}

.jb-card-location{

    margin-bottom:12px;

    font-size:13px;
    font-weight:500;

    color:#6b7280;
}


.jb-card-price {
  font-size: 22px;
  font-weight: 800;
  color: #2563eb;
}

/* =========================================
   추천매물 강조
========================================= */

.jb-card-grid.best .jb-card {
  border: 2px solid #2563eb;
}

/* =========================================
   우대매물
========================================= */

.jb-card-grid.premium .jb-card {
  background: #fcfcfd;
}

/* =========================================
   반응형
========================================= */

@media (max-width: 1280px) {

  .jb-card-grid {
    grid-template-columns: repeat(2, 1fr);
  }

}

@media (max-width: 1024px) {

  .jb-list-layout {
    flex-direction: column;
  }

  .jb-list-sidebar {
    width: 100%;
  }

}

@media (max-width: 768px) {

  .jb-list-page {
    padding: 20px 0 40px;
  }

  .jb-card-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .jb-section-title {
    font-size: 20px;
  }

  .jb-side-box {
    padding: 18px;
    border-radius: 14px;
  }

  .jb-card-body {
    padding: 16px;
  }

  .jb-card-title {
    font-size: 16px;
  }

  .jb-card-price {
    font-size: 20px;
  }

  .jb-list-sidebar {
    position: static;
    width: 100%;
  }

}


/* =========================================
   일반매물 리스트
========================================= */

.jb-equipment-list{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.jb-equipment-item{
    display:flex;
    gap:20px;
    padding:20px;
    border:1px solid #e5e7eb;
    border-radius:12px;
    background:#fff;
    transition:.2s;
    text-decoration:none;
}

.jb-equipment-item:hover{
    border-color:#2563eb;
}

.jb-equipment-thumb{
    width:260px;
    flex-shrink:0;
}

.jb-equipment-thumb img{
    width:100%;
    height:180px;
    object-fit:cover;
    border-radius:10px;
    display:block;
}

.jb-equipment-info{
    flex:1;
    min-width:0;
}

.jb-equipment-info h3{
    font-size:24px;
    font-weight:700;
    color:#111;
    margin:0 0 12px;
}

/* 가격위치 조정 */ 
.jb-equipment-top{

    display:flex;
    justify-content:space-between;
    align-items:center;

    gap:20px;
    margin-bottom:15px;

}

.jb-equipment-top h3{

    margin:0;
    flex:1;

    font-size:30px;
    font-weight:800;

}

.jb-equipment-price{

    flex-shrink:0;

    font-size:42px;
    font-weight:900;

    color:#0d6efd;

    white-space:nowrap;

    text-align:right;

}


.jb-equipment-meta{
    font-size:15px;
    color:#666;
    margin-bottom:8px;
}

.jb-equipment-location{
    font-size:15px;
    color:#888;
    margin-bottom:8px;
}

.jb-equipment-category{
    font-size:15px;
    color:#444;
    margin-bottom:15px;
}


/* =========================================
   모바일
========================================= */

@media (max-width: 768px){

    .jb-equipment-item{
        flex-direction:column;
        padding:12px;
        gap:12px;
    }

    .jb-equipment-thumb{
        width:100%;
    }

    .jb-equipment-thumb img{
        width:100%;
        height:220px;
    }

    .jb-equipment-info h3{
        font-size:18px;
        margin-bottom:8px;
    }

    .jb-equipment-meta,
    .jb-equipment-location,
    .jb-equipment-category{
        font-size:13px;
        margin-bottom:6px;
    }

    .jb-equipment-price{
        font-size:24px;
    }

}


/* 추천매물, 우대매물 노티 */ 
.jb-empty-ad{
    padding:25px;
    margin-bottom:40px;
    background:#fff;
    border:1px dashed #ddd;
    border-radius:12px;
    text-align:center;

    
}

.jb-empty-ad strong{
    display:block;
    font-size:18px;
    margin-bottom:10px;
}

.jb-empty-ad p{
    color:#666;
    margin-bottom:15px;
}

.jb-empty-btn{
    display:inline-block;
    padding:12px 20px;
    background:#ff6b00;
    color:#fff;
    border-radius:8px;
    font-weight:600;
}


.jb-empty-normal{
    padding:80px 20px;
    text-align:center;
    background:#fff;
    border:1px solid #eee;
    border-radius:12px;
    color:#666;
    font-size:16px;
    font-weight:500;
}


/* 페이징처리 */ 
.jb-pagination {
    display: flex;
    justify-content: center;
    gap: 8px;

    margin-top: 40px;
}

.jb-pagination a {
    display: flex;
    align-items: center;
    justify-content: center;

    min-width: 42px;
    height: 42px;

    padding: 0 14px;

    border: 1px solid #e5e7eb;
    border-radius: 10px;

    background: #fff;

    font-size: 14px;
    font-weight: 600;

    transition: all .2s ease;
}

.jb-pagination a:hover {
    border-color: #2563eb;
    color: #2563eb;
}

.jb-pagination a.active {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
}

/* 가격 우측으로 */ 
.jb-equipment-price-side{

    width:180px;

    flex-shrink:0;

    display:flex;
    justify-content:flex-end;
    align-items:flex-start;

    font-size:34px;
    font-weight:900;

    color:#0d6efd;

    text-align:right;

}


.jb-equipment-thumb{
    position:relative;
}

.jb-part-badge{
    position:absolute;
    top:8px;
    left:8px;
    z-index:5;

    height:24px;
    line-height:24px;

    padding:0 10px;

    border-radius:20px;

    background:#ef4444;

    color:#fff;

    font-size:12px;
    font-weight:700;
}



/* =========================================
   부품구분 탭
========================================= */

.jb-part-type-tab{

    display:flex;

    padding:16px 20px;

    gap:8px;

    border-top:1px solid rgba(0,0,0,.04);
    border-bottom:1px solid rgba(0,0,0,.04);

    background:#fafbfc;

}

.jb-part-type-btn{

    flex:1;

    height:42px;

    border:1px solid #dbe2ea;
    border-radius:10px;

    background:#fff;

    font-size:14px;
    font-weight:800;

    color:#6b7280;

    cursor:pointer;

    transition:.15s;

}

.jb-part-type-btn:hover{

    border-color:#2563eb;

    color:#2563eb;

}

.jb-part-type-btn.active{

    background:#2563eb;

    border-color:#2563eb;

    color:#fff;

}

@media (max-width:768px){

    .jb-part-type-tab{

        padding:14px;

    }

    .jb-part-type-btn{

        height:40px;

        font-size:13px;

    }

}

/* 검색 가이드 */ 
.jb-direct-search label small{
    font-size:11px;
    color:#999;
    font-weight:400;
    margin-left:4px;
}