﻿/* css_3a554c76.css */
.base-list{width:100%;position:relative;-webkit-transform:height .5s ease;transform:height .5s ease}

.base-list .card .tags{padding:20px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:12px}

.base-list .card .tags .tag-active,.base-list .card .tags .tag:hover{color:#fff!important;background-color:#e60012!important;font-weight:600}

.base-list .card .tags .tag{cursor:pointer;padding:6px 12px;font-weight:400;font-size:14px;color:#e60012;background-color:#ffeeec;border:1px solid #ff5254;border-radius:6px;-webkit-transition:background-color .2s,color .2s;transition:background-color .2s,color .2s;white-space:nowrap;display:-webkit-box;display:-moz-box;box-orient:vertical;-webkit-box-orient:vertical;line-clamp:1;-webkit-line-clamp:1;overflow:hidden;text-overflow:ellipsis;word-break:break-word}

.base-list .card .base-list-scrollbar .el-scrollbar__wrap{-webkit-transition:height .5s ease;transition:height .5s ease;overflow-x:hidden}

.base-list .card .list{margin:0 20px}

.base-list .card .list .list-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:16px;padding:20px 0 19px 0;border-bottom:1px dashed #dcdfe6;cursor:pointer}

.base-list .card .list .list-item:first-child{padding-top:0}

.base-list .card .list .list-item:hover .left .el-image{-webkit-transform:scale(1.03);transform:scale(1.03)}

.base-list .card .list .list-item:hover .right .title{color:#e60012}

.base-list .card .list .list-item .left{position:relative;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;overflow:hidden;border-radius:6px;width:150px;height:auto;aspect-ratio:16/9}

.base-list .card .list .list-item .left .el-image{width:100%;height:100%;border-radius:6px;-o-object-fit:cover;object-fit:cover;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}

.base-list .card .list .list-item .left .index{width:16px;height:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;background-color:#fdb022;color:#fff;font-size:12px;border-radius:6px 0 6px 0;position:absolute;left:0;top:0;z-index:5}

.base-list .card .list .list-item .right .title{font-size:16px;font-weight:600;color:#182230;line-height:24px;line-clamp:1;-webkit-line-clamp:1}

.base-list .card .list .list-item .right .desc,.base-list .card .list .list-item .right .title{display:-webkit-box;display:-moz-box;box-orient:vertical;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word}

.base-list .card .list .list-item .right .desc{margin:4px 0;font-size:14px;color:#667085;line-height:20px;line-clamp:2;-webkit-line-clamp:2}

.base-list .card .list .list-item .right .address{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;font-size:12px;color:#c67307}

.base-list .card .list .list-item .right .address .icon{margin-right:4px;width:14px;height:14px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}

.base-list .card .list .list-item .right .address .text{display:-webkit-box;display:-moz-box;box-orient:vertical;-webkit-box-orient:vertical;line-clamp:1;-webkit-line-clamp:1;overflow:hidden;text-overflow:ellipsis;word-break:break-word}

.base-list .card .bottom-tip{margin-top:4px;text-align:center;color:#98a2b3;font-size:14px;padding:3px 0;font-weight:400;margin-bottom:15px}

.study-line{width:100%}

.study-line .line-list{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:20px 16px}

.study-line .line-list .line{background-size:cover;background-repeat:no-repeat;border-radius:8px;min-height:96px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:0 16px;cursor:pointer}

.study-line .line-list .line .name{font-size:18px;line-height:28px;font-weight:500;font-style:normal}

.study-line .line-list .line .name-text{-webkit-transform:translateY(0);transform:translateY(0)}

.study-line .line-list .line .icon,.study-line .line-list .line .name-text{-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease}

.study-line .line-list .line .icon{display:none;font-size:18px;-webkit-transform:translateY(2px);transform:translateY(2px)}

.study-line .line-list .line:hover .name-text{-webkit-transform:translateY(-2px);transform:translateY(-2px)}

.study-line .line-list .line:hover .icon{display:block;-webkit-transform:translateY(0);transform:translateY(0)}

.study-line .button{cursor:pointer;margin-top:20px;width:100%;height:56px;-webkit-box-sizing:border-box;box-sizing:border-box;background:url(../img/button-bg.3ca5933e.png) no-repeat;background-size:100% 100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative}

.study-line .button:hover:after{-webkit-transform:scale(1.03);transform:scale(1.03)}

.study-line .button:after{content:"";display:block;width:81px;height:62px;background:url(../img/AIProfilePicture.dc352042.png) no-repeat;background-size:cover;position:absolute;right:14px;top:-8px;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease}

.study-line .button .title{margin-left:calc(50% - 98px)}

.hot-base{width:100%;min-height:calc(100vh - 620px);-webkit-transition:all .5s;transition:all .5s}

.hot-base .list-header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:10px;background-color:#f5f7fa;border-bottom:1px solid #ebeef5}

.hot-base .list-header span{color:#667085;font-size:14px;font-weight:600;text-align:left;padding:0 12px;-webkit-box-sizing:border-box;box-sizing:border-box}

.hot-base .list-header span:first-child{width:58px;padding:unset;text-align:center}

.hot-base .list-header span:last-child{width:87px}

.hot-base .list-content{margin:0 auto;overflow:hidden;height:calc(100vh - 678px)}

.hot-base .list-content .list-item{-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #ebeef5;height:48px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:8px;cursor:pointer}

.hot-base .list-content .list-item .icon{width:18px}

.hot-base .list-content .list-item span{color:#182230;font-size:14px;font-weight:400;text-align:left;padding:0 12px;-webkit-box-sizing:border-box;box-sizing:border-box}

.hot-base .list-content .list-item span:first-child{width:58px;padding:unset;text-align:center}

.hot-base .list-content .list-item span:last-child{width:87px}

.hot-base .list-content .list-item .ellipsis-one{width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.map-index{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:24px;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;position:relative;overflow:hidden}

.map-index .left{width:24%;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s}

.map-index .center{-webkit-transition:width .5s ease;transition:width .5s ease;-webkit-box-flex:2;-webkit-flex:2;-ms-flex:2;flex:2;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;margin:0 auto;margin-top:16px}

.map-index .center .search{margin:0 auto;text-align:center;margin-bottom:15px}

.map-index .center .search .title{color:#182230;font-size:30px;font-style:normal;font-weight:600;line-height:36px;margin-bottom:24px}

.map-index .center .search .keywords{color:#475467;margin:0 auto;width:620px;margin-top:16px;font-size:14px;font-weight:400;line-height:20px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;gap:16px}

.map-index .center .search .keywords .icon{width:16px;height:15px;margin-right:-10px}

.map-index .center .search .keywords .word{cursor:pointer;display:-webkit-box;display:-moz-box;box-orient:vertical;-webkit-box-orient:vertical;line-clamp:1;-webkit-line-clamp:1;overflow:hidden;text-overflow:ellipsis;word-break:break-word}

.map-index .center .search .keywords .word:hover{color:#e60012}

.map-index .right{width:24%;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;display:grid;grid-template-rows:1fr auto;gap:32px;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s}

.map-index .btn{z-index:100;position:absolute;left:25%;top:0;font-size:14px;font-weight:400;border-radius:6px;border:1px solid #e4e7ed;background:#fff;padding:6px 12px;color:#475467;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;cursor:pointer;-webkit-transition:all .5s;transition:all .5s}

.map-index .btn .icon{width:16px;height:16px;color:#475467;margin-right:4px;-webkit-transform:rotate(0);transform:rotate(0);-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s}

.hidden .left{position:absolute;-webkit-transform:translateX(-490px);transform:translateX(-490px)}

.hidden .center .total{width:55vw}

.hidden .right{position:absolute;-webkit-transform:translateX(490px);transform:translateX(490px)}

.hidden .btn{left:0}

.hidden .btn .icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}

/* css_59adbb9a.css */
.base-map{width:100%}

.base-map .map-box{position:relative;width:100%;height:100%}

.base-map .map-box .map{width:100%;height:100%;margin:0 auto;filter:drop-shadow(0 8px 16px rgba(180,120,10,0.30));}

.base-map .map-box .map,.base-map .map-box .play-btn{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}

.base-map .map-box .play-btn{position:absolute;right:36px;bottom:110px;width:36px;height:36px;border-radius:4px;background:#fff;-webkit-box-shadow:0 0 12px 0 rgba(0,0,0,.12);box-shadow:0 0 12px 0 rgba(0,0,0,.12);-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;cursor:pointer}

.base-map .map-box .play-btn svg{width:20px}

.base-map .map-box .zoom-block{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:36px;height:100px;border-radius:4px;background:#fff;-webkit-box-shadow:0 0 12px 0 rgba(0,0,0,.12);box-shadow:0 0 12px 0 rgba(0,0,0,.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;gap:12px;position:absolute;right:36px;bottom:0}

.base-map .map-box .zoom-block i{font-size:20px;color:#606266;cursor:pointer}

.base-map .map-box .thumbnail{position:absolute;right:100px;bottom:-6px}

.base-map .map-box .thumbnail>img{width:150px;height:auto}

 .custom-tooltip-style{min-width:131px;width:auto;min-height:66px;padding-right:16px;background:url(../img/tooltip.6be2c3f9.webp) no-repeat 50%;background-size:100% 100%;color:#fff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-top:7px;padding-left:22px}

 .custom-tooltip-style .name{color:#bf0000;font-size:14px;font-weight:500;white-space:nowrap;}

 .custom-tooltip-style .count{color:#101824;font-size:12px;font-weight:400}

.map-total .total{-webkit-box-pack:space-evenly;-webkit-justify-content:space-evenly;-ms-flex-pack:space-evenly;justify-content:space-evenly;margin:0 auto;margin-top:4vh;-webkit-transition:all .5s;transition:all .5s}

.map-total .total .item,.map-total .total{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}

.map-total .total .item>img{width:54px;height:54px;margin-right:12px}

.map-total .total .item .num{color:#182230;font-size:24px;font-style:normal;font-weight:600;line-height:36px}

.map-total .total .item .text{color:#667085;font-size:14px;font-style:normal;font-weight:400;line-height:20px}

.map-total .tip{margin-top:3vh;color:#98a2b3;font-size:12px;font-weight:400;text-align:center}

/* css_homepage_AI.css */
.ai-input{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:relative}

.ai-input .el-input__inner{width:100%!important;border-radius:8px;-webkit-box-shadow:none;box-shadow:none;background-clip:padding-box,border-box;background-image:-webkit-gradient(linear,left top,right top,from(#fff),to(#fff)),-webkit-gradient(linear,left top,right top,from(#feb64a),color-stop(#fe624a),to(#e60012));background-image:-webkit-linear-gradient(left,#fff,#fff),-webkit-linear-gradient(left,#feb64a,#fe624a,#e60012);background-image:linear-gradient(90deg,#fff,#fff),linear-gradient(90deg,#feb64a,#fe624a,#e60012);background-origin:padding-box,border-box;border:1px solid transparent}

.ai-input .el-input__suffix{width:-webkit-max-content;width:-moz-max-content;width:max-content;right:2px}

.ai-input .el-input__suffix,.ai-input .el-input__suffix .el-input__suffix-inner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}

.ai-input .el-input__suffix .el-input__suffix-inner{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;padding-right:2px}

.ai-input.default{width:460px;height:40px}

.ai-input.medium{width:620px;height:52px}

.ai-input.medium input{height:52px;line-height:52px;font-size:16px}

.ai-input.medium input::-webkit-input-placeholder{font-size:16px}

.ai-input.medium input::-moz-placeholder{font-size:16px}

.ai-input.medium input::-ms-input-placeholder{font-size:16px}

.ai-input.medium input::placeholder{font-size:16px}

.ai-input.large{width:720px;height:52px}

.ai-button{position:relative;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;padding:0 20px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;border-radius:6px;background:-webkit-linear-gradient(315deg,#feb64a,#fe624a 32%,#e60012);background:linear-gradient(135deg,#feb64a,#fe624a 32%,#e60012);font-size:14px;font-weight:400;cursor:pointer}

.ai-button span{font-family:PingFang SC;color:#fff}

.ai-button:hover{opacity:.8}

.ai-button.default{height:36px}

.ai-button.large{height:40px}

.ai-button.larger{height:44px;font-size:16px!important}

.ai-button.small{height:32px;padding:0 16px}

/* 地图省份下钻控制栏（在 .left 列顶部） */
.map-ctrl-bar{display:flex;align-items:center;gap:10px;padding:0 0 10px 0;margin-bottom:4px}
.map-ctrl-bar .prov-select{width:150px}
.map-ctrl-bar .ctrl-back{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 12px;border-radius:6px;border:1px solid #ffc4c4;background:#fff5f5;color:#e60012;font-size:13px;cursor:pointer;white-space:nowrap;transition:all .2s;flex-shrink:0}
.map-ctrl-bar .ctrl-back:hover{background:#fde8e8;border-color:#e60012}
.map-ctrl-bar .ctrl-back .el-icon-back{font-size:14px}
.map-ctrl-bar .prov-loading{color:#98a2b3;font-size:13px;white-space:nowrap}
.fade-enter-active,.fade-leave-active{transition:opacity .25s}
.fade-enter,.fade-leave-to{opacity:0}


/* ============================================================
   新首页布局（map-page 重设计）
   ============================================================ */

/* 首页背景图容器 */
.index-bg {
  background: url('../img/szjxbj.png') center top / 100% 100% no-repeat;
  min-height: 100vh;
}
.map-page { display: flex; flex-direction: column; gap: 20px; }

/* ---- 智能检索区 ---- */
.srch-section {
  background: url('../img/szjx1.png') center / cover no-repeat;
  border-radius: 10px;
  box-shadow: 0 4px 20px rgba(248,220,205,.8);
  padding: 28px 36px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 160px;
  overflow: hidden;
}
.srch-content { flex: 1; min-width: 0; }
.srch-title { color: #640b01; font-size: 24px; font-weight: 700; line-height: 1.3; margin-bottom: 6px; }
.srch-sub { color: #667085; font-size: 14px; margin-bottom: 16px; }
.srch-input { margin-bottom: 12px; max-width: 580px; }
.srch-content .ai-input.medium { width: 100% !important; }
.srch-content .ai-input.medium .el-input__inner::placeholder { color: #593531; }
.srch-content .ai-input.medium .el-input__inner::-webkit-input-placeholder { color: #593531; }
.srch-tags { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.srch-hot-icon { width: 16px; height: 16px; color: #e60012; flex-shrink: 0; }
.srch-tag-label { color: #593531; font-size: 13px; white-space: nowrap; }
.srch-tag {
  color: #593531;
  font-size: 13px;
  cursor: pointer;
  padding: 2px 10px;
  border-radius: 20px;
  border: 1px solid #f8dccd;
  transition: all .2s;
  white-space: nowrap;
  background: #f9fafb;
}
.srch-tag:hover { color: #e60012; border-color: #ffc4c4; background: #fff5f5; }

/* 搜索区右侧插图区域 */
.srch-illust {
  display: none;
  width: 200px;
  height: 140px;
  flex-shrink: 0;
  border-radius: 10px;
  background: linear-gradient(135deg, #fff5f0 0%, #fde8e8 60%, #fff0e0 100%);
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
/* 大字水印装饰 */
.srch-illust::before {
  content: '思政地图';
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 52px;
  font-weight: 900;
  color: rgba(230,0,18,.07);
  white-space: nowrap;
  letter-spacing: 4px;
  pointer-events: none;
  font-family: "STKaiti", "SimHei", serif;
}
/* AI 吉祥物图片居中 */
.srch-illust::after {
  content: '';
  display: block;
  width: 110px;
  height: 130px;
  background: url('../img/AIProfilePicture.dc352042.png') bottom center / contain no-repeat;
  position: absolute;
  bottom: 0;
  right: 16px;
}

/* ---- 主内容行：grid 让左右两列自动等高 ---- */
.page-main { display: grid; grid-template-columns: 1fr 300px; gap: 16px; }

/* ---- 左列（搜索区 + 地图卡） ---- */
.page-left {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* ---- 地图卡 ---- */
.map-wrap {
  background: #fff;
  border-radius: 10px;
  border: 1px solid #f8dccd;
  box-shadow: 0 4px 20px rgba(248,220,205,.8);
  overflow: hidden;
}
.map-wrap-hd { padding: 14px 16px 0; }
.map-wrap-bd { display: flex; }

/* ---- 筛选面板 ---- */
.map-filter {
  width: 186px;
  flex-shrink: 0;
  border-right: 1px solid #f0f2f5;
  padding: 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.prov-select-wrap { display: flex; flex-direction: column; gap: 8px; }
.prov-select-wrap .prov-select { width: 100%; }
.map-filter .ctrl-back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 30px;
  padding: 0 10px;
  border-radius: 6px;
  border: 1px solid #ffc4c4;
  background: #fff5f5;
  color: #e60012;
  font-size: 12px;
  cursor: pointer;
  transition: all .2s;
  white-space: nowrap;
}
.map-filter .ctrl-back:hover { background: #fde8e8; border-color: #e60012; }
.cat-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.cat-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 7px 10px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 13px;
  color: #475467;
  transition: background .15s;
}
.cat-item:hover { background: #fef2f2; color: #e60012; }
.cat-active { background: #fef2f2; color: #e60012; font-weight: 600; }
.cat-count {
  font-size: 12px;
  background: #f2f4f7;
  color: #667085;
  padding: 1px 7px;
  border-radius: 20px;
  min-width: 24px;
  text-align: center;
}
.cat-active .cat-count { background: #ffe4e4; color: #e60012; }

/* ---- ECharts 地图容器 ---- */
.map-echarts-box { flex: 1; min-width: 0; }

/* ---- 右侧栏 ---- */
.page-right {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* ---- 热门城市 ---- */
.hot-city-wrap {
  background: #fff;
  border-radius: 10px;
  border: 1px solid #f8dccd;
  box-shadow: 0 4px 20px rgba(248,220,205,.8);
  overflow: hidden;
}
.city-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 10px 12px 14px;
}
.city-grid .city-item {
  position: relative;
  background: linear-gradient(150deg, #fff8f5 0%, #fde0db 100%);
  border-radius: 8px;
  padding: 16px 14px;
  min-height: 110px;
  cursor: pointer;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transition: background .2s;
}
.city-grid .city-item:hover { background: linear-gradient(150deg, #ffeae4 0%, #fdd0c8 100%); }
.city-grid .city-item:hover .city-name { color: #e60012; }
.city-name { font-size: 20px; font-weight: 700; color: #330805; line-height: 1.3; position: relative; z-index: 1; }
.city-label {
  font-size: 12px;
  color: #9b6b60;
  margin-top: 6px;
  position: relative;
  z-index: 1;
  background: rgba(255, 255, 255, 0.65);
  border: none !important;
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
}
.city-char {
  position: absolute;
  right: -4px;
  bottom: -14px;
  font-size: 80px;
  font-weight: 900;
  color: rgba(230, 0, 18, .10);
  line-height: 1;
  pointer-events: none;
  z-index: 0;
  font-family: "STKaiti", "SimHei", "PingFang SC", serif;
}

/* ---- 热门基地新样式 ---- */
.hot-base-wrap {
  background: #fff;
  border-radius: 10px;
  border: 1px solid #f8dccd;
  box-shadow: 0 4px 20px rgba(248,220,205,.8);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.hb-scroll-wrap {
  flex: 1;
  padding: 0px 10px;
  overflow: hidden;
  position: relative;
}
.hb-scroll-inner { will-change: transform; }
.hb-list { padding: 0 16px; }
.hb-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 0;
  border-bottom: 1px solid #f5f5f5;
  cursor: pointer;
  transition: background .15s;
}
.hb-item:last-child { border-bottom: none; }
.hb-item:hover .hb-name { color: #e60012; }
.hb-rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 700;
  flex-shrink: 0;
  background: #f2f4f7;
  color: #667085;
}
.hb-rank.rank-1 { background: #fdb022; color: #fff; }
.hb-rank.rank-2 { background: #98a2b3; color: #fff; }
.hb-rank.rank-3 { background: #b54708; color: #fff; }
.hb-name {
  flex: 1;
  font-size: 13px;
  color: #330805;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color .15s;
}
.hb-num {
  font-size: 13px;
  color: #e60012;
  font-weight: 600;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 2px;
}
.hb-fire { font-style: normal; font-size: 13px; }

/* ---- 研学路线区 ---- */
/* .study-section {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 4px 20px rgba(248,220,205,.8);
  padding: 20px;
} */

/* ---- 研学路线卡片 ---- */
.study-line-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.sl-card {
  border-radius: 10px;
  /* 顶部红色细线（设计图里每张卡片顶部有红边） */
  border-top: 3px solid #e60012;
  min-height: 220px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  background-color: #fff0ec;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  padding: 18px 16px 14px;
  transition: transform .25s, box-shadow .25s;
  box-shadow: 0 3px 12px rgba(0,0,0,.12);
  overflow: hidden;
  position: relative;
}
.sl-card:hover { transform: translateY(-5px); box-shadow: 0 10px 28px rgba(0,0,0,.18); }
/* 文字直接叠在背景图上，sl-body 撑满剩余空间 */
.sl-body { flex: 1; }
.sl-num {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  color: #330805;
}
.sl-theme {
  font-size: 13px;
  font-weight: 500;
  margin-top: 3px;
  color: #330805;
}
.sl-desc {
  width: 100px;
  font-size: 14px;
  color: #3d3230;
  margin-top: 10px;
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sl-foot {
  margin-top: 14px;
  font-size: 12px;
  color: #6b5e58;
  font-weight: 500;
}

/* ---- 通用区块标题 ---- */
.sec-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
  font-weight: 600;
  color: #330805;
  line-height: 1.4;
}
.title-line {
  display: inline-block;
  width: 4px;
  height: 16px;
  background: linear-gradient(180deg, #ff6b6b, #e60012);
  border-radius: 2px;
  flex-shrink: 0;
}

/* Card.vue (mapCard) */
.mapCard{border:1px solid transparent;-webkit-border-image:url(../img/card-border.dc92ccad.png) 100/50px/0 stretch;-o-border-image:url(../img/card-border.dc92ccad.png) 100/50px/0 stretch;border-image:url(../img/card-border.dc92ccad.png) 100/50px/0 stretch}

.mapCard .header{padding:0 20px;height:50px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}

.mapCard .header .subTitle{cursor:pointer;color:#330805;font-size:18px;font-weight:400;line-height:28px}

.mapCard .header .subTitle:first-child{margin-right:32px}

.mapCard .header .title{color:#e60012;font-size:20px;font-weight:600;line-height:32px;cursor:pointer;display:-webkit-box;display:-moz-box;box-orient:vertical;-webkit-box-orient:vertical;line-clamp:1;-webkit-line-clamp:1;overflow:hidden;text-overflow:ellipsis;word-break:break-word}

.mapCard .justifyContentStyle{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}

.mapCard .content{padding:20px;background-color:#fff}

.mapCard .no-padding{padding:0}

/* ---- 新布局：map-wrap 内的 map-total 微调 ---- */
.map-wrap .map-total { padding: 0 20px 16px; }
.map-wrap .map-total .total { margin-top: 8px; }
.map-wrap .map-total .tip { margin-top: 6px; }


