/* 场地预约列表 V2 —— 蓝湖设计稿（参考 lanhu_huiyishiyuyueliebiao） */

.place-list-v2 {
  background: linear-gradient(180deg, #E8F2FE 0%, #FFFFFF 100%);
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
}
.place-list-v2 .container-v2 { max-width: 1200px; margin: 0 auto; padding: 0; box-sizing: border-box; }

/* Hero —— 1920×460，内容居左 (left:250 ≈ 12.5%) */
.place-list-v2 .hero {
  position: relative;
  height: 460px;
  background: url(../../img/point-line/place-apply-v2/hero-bg.png) no-repeat center center;
  background-size: cover;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 0 96px 250px;
  box-sizing: border-box;
  overflow: hidden;
}
.place-list-v2 .hero h1 {
  font-size: 60px;
  font-weight: 700;
  color: #222426;
  margin: 0 0 20px;
  line-height: 1.2;
  letter-spacing: 0;
}
.place-list-v2 .hero p {
  font-size: 28px;
  font-weight: 500;
  color: #333333;
  margin: 0;
  line-height: 1.4;
}

/* 筛选条 —— 900×60 半透明白底 + 16px 圆角 + 蓝色阴影,叠在 hero/main 交界 */
.place-list-v2 .filter-bar {
  display: flex;
  gap: 20px;
  align-items: center;
  width: 900px;
  margin: -30px auto 0;
  height: 60px;
  background: rgba(255, 255, 255, 0.82);
  border-radius: 16px;
  box-shadow: 0 10px 20px rgba(27, 103, 249, 0.1);
  padding: 0 12px 0 20px;
  box-sizing: border-box;
  position: relative;
  z-index: 2;
}
.place-list-v2 .filter-bar .input-wrap {
  flex: 1;
  height: 48px;
  border: 1px solid #DDDDDD;
  border-radius: 4px;
  background: #FFFFFF;
  display: flex;
  align-items: center;
  padding: 0;
  box-sizing: border-box;
  overflow: hidden;
}
.place-list-v2 .filter-bar .type-select {
  flex: 0 0 auto;
  height: 100%;
  padding: 0 28px 0 16px;
  border: none;
  border-right: 1px solid #E5E7EB;
  background-color: transparent;
  font-size: 18px;
  font-weight: 500;
  color: #000000;
  font-family: inherit;
  cursor: pointer;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' fill='%23000000'><path d='M5 7L1 3h8z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 6px center;
  background-size: 10px 10px;
}
.place-list-v2 .filter-bar .type-select option { color: #000000; }
.place-list-v2 .filter-bar input {
  flex: 1;
  height: 100%;
  border: none;
  outline: none;
  font-size: 18px;
  color: #333333;
  background: transparent;
  padding: 0 16px;
  min-width: 0;
}
.place-list-v2 .filter-bar input::placeholder { color: #999999; font-size: 18px; }
.place-list-v2 .filter-bar #searchBtn {
  flex: 0 0 120px;
  height: 52px;
  background: linear-gradient(90deg, #1A5FF8 0%, #25B8FD 100%);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font-size: 18px;
  font-weight: 500;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.place-list-v2 .filter-bar #searchBtn:hover { background: linear-gradient(90deg, #0066D6 0%, #1AA0E0 100%); }
.place-list-v2 .filter-bar #searchBtn .search-icon {
  width: 20px; height: 20px;
  display: inline-block;
  background: url(../../img/point-line/place-apply-v2/icon-search.png) center/contain no-repeat;
}

/* 分类 Tab —— 藍湖: group_2 880×52, gap 16, 固定宽度 120/100/160/180/140/100 */
.place-list-v2 .category-tabs {
  display: flex;
  gap: 16px;
  align-items: center;
  margin: 32px auto 0;
  width: 880px;
  padding: 0;
  border: none;
}
.place-list-v2 .category-tabs .tab {
  font-size: 20px;
  font-weight: 500;
  color: #3F5170;
  cursor: pointer;
  padding: 0;
  border: none;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 52px;
  line-height: 52px;
  background: #FFFFFF;
  border-radius: 8px;
  box-sizing: border-box;
}
.place-list-v2 .category-tabs .tab[data-value=""] { width: 120px; }
.place-list-v2 .category-tabs .tab[data-value="1"] { width: 100px; }
.place-list-v2 .category-tabs .tab[data-value="2"] { width: 160px; }
.place-list-v2 .category-tabs .tab[data-value="3"] { width: 180px; }
.place-list-v2 .category-tabs .tab[data-value="4"] { width: 140px; }
.place-list-v2 .category-tabs .tab[data-value="5"] { width: 100px; }
.place-list-v2 .category-tabs .tab:hover { color: #1A5FF8; }
.place-list-v2 .category-tabs .tab.active {
  color: #FFFFFF;
  background: linear-gradient(90deg, #1A5FF8 0%, #25B8FD 100%);
}

/* 卡片网格 —— 3 列,gap 24,卡片 16px 圆角 + 蓝色阴影 */
.place-list-v2 .place-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  padding: 32px 0 64px;
}
.place-list-v2 .place-card {
  background: #FFFFFF;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 20px rgba(27, 103, 249, 0.1);
  display: flex;
  flex-direction: column;
  width: 100%;
}
.place-list-v2 .card-thumb {
  display: block;
  width: 100%;
  height: 240px;
  overflow: hidden;
  background: #F3F4F6;
  position: relative;
}
.place-list-v2 .card-carousel {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.place-list-v2 .carousel-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0;
  transition: opacity 0.6s ease;
}
.place-list-v2 .carousel-slide.active {
  opacity: 1;
}
.place-list-v2 .card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* 可预约徽标 -- 64×30 绿底 #22C55E 8px 圆角 白字 16px Bold */
.place-list-v2 .card-status-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  height: 30px;
  padding: 0 12px;
  background: #22C55E;
  color: #FFFFFF;
  font-size: 16px;
  font-weight: 700;
  line-height: 30px;
  border-radius: 8px;
  letter-spacing: 0;
}
.place-list-v2 .card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.place-list-v2 .card-body {
  padding: 24px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
  box-sizing: border-box;
}

/* 卡片标题行 —— 标题 26px Bold #000 + 类型标签 14px 彩色底 */
.place-list-v2 .card-title-row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.place-list-v2 .card-title {
  font-size: 26px;
  font-weight: 700;
  color: #000000;
  margin: 0;
  line-height: 1.2;
}
.place-list-v2 .card-type {
  font-size: 14px;
  font-weight: 500;
  padding: 4px 10px;
  border-radius: 4px;
  line-height: 1.2;
}
.place-list-v2 .card-type.type-1,
.place-list-v2 .card-type.type-2,
.place-list-v2 .card-type.type-3 {
  color: #007AFF;
  background: rgba(25, 77, 248, 0.1);
}
.place-list-v2 .card-type.type-4 {
  color: #05B1EA;
  background: rgba(5, 177, 234, 0.1);
}
.place-list-v2 .card-type.type-5 {
  color: #FB9F49;
  background: rgba(251, 159, 73, 0.2);
}

/* 地址行 —— 16px Bold #3F5170 + 定位图标 */
.place-list-v2 .card-location {
  font-size: 16px;
  font-weight: 700;
  color: #3F5170;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  line-height: 1.4;
}
.place-list-v2 .card-location .loc-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  display: inline-block;
  background: url(../../img/point-line/place-apply-v2/icon-location.png) center/contain no-repeat;
}

/* 元数据行 —— 容纳量/时间，16px，每项前带图标 */
.place-list-v2 .card-meta {
  font-size: 16px;
  font-weight: 700;
  color: #3F5170;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 24px;
  line-height: 1.4;
}
.place-list-v2 .card-meta .meta-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.place-list-v2 .card-meta .meta-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  display: inline-block;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.place-list-v2 .card-meta .meta-icon.icon-user {
  background-image: url(../../img/point-line/place-apply-v2/icon-user.png);
}
.place-list-v2 .card-meta .meta-icon.icon-time {
  background-image: url(../../img/point-line/place-apply-v2/icon-time.png);
}

/* 描述 —— 16px Medium #586883，2 行截断 */
.place-list-v2 .card-desc {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  color: #586883;
  margin: 0;
  max-height: 48px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

/* 价格 + 按钮行 —— 单行布局 */
.place-list-v2 .card-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 8px;
  gap: 16px;
}
.place-list-v2 .card-price {
  font-size: 20px;
  font-weight: 500;
  color: #007AFF;
  margin: 0;
  line-height: 1.4;
}
.place-list-v2 .btn-group { display: flex; gap: 12px; }
.place-list-v2 .btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 112px;
  height: 40px;
  background: linear-gradient(90deg, #1A5FF8 0%, #25B8FD 100%);
  color: #FFFFFF;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  border: none;
  cursor: pointer;
}
.place-list-v2 .btn-primary:hover { background: linear-gradient(90deg, #0066D6 0%, #1AA0E0 100%); }
.place-list-v2 .btn-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 112px;
  height: 40px;
  background: #FFFFFF;
  color: #3F5170;
  border: 1px solid #DDDDDD;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  box-sizing: border-box;
}
.place-list-v2 .btn-link:hover { background: #F5F7FA; }
/* 按钮箭头 -- 右指箭头 PNG */
.place-list-v2 .btn-arrow {
  display: inline-block;
  width: 24px;
  height: 24px;
  background: url(../../img/point-line/place-apply-v2/icon-arrow-primary.png) center/contain no-repeat;
}
.place-list-v2 .btn-link .btn-arrow {
  background-image: url(../../img/point-line/place-apply-v2/icon-arrow-link.png);
}

/* 加载更多 */
.place-list-v2 .load-more-wrap {
  text-align: center;
  padding: 0 0 64px;
}
.place-list-v2 .load-more-wrap.hidden { display: none; }
.place-list-v2 #loadMoreBtn {
  height: 48px;
  padding: 0 40px;
  background: #FFFFFF;
  color: #007AFF;
  border: 1px solid #007AFF;
  border-radius: 4px;
  font-size: 16px;
  cursor: pointer;
}
.place-list-v2 #loadMoreBtn:disabled {
  color: #9CA3AF;
  border-color: #E5E7EB;
  cursor: not-allowed;
}

/* 空状态 */
.place-list-v2 .empty-hint {
  text-align: center;
  padding: 64px 0;
  color: #9CA3AF;
}
.place-list-v2 .empty-hint .img-hint { width: 120px; height: 120px; }
.place-list-v2 .empty-hint .txt-desc { margin-top: 16px; font-size: 14px; }

/* 响应式 */
@media (max-width: 1200px) {
  .place-list-v2 .hero { padding-left: 80px; }
}
@media (max-width: 992px) {
  .place-list-v2 .place-grid { grid-template-columns: repeat(2, 1fr); }
  .place-list-v2 .hero h1 { font-size: 44px; }
  .place-list-v2 .hero p { font-size: 22px; }
  .place-list-v2 .filter-bar { width: 100%; }
  .place-list-v2 .filter-bar .input-wrap { flex: 1; }
  .place-list-v2 .filter-bar #searchBtn { flex: 0 0 120px; }
  .place-list-v2 .category-tabs { width: 100%; gap: 32px; overflow-x: auto; }
}
@media (max-width: 768px) {
  .place-list-v2 .place-grid { grid-template-columns: 1fr; }
  .place-list-v2 .hero { height: 320px; padding: 0 24px 56px; }
  .place-list-v2 .hero h1 { font-size: 32px; }
  .place-list-v2 .hero p { font-size: 18px; }
  .place-list-v2 .filter-bar { flex-direction: column; height: auto; gap: 8px; }
  .place-list-v2 .filter-bar .input-wrap { flex: none; width: 100%; border-radius: 4px; }
  .place-list-v2 .filter-bar #searchBtn { flex: none; width: 100%; border-radius: 4px; }
}
