@charset "utf-8";
/* ===================================================================
   skin/zjj-b  v2  张家界国旅假期 · B站首页
   设计语言：自然山岳 + 宣纸质感 + 暖金点缀
   - 品牌深松绿 #12463C（沉稳高端），暖金 #C8A96A（品质），朱砂 #C8452D（仅价格/行动）
   - 底色宣纸米白 #F7F5F1，比纯白柔和，减少数码冷感 => 亲和力
   - 关键颜色均提供 IE 回退值（先写固定色，再写 var()）
   - 全文件不含 emoji / 4 字节字符（MySQL 5.1 utf8 只支持 3 字节）
   =================================================================== */

/* ---------- 1. 设计变量 ---------- */
:root{
  --ink:#12211D;      --ink-2:#4A5B55;    --ink-3:#93A29B;
  --green:#12463C;    --green-2:#1C6B58;  --green-d:#0B2B25;
  --green-l:#EAF3F0;
  --gold:#C8A96A;     --gold-2:#A8863F;   --gold-l:#F6EFDF;
  --red:#C8452D;      --red-l:#FBEDE9;
  --paper:#F7F5F1;    --white:#FFFFFF;
  --line:rgba(18,34,30,.10);
  --sh-1:0 1px 3px rgba(15,40,34,.06),0 6px 18px rgba(15,40,34,.05);
  --sh-2:0 8px 22px rgba(15,40,34,.09),0 24px 60px rgba(15,40,34,.11);
  --r-s:10px; --r-m:16px; --r-l:24px;
  --wrap:1220px;
  --e:cubic-bezier(.22,.61,.36,1);
  --bar-h:44px;
}

/* ---------- 2. Reset ---------- */
*,:before,:after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0; background:#F7F5F1; background:var(--paper);
  color:#12211D; color:var(--ink);
  font:15px/1.75 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,p,dl,dd,figure{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }
a{ color:inherit; text-decoration:none; }
img{ border:0; max-width:100%; vertical-align:middle; }
button,input,select,textarea{ font:inherit; color:inherit; }
button{ border:0; background:none; cursor:pointer; padding:0; }
table{ border-collapse:collapse; width:100%; }
del{ text-decoration:none; }
em,i{ font-style:normal; }

/* ---------- 3. 布局骨架 ---------- */
.zjjb{ overflow:hidden; }
.zjjb-wrap{ width:100%; max-width:1220px; max-width:var(--wrap); margin:0 auto; padding:0 24px; }
.zjjb-sec{ padding:44px 0; position:relative; }
.zjjb-sec--tight{ padding:28px 0; }
.zjjb-sec--white{ background:#FFFFFF; background:var(--white); }
.zjjb-sec--wash{ background:#EEE9DF; border-top:1px solid rgba(18,34,30,.06); border-bottom:1px solid rgba(18,34,30,.06); }
/* ★ 2026-10-15 补：此前 footer 变量里用了 zjjb-sec--gray 但 CSS 没定义（幽灵类），
   导致 FAQ 区没有灰底、且内联 padding-bottom:0 把下留白压没，FAQ 卡片直接贴住页脚。
   这里补上真实定义，并保留区块的正常上下 44px 留白。 */
.zjjb-sec--gray{ background:#F1EEE7; border-top:1px solid rgba(18,34,30,.06); }
.zjjb-sec--deep{
  background:#0B2B25; background:var(--green-d); color:#fff;
  background-image:radial-gradient(1200px 420px at 12% -10%,rgba(200,169,106,.16),transparent 62%);
}
.zjjb-sec--deep .zjjb-hd h2,.zjjb-sec--deep .zjjb-hd h2 em{ color:#fff; }

/* ---------- 4. 分区标题 ---------- */
.zjjb-hd{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:20px; margin-bottom:34px;
}
.zjjb-hd__l{ position:relative; padding-left:18px; }
.zjjb-hd__l:before{
  content:""; position:absolute; left:0; top:6px; bottom:8px; width:3px;
  background:#C8A96A; background:var(--gold); border-radius:2px;
}
.zjjb-hd__en{
  display:block; font:600 11px/1 Georgia,"Times New Roman",serif;
  letter-spacing:.34em; text-transform:uppercase; color:#A8863F; color:var(--gold-2);
  margin-bottom:12px;
}
.zjjb-hd h2{
  font-size:32px; line-height:1.28; font-weight:700;
  letter-spacing:.5px; color:#12211D; color:var(--ink);
}
.zjjb-hd h2 em{ color:#1C6B58; color:var(--green-2); }
.zjjb-hd__sub{ display:block; margin-top:9px; color:#4A5B55; color:var(--ink-2); font-size:14px; }
.zjjb-more{
  flex:none; display:inline-flex; align-items:center; gap:7px;
  font-size:13.5px; color:#4A5B55; color:var(--ink-2); padding-bottom:3px;
  border-bottom:1px solid transparent; transition:.25s var(--e);
}
.zjjb-more:after{ content:""; width:15px; height:1px; background:currentColor; transition:.25s var(--e); }
.zjjb-more:hover{ color:#12463C; color:var(--green); border-bottom-color:#C8A96A; border-bottom-color:var(--gold); }
.zjjb-more:hover:after{ width:26px; }

/* ===================================================================
   5. 顶部通告条
   =================================================================== */
.zjjb-bar{
  background:#0B2B25; background:var(--green-d); color:rgba(255,255,255,.86);
  font-size:12.5px; letter-spacing:.4px; border-bottom:1px solid rgba(200,169,106,.22);
}
.zjjb-bar .zjjb-wrap{
  height:44px; height:var(--bar-h);
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.zjjb-bar__l{ display:flex; align-items:center; gap:22px; min-width:0; overflow:hidden; }
.zjjb-bar__l span{ display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.zjjb-bar__l span:before{
  content:""; width:5px; height:5px; border-radius:50%;
  background:#C8A96A; background:var(--gold); flex:none;
}
.zjjb-bar__r a{ color:rgba(255,255,255,.72); margin-left:18px; transition:.2s; }
.zjjb-bar__r a:hover{ color:#C8A96A; color:var(--gold); }

/* ===================================================================
   6. Header + 导航
   =================================================================== */
.zjjb-head{ background:rgba(255,255,255,.94); position:relative; z-index:60; }
.zjjb-head .zjjb-wrap{
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; height:88px;
}
.zjjb-brand{ display:flex; align-items:center; gap:14px; flex:none; }
.zjjb-brand__mark{
  width:46px; height:46px; flex:none; border-radius:12px; position:relative;
  background:#12463C; background:linear-gradient(150deg,#1C6B58,#0B2B25);
  box-shadow:0 6px 16px rgba(18,70,60,.28);
}
/* 两个三角形画出「峰林」--不依赖字体与图片 */
.zjjb-brand__mark:before,.zjjb-brand__mark:after{
  content:""; position:absolute; bottom:11px; width:0; height:0;
  border-style:solid; border-color:transparent transparent #FFFFFF transparent;
}
.zjjb-brand__mark:before{ left:9px; border-width:0 8px 13px 8px; opacity:.95; }
.zjjb-brand__mark:after{ left:21px; border-width:0 10px 19px 10px; opacity:.62; }
.zjjb-brand__t b{
  display:block; font-size:22px; font-weight:700; letter-spacing:2px;
  color:#12463C; color:var(--green); line-height:1.25;
}
.zjjb-brand__t small{
  display:block; font:500 11px/1.5 Georgia,"Times New Roman",serif;
  letter-spacing:.2em; color:#93A29B; color:var(--ink-3); margin-top:2px;
}
.zjjb-head__r{ display:flex; align-items:center; gap:26px; }
.zjjb-hotline{ text-align:right; line-height:1.35; }
.zjjb-hotline small{ display:block; font-size:11.5px; color:#93A29B; color:var(--ink-3); letter-spacing:1px; }
.zjjb-hotline b{
  display:block; font:700 25px/1.2 Georgia,"Times New Roman",serif;
  color:#A8863F; color:var(--gold-2); letter-spacing:.5px;
}
.zjjb-btn-gold{
  display:inline-flex; align-items:center; justify-content:center;
  height:46px; padding:0 26px; border-radius:23px;
  background:#C8A96A; background:linear-gradient(135deg,#D8BC85,#C8A96A); color:#2A1F0B;
  font-size:14.5px; font-weight:700; letter-spacing:1px;
  box-shadow:0 8px 22px rgba(200,169,106,.34); transition:.3s var(--e);
}
.zjjb-btn-gold:hover{ transform:translateY(-2px); box-shadow:0 12px 30px rgba(200,169,106,.46); }

.zjjb-nav{ background:#FFFFFF; background:var(--white); border-top:1px solid rgba(18,34,30,.07); position:relative; z-index:55; }
.zjjb-nav.is-fixed{
  position:fixed; left:0; right:0; top:0; z-index:200;
  background:rgba(255,255,255,.9);
  -webkit-backdrop-filter:saturate(180%) blur(14px); backdrop-filter:saturate(180%) blur(14px);
  box-shadow:0 8px 26px rgba(15,40,34,.10);
  animation:zjjbDrop .38s var(--e) both;
}
@keyframes zjjbDrop{ from{ transform:translateY(-100%); opacity:.4; } to{ transform:none; opacity:1; } }
.zjjb-nav > .zjjb-wrap{ display:flex; align-items:center; gap:6px; height:58px; }
.zjjb-nav ul{ display:flex; align-items:center; gap:2px; }
.zjjb-nav li a{
  position:relative; display:block; padding:9px 15px; border-radius:8px;
  font-size:15px; color:#12211D; color:var(--ink); transition:.22s; white-space:nowrap;
}
.zjjb-nav li a:after{
  content:""; position:absolute; left:15px; right:15px; bottom:2px; height:2px;
  background:#C8A96A; background:var(--gold); border-radius:2px;
  transform:scaleX(0); transform-origin:left; transition:transform .3s var(--e);
}
.zjjb-nav li a:hover{ color:#12463C; color:var(--green); background:#EAF3F0; background:var(--green-l); }
.zjjb-nav li a:hover:after,.zjjb-nav li.on a:after{ transform:scaleX(1); }
.zjjb-nav li.vip a{ color:#A8863F; color:var(--gold-2); font-weight:700; }

.zjjb-subnav{ background:#F7F5F1; background:var(--paper); border-top:1px solid rgba(18,34,30,.06); }
.zjjb-subnav .zjjb-wrap{
  display:flex; align-items:center; gap:12px; height:44px;
  font-size:13px; color:#4A5B55; color:var(--ink-2); overflow:hidden;
}
.zjjb-subnav b{ color:#12463C; color:var(--green); font-weight:700; flex:none; letter-spacing:1px; }
.zjjb-subnav ul{ display:flex; gap:20px; overflow:hidden; }
.zjjb-subnav li a{ white-space:nowrap; transition:.2s; }
.zjjb-subnav li a:hover{ color:#A8863F; color:var(--gold-2); }

/* ===================================================================
   7. Hero 全屏轮播
   =================================================================== */
.zjjb-hero{
  position:relative; height:660px; min-height:580px; max-height:88vh;
  overflow:hidden; background:#0B2B25; background:var(--green-d);
}
.zjjb-slide{ position:absolute; inset:0; opacity:0; transition:opacity 1.1s ease;
  background:linear-gradient(135deg,#0B2B25 0%,#12463C 46%,#0B2B25 100%); }
.zjjb-slide.is-on{ opacity:1; z-index:2; }
.zjjb-slide__bg{ position:absolute; inset:0; overflow:hidden; }
.zjjb-slide__bg img{
  width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.08);
}
/* Ken Burns：缓慢推近，电影感 */
.zjjb-slide.is-on .zjjb-slide__bg img{ animation:zjjbKB 14s linear forwards; }
@keyframes zjjbKB{ from{ transform:scale(1.02); } to{ transform:scale(1.14); } }
.zjjb-slide__bg:after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(100deg,rgba(6,26,22,.80) 0%,rgba(6,26,22,.50) 40%,rgba(6,26,22,.06) 72%,rgba(6,26,22,.30) 100%),
    linear-gradient(to bottom,rgba(6,26,22,.34),transparent 24%,transparent 66%,rgba(6,26,22,.62));
}
.zjjb-slide__c{
  position:relative; z-index:3; height:100%;
  display:flex; flex-direction:column; justify-content:center;
  max-width:1220px; max-width:var(--wrap); margin:0 auto; padding:0 24px;
}
.zjjb-slide__en{
  font:600 12px/1 Georgia,"Times New Roman",serif; letter-spacing:.42em;
  text-transform:uppercase; color:#C8A96A; color:var(--gold); margin-bottom:22px;
}
.zjjb-slide__t{
  font-size:52px; line-height:1.22; font-weight:700; color:#fff;
  letter-spacing:1px; text-shadow:0 4px 30px rgba(0,0,0,.42); max-width:19em;
}
.zjjb-slide__t em{ color:#C8A96A; color:var(--gold); }
.zjjb-slide__d{
  margin-top:20px; font-size:16.5px; line-height:1.9; color:rgba(255,255,255,.86);
  max-width:34em; text-shadow:0 2px 14px rgba(0,0,0,.3);
}
.zjjb-slide__act{ margin-top:34px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.zjjb-slide__meta{
  margin-top:30px; display:flex; gap:30px; flex-wrap:wrap;
  padding-top:22px; border-top:1px solid rgba(255,255,255,.16); max-width:640px;
}
.zjjb-slide__meta div b{ display:block; font:700 26px/1.2 Georgia,"Times New Roman",serif; color:#fff; }
.zjjb-slide__meta div small{ font-size:12.5px; color:rgba(255,255,255,.62); letter-spacing:1px; }
/* 文字逐条进场 */
.zjjb-slide.is-on .zjjb-slide__en,
.zjjb-slide.is-on .zjjb-slide__t,
.zjjb-slide.is-on .zjjb-slide__d,
.zjjb-slide.is-on .zjjb-slide__act,
.zjjb-slide.is-on .zjjb-slide__meta{ animation:zjjbUp .9s var(--e) both; }
.zjjb-slide.is-on .zjjb-slide__t{ animation-delay:.10s; }
.zjjb-slide.is-on .zjjb-slide__d{ animation-delay:.22s; }
.zjjb-slide.is-on .zjjb-slide__act{ animation-delay:.34s; }
.zjjb-slide.is-on .zjjb-slide__meta{ animation-delay:.46s; }
@keyframes zjjbUp{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:none; } }

/* 按钮 */
.zjjb-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:52px; padding:0 34px; border-radius:26px; font-size:15.5px; font-weight:600;
  letter-spacing:.5px; transition:.3s var(--e);
}
.zjjb-btn--gold{ background:#C8A96A; background:linear-gradient(135deg,#D8BC85,#C8A96A); color:#2A1F0B; box-shadow:0 10px 28px rgba(200,169,106,.34); }
.zjjb-btn--gold:hover{ transform:translateY(-3px); box-shadow:0 16px 38px rgba(200,169,106,.46); }
.zjjb-btn--line{ border:1px solid rgba(255,255,255,.44); color:#fff; }
.zjjb-btn--line:hover{ background:rgba(255,255,255,.14); border-color:#fff; }
/* 白底卡片上的描边按钮（酒店主推卡"查看详情"） */
.zjjb-btn--ghost{ border:1px solid rgba(18,70,60,.26); color:#12463C; color:var(--green); }
.zjjb-btn--ghost:hover{ background:#12463C; background:var(--green); color:#fff; border-color:#12463C; border-color:var(--green); }

/* 指示器 + 箭头 */
.zjjb-dots{ position:absolute; left:0; right:0; bottom:30px; z-index:8; display:flex; justify-content:center; gap:12px; }
.zjjb-dots button{
  width:30px; height:3px; border-radius:2px; background:rgba(255,255,255,.38);
  position:relative; overflow:hidden; transition:.3s;
}
.zjjb-dots button.is-on{ background:rgba(255,255,255,.4); width:52px; }
.zjjb-dots button.is-on:after{
  content:""; position:absolute; inset:0; background:#C8A96A; background:var(--gold);
  transform-origin:left; animation:zjjbBar 6s linear forwards;
}
@keyframes zjjbBar{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
.zjjb-hero__arrow{
  position:absolute; top:50%; z-index:8; width:52px; height:52px; margin-top:-26px;
  border-radius:50%; background:rgba(255,255,255,.14); color:#fff; font-size:20px;
  line-height:52px; text-align:center; transition:.3s;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.zjjb-hero__arrow:hover{ background:rgba(255,255,255,.28); }
.zjjb-hero__arrow--p{ left:22px; }
.zjjb-hero__arrow--n{ right:22px; }

/* Hero 右下：2026 参考价卡 */
.zjjb-find{
  position:absolute; right:100px; bottom:88px; z-index:9; width:326px;
  background:rgba(255,255,255,.95);
  -webkit-backdrop-filter:saturate(180%) blur(16px); backdrop-filter:saturate(180%) blur(16px);
  border-radius:20px; padding:24px; box-shadow:0 18px 46px rgba(0,0,0,.24);
  border:1px solid rgba(255,255,255,.7);
}
.zjjb-find h4{ font-size:15.5px; font-weight:700; color:#12463C; color:var(--green); letter-spacing:1px; }
.zjjb-find p{ font-size:12.5px; color:#8B9A94; color:var(--ink-3); margin:6px 0 14px; }
.zjjb-find__list{ border-top:1px dashed rgba(18,34,30,.14); }
.zjjb-find__list div{
  display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  padding:10px 0; border-bottom:1px dashed rgba(18,34,30,.14);
}
.zjjb-find__list span{ font-size:13.5px; color:#4A5B55; color:var(--ink-2); }
.zjjb-find__list b{ font:700 19px/1 Georgia,"Times New Roman",serif; color:#C8452D; color:var(--red); white-space:nowrap; }
.zjjb-find__btn{
  display:flex; align-items:center; justify-content:center; height:46px; margin-top:18px;
  border-radius:12px; font-size:14.5px; font-weight:700; letter-spacing:.5px;
  background:#12463C; background:var(--green); color:#fff;
  box-shadow:0 8px 20px rgba(18,70,60,.24); transition:.3s var(--e);
}
.zjjb-find__btn:hover{ background:#A8863F; background:var(--gold-2); transform:translateY(-2px); }
.zjjb-find__tip{ margin-top:10px; font-size:11.5px; color:#93A29B; color:var(--ink-3); line-height:1.6; }
/* 宽屏时把参考价卡的右缘对齐到正文栏右缘（width ≥ 1364 时正文栏右缘距右边 ≥96px，正好让开悬浮条） */
@media (min-width:1364px){
  .zjjb-find{ right:calc((100% - 1220px) / 2 + 24px); right:calc((100% - var(--wrap)) / 2 + 24px); }
}
.zjjb-scroll{ position:absolute; left:50%; bottom:0; z-index:8; transform:translateX(-50%); }
.zjjb-scroll span{
  display:block; width:1px; height:52px; margin:0 auto;
  background:#fff; background:linear-gradient(to bottom,rgba(255,255,255,.7),transparent);
  animation:zjjbScroll 2.2s ease-in-out infinite;
}
@keyframes zjjbScroll{ 0%,100%{ transform:scaleY(.4); opacity:.5; } 50%{ transform:scaleY(1); opacity:1; } }

/* ===================================================================
   8. 数据背书条
   =================================================================== */
.zjjb-facts{ max-width:1220px; max-width:var(--wrap); margin:-52px auto 0; position:relative; z-index:20; padding:0 24px; }
.zjjb-facts__in{
  display:grid; grid-template-columns:repeat(4,1fr);
  background:#fff; border-radius:20px; overflow:hidden;
  box-shadow:0 10px 34px rgba(15,40,34,.12); border:1px solid rgba(18,34,30,.06);
}
.zjjb-fact{ padding:30px 18px; text-align:center; position:relative; }
.zjjb-fact + .zjjb-fact:before{
  content:""; position:absolute; left:0; top:22%; bottom:22%; width:1px; background:rgba(18,34,30,.09);
}
.zjjb-fact b{ display:block; font:700 34px/1.15 Georgia,"Times New Roman",serif; color:#12463C; color:var(--green); }
.zjjb-fact b sup{ font-size:18px; color:#A8863F; color:var(--gold-2); }
.zjjb-fact small{ display:block; margin-top:8px; font-size:13px; color:#4A5B55; color:var(--ink-2); letter-spacing:1px; }

/* ===================================================================
   9. 快捷入口
   =================================================================== */
.zjjb-entry__hd{ margin-bottom:22px; text-align:center; font-size:13.5px; color:#8B9A94; color:var(--ink-3); }
.zjjb-entry__hd b{ margin-right:6px; font-weight:700; color:#12211D; color:var(--ink); }
.zjjb-entry{ display:grid; grid-template-columns:repeat(6,1fr); gap:16px; }
.zjjb-entry a{
  position:relative; display:block; padding:24px 16px 22px; border-radius:18px;
  background:#fff; border:1px solid rgba(18,34,30,.07); text-align:center;
  transition:.38s var(--e); overflow:hidden;
}
.zjjb-entry a:before{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:#C8A96A; background:linear-gradient(90deg,#C8A96A,#D8BC85);
  transform:scaleX(0); transform-origin:left; transition:transform .4s var(--e);
}
.zjjb-entry a:hover{ transform:translateY(-7px); box-shadow:0 14px 34px rgba(15,40,34,.12); border-color:transparent; }
.zjjb-entry a:hover:before{ transform:scaleX(1); }
.zjjb-entry b{ display:block; font-size:16px; font-weight:700; color:#12211D; color:var(--ink); letter-spacing:.4px; }
.zjjb-entry small{ display:block; margin-top:6px; font-size:12.5px; line-height:1.6; color:#8B9A94; color:var(--ink-3); }

/* 图标底板：六格各一枚纯 CSS 图形，无 emoji、无图片、无字体依赖 */
.zjjb-entry em{
  --ico:#1C6B58;
  display:block; width:46px; height:46px; margin:0 auto 14px; position:relative;
  border-radius:13px; background:#EAF3F0; background:var(--green-l); transition:.38s var(--e);
}
.zjjb-entry em:before,
.zjjb-entry em:after{ content:""; position:absolute; transition:.38s var(--e); }

/* e1 第一次来张家界 —— 两座山峰 */
.zjjb-entry .e1 em:before{
  left:50%; bottom:14px; transform:translateX(-50%); width:0; height:0;
  border-style:solid; border-width:0 10px 15px 10px;
  border-color:transparent transparent #1C6B58 transparent; border-bottom-color:var(--ico);
}
.zjjb-entry .e1 em:after{
  left:50%; bottom:14px; transform:translateX(-134%); width:0; height:0;
  border-style:solid; border-width:0 7px 10px 7px;
  border-color:transparent transparent #93A29B transparent; border-bottom-color:var(--ico); opacity:.55;
}

/* e2 陪父母慢游 —— 家：屋顶 + 屋身 */
.zjjb-entry .e2 em:before{
  left:50%; top:50%; transform:translate(-50%,-11px); width:0; height:0;
  border-style:solid; border-width:0 11px 10px 11px;
  border-color:transparent transparent #1C6B58 transparent; border-bottom-color:var(--ico);
}
.zjjb-entry .e2 em:after{
  left:50%; top:50%; transform:translate(-50%,-1px); width:18px; height:11px;
  border-radius:2px 2px 3px 3px; background:#1C6B58; background:var(--ico);
}

/* e3 两个人的旅行 —— 交叠双环 */
.zjjb-entry .e3 em:before,
.zjjb-entry .e3 em:after{
  top:50%; left:50%; width:16px; height:16px; box-sizing:border-box; border-radius:50%;
  border-style:solid; border-width:2px; border-color:#1C6B58; border-color:var(--ico);
}
.zjjb-entry .e3 em:before{ transform:translate(-75%,-50%); }
.zjjb-entry .e3 em:after{ transform:translate(-25%,-50%); }

/* e4 从长沙出发 —— 向右的箭头 */
.zjjb-entry .e4 em:before{
  left:50%; top:50%; transform:translate(-75%,-50%); width:18px; height:4px;
  border-radius:2px; background:#1C6B58; background:var(--ico);
}
.zjjb-entry .e4 em:after{
  left:50%; top:50%; transform:translate(50%,-50%); width:0; height:0;
  border-style:solid; border-width:6px 0 6px 9px;
  border-color:transparent transparent transparent #1C6B58; border-left-color:var(--ico);
}

/* e5 想住进风景里 —— 枕头 + 床板 */
.zjjb-entry .e5 em:before{
  left:50%; top:50%; transform:translate(-50%,6px); width:20px; height:4px;
  border-radius:2px; background:#1C6B58; background:var(--ico);
}
.zjjb-entry .e5 em:after{
  left:50%; top:50%; transform:translate(-115%,-6px); width:11px; height:8px;
  border-radius:3px; background:#1C6B58; background:var(--ico); opacity:.75;
}

/* e6 先做点功课 —— 文档：页框 + 两行字 */
.zjjb-entry .e6 em:before{
  left:50%; top:50%; transform:translate(-50%,-50%); width:18px; height:22px; box-sizing:border-box;
  border-style:solid; border-width:2px; border-color:#1C6B58; border-color:var(--ico); border-radius:3px;
}
.zjjb-entry .e6 em:after{
  left:50%; top:50%; transform:translate(-50%,-6px); width:8px; height:2px; border-radius:1px;
  background:#1C6B58; background:var(--ico);
  box-shadow:0 5px 0 #1C6B58; box-shadow:0 5px 0 var(--ico);
}

/* 三色底色循环；hover 规则必须在其后，否则偶数格底色压不住 */
.zjjb-entry a:nth-child(2n) em{ background:#F6EFDF; background:var(--gold-l); }
.zjjb-entry a:nth-child(3n) em{ background:#FBEDE9; background:var(--red-l); }
.zjjb-entry a:hover em{ --ico:#E3C77E; background:#12463C; background:var(--green); transform:rotate(-6deg) scale(1.06); }

/* ===================================================================
   10. Tab + 线路卡片
   =================================================================== */
.zjjb-tabs{ display:flex; gap:10px; margin-bottom:26px; flex-wrap:wrap; }
.zjjb-tabs button{
  height:44px; padding:0 24px; border-radius:22px; font-size:14.5px;
  color:#4A5B55; color:var(--ink-2); background:#fff;
  border:1px solid rgba(18,34,30,.10); transition:.28s var(--e); white-space:nowrap;
}
.zjjb-tabs button:hover{ color:#12463C; color:var(--green); border-color:#C8A96A; border-color:var(--gold); }
.zjjb-tabs button.on{
  background:#12463C; background:var(--green); color:#fff; border-color:transparent;
  box-shadow:0 8px 20px rgba(18,70,60,.22); font-weight:600;
}
.zjjb-pane{ display:none; }
.zjjb-pane.on{ display:block; animation:zjjbFade .5s var(--e) both; }
@keyframes zjjbFade{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }

.zjjb-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.zjjb-card{
  position:relative; background:#fff; border-radius:20px; overflow:hidden;
  border:1px solid rgba(18,34,30,.07);
  transition:transform .42s var(--e),box-shadow .42s var(--e);
}
.zjjb-card:hover{ transform:translateY(-8px); box-shadow:0 16px 42px rgba(15,40,34,.14); border-color:transparent; }
.zjjb-card__pic{ display:block; position:relative; overflow:hidden; height:206px; background:#EAF3F0; background:var(--green-l); }
.zjjb-card__pic img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--e); }
.zjjb-card:hover .zjjb-card__pic img{ transform:scale(1.09); }
.zjjb-card__pic:after{
  content:""; position:absolute; inset:0; opacity:.85; transition:.4s;
  background:#0B2B25; background:linear-gradient(to top,rgba(8,30,25,.5),transparent 52%);
}
.zjjb-card:hover .zjjb-card__pic:after{ opacity:.6; }
.zjjb-card__no,.zjjb-card__days{
  position:absolute; z-index:3; top:12px; border-radius:999px;
  font-size:12px; font-weight:700; letter-spacing:.5px; color:#fff;
  padding:5px 12px; line-height:1.4; max-width:60%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.zjjb-card__no{ left:12px; background:rgba(200,169,106,.94); box-shadow:0 4px 12px rgba(0,0,0,.18); }
.zjjb-card__days{ right:12px; background:rgba(10,34,29,.72); }
.zjjb-card__mask{
  position:absolute; left:0; right:0; bottom:0; z-index:3; padding:14px 16px;
  display:flex; gap:14px; color:rgba(255,255,255,.92); font-size:12.5px;
  transform:translateY(4px); transition:.4s var(--e);
}
.zjjb-card:hover .zjjb-card__mask{ transform:none; }
.zjjb-card__mask span{ display:inline-flex; align-items:center; gap:5px; }
.zjjb-card__mask span:before{ content:""; width:4px; height:4px; border-radius:50%; background:#C8A96A; background:var(--gold); }
.zjjb-card__bd{ padding:20px 20px 22px; }
.zjjb-card__t{ font-size:17.5px; font-weight:700; line-height:1.5; letter-spacing:.3px; }
.zjjb-card__t a{ color:#12211D; color:var(--ink); transition:.2s; }
.zjjb-card:hover .zjjb-card__t a{ color:#12463C; color:var(--green); }
.zjjb-card__d{
  margin-top:10px; font-size:13.5px; line-height:1.75; color:#4A5B55; color:var(--ink-2); height:4.7em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.zjjb-card__ft{
  margin-top:16px; padding-top:15px; border-top:1px dashed rgba(18,34,30,.13);
  display:flex; align-items:flex-end; justify-content:space-between; gap:12px;
}
.zjjb-price{ line-height:1; }
.zjjb-price small{ font:600 14px/1 Georgia,serif; color:#C8452D; color:var(--red); }
.zjjb-price b{ font:700 30px/1 Georgia,"Times New Roman",serif; color:#C8452D; color:var(--red); letter-spacing:-.5px; }
.zjjb-price span{ font-size:12.5px; color:#93A29B; color:var(--ink-3); margin-left:3px; }
.zjjb-price del{ font-size:13px; color:#93A29B; color:var(--ink-3); margin-right:6px; }
.zjjb-go{
  flex:none; display:inline-flex; align-items:center; gap:6px; height:38px; padding:0 18px;
  border-radius:19px; font-size:13.5px; font-weight:600;
  background:#EAF3F0; background:var(--green-l); color:#12463C; color:var(--green); transition:.3s var(--e);
}
.zjjb-go:after{ content:""; width:5px; height:5px; border-top:1px solid; border-right:1px solid; transform:rotate(45deg); }
.zjjb-card:hover .zjjb-go{ background:#12463C; background:var(--green); color:#fff; }

/* ===================================================================
   11. 通栏视差图
   =================================================================== */
.zjjb-wide{
  position:relative; overflow:hidden; min-height:400px; display:flex; align-items:center;
  background:#0B2B25; background:var(--green-d);
}
.zjjb-wide__bg{ position:absolute; left:0; right:0; top:-12%; bottom:-12%; z-index:0; }
.zjjb-wide__bg img{ width:100%; height:100%; object-fit:cover; }
.zjjb-wide__bg:after{
  content:""; position:absolute; inset:0;
  background:#0B2B25;
  background:linear-gradient(105deg,rgba(6,26,22,.92) 0%,rgba(6,26,22,.72) 46%,rgba(6,26,22,.34) 100%);
}
.zjjb-wide .zjjb-wrap{ position:relative; z-index:2; padding:46px 24px; }
.zjjb-wide__en{
  font:600 12px/1 Georgia,serif; letter-spacing:.4em; text-transform:uppercase;
  color:#C8A96A; color:var(--gold); margin-bottom:18px;
}
.zjjb-wide h2{ font-size:38px; line-height:1.34; color:#fff; font-weight:700; letter-spacing:1px; max-width:16em; }
.zjjb-wide h2 em{ color:#C8A96A; color:var(--gold); }
.zjjb-wide p{ margin-top:18px; color:rgba(255,255,255,.82); font-size:16px; line-height:1.95; max-width:38em; }
.zjjb-wide__act{ margin-top:30px; display:flex; gap:14px; flex-wrap:wrap; }
.zjjb-wide__pt{ margin-top:30px; display:grid; grid-template-columns:repeat(2,minmax(0,260px)); gap:14px; }
.zjjb-wide__pt span{
  display:flex; align-items:center; gap:10px; font-size:14.5px; color:rgba(255,255,255,.9); position:relative;
}
.zjjb-wide__pt span:before{
  content:""; width:16px; height:16px; flex:none; border-radius:50%;
  background:rgba(200,169,106,.24); box-shadow:inset 0 0 0 1px rgba(200,169,106,.6);
}
.zjjb-wide__pt span:after{
  content:""; position:absolute; left:5px; top:50%; margin-top:-3px;
  width:6px; height:6px; border-radius:50%; background:#C8A96A; background:var(--gold);
}

/* ===================================================================
   12. 口碑榜
   =================================================================== */
.zjjb-rank{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.zjjb-rank__i{
  position:relative; display:flex; gap:16px; padding:18px; border-radius:18px;
  background:#fff; border:1px solid rgba(18,34,30,.07); transition:.4s var(--e);
}
.zjjb-rank__i:hover{ transform:translateY(-6px); box-shadow:0 14px 34px rgba(15,40,34,.12); border-color:transparent; }
.zjjb-rank__no{
  flex:none; width:44px; height:44px; border-radius:12px; display:flex;
  align-items:center; justify-content:center; font:700 17px/1 Georgia,serif; color:#fff;
  background:#C8A96A; background:linear-gradient(140deg,#D8BC85,#A8863F);
}
.zjjb-rank__i:nth-child(1) .zjjb-rank__no,
.zjjb-rank__i:nth-child(2) .zjjb-rank__no,
.zjjb-rank__i:nth-child(3) .zjjb-rank__no{ background:#C8452D; background:linear-gradient(140deg,#C8452D,#A8341F); }
.zjjb-rank__pic{ flex:none; display:block; width:96px; height:78px; border-radius:12px; overflow:hidden; background:#EAF3F0; background:var(--green-l); }
.zjjb-rank__pic img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--e); }
.zjjb-rank__i:hover .zjjb-rank__pic img{ transform:scale(1.1); }
.zjjb-rank__b{ min-width:0; display:flex; flex-direction:column; justify-content:center; }
.zjjb-rank__t{
  font-size:15px; font-weight:600; line-height:1.5; height:3em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.zjjb-rank__i:hover .zjjb-rank__t{ color:#12463C; color:var(--green); }
.zjjb-rank__ft{ margin-top:8px; display:flex; align-items:baseline; gap:8px; }
.zjjb-rank__ft b{ font:700 20px/1 Georgia,serif; color:#C8452D; color:var(--red); }
.zjjb-rank__ft em{ font-size:12px; color:#93A29B; color:var(--ink-3); }

/* ===================================================================
   13. 选择理由
   =================================================================== */
.zjjb-why{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.zjjb-why__i{
  position:relative; padding:32px 26px 30px; border-radius:20px; background:#fff;
  border:1px solid rgba(18,34,30,.07); overflow:hidden; transition:.42s var(--e);
}
.zjjb-why__i:after{
  content:""; position:absolute; right:-30px; top:-30px; width:110px; height:110px; border-radius:50%;
  background:#EAF3F0; background:var(--green-l); transition:.5s var(--e);
}
.zjjb-why__i:hover{ transform:translateY(-8px); box-shadow:0 16px 40px rgba(15,40,34,.12); }
.zjjb-why__i:hover:after{ transform:scale(1.5); background:#F6EFDF; background:var(--gold-l); }
.zjjb-why__n{
  position:relative; z-index:2; font:700 15px/1 Georgia,serif; letter-spacing:.22em;
  color:#A8863F; color:var(--gold-2); margin-bottom:16px;
}
.zjjb-why__i h3{ position:relative; z-index:2; font-size:19px; font-weight:700; letter-spacing:.5px; }
.zjjb-why__i p{ position:relative; z-index:2; margin-top:12px; font-size:14px; line-height:1.85; color:#4A5B55; color:var(--ink-2); }

/* ===================================================================
   14. 酒店
   =================================================================== */
.zjjb-stay{ display:grid; grid-template-columns:340px 1fr; gap:24px; align-items:start; }
.zjjb-hotel{
  position:relative; border-radius:20px; overflow:hidden; background:#fff;
  border:1px solid rgba(18,34,30,.07); transition:.42s var(--e); height:100%;
}
.zjjb-hotel:hover{ transform:translateY(-6px); box-shadow:0 16px 40px rgba(15,40,34,.13); }
.zjjb-hotel__pic{ display:block; height:232px; max-height:232px; overflow:hidden; background:#EAF3F0; background:var(--green-l); }
.zjjb-hotel__pic img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--e); }
.zjjb-hotel:hover .zjjb-hotel__pic img{ transform:scale(1.09); }
.zjjb-hotel__b{ padding:20px; }
.zjjb-hotel__t{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.zjjb-hotel__t a{ font-size:17.5px; font-weight:700; letter-spacing:.3px; }
.zjjb-hotel:hover .zjjb-hotel__t a{ color:#12463C; color:var(--green); }
.zjjb-hotel__lv{
  flex:none; font-size:12px; font-weight:700; color:#A8863F; color:var(--gold-2);
  background:#F6EFDF; background:var(--gold-l); padding:4px 10px; border-radius:12px;
}
.zjjb-hotel__addr{ margin-top:9px; font-size:13px; color:#8B9A94; color:var(--ink-3); }
.zjjb-hotel__intro{
  margin-top:12px; font-size:13.5px; line-height:1.8; color:#4A5B55; color:var(--ink-2); height:4.9em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.zjjb-hotel__ft{
  margin-top:16px; padding-top:15px; border-top:1px dashed rgba(18,34,30,.13);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.zjjb-hotel__list tr{ border-bottom:1px solid rgba(18,34,30,.07); }
.zjjb-hotel__list td{ padding:14px 8px; font-size:14.5px; vertical-align:middle; }
.zjjb-hotel__list tr:hover td{ background:#EAF3F0; background:var(--green-l); }
.zjjb-hotel__list .c_one a{ color:#12211D; color:var(--ink); font-weight:500; }
.zjjb-hotel__list .c_one a:hover{ color:#12463C; color:var(--green); }
.zjjb-hotel__list .c_two{ width:110px; color:#8B9A94; color:var(--ink-3); font-size:13px; }
.zjjb-hotel__list .c_three{ width:120px; text-align:right; white-space:nowrap; }
.zjjb-hotel__list .c_three b{ font:700 19px/1 Georgia,serif; color:#C8452D; color:var(--red); }

/* ===================================================================
   15. 景点图墙（左）+ 攻略（右）两栏
   =================================================================== */
.zjjb-2col{ display:grid; grid-template-columns:1.12fr 1fr; gap:46px; align-items:start; }
.zjjb-hotels{ display:block; }
.zjjb-sight{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:150px; gap:14px; }
.zjjb-sight a{
  position:relative; display:block; border-radius:16px; overflow:hidden;
  height:100%; background:#12463C; background:var(--green);
}
.zjjb-sight a:nth-child(1){ grid-column:span 2; grid-row:span 2; }
.zjjb-sight a img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--e); }
.zjjb-sight a:hover img{ transform:scale(1.12); }
.zjjb-sight a:after{
  content:""; position:absolute; inset:0;
  background:#0B2B25; background:linear-gradient(to top,rgba(6,26,22,.78),rgba(6,26,22,.05) 62%);
}
.zjjb-sight a span{
  position:absolute; left:16px; right:16px; bottom:14px; z-index:2;
  color:#fff; font-size:15.5px; font-weight:600; letter-spacing:.5px;
  transform:translateY(6px); transition:.4s var(--e);
}
.zjjb-sight a span:before{
  content:""; position:absolute; left:0; bottom:-8px; width:26px; height:2px;
  background:#C8A96A; background:var(--gold); transition:.4s var(--e);
}
.zjjb-sight a:hover span{ transform:none; }
.zjjb-sight a:hover span:before{ width:46px; }

/* ===================================================================
   16. 攻略
   =================================================================== */
.zjjb-arts{ border-top:1px solid rgba(18,34,30,.08); }
/* 注意：模板结构是 <li><i>序号</i><a>标题</a></li>，序号与链接是兄弟节点，
   所以 flex 必须挂在 li 上（早前误写在 a 上，导致序号掉到标题上方单独一行） */
.zjjb-arts li{
  display:flex; align-items:center; gap:14px; padding:15px 4px;
  border-bottom:1px solid rgba(18,34,30,.08); transition:.3s var(--e);
}
.zjjb-arts li:hover{ background:#EAF3F0; background:var(--green-l); padding-left:12px; }
.zjjb-arts li a{
  flex:1; min-width:0; display:block; font-size:15px; color:#12211D; color:var(--ink);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; transition:.3s var(--e);
}
.zjjb-arts li:hover a{ color:#12463C; color:var(--green); }
.zjjb-arts li i{
  flex:none; width:26px; font:700 13px/26px Georgia,serif; text-align:center;
  color:#A8863F; color:var(--gold-2); background:#F6EFDF; background:var(--gold-l);
  border-radius:6px; transition:.3s;
}
.zjjb-arts li:nth-child(1) i,
.zjjb-arts li:nth-child(2) i,
.zjjb-arts li:nth-child(3) i{ background:#C8452D; background:var(--red); color:#fff; }
.zjjb-arts li:hover i{ transform:scale(1.12); }

/* ===================================================================
   17. 服务流程
   =================================================================== */
.zjjb-step{ display:grid; grid-template-columns:repeat(4,1fr); }
.zjjb-step__i{ position:relative; padding:0 18px; text-align:center; }
.zjjb-step__i:after{
  content:""; position:absolute; right:0; top:26px; width:60%; height:1px;
  background:#C8A96A; background:repeating-linear-gradient(90deg,rgba(200,169,106,.7) 0 6px,transparent 6px 12px);
}
.zjjb-step__i:last-child:after{ display:none; }
.zjjb-step__n{
  width:56px; height:56px; margin:0 auto 18px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font:700 20px/1 Georgia,serif; color:#12463C; color:var(--green);
  background:#fff; border:1px solid rgba(200,169,106,.6);
  box-shadow:0 8px 20px rgba(15,40,34,.08); position:relative; z-index:2; transition:.42s var(--e);
}
.zjjb-step__i:hover .zjjb-step__n{
  background:#C8A96A; background:linear-gradient(140deg,#D8BC85,#A8863F); color:#fff; transform:scale(1.1) rotate(-6deg);
}
.zjjb-step__i h4{ font-size:16.5px; font-weight:700; letter-spacing:.5px; }
.zjjb-step__i p{ margin-top:9px; font-size:13.5px; line-height:1.8; color:#4A5B55; color:var(--ink-2); }

/* ===================================================================
   18. 游客评价
   =================================================================== */
.zjjb-review{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.zjjb-review__i{
  position:relative; padding:32px 28px 26px; border-radius:20px;
  background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.10); transition:.42s var(--e);
}
.zjjb-review__i:hover{ background:rgba(255,255,255,.09); transform:translateY(-6px); border-color:rgba(200,169,106,.4); }
.zjjb-review__i:before{ content:""; position:absolute; left:28px; top:20px; width:26px; height:3px; border-radius:2px; background:#C8A96A; background:var(--gold); }
.zjjb-stars{ margin:22px 0 14px; font-size:15px; letter-spacing:3px; color:#C8A96A; color:var(--gold); }
.zjjb-review__i p{ font-size:14.5px; line-height:1.95; color:rgba(255,255,255,.84); }
.zjjb-review__u{
  margin-top:20px; padding-top:16px; border-top:1px solid rgba(255,255,255,.10);
  display:flex; align-items:center; gap:10px;
}
.zjjb-review__u b{ font-size:14.5px; color:#fff; }
.zjjb-review__u span{ font-size:12.5px; color:rgba(255,255,255,.5); }

/* ===================================================================
   19. FAQ
   =================================================================== */
.zjjb-faq{ display:grid; grid-template-columns:repeat(2,1fr); gap:26px 40px; }
.zjjb-faq > div{
  background:#fff; border-radius:16px; padding:22px 24px;
  border:1px solid rgba(18,34,30,.07); transition:.35s var(--e);
}
.zjjb-faq > div:hover{ box-shadow:0 10px 28px rgba(15,40,34,.08); border-color:transparent; }
.zjjb-faq dt{ font-size:16px; font-weight:700; letter-spacing:.5px; margin-bottom:12px; padding-left:14px; position:relative; }
.zjjb-faq dt:before{
  content:""; position:absolute; left:0; top:8px; width:6px; height:6px; border-radius:50%; background:#C8A96A; background:var(--gold);
}
.zjjb-faq li{ border-bottom:1px dashed rgba(18,34,30,.1); }
.zjjb-faq li:last-child{ border-bottom:0; }
.zjjb-faq li a{
  display:block; padding:10px 0 10px 2px; font-size:14.5px; color:#4A5B55; color:var(--ink-2); transition:.25s;
}
.zjjb-faq li a:hover{ color:#12463C; color:var(--green); padding-left:10px; }

/* ===================================================================
   20. 页脚
   =================================================================== */
.zjjb-foot{ background:#0B2B25; background:var(--green-d); color:rgba(255,255,255,.62); padding:46px 0 28px; }
.zjjb-foot__top{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:30px;
  padding-bottom:34px; border-bottom:1px solid rgba(255,255,255,.10);
}
.zjjb-foot h5{ font-size:15px; color:#fff; font-weight:700; letter-spacing:1px; margin-bottom:16px; }
.zjjb-foot p,.zjjb-foot li{ font-size:13.5px; line-height:2; }
.zjjb-foot a:hover{ color:#C8A96A; color:var(--gold); }
.zjjb-foot__brand b{ display:block; font-size:20px; color:#fff; letter-spacing:2px; margin-bottom:12px; font-weight:700; }
.zjjb-foot__tel{ margin:14px 0 6px; }
.zjjb-foot__tel b{ display:block; font:700 26px/1.3 Georgia,serif; color:#C8A96A; color:var(--gold); }
.zjjb-foot__tel small{ font-size:12px; color:rgba(255,255,255,.45); }
.zjjb-foot__nav{ display:flex; flex-wrap:wrap; gap:8px 26px; justify-content:center; padding:22px 0; font-size:13.5px; }
.zjjb-foot__txt{ text-align:center; font-size:13px; line-height:2.1; color:rgba(255,255,255,.48); }
.zjjb-foot__badge{ display:flex; gap:12px; justify-content:center; margin:18px 0; }
.zjjb-foot__badge img{ height:34px; opacity:.7; transition:.3s; }
.zjjb-foot__badge img:hover{ opacity:1; }
.zjjb-links{
  text-align:center; font-size:12.5px; color:rgba(255,255,255,.36);
  padding-top:16px; border-top:1px solid rgba(255,255,255,.08); line-height:2.2;
}
.zjjb-links a{ margin-left:10px; }
.zjjb-links a:hover{ color:#C8A96A; color:var(--gold); }

/* ===================================================================
   21. 悬浮咨询 + 移动底栏
   =================================================================== */
.zjjb-float{
  position:fixed; right:18px; top:50%; transform:translateY(-50%); z-index:300;
  display:flex; flex-direction:column; gap:10px;
}
.zjjb-float__b{
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:3px; width:60px; height:60px; box-sizing:border-box; cursor:pointer; text-decoration:none;
  border-radius:18px; background:#fff; color:#12463C; color:var(--green);
  border:1px solid rgba(18,34,30,.07);
  box-shadow:0 8px 24px rgba(15,40,34,.15);
  transition:.32s var(--e);
}
.zjjb-float__ic{ display:flex; align-items:center; justify-content:center; height:22px; }
.zjjb-float__ic svg{ display:block; fill:currentColor; }
.zjjb-float__lb{ font-size:11px; font-weight:600; line-height:1; letter-spacing:.5px; white-space:nowrap; }
.zjjb-float__b:hover{ transform:translateX(-5px); box-shadow:0 14px 32px rgba(15,40,34,.26); }
/* 电话：主按钮，暖金底 */
.zjjb-float__b--tel{
  background:#C8A96A; background:linear-gradient(140deg,#DCC28E,#C8A96A);
  color:#2A1F0B; border-color:transparent;
}
.zjjb-float__b--tel:hover{ box-shadow:0 14px 34px rgba(200,169,106,.5); }
/* 微信：悬停转深绿，并展开二维码卡片 */
.zjjb-float__b--wx:hover{ background:#12463C; background:var(--green); color:#fff; border-color:transparent; }
/* 悬停时气泡变白，眼睛要跟着变绿，否则白底白眼睛看不见（覆盖 SVG 的 fill="#fff"） */
.zjjb-float__b--wx:hover .zjjb-float__ic svg circle{ fill:#12463C; fill:var(--green); }
/* 回顶：滚动一段距离后才出现 */
.zjjb-float__b--top{ opacity:0; visibility:hidden; transform:translateY(10px); }
.zjjb-float.is-away .zjjb-float__b--top{ opacity:1; visibility:visible; transform:none; }
.zjjb-float.is-away .zjjb-float__b--top:hover{ transform:translateX(-5px); }

/* 微信二维码卡片 */
.zjjb-float__qr{
  position:absolute; right:calc(100% + 16px); top:50%; transform:translate(12px,-50%);
  width:216px; padding:16px 16px 14px; border-radius:18px; background:#fff;
  border:1px solid rgba(18,34,30,.08); box-shadow:0 22px 54px rgba(15,40,34,.26);
  text-align:center; opacity:0; visibility:hidden; transition:.3s var(--e);
}
.zjjb-float__qr:after{
  content:""; position:absolute; right:-6px; top:50%; margin-top:-6px;
  width:12px; height:12px; transform:rotate(45deg); background:#fff;
  border-top:1px solid rgba(18,34,30,.08); border-right:1px solid rgba(18,34,30,.08);
}
.zjjb-float__qr b{ display:block; font-size:13.5px; color:#12463C; color:var(--green); }
.zjjb-float__qr img{ display:block; width:164px; height:164px; margin:12px auto 10px; border-radius:10px; }
.zjjb-float__qr small{ display:block; font-size:11.5px; line-height:1.65; color:#93A29B; color:var(--ink-3); }
.zjjb-float__b--wx:hover .zjjb-float__qr{ opacity:1; visibility:visible; transform:translate(0,-50%); }
.zjjb-mbar{ display:none; }

/* 移动底栏图标：同样纯 CSS 绘制 */
@media (max-width:760px){
  .zjjb-mbar{ display:flex; }
  .zjjb-mbar a:before{ content:""; display:block; margin:0 auto 3px; }
  .zjjb-mbar a:nth-child(1):before{                 /* 首页：屋顶 + 屋身 */
    width:16px; height:14px; background:currentColor;
    -webkit-clip-path:polygon(50% 0,100% 38%,100% 100%,0 100%,0 38%);
    clip-path:polygon(50% 0,100% 38%,100% 100%,0 100%,0 38%);
  }
  .zjjb-mbar a:nth-child(2):before{                 /* 线路：三条横线 */
    width:15px; height:2px; background:currentColor; box-shadow:0 5px 0 currentColor,0 -5px 0 currentColor;
  }
  .zjjb-mbar a:nth-child(3):before{                 /* 电话：手机 */
    width:11px; height:16px; border:2px solid currentColor; border-radius:3px;
  }
  .zjjb-mbar a:nth-child(4):before{                 /* 住宿：床 */
    width:16px; height:8px; border:1.8px solid currentColor; border-top-width:3px;
    border-radius:2px 2px 1px 1px;
  }
}

/* 咨询列表条目：悬停时右侧浮出箭头 */
.zjjb-faq li a{ position:relative; padding-right:24px; }
.zjjb-faq li a:after{
  content:""; position:absolute; right:6px; top:50%; width:6px; height:6px;
  border-right:1.6px solid currentColor; border-top:1.6px solid currentColor;
  transform:translateY(-50%) rotate(45deg); opacity:0; transition:.25s var(--e);
}
.zjjb-faq li a:hover:after{ opacity:.8; right:0; }


/* ===================================================================
   21.5 留资弹窗（首页「免费获取我的行程方案」）
   打开时把表单内容 POST 到 skin/zjj-b/lead.php，由服务端转发到微信
   =================================================================== */
.zjjb-modal{
  position:fixed; left:0; top:0; right:0; bottom:0; z-index:900;
  display:flex; align-items:center; justify-content:center; padding:20px;
  opacity:0; visibility:hidden; transition:.28s var(--e);
}
.zjjb-modal.is-on{ opacity:1; visibility:visible; }
.zjjb-modal__mask{
  position:absolute; left:0; top:0; right:0; bottom:0;
  background:rgba(8,26,22,.62);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
}
.zjjb-modal__box{
  position:relative; width:100%; max-width:520px; max-height:92vh; overflow:auto;
  background:#fff; border-radius:22px; padding:30px 30px 24px;
  box-shadow:0 30px 80px rgba(0,0,0,.42);
  transform:translateY(18px) scale(.98); transition:.34s var(--e);
  -webkit-overflow-scrolling:touch;
}
.zjjb-modal.is-on .zjjb-modal__box{ transform:none; }
.zjjb-modal__box h3{
  font-size:21px; font-weight:700; color:#12211D; color:var(--ink); letter-spacing:.5px;
}
.zjjb-modal__sub{
  margin:8px 0 20px; font-size:13px; line-height:1.7; color:#8B9A94; color:var(--ink-3);
}
.zjjb-modal__x{
  position:absolute; right:18px; top:18px; width:32px; height:32px; padding:0;
  border:0; border-radius:50%; background:#F1EFE9; cursor:pointer; transition:.25s var(--e);
}
.zjjb-modal__x:before,.zjjb-modal__x:after{
  content:""; position:absolute; left:50%; top:50%; width:13px; height:1.8px;
  margin:-1px 0 0 -6.5px; border-radius:1px; background:#5C6B65; background:var(--ink-2);
}
.zjjb-modal__x:before{ transform:rotate(45deg); }
.zjjb-modal__x:after{ transform:rotate(-45deg); }
.zjjb-modal__x:hover{ background:#12463C; background:var(--green); }
.zjjb-modal__x:hover:before,.zjjb-modal__x:hover:after{ background:#fff; }

.zjjb-form__row{ display:flex; gap:14px; }
/* 蜜罐字段：正常用户看不到，只有机器人会填 → 填了就丢弃 */
.zjjb-form__hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }
.zjjb-form label{ display:block; flex:1; min-width:0; margin-bottom:14px; }
.zjjb-form label > span{
  display:block; margin-bottom:6px; font-size:12.5px; font-weight:600;
  color:#4A5B55; color:var(--ink-2);
}
/* 必填星号 / 选填标注 */
.zjjb-form__req{ margin-left:3px; color:#A6331F; color:var(--red); font-weight:700; }
.zjjb-form__opt{ margin-left:4px; font-weight:400; font-size:11.5px; color:#93A29B; color:var(--ink-3); }
.zjjb-form input,.zjjb-form textarea{
  display:block; width:100%; box-sizing:border-box; padding:11px 14px;
  font:inherit; font-size:14px; color:#12211D; color:var(--ink);
  background:#F7F5F1; background:var(--paper);
  border:1px solid rgba(18,34,30,.1); border-radius:11px;
  transition:.25s var(--e); -webkit-appearance:none;
}
.zjjb-form textarea{ resize:vertical; min-height:78px; line-height:1.65; }
.zjjb-form input:focus,.zjjb-form textarea:focus{
  outline:0; background:#fff; border-color:#12463C; border-color:var(--green);
  box-shadow:0 0 0 3px rgba(18,70,60,.1);
}
.zjjb-form input::-webkit-input-placeholder,.zjjb-form textarea::-webkit-input-placeholder{ color:#A9B4AF; }

/* 日期选择器：点一下弹日历；不支持的老浏览器自动退化成文本框，不影响填写 */
.zjjb-form input[type="date"]{
  min-height:43px; line-height:1.4; text-align:left;
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
}
.zjjb-form input[type="date"]::-webkit-calendar-picker-indicator{
  width:18px; height:18px; margin-left:4px; padding:0; cursor:pointer;
  opacity:.5; transition:.2s var(--e);
}
.zjjb-form input[type="date"]:hover::-webkit-calendar-picker-indicator,
.zjjb-form input[type="date"]:focus::-webkit-calendar-picker-indicator{ opacity:1; }
.zjjb-form__hint{
  display:block; margin-top:5px; font-size:11.5px; line-height:1.5;
  color:#93A29B; color:var(--ink-3);
}

/* 校验没通过：输入框转红 + 字段下方红字 */
.zjjb-form label.is-bad input,.zjjb-form label.is-bad textarea{
  border-color:#A6331F; border-color:var(--red); background:#FFF7F5;
}
.zjjb-form label.is-bad input:focus,.zjjb-form label.is-bad textarea:focus{
  box-shadow:0 0 0 3px rgba(166,51,31,.13);
}
.zjjb-form__fe{
  display:block; margin-top:5px; font-size:11.5px; line-height:1.5;
  color:#A6331F; color:var(--red);
}
.zjjb-form__btn{
  display:flex; align-items:center; justify-content:center; width:100%; height:50px;
  margin-top:4px; border:0; border-radius:13px; cursor:pointer;
  font:700 15.5px/1 inherit; letter-spacing:1px; color:#2A1F0B;
  background:#C8A96A; background:linear-gradient(135deg,#DCC28E,#C8A96A);
  box-shadow:0 10px 26px rgba(200,169,106,.42); transition:.3s var(--e);
}
.zjjb-form__btn:hover{ transform:translateY(-2px); box-shadow:0 16px 34px rgba(200,169,106,.55); }
.zjjb-form__btn:disabled{ opacity:.62; cursor:default; transform:none; box-shadow:none; }
.zjjb-form__tip{
  margin-top:12px; font-size:11.5px; line-height:1.65; text-align:center;
  color:#93A29B; color:var(--ink-3);
}
.zjjb-form__err{
  margin-top:10px; padding:9px 12px; border-radius:9px; font-size:12.5px;
  color:#A6331F; background:#FBEDE9; background:var(--red-l);
}
/* 提交成功 */
.zjjb-ok{ text-align:center; padding:12px 0 4px; }
.zjjb-ok__ic{
  width:62px; height:62px; margin:0 auto 16px; border-radius:50%; position:relative;
  background:#12463C; background:var(--green); box-shadow:0 12px 30px rgba(18,70,60,.3);
}
.zjjb-ok__ic:after{
  content:""; position:absolute; left:50%; top:46%; width:22px; height:11px;
  border-left:2.6px solid #fff; border-bottom:2.6px solid #fff;
  transform:translate(-50%,-50%) rotate(-45deg); border-radius:1px;
}
.zjjb-ok b{ display:block; font-size:19px; color:#12211D; color:var(--ink); }
.zjjb-ok p{ margin-top:10px; font-size:13.5px; line-height:1.8; color:#4A5B55; color:var(--ink-2); }
.zjjb-ok a{ color:#12463C; color:var(--green); font-weight:700; }

@media (max-width:760px){
  .zjjb-modal{ padding:0; align-items:flex-end; }
  .zjjb-modal__box{
    max-width:none; max-height:94vh; border-radius:22px 22px 0 0;
    padding:26px 20px 22px; transform:translateY(30px);
  }
  .zjjb-modal__box h3{ font-size:19px; }
  .zjjb-modal__x{ right:14px; top:14px; }
  .zjjb-form__row{ display:block; }
  .zjjb-form__row label{ margin-bottom:14px; }
}


/* ===================================================================
   22. 滚动进场 + 图片懒加载渐显
   =================================================================== */
/* 进场动画：只有确认 JS 可用（html.js）才先隐藏，确保无 JS 时内容始终可见 */
.js .zjjb-rv{ opacity:0; transform:translateY(28px); }
.js .zjjb-rv.is-in{ opacity:1; transform:none; transition:opacity .8s var(--e),transform .8s var(--e); }
/* 图片懒加载渐显：class 由 JS 动态打在尚未加载完的图上，避免首屏闪烁 */
.js img.zjjb-lazy{ opacity:0; }
.js img.zjjb-lazy.is-load{ opacity:1; transition:opacity .7s ease; }
.zjjb-ph{
  position:relative; overflow:hidden;
  background:#EDEAE3; background:linear-gradient(100deg,#EDEAE3 18%,#F6F4EF 34%,#EDEAE3 52%);
  background-size:220% 100%; animation:zjjbShine 1.5s linear infinite;
}
.zjjb-ph.is-load{ animation:none; }
@keyframes zjjbShine{ from{ background-position:120% 0; } to{ background-position:-40% 0; } }
#zjjbBar{
  position:fixed; left:0; top:0; height:2px; z-index:999; width:0;
  background:#C8A96A; background:linear-gradient(90deg,#C8A96A,#D8BC85);
  transition:width .3s ease,opacity .4s ease; pointer-events:none;
}

/* ===================================================================
   23. 响应式
   =================================================================== */
@media (max-width:1180px){
  .zjjb-cards{ gap:18px; }
  .zjjb-rank{ grid-template-columns:repeat(2,1fr); }
  .zjjb-why{ grid-template-columns:repeat(2,1fr); }
  .zjjb-foot__top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:1024px){
  .zjjb-entry{ grid-template-columns:repeat(3,1fr); }
  .zjjb-nav ul{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .zjjb-wide__pt{ grid-template-columns:1fr 1fr; }
  .zjjb-find{ display:none; }
}
@media (max-width:900px){
  .zjjb-hero{ height:560px; min-height:480px; max-height:none; }
  .zjjb-slide__t{ font-size:38px; }
  .zjjb-slide__d{ font-size:15px; }
  .zjjb-slide__meta{ display:none; }
  .zjjb-cards{ grid-template-columns:repeat(2,1fr); }
  .zjjb-stay{ grid-template-columns:1fr; }
  .zjjb-hotel__pic{ height:200px; }
  .zjjb-review{ grid-template-columns:1fr; }
  .zjjb-step{ grid-template-columns:repeat(2,1fr); gap:26px 0; }
  .zjjb-step__i:after{ display:none; }
  .zjjb-faq{ grid-template-columns:1fr; }
  .zjjb-sight{ grid-template-columns:repeat(2,1fr); grid-auto-rows:132px; }
  .zjjb-sight a:nth-child(1){ grid-column:span 1; grid-row:span 1; }
  .zjjb-2col{ grid-template-columns:1fr; gap:38px; }
  .zjjb-sec{ padding:56px 0; }
  .zjjb-hd h2{ font-size:27px; }
  .zjjb-hd{ margin-bottom:26px; }
  .zjjb-foot__top{ grid-template-columns:1fr; gap:22px; }
  .zjjb-facts__in{ grid-template-columns:repeat(2,1fr); }
  .zjjb-fact:nth-child(3):before{ top:0; left:12%; right:12%; bottom:auto; width:auto; height:1px; }
  .zjjb-wide h2{ font-size:30px; }
  .zjjb-float{ display:none; }
}
@media (max-width:760px){
  body{ font-size:14.5px; padding-bottom:58px; }
  .zjjb-wrap{ padding:0 16px; }
  .zjjb-bar{ display:none; }
  .zjjb-head .zjjb-wrap{ height:64px; gap:12px; }
  .zjjb-brand__mark{ width:38px; height:38px; border-radius:10px; }
  .zjjb-brand__mark:before{ left:7px; border-width:0 6px 10px 6px; }
  .zjjb-brand__mark:after{ left:18px; border-width:0 8px 15px 8px; }
  .zjjb-brand__t b{ font-size:17px; letter-spacing:1px; }
  .zjjb-brand__t small{ display:none; }
  .zjjb-hotline b{ font-size:19px; }
  .zjjb-head__r .zjjb-btn-gold{ display:none; }
  .zjjb-hotline small{ display:none; }
  .zjjb-hotline b{ font-size:19px; letter-spacing:.3px; }
  .zjjb-subnav{ display:none; }
  .zjjb-nav{ border-top:0; box-shadow:0 2px 10px rgba(15,40,34,.06); }
  .zjjb-nav > .zjjb-wrap{ height:48px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .zjjb-nav > .zjjb-wrap::-webkit-scrollbar{ display:none; }
  .zjjb-nav ul{ gap:0; }
  .zjjb-nav li a{ padding:8px 11px; font-size:14px; }
  .zjjb-nav li a:after{ left:11px; right:11px; }

  .zjjb-hero{ height:auto; min-height:0; }
  .zjjb-slide__c{ padding:48px 20px 56px; min-height:420px; height:auto; }
  .zjjb-slide__en{ font-size:11px; margin-bottom:14px; letter-spacing:.3em; }
  .zjjb-slide__t{ font-size:27px; line-height:1.35; max-width:none; }
  .zjjb-slide__d{ font-size:14px; margin-top:14px; line-height:1.8; }
  .zjjb-slide__act{ margin-top:22px; gap:10px; }
  .zjjb-btn{ height:46px; padding:0 24px; font-size:14.5px; border-radius:23px; }
  .zjjb-dots{ bottom:18px; gap:8px; }
  .zjjb-dots button{ width:20px; }
  .zjjb-dots button.is-on{ width:34px; }
  .zjjb-hero__arrow{ display:none; }

  .zjjb-facts{ margin-top:-30px; padding:0 16px; }
  .zjjb-facts__in{ border-radius:14px; }
  .zjjb-fact{ padding:20px 8px; }
  .zjjb-fact b{ font-size:24px; }

  .zjjb-sec{ padding:38px 0; }
  .zjjb-sec--tight{ padding:28px 0; }
  .zjjb-hd{ margin-bottom:20px; }
  .zjjb-hd h2{ font-size:22px; }
  .zjjb-hd__en{ margin-bottom:8px; font-size:10px; letter-spacing:.24em; }
  .zjjb-hd__sub{ margin-top:6px; font-size:12.5px; }
  .zjjb-more{ font-size:12.5px; }

  .zjjb-entry{ grid-template-columns:repeat(3,1fr); gap:10px; }
  .zjjb-entry__hd{ margin-bottom:16px; font-size:12.5px; }
  .zjjb-entry a{ padding:18px 8px 16px; border-radius:14px; }
  .zjjb-entry em{ width:40px; height:40px; margin-bottom:10px; border-radius:11px; }
  .zjjb-entry b{ font-size:13px; letter-spacing:0; }
  .zjjb-entry small{ display:none; }

  .zjjb-tabs{ gap:8px; margin-bottom:18px; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:4px; }
  .zjjb-tabs::-webkit-scrollbar{ display:none; }
  .zjjb-tabs button{ height:38px; padding:0 16px; font-size:13.5px; flex:none; }

  .zjjb-cards{ grid-template-columns:repeat(2,1fr); gap:12px; }
  .zjjb-card{ border-radius:14px; }
  .zjjb-card__pic{ height:132px; }
  .zjjb-card__bd{ padding:13px 13px 15px; }
  .zjjb-card__t{ font-size:14.5px; line-height:1.45; }
  .zjjb-card__d{ display:none; }
  .zjjb-card__no,.zjjb-card__days{ padding:3px 8px; font-size:11px; top:8px; }
  .zjjb-card__no{ left:8px; } .zjjb-card__days{ right:8px; }
  .zjjb-card__mask{ padding:10px 11px; font-size:11.5px; gap:10px; }
  .zjjb-card__ft{ margin-top:12px; padding-top:11px; }
  .zjjb-price b{ font-size:22px; }
  .zjjb-go{ height:32px; padding:0 12px; font-size:12px; border-radius:16px; }

  .zjjb-rank{ grid-template-columns:1fr; gap:12px; }
  .zjjb-rank__i{ padding:13px; border-radius:14px; gap:12px; }
  .zjjb-rank__pic{ width:80px; height:66px; }
  .zjjb-rank__t{ font-size:14px; }
  .zjjb-rank__ft b{ font-size:18px; }

  .zjjb-wide{ min-height:0; }
  .zjjb-wide .zjjb-wrap{ padding:40px 16px; }
  .zjjb-wide h2{ font-size:23px; }
  .zjjb-wide p{ font-size:14px; margin-top:12px; }
  .zjjb-wide__pt{ grid-template-columns:1fr; gap:9px; margin-top:20px; }

  .zjjb-why{ grid-template-columns:1fr 1fr; gap:12px; }
  .zjjb-why__i{ padding:20px 16px 18px; border-radius:14px; }
  .zjjb-why__i h3{ font-size:15.5px; }
  .zjjb-why__i p{ display:none; }
  .zjjb-why__n{ margin-bottom:0; }

  .zjjb-sight{ grid-template-columns:repeat(2,1fr); gap:8px; }
  .zjjb-sight a{ height:104px; border-radius:11px; }
  .zjjb-sight a:nth-child(1){ height:148px; }
  .zjjb-sight a span{ left:11px; right:11px; bottom:9px; font-size:13px; transform:none; }

  .zjjb-arts li a{ padding:12px 2px; gap:10px; }
  .zjjb-arts li span{ font-size:14px; }

  .zjjb-step{ grid-template-columns:1fr 1fr; gap:18px 0; }
  .zjjb-step__i{ padding:0 10px; }
  .zjjb-step__n{ width:44px; height:44px; font-size:16px; margin-bottom:10px; }
  .zjjb-step__i h4{ font-size:14.5px; }
  .zjjb-step__i p{ display:none; }

  .zjjb-review{ gap:12px; }
  .zjjb-review__i{ padding:22px 18px 18px; border-radius:14px; }
  .zjjb-review__i p{ font-size:13.5px; line-height:1.85; }

  .zjjb-faq{ gap:12px; }
  .zjjb-faq > div{ padding:16px 16px 14px; border-radius:12px; }
  .zjjb-faq dt{ font-size:14.5px; margin-bottom:8px; }
  .zjjb-faq li a{ padding:8px 0; font-size:13.5px; }

  .zjjb-foot{ padding:34px 0 24px; }
  .zjjb-foot__top{ padding-bottom:22px; }
  .zjjb-foot__txt{ font-size:12px; }
  .zjjb-links{ display:none; }

  .zjjb-mbar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:320;
    background:rgba(255,255,255,.97);
    -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
    border-top:1px solid rgba(18,34,30,.08);
    box-shadow:0 -4px 20px rgba(15,40,34,.08);
    padding-bottom:0; padding-bottom:env(safe-area-inset-bottom);
  }
  .zjjb-mbar a{
    flex:1; height:52px; display:flex; flex-direction:column; align-items:center;
    justify-content:center; font-size:11.5px; color:#4A5B55; color:var(--ink-2); gap:2px;
  }
  .zjjb-mbar a:before{
    content:""; width:15px; height:15px; border:1.5px solid currentColor; border-radius:4px; opacity:.85;
  }
  .zjjb-mbar a.hot{ color:#fff; background:#C8452D; background:linear-gradient(135deg,#D2452D,#C8452D); font-weight:700; font-size:12.5px; }
  .zjjb-mbar a.hot:before{ border-color:#fff; }
}
@media (max-width:420px){
  .zjjb-cards{ grid-template-columns:1fr; }
  .zjjb-card__pic{ height:176px; }
  .zjjb-card__d{ display:block; }
}
/* ===================================================================
   24. 空值自动隐藏（配合「纯 HTML 标签模板」）
   原理：标签模板写成 <span class="x">[!--字段--]</span> 且标签内不留空格，
        字段为空时该元素即为 :empty，这里统一收掉，避免出现空框、空行。
   ★ 前提：标签之间不要加空格或换行，否则永远「非空」
   =================================================================== */
.zjjb-card__no:empty,
.zjjb-card__days:empty,
.zjjb-litem__no:empty,
.zjjb-litem__days:empty,
.zjjb-litem__tags:empty,
.zjjb-litem__d:empty,
.zjjb-dsum__no:empty,
.zjjb-dsec:empty,
.zjjb-card__mask:empty,
.zjjb-card__mask span:empty,
.zjjb-card__d:empty,
.zjjb-card__t:empty,
.zjjb-hotel__lv:empty,
.zjjb-hotel__addr:empty,
.zjjb-hotel__intro:empty,
.zjjb-hotel__t:empty,
.zjjb-rank__t:empty,
.zjjb-price del:empty,
.zjjb-sight a span:empty,
.zjjb-arts li span:empty{ display:none; }
.zjjb-price small:empty{ display:none; }
/* 价格为空时整块不占位 */
.zjjb-price:empty{ display:none; }
/* 帝国默认占位图（notimg.gif）：字段无图时系统会自动填它，这里直接不显示 */
img[src*="notimg"]{ display:none; }
/* 图片缺失时把图框底色也收掉，避免一块灰色 */
.zjjb-card__pic img[src*="notimg"]{ visibility:hidden; }

/* ===================================================================
   25. 线路页通用：面包屑 / 页头 / 两栏 / 侧栏
   （封面页 /l/、列表页 /l/p/、内容页 /l/p/A1.html 共用）
   =================================================================== */

/* ★★ 栅格子项兜底（2026-10-14 实测踩坑，勿删）
   grid-template-columns 写 1fr 时，它的最小值其实是 auto，
   会被格子内长文本 / 图片的 min-content 顶大 → 栅格撑破父容器 → 整页横向溢出。
   给子项加 min-width:0，格子就能被压缩（内容照常换行）。
   实测：内容页 390px 下曾因缺这条，栅格被顶到 406px（父容器只有 358px），
   整页多出 48px 横向滚动。 */
.zjjb-main > *,
.zjjb-dsum > *,
.zjjb-litem > *,
.zjjb-cards > *,
.zjjb-rank > *,
.zjjb-why > *,
.zjjb-review > *,
.zjjb-faq > *,
.zjjb-entry > *,
.zjjb-dnum > *,
.zjjb-step > *,
.zjjb-stay > *,
.zjjb-2col > *,
.zjjb-foot__top > *{ min-width:0; }

.zjjb-crumb{
  font-size:13px; line-height:1.6; color:#93A29B; color:var(--ink-3);
}
.zjjb-crumb a{ color:#4A5B55; color:var(--ink-2); }
.zjjb-crumb a:hover{ color:#12463C; color:var(--green); }
.zjjb-crumb i{ font-style:normal; margin:0 8px; opacity:.55; }
.zjjb-crumb em{ font-style:normal; color:#4A5B55; color:var(--ink-2); }

/* 页头：深色通栏 + 背景图 */
.zjjb-phead{ position:relative; overflow:hidden; background:#0B2B25; background:var(--green-d); }
.zjjb-phead__bg{ position:absolute; left:0; right:0; top:0; bottom:0; z-index:0; }
.zjjb-phead__bg img{ width:100%; height:100%; object-fit:cover; opacity:.42; }
.zjjb-phead__bg:after{
  content:""; position:absolute; inset:0;
  background:#0B2B25; background:linear-gradient(100deg,rgba(9,32,27,.94) 12%,rgba(9,32,27,.6) 62%,rgba(9,32,27,.35));
}
.zjjb-phead__in{ position:relative; z-index:2; padding:30px 0 42px; color:#fff; }
.zjjb-phead__in .zjjb-crumb{ color:rgba(255,255,255,.6); margin-bottom:16px; }
.zjjb-phead__in .zjjb-crumb a{ color:rgba(255,255,255,.8); }
.zjjb-phead__in .zjjb-crumb a:hover{ color:#D8BC85; color:var(--gold-2); }
.zjjb-phead__in .zjjb-crumb em{ color:rgba(255,255,255,.7); }
.zjjb-phead h1{
  font-size:36px; font-weight:700; line-height:1.3; letter-spacing:1px; margin:0;
}
.zjjb-phead h1 em{ font-style:normal; color:#D8BC85; color:var(--gold-2); }
.zjjb-phead__sub{
  margin-top:14px; max-width:760px; font-size:15px; line-height:1.85; color:rgba(255,255,255,.72);
}
.zjjb-phead__tags{ display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.zjjb-phead__tags span{
  height:30px; padding:0 14px; border-radius:15px; font-size:12.5px; line-height:30px;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.16); color:rgba(255,255,255,.86);
}

/* 两栏主体
   ★ minmax(0,1fr) 而不是 1fr：见 §27 .zjjb-dsum 上方那段说明 */
.zjjb-main{ display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:34px; padding:40px 0 56px; align-items:start; }
.zjjb-main > *{ min-width:0; }
.zjjb-side{ position:sticky; top:88px; min-width:0; }
.zjjb-side--static{ position:static; }

/* 侧栏白卡 */
.zjjb-sbox{
  background:#fff; border-radius:18px; padding:22px; margin-bottom:18px;
  border:1px solid rgba(18,34,30,.07); box-shadow:0 2px 10px rgba(15,40,34,.04);
}
.zjjb-sbox__hd{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding-bottom:12px; margin-bottom:14px; border-bottom:1px solid rgba(18,34,30,.08);
}
.zjjb-sbox__hd b{ font-size:15.5px; font-weight:700; color:#12211D; color:var(--ink); letter-spacing:.4px; }
.zjjb-sbox__hd a{ font-size:12.5px; color:#93A29B; color:var(--ink-3); }
.zjjb-sbox__hd a:hover{ color:#12463C; color:var(--green); }

/* 侧栏：咨询卡 */
.zjjb-ask{ background:#12463C; background:var(--green); color:#fff; border-color:transparent; }
.zjjb-ask b{ font-size:17px; font-weight:700; display:block; }
.zjjb-ask p{ margin-top:8px; font-size:12.5px; line-height:1.7; color:rgba(255,255,255,.72); }
.zjjb-ask__tel{
  display:flex; align-items:center; justify-content:center; gap:8px; height:46px; margin-top:16px;
  border-radius:12px; font-size:19px; font-weight:700; letter-spacing:.5px;
  color:#2A1F0B; background:#C8A96A; background:linear-gradient(135deg,#DCC28E,#C8A96A);
  box-shadow:0 8px 20px rgba(200,169,106,.34); transition:.3s var(--e);
}
.zjjb-ask__tel:hover{ transform:translateY(-2px); box-shadow:0 12px 26px rgba(200,169,106,.5); }
.zjjb-ask__btn{
  display:flex; align-items:center; justify-content:center; height:44px; margin-top:10px;
  border-radius:12px; font-size:14px; font-weight:600;
  border:1px solid rgba(255,255,255,.34); color:#fff; transition:.28s var(--e);
}
.zjjb-ask__btn:hover{ background:rgba(255,255,255,.12); }
.zjjb-ask__wx{ display:block; margin:14px auto 0; width:130px; border-radius:10px; background:#fff; padding:7px; }
.zjjb-ask__tip{ margin-top:10px; font-size:11.5px; text-align:center; color:rgba(255,255,255,.6); }

/* 侧栏：小榜单 */
.zjjb-srank li{ display:flex; gap:11px; padding:11px 0; border-bottom:1px dashed rgba(18,34,30,.09); }
.zjjb-srank li:last-child{ border-bottom:0; padding-bottom:0; }
.zjjb-srank i{
  flex:none; width:20px; height:20px; margin-top:2px; border-radius:50%;
  font:700 11px/20px Georgia,serif; font-style:normal; text-align:center;
  color:#fff; background:#B9C2BE; background:var(--ink-3);
}
.zjjb-srank li:nth-child(1) i{ background:#C8452D; background:var(--red); }
.zjjb-srank li:nth-child(2) i{ background:#C8A96A; background:var(--gold); }
.zjjb-srank li:nth-child(3) i{ background:#1C6B58; background:var(--green-2); }
.zjjb-srank li > div{ flex:1; min-width:0; }
.zjjb-srank a{
  font-size:13.5px; line-height:1.5; color:#4A5B55; color:var(--ink-2);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.zjjb-srank a:hover{ color:#12463C; color:var(--green); }
.zjjb-srank small{ display:block; margin-top:4px; font-size:12px; color:#C8452D; color:var(--red); font-weight:700; }

/* 侧栏：链接组（按天数 / 按玩法） */
.zjjb-slink{ display:flex; flex-wrap:wrap; gap:8px; }
.zjjb-slink a{
  padding:7px 14px; border-radius:8px; font-size:13px;
  background:#F7F5F1; background:var(--paper); color:#4A5B55; color:var(--ink-2); transition:.24s var(--e);
}
.zjjb-slink a:hover{ background:#12463C; background:var(--green); color:#fff; }

/* 侧栏：保障清单 */
.zjjb-sok li{ display:flex; gap:9px; padding:8px 0; font-size:13px; line-height:1.6; color:#4A5B55; color:var(--ink-2); }
.zjjb-sok li:before{
  content:""; flex:none; width:14px; height:14px; margin-top:3px; border-radius:50%;
  background:#EAF3F0; background:var(--green-l);
  box-shadow:inset 0 0 0 2px #1C6B58;
}

/* ===================================================================
   26. 列表页：横向线路卡片
   =================================================================== */
.zjjb-lbar{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  padding-bottom:16px; margin-bottom:22px; border-bottom:1px solid rgba(18,34,30,.09);
}
.zjjb-lbar b{ font-size:16px; font-weight:700; color:#12211D; color:var(--ink); }
.zjjb-lbar b em{ font-style:normal; color:#C8452D; color:var(--red); }
.zjjb-lbar span{ font-size:13px; color:#93A29B; color:var(--ink-3); }

.zjjb-llist{ display:flex; flex-direction:column; gap:20px; }
.zjjb-litem{
  display:grid; grid-template-columns:300px 1fr; background:#fff; border-radius:18px; overflow:hidden;
  border:1px solid rgba(18,34,30,.07); transition:transform .38s var(--e),box-shadow .38s var(--e);
}
.zjjb-litem:hover{ transform:translateY(-5px); box-shadow:0 14px 36px rgba(15,40,34,.13); border-color:transparent; }
.zjjb-litem__pic{ position:relative; display:block; overflow:hidden; background:#EAF3F0; background:var(--green-l); min-height:214px; }
.zjjb-litem__pic img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--e); }
.zjjb-litem:hover .zjjb-litem__pic img{ transform:scale(1.07); }
.zjjb-litem__no{
  position:absolute; left:12px; top:12px; z-index:3; padding:5px 12px; border-radius:999px;
  font-size:12px; font-weight:700; letter-spacing:.5px; color:#3A2B10;
  background:rgba(200,169,106,.94); background:rgba(200,169,106,.94); box-shadow:0 4px 12px rgba(0,0,0,.18);
}
.zjjb-litem__days{
  position:absolute; right:12px; top:12px; z-index:3; padding:5px 12px; border-radius:999px;
  font-size:12px; font-weight:700; color:#fff; background:rgba(10,34,29,.72);
}
.zjjb-litem__bd{ padding:22px 24px; display:flex; flex-direction:column; }
.zjjb-litem__t{ font-size:19px; font-weight:700; line-height:1.45; letter-spacing:.3px; }
.zjjb-litem__t a{ color:#12211D; color:var(--ink); transition:.2s; }
.zjjb-litem:hover .zjjb-litem__t a{ color:#12463C; color:var(--green); }
.zjjb-litem__tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.zjjb-litem__tags span{
  padding:4px 11px; border-radius:6px; font-size:12.5px;
  background:#F7F5F1; background:var(--paper); color:#4A5B55; color:var(--ink-2);
}
.zjjb-litem__d{
  margin-top:12px; font-size:13.5px; line-height:1.8; color:#4A5B55; color:var(--ink-2);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.zjjb-litem__ft{
  margin-top:auto; padding-top:16px; display:flex; align-items:flex-end; justify-content:space-between; gap:16px;
}

/* 分页
   ★ 帝国默认的下拉式分页 [!--show.page--] 输出的是「页次：1/1 每页12 总数11 …
     首页 上一页 下一页 尾页 转到:<select>」—— 是一段文字 + 若干链接 + 一个下拉框，
     不是规整的页码列表。所以这里用后代选择器把里面的元素都收一遍，两种输出都能看。 */
.zjjb-page{
  padding:30px 0 0; text-align:center;
  font-size:13px; line-height:2.4; color:#93A29B; color:var(--ink-3);
}
.zjjb-page a,.zjjb-page b,.zjjb-page strong{
  display:inline-block; min-width:36px; height:36px; padding:0 13px; margin:0 3px;
  border-radius:10px; line-height:36px; vertical-align:middle;
  font-size:13.5px; font-weight:400; background:#fff; border:1px solid rgba(18,34,30,.1);
  color:#4A5B55; color:var(--ink-2); transition:.24s var(--e);
}
.zjjb-page a:hover{ background:#12463C; background:var(--green); color:#fff; border-color:transparent; }
.zjjb-page b,.zjjb-page strong{ background:#12463C; background:var(--green); color:#fff; border-color:transparent; font-weight:700; }
.zjjb-page select{
  height:36px; margin:0 4px; padding:0 8px; vertical-align:middle;
  font:inherit; font-size:13.5px; color:#12211D; color:var(--ink);
  background:#fff; border:1px solid rgba(18,34,30,.12); border-radius:10px;
}
.zjjb-page em{ font-style:normal; color:#C8452D; color:var(--red); font-weight:700; }

/* 空列表 */
.zjjb-empty{
  padding:60px 20px; text-align:center; background:#fff; border-radius:18px;
  border:1px dashed rgba(18,34,30,.14); color:#93A29B; color:var(--ink-3); font-size:14px;
}

/* 封面页：按天数挑（大数字块） */
.zjjb-dnum{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
.zjjb-dnum a{
  display:block; padding:22px 10px 18px; text-align:center; border-radius:16px;
  background:#fff; border:1px solid rgba(18,34,30,.07); transition:.34s var(--e);
}
.zjjb-dnum a:hover{
  transform:translateY(-6px); border-color:transparent; background:#12463C; background:var(--green);
  box-shadow:0 14px 32px rgba(15,40,34,.16);
}
.zjjb-dnum b{
  display:block; font:700 34px/1 Georgia,"Times New Roman",serif;
  color:#12463C; color:var(--green); transition:.34s var(--e);
}
.zjjb-dnum em{
  display:block; margin-top:5px; font-style:normal; font-weight:600; font-size:13.5px;
  color:#12211D; color:var(--ink); transition:.34s var(--e);
}
.zjjb-dnum small{
  display:block; margin-top:9px; font-size:11.5px; line-height:1.5;
  color:#93A29B; color:var(--ink-3); transition:.34s var(--e);
}
.zjjb-dnum a:hover b{ color:#D8BC85; color:var(--gold-2); }
.zjjb-dnum a:hover em{ color:#fff; }
.zjjb-dnum a:hover small{ color:rgba(255,255,255,.7); }

/* 双栏里的卡片网格改成单列，避免半宽下挤成 3 列 */
.zjjb-2col .zjjb-cards{ grid-template-columns:1fr; gap:16px; }
.zjjb-2col .zjjb-card__pic{ height:180px; }

/* ===================================================================
   27. 内容页：概要条 / 锚点导航 / 章节 / 预订卡
   =================================================================== */
/* ★ 网格列一律写 minmax(0,1fr)：只写 1fr 时它的最小值是 auto，
   会被内容（章节导航 / UEditor 表格）的 min-content 顶大，
   在窄屏上直接把栅格撑破父容器 → 整页横向溢出。
   另外给栅格子项补 min-width:0，双保险。 */
.zjjb-dsum{ display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:26px; padding:34px 0 0; }
.zjjb-dsum > *{ min-width:0; }
.zjjb-dsum__pic{ position:relative; border-radius:18px; overflow:hidden; background:#EAF3F0; background:var(--green-l); }
.zjjb-dsum__pic img{ display:block; width:100%; height:340px; object-fit:cover; }
.zjjb-dsum__no{
  position:absolute; left:16px; top:16px; padding:6px 14px; border-radius:999px;
  font-size:13px; font-weight:700; letter-spacing:.6px; color:#3A2B10;
  background:rgba(200,169,106,.95); box-shadow:0 5px 14px rgba(0,0,0,.2);
}
.zjjb-dsum__card{
  background:#fff; border-radius:18px; padding:24px;
  border:1px solid rgba(18,34,30,.07); box-shadow:0 4px 16px rgba(15,40,34,.06);
}
.zjjb-dsum__price{ display:flex; align-items:baseline; gap:4px; }
.zjjb-dsum__price small{ font:600 16px/1 Georgia,serif; color:#C8452D; color:var(--red); }
.zjjb-dsum__price b{ font:700 40px/1 Georgia,"Times New Roman",serif; color:#C8452D; color:var(--red); letter-spacing:-1px; }
.zjjb-dsum__price span{ font-size:13px; color:#93A29B; color:var(--ink-3); }
.zjjb-dsum__note{ margin-top:8px; font-size:12.5px; color:#93A29B; color:var(--ink-3); }
.zjjb-dsum__kv{ margin-top:20px; padding-top:18px; border-top:1px dashed rgba(18,34,30,.12); }
.zjjb-dsum__kv div{ display:flex; gap:12px; padding:7px 0; font-size:13.5px; }
.zjjb-dsum__kv dt,.zjjb-dsum__kv b{ flex:none; width:72px; color:#93A29B; color:var(--ink-3); font-weight:400; }
.zjjb-dsum__kv dd,.zjjb-dsum__kv span{ color:#12211D; color:var(--ink); line-height:1.6; }
.zjjb-dsum__act{ display:flex; gap:10px; margin-top:20px; }
.zjjb-dsum__act a{
  flex:1; display:flex; align-items:center; justify-content:center; height:46px; border-radius:12px;
  font-size:14.5px; font-weight:600; transition:.3s var(--e);
}
.zjjb-dsum__act a.a1{
  color:#2A1F0B; background:#C8A96A; background:linear-gradient(135deg,#DCC28E,#C8A96A);
  box-shadow:0 8px 20px rgba(200,169,106,.36);
}
.zjjb-dsum__act a.a1:hover{ transform:translateY(-2px); box-shadow:0 12px 26px rgba(200,169,106,.5); }
.zjjb-dsum__act a.a2{ border:1px solid rgba(18,34,30,.16); color:#12463C; color:var(--green); }
.zjjb-dsum__act a.a2:hover{ background:#EAF3F0; background:var(--green-l); }

/* 章节锚点导航（滚动吸顶）
   ★ top 要避开顶部主导航吸顶后的高度（.zjjb-nav.is-fixed 约 41px），
     否则会被主导航盖住一截。 */
.zjjb-dnav{
  position:sticky; top:44px; z-index:60;
  background:rgba(255,255,255,.94); background:rgba(255,255,255,.94);
  border-bottom:1px solid rgba(18,34,30,.09);
}
.zjjb-dnav ul{ display:flex; gap:4px; overflow-x:auto; }
.zjjb-dnav li a{
  display:block; padding:15px 16px; font-size:14.5px; white-space:nowrap;
  color:#4A5B55; color:var(--ink-2); border-bottom:2px solid transparent; transition:.24s var(--e);
}
.zjjb-dnav li a:hover{ color:#12463C; color:var(--green); }
.zjjb-dnav li a.on{ color:#12463C; color:var(--green); font-weight:700; border-bottom-color:#C8A96A; border-bottom-color:var(--gold); }

/* 章节（scroll-margin-top 让锚点跳转时标题不被吸顶的两条导航挡住） */
.zjjb-dsec{ padding:34px 0; scroll-margin-top:110px; }
.zjjb-dsec + .zjjb-dsec{ border-top:1px solid rgba(18,34,30,.08); }
/* 章节内的小节（费用包含 / 不包含 …） */
.zjjb-dbox{ margin-bottom:26px; }
.zjjb-dbox:last-child{ margin-bottom:0; }
.zjjb-dbox h3{
  font-size:16.5px; font-weight:700; letter-spacing:.4px; margin-bottom:12px; padding-left:12px;
  color:#12211D; color:var(--ink); border-left:3px solid #C8A96A; border-left:3px solid var(--gold);
}
.zjjb-dsec__hd{ display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.zjjb-dsec__hd h2{ font-size:21px; font-weight:700; color:#12211D; color:var(--ink); letter-spacing:.5px; }
.zjjb-dsec__hd span{ font-size:12.5px; color:#93A29B; color:var(--ink-3); letter-spacing:1px; }
.zjjb-dsec__hd:before{
  content:""; width:4px; height:20px; border-radius:2px;
  background:#C8A96A; background:var(--gold);
}

/* 内容页侧栏：预订卡 */
.zjjb-book{ background:#fff; border-radius:18px; overflow:hidden; border:1px solid rgba(18,34,30,.08); box-shadow:0 6px 20px rgba(15,40,34,.08); }
.zjjb-book__hd{ padding:18px 22px; background:#12463C; background:var(--green); color:#fff; }
.zjjb-book__hd b{ display:block; font-size:15.5px; font-weight:700; }
.zjjb-book__hd small{ display:block; margin-top:5px; font-size:12px; color:rgba(255,255,255,.68); }
.zjjb-book__bd{ padding:20px 22px 22px; }
.zjjb-book__row{ margin-bottom:13px; }
.zjjb-book__row em{ display:block; font-style:normal; font-size:12.5px; margin-bottom:6px; color:#4A5B55; color:var(--ink-2); }
.zjjb-book__row input,.zjjb-book__row select{
  width:100%; height:42px; padding:0 12px; box-sizing:border-box;
  font:inherit; font-size:14px; color:#12211D; color:var(--ink);
  background:#F7F5F1; background:var(--paper);
  border:1px solid rgba(18,34,30,.1); border-radius:10px; -webkit-appearance:none;
}
.zjjb-book__row input:focus{ outline:0; background:#fff; border-color:#12463C; border-color:var(--green); }
.zjjb-book__btn{
  display:flex; align-items:center; justify-content:center; width:100%; height:48px; margin-top:6px;
  border:0; border-radius:12px; cursor:pointer; font:700 15px/1 inherit; letter-spacing:.5px;
  color:#2A1F0B; background:#C8A96A; background:linear-gradient(135deg,#DCC28E,#C8A96A);
  box-shadow:0 8px 20px rgba(200,169,106,.38); transition:.3s var(--e);
}
.zjjb-book__btn:hover{ transform:translateY(-2px); box-shadow:0 12px 26px rgba(200,169,106,.5); }
.zjjb-book__tip{ margin-top:12px; font-size:11.5px; line-height:1.65; text-align:center; color:#93A29B; color:var(--ink-3); }

/* 内容页：相关线路（侧栏小卡） */
.zjjb-srel li{ display:flex; gap:12px; padding:12px 0; border-bottom:1px dashed rgba(18,34,30,.09); }
.zjjb-srel li:last-child{ border-bottom:0; padding-bottom:0; }
.zjjb-srel img{ flex:none; width:88px; height:62px; border-radius:8px; object-fit:cover; background:#EAF3F0; background:var(--green-l); }
.zjjb-srel a{
  flex:1; min-width:0; font-size:13.5px; line-height:1.55; color:#4A5B55; color:var(--ink-2);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.zjjb-srel a:hover{ color:#12463C; color:var(--green); }
.zjjb-srel small{ display:block; margin-top:5px; font-size:12px; font-weight:700; color:#C8452D; color:var(--red); }
.zjjb-srel img[src*="notimg"]{ display:none; }

/* ★ 图片真挂了（404 / 路径写错）时的兜底
   notimg.gif 那个占位图上面已有规则，但「文件不存在」是另一个情况：
   浏览器会把 alt 文字直接画进图片框里，长标题会糊到旁边文字上（实测踩过）。
   这里给图片加 overflow:hidden 裁掉，并把 alt 文字设为透明。
   alt 属性本身保留，读屏软件照常能读。 */
.zjjb-srel img{ overflow:hidden; color:transparent; }
.zjjb-card__pic img,
.zjjb-litem__pic img,
.zjjb-dsum__pic img{ color:transparent; }

/* ===================================================================
   28. 富文本（行程安排 / 费用说明：UEditor 生成，样式只做「约束」不改写）
   ★ 数据库里的正文带大量 inline style 和 table，这里只保证不溢出、能看清
   ★ 关键：UEditor 给表格单元格写了固定像素宽（如 td width="94" / width="956"），
     两列加起来 1050px，窄屏必撑破页面。width 属性属于「表现性提示」，
     用 width:auto !important 才能压掉。表格本身则强制 width:100%。
   =================================================================== */
.zjjb-rich{
  font-size:15px; line-height:1.95; color:#12211D; color:var(--ink);
  overflow-wrap:break-word; word-break:break-word;
  /* 兜底：万一遇到特别宽的表格/长串，只在本区块内横向滑动，不撑破整页 */
  overflow-x:auto;
}
.zjjb-rich p{ margin:0 0 12px; }
.zjjb-rich img{ max-width:100% !important; height:auto !important; display:block; margin:10px auto; border-radius:10px; }
.zjjb-rich table{ width:100% !important; max-width:100% !important; border-collapse:collapse; margin:14px 0; font-size:14.5px; }
.zjjb-rich td,.zjjb-rich th{
  width:auto !important;              /* 压掉 UEditor 的像素宽 */
  border:1px solid rgba(18,34,30,.12); padding:12px 14px; line-height:1.85;
  vertical-align:top; word-break:break-word;
}
.zjjb-rich td p:last-child,.zjjb-rich td p{ margin:0 0 8px; }
.zjjb-rich hr{ border:0; border-top:1px dashed rgba(18,34,30,.16); margin:22px 0; }
.zjjb-rich strong,.zjjb-rich b{ font-weight:700; }
.zjjb-rich a{ color:#12463C; color:var(--green); text-decoration:underline; }
.zjjb-rich ul,.zjjb-rich ol{ margin:0 0 14px; padding-left:24px; }
.zjjb-rich li{ margin-bottom:6px; }
/* 正文里 UEditor 常写的红色加粗标题，统一成墨绿小标题（inline style 用 !important 才压得住） */
.zjjb-rich span[style*="FONT-SIZE: 18px"],
.zjjb-rich span[style*="font-size: 18px"]{ font-size:17px !important; }

/* ===================================================================
   29. 线路页响应式
   =================================================================== */
@media (max-width:1180px){
  .zjjb-main{ grid-template-columns:minmax(0,1fr) 290px; gap:26px; }
  .zjjb-dsum{ grid-template-columns:minmax(0,1fr) 330px; }
}
@media (max-width:980px){
  .zjjb-main{ grid-template-columns:minmax(0,1fr); padding:28px 0 40px; }
  .zjjb-side{ position:static; }
  .zjjb-dsum{ grid-template-columns:minmax(0,1fr); }
  .zjjb-dsum__pic img{ height:230px; }
  .zjjb-phead h1{ font-size:27px; }
  .zjjb-phead__in{ padding:22px 0 30px; }
  .zjjb-litem{ grid-template-columns:1fr; }
  .zjjb-litem__pic{ min-height:0; height:190px; }
  .zjjb-litem__bd{ padding:18px 18px 20px; }
  .zjjb-litem__t{ font-size:17px; }
  .zjjb-dsec{ padding:26px 0; }
  .zjjb-dnum{ grid-template-columns:repeat(3,1fr); gap:10px; }
  .zjjb-dnum a{ padding:16px 8px 14px; }
  .zjjb-dnum b{ font-size:26px; }
  .zjjb-2col .zjjb-cards{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .zjjb-dnum small{ display:none; }
  .zjjb-2col .zjjb-cards{ grid-template-columns:1fr; }
  .zjjb-phead h1{ font-size:22px; }
  .zjjb-phead__sub{ font-size:13.5px; }
  .zjjb-dsum__price b{ font-size:32px; }
  .zjjb-dnav li a{ padding:13px 12px; font-size:13.5px; }
  .zjjb-litem__ft{ flex-direction:column; align-items:flex-start; gap:12px; }
  /* 正文里 UEditor 常给配图加 style="float:right; width:230px"，
     窄屏下 230px 的浮动图会把文字挤成一条缝 → 改成居中独占一行 */
  .zjjb-rich img{ float:none !important; margin:10px auto !important; }
  .zjjb-rich td,.zjjb-rich th{ padding:9px 10px; font-size:14px; line-height:1.8; }
  .zjjb-rich table{ font-size:14px; }
}

@media print{ .zjjb-float,.zjjb-mbar,.zjjb-hero,.zjjb-wide{ display:none; } }
