﻿/* =============================================================================
   BabyKoala Travel — 设计系统 v6「Field Notes」
   -----------------------------------------------------------------------------
   一次整体的视觉重做：黑墨 + 骨白纸 + 印泥红。
   - 展示字：Instrument Serif（仅拉丁；中文回落到系统黑体，单独给基准）
   - 正文/界面字：Instrument Sans
   - 红只做"记号"：区块短横、行程节点、链接下划线、价格标记
   - 无卡片阴影、无渐变装饰、无圆角泡泡；用发丝线与留白分区
   与内容无关：文案、链接、信息结构一律不动。
   ============================================================================= */

/* ---------- 1. Tokens ------------------------------------------------------ */
:root {
  --ink:        #14181b;
  --ink-2:      #3a3f3c;
  --ink-3:      #64685f;
  --ink-4:      #9a9d97;

  --paper:      #fbf8f2;
  --paper-2:    #f3eee4;
  --paper-3:    #e9e2d4;

  --rule:       #e2dbcd;
  --rule-2:     #c8bfac;

  --seal:       #a63a24;
  --seal-2:     #8a2f1c;
  --seal-soft:  #f7e9e3;

  --serif: 'Instrument Serif', 'Songti SC', 'Noto Serif SC', Georgia, serif;
  --sans: 'Instrument Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
          'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;

  --fs-hero:  clamp(40px, 5.2vw, 72px);
  --fs-h1:    clamp(34px, 4vw, 54px);
  --fs-h2:    clamp(26px, 2.8vw, 38px);
  --fs-h3:    22px;
  --fs-h4:    18px;
  --fs-bd:    17px;
  --fs-sm:    15px;
  --fs-xs:    13px;
  --fs-label: 11.5px;

  --s1: 4px;  --s2: 8px;  --s3: 12px; --s4: 16px;
  --s5: 24px; --s6: 32px; --s7: 48px; --s8: 64px; --s9: 96px; --s10: 128px;

  --r-xs: 2px;
  --r-sm: 4px;
  --r-md: 6px;

  --maxw: 1220px;
  --measure: 35em;   /* ≈70 字符 / 34 汉字 */
  --rail: 300px;
  --gutter: 28px;
  --head-h: 72px;

  --ease: cubic-bezier(.22, .61, .36, 1);
}

/* ---------- 2. Base ------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html.nav-locked { overflow: hidden; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: var(--fs-bd);
  line-height: 1.66;
  font-feature-settings: "kern" 1;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg, video { max-width: 100%; height: auto; display: block; }
figure { margin: 0; }

a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--seal);
  text-underline-offset: 3px;
  text-decoration-skip-ink: auto;
  transition: color .18s var(--ease), text-decoration-color .18s var(--ease);
}
a:hover { color: var(--seal); }

::selection { background: var(--seal); color: var(--paper); }

:focus-visible { outline: 2px solid var(--seal); outline-offset: 3px; }

/* 中文：正文用系统黑体，行高更松 */
html[lang^="zh"] body { font-family: var(--sans); line-height: 1.85; letter-spacing: .01em; }

/* ---------- 3. 排版 ------------------------------------------------------- */
h1, h2, h3, h4 {
  font-family: var(--serif);
  font-weight: 400;
  color: var(--ink);
  text-wrap: balance;
  letter-spacing: -.01em;
}
/* 中文用系统黑体，但要压住"黑体加粗"的钝感：降一级字重、放宽行高 */
html[lang^="zh"] h1,
html[lang^="zh"] h2,
html[lang^="zh"] h3,
html[lang^="zh"] h4 { font-family: var(--sans); font-weight: 600; letter-spacing: .01em; }
html[lang^="zh"] h1 { font-size: clamp(30px, 3.6vw, 44px); line-height: 1.24; }
html[lang^="zh"] h2 { font-size: clamp(22px, 2.2vw, 30px); line-height: 1.32; }
html[lang^="zh"] h3 { font-size: 19px; line-height: 1.45; }

h1 { font-size: var(--fs-h1); line-height: 1.02; margin: 0 0 var(--s4); }
h2 { font-size: var(--fs-h2); line-height: 1.1; margin: var(--s8) 0 var(--s4); }
h3 { font-size: var(--fs-h3); line-height: 1.3; margin: var(--s6) 0 var(--s2); }
h4 { font-size: var(--fs-h4); line-height: 1.4; margin: var(--s5) 0 var(--s2); font-family: var(--sans); font-weight: 600; letter-spacing: 0; }

/* 区块短横：每个 h2 上方一道印泥红 */
h2::before {
  content: ""; display: block;
  width: 28px; height: 2px; margin: 0 0 var(--s4);
  background: var(--seal);
}
.cta-band h2::before,
.bk-consent h2::before { display: none; }

p { margin: 0 0 var(--s4); text-wrap: pretty; }
ul, ol { margin: 0 0 var(--s4); padding-left: 20px; }
li { margin-bottom: var(--s2); }
li::marker { color: var(--seal); }
b, strong { font-weight: 600; }
small { font-size: var(--fs-xs); }

.lede {
  font-size: clamp(17px, 1.45vw, 19px);
  line-height: 1.62;
  color: var(--ink-2);
  max-width: var(--measure);
  margin: 0 0 var(--s5);
}

/* 小标签 */
.sec-kicker, .kicker {
  display: block;
  font-family: var(--sans);
  font-size: var(--fs-label); font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--seal);
  margin: 0 0 var(--s3);
}

/* ---------- 4. 布局 ------------------------------------------------------- */
.wrap { max-width: var(--maxw); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
main { display: block; padding-bottom: var(--s8); }
.page-pad { padding-top: var(--s6); padding-bottom: var(--s6); }

.content-2col {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--rail);
  gap: var(--s8);
  align-items: start;
  margin: var(--s6) 0 0;
}

/* ---------- 5. 顶栏 ------------------------------------------------------- */
#preview-notice {
  background: var(--ink) !important;
  color: rgba(251,248,242,.72) !important;
  font: 600 10px/1.6 var(--sans) !important;
  letter-spacing: .18em !important;
  text-transform: uppercase;
  padding: 7px var(--s4) !important;
}

.site-head {
  position: sticky; top: 0; z-index: 60;
  background: var(--paper);
  border-bottom: 1px solid var(--rule);
}
.site-head .wrap {
  position: relative;
  display: flex; align-items: center; gap: var(--s5);
  min-height: var(--head-h);
}

.brand {
  font-family: var(--serif);
  font-size: 25px; line-height: 1;
  color: var(--ink); text-decoration: none;
  letter-spacing: -.02em;
  white-space: nowrap;
}
/* Wander China 标记：印泥方章 + W，放在字标前面 */
.brand::before {
  content: ""; display: inline-block;
  width: 26px; height: 26px; margin-right: 10px;
  vertical-align: -5px;
  background: url(img/logo-mark.svg) center / contain no-repeat;
}
@media (max-width: 680px) {
  .brand::before { width: 22px; height: 22px; margin-right: 8px; vertical-align: -4px; }
}

.brand span {
  font-family: var(--sans); font-size: 10px; font-weight: 600;
  letter-spacing: .26em; text-transform: uppercase;
  color: var(--ink-3);
  vertical-align: .28em; margin-left: 2px;
}
.brand:hover { color: var(--ink); }

.nav-panel { display: contents; }

.site-nav {
  /* 语言入口变多后，居中定位会与右侧胶囊重叠；改为常规右对齐 */
  position: static; transform: none;
  margin-left: auto;
  display: flex; align-items: center; gap: var(--s4);
}
.site-nav a {
  font-size: var(--fs-label); font-weight: 500;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--ink-2); text-decoration: none;
  padding: var(--s2) 0;
  border-bottom: 1px solid transparent;
  transition: color .18s var(--ease), border-color .18s var(--ease);
}
.site-nav a:hover { color: var(--ink); border-bottom-color: var(--seal); }

.nav-actions { margin-left: auto; display: flex; align-items: center; gap: var(--s3); }
.head-right { display: flex; align-items: center; gap: var(--s3); }

.nav-toggle {
  display: none;
  width: 44px; height: 44px; padding: 0;
  align-items: center; justify-content: center;
  background: transparent; border: 0; cursor: pointer;
}
.nav-toggle span {
  display: block; width: 22px; height: 1.5px; background: var(--ink);
  transition: transform .22s var(--ease);
}
.nav-toggle span + span { margin-top: 6px; }
.nav-open .nav-toggle span:first-child { transform: translateY(3.75px) rotate(45deg); }
.nav-open .nav-toggle span:last-child { transform: translateY(-3.75px) rotate(-45deg); }

.lang-sw {
  display: inline-flex; align-items: center; justify-content: center;
  height: 34px; padding: 0 var(--s3);
  font-size: var(--fs-label); font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--ink-2); text-decoration: none;
  border: 1px solid var(--rule-2);
  transition: color .18s var(--ease), border-color .18s var(--ease), background-color .18s var(--ease);
}
.lang-sw:hover { color: var(--ink); border-color: var(--ink); background: var(--paper-2); }

/* ---------- 6. 按钮与文字链 ----------------------------------------------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--s2);
  min-height: 46px; padding: 0 var(--s5);
  font-family: var(--sans); font-size: var(--fs-label); font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--paper); background: var(--ink);
  border: 1px solid var(--ink); border-radius: var(--r-xs);
  text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.btn:hover { background: var(--seal); border-color: var(--seal); color: #fff; }
.btn:active { transform: translateY(1px); }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .45; cursor: not-allowed; }

.btn.ghost { background: transparent; color: var(--ink); border-color: var(--rule-2); }
.btn.ghost:hover { background: transparent; color: var(--seal); border-color: var(--seal); }

.btn.sm { min-height: 38px; padding: 0 var(--s4); font-size: 10.5px; }

.lnk {
  display: inline-flex; align-items: center; gap: var(--s2);
  font-size: var(--fs-sm); font-weight: 500;
  color: var(--ink); text-decoration: none;
  border-bottom: 1px solid var(--seal);
  padding-bottom: 2px;
}
.lnk::after { content: "→"; transition: transform .2s var(--ease); }
.lnk:hover { color: var(--seal); }
.lnk:hover::after { transform: translateX(3px); }

/* ---------- 7. Hero ------------------------------------------------------- */
.hero {
  position: relative;
  display: grid; grid-template-columns: 1fr; align-items: end;
  min-height: clamp(420px, 58vh, 620px);
  overflow: hidden;
  background: var(--ink);
}
.hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(10,14,16,.25) 0%, rgba(10,14,16,.45) 45%, rgba(10,14,16,.86) 100%);
}
.hero .wrap { position: relative; z-index: 2; width: 100%; padding-top: var(--s9); padding-bottom: var(--s8); }
.hero h1 {
  color: #fff; font-size: var(--fs-hero); line-height: .98; letter-spacing: -.02em;
  max-width: 22ch; margin: 0 0 var(--s4);
}
.hero p.lead, .hero .lead {
  color: rgba(255,255,255,.88);
  font-size: clamp(16px, 1.3vw, 18px); line-height: 1.62;
  max-width: 52ch; margin: 0;
}
.hero .cta { display: flex; flex-wrap: wrap; gap: var(--s3); margin-top: var(--s5); }
.hero .btn { background: var(--paper); border-color: var(--paper); color: var(--ink); }
.hero .btn:hover { background: var(--seal); border-color: var(--seal); color: #fff; }
.hero .btn.ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.6); }
.hero .btn.ghost:hover { background: rgba(255,255,255,.12); border-color: #fff; color: #fff; }
.hero-scroll { display: none; }

/* 首页：左右分栏的编辑部式开场（靠 .cta 识别） */
.hero:has(.cta) {
  grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
  align-items: stretch;
  min-height: clamp(520px, 74vh, 760px);
  background: var(--paper);
}
.hero:has(.cta) .hero-bg {
  position: relative; inset: auto;
  grid-column: 2; grid-row: 1;
  width: 100%; height: 100%; object-fit: cover;
}
.hero:has(.cta)::after { display: none; }
.hero:has(.cta) .wrap {
  grid-column: 1; grid-row: 1;
  display: flex; flex-direction: column; justify-content: center;
  max-width: none;
  padding: var(--s9) var(--s7) var(--s9) max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter)));
}
.hero:has(.cta) h1 { color: var(--ink); }
.hero:has(.cta) p.lead, .hero:has(.cta) .lead { color: var(--ink-2); }
.hero:has(.cta) .btn { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.hero:has(.cta) .btn:hover { background: var(--seal); border-color: var(--seal); }
.hero:has(.cta) .btn.ghost { background: transparent; color: var(--ink); border-color: var(--rule-2); }
.hero:has(.cta) .btn.ghost:hover { color: var(--seal); border-color: var(--seal); }

/* 图片带 */
.photo-band {
  position: relative; height: clamp(240px, 34vw, 420px);
  margin: var(--s8) 0 0; overflow: hidden; background: var(--ink);
}
.photo-band img { width: 100%; height: 100%; object-fit: cover; }
.photo-band .cap {
  position: absolute; left: 0; right: 0; bottom: 0;
  max-width: var(--maxw); margin: 0 auto;
  padding: var(--s8) var(--gutter) var(--s4);
  color: #fff;
  background: linear-gradient(transparent, rgba(10,14,16,.78));
}
.photo-band .cap b { display: block; font-family: var(--serif); font-weight: 400; font-size: 26px; line-height: 1.2; margin-bottom: var(--s1); }
.photo-band .cap span { font-size: var(--fs-xs); color: rgba(255,255,255,.82); }

.hero-fig { margin: var(--s6) 0 var(--s7); }
.hero-fig img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; background: var(--paper-2); }

/* 相册 */
.gal, .gal-grid {
  display: grid; gap: var(--s2); margin: var(--s6) 0 var(--s7);
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.gal figure, .gal-grid figure { position: relative; overflow: hidden; background: var(--paper-2); }
.gal figure { aspect-ratio: 4 / 3; }
.gal img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.gal figure:hover img { transform: scale(1.03); }
.gal figcaption {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: var(--s6) var(--s3) var(--s3);
  background: linear-gradient(transparent, rgba(10,14,16,.76));
  color: #fff; font-size: var(--fs-xs); line-height: 1.45;
}
.gal figcaption b { display: block; font-size: var(--fs-sm); font-weight: 600; }
.gal-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

.dest-photo { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--paper-2); }
.dest-photo img { width: 100%; height: 100%; object-fit: cover; }
.dest-photo .t {
  position: absolute; inset: auto 0 0 0;
  padding: var(--s7) var(--s4) var(--s3);
  background: linear-gradient(transparent, rgba(10,14,16,.8)); color: #fff;
}
.dest-photo .t b { display: block; font-family: var(--serif); font-weight: 400; font-size: 22px; }
.dest-photo .t span { font-size: var(--fs-xs); color: rgba(255,255,255,.84); }

/* ---------- 8. 卡片与网格（去盒子化） ------------------------------------- */
.grid { display: grid; gap: var(--s6) var(--s5); margin: var(--s6) 0; align-items: stretch; }
.grid.c2 { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.grid.c3 { grid-template-columns: repeat(auto-fit, minmax(296px, 1fr)); }
.grid.c4 { grid-template-columns: repeat(auto-fit, minmax(232px, 1fr)); }

.card {
  padding: 0;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--rule);
  padding-top: var(--s4);
}
.card h4 { margin: 0 0 var(--s2); font-size: 16px; }
.card p { font-size: var(--fs-sm); line-height: 1.62; color: var(--ink-2); margin: 0 0 var(--s3); }
.card p:last-child { margin-bottom: 0; }
.card .meta { font-size: var(--fs-xs); color: var(--ink-3); }

/* 线路卡：图片在上、文字在下，无边框 */
.tour-card {
  display: flex; flex-direction: column;
  border: 0; padding: 0; background: transparent;
  color: inherit;
}
.tour-card .thumb { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--paper-2); transition: opacity .25s var(--ease); }
.tour-card:hover .thumb { opacity: .9; }
.tour-card .body { padding: var(--s4) 0 0; flex: 1 1 auto; display: flex; flex-direction: column; }
.tour-card h3 {
  font-family: var(--serif); font-weight: 400;
  font-size: 24px; line-height: 1.16; letter-spacing: -.01em;
  margin: 0 0 var(--s2);
}
html[lang^="zh"] .tour-card h3 { font-family: var(--sans); font-weight: 700; font-size: 19px; }
.tour-card h3 a { color: var(--ink); text-decoration: none; }
.tour-card:hover h3 a { color: var(--seal); }
.tour-card .tags { display: flex; flex-wrap: wrap; gap: var(--s1) 0; margin: 0 0 var(--s3); }
.tour-card .body > p.meta,
.tour-card .body > p:not(:last-child) {
  font-size: var(--fs-sm); line-height: 1.55; color: var(--ink-3); margin: 0 0 var(--s3);
}
.tour-card .body > p:last-child { margin-top: auto; margin-bottom: 0; padding-top: var(--s2); }

/* 卡片里的按钮退成文字链，避免八块黑砖头 */
.tour-card .btn,
.tour-card .body a.btn {
  min-height: 0; padding: 0 0 3px;
  background: transparent; border: 0; border-bottom: 1px solid var(--ink);
  color: var(--ink); border-radius: 0;
  font-size: 10.5px; letter-spacing: .16em;
}
.tour-card .btn:hover,
.tour-card .body a.btn:hover { background: transparent; color: var(--seal); border-bottom-color: var(--seal); }

/* 标签退成"目录规格"：小字 + 中点分隔，不加底色 */
.tag {
  font-size: var(--fs-label); font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--ink-3);
  background: none; border: 0; padding: 0;
}
.tag + .tag::before { content: "·"; margin: 0 var(--s2); color: var(--rule-2); }
.price { font-size: var(--fs-sm); color: var(--ink-3); font-variant-numeric: tabular-nums; }
.price b { color: var(--ink); font-size: 19px; font-weight: 600; }

/* 可点卡片：上发丝线 + 悬停红线 */
.n2k-grid, .dest-grid {
  display: grid; gap: var(--s6) var(--s5); margin: var(--s6) 0 var(--s8);
  grid-template-columns: repeat(auto-fit, minmax(272px, 1fr));
  align-items: stretch;
}
.n2k-card, .dest-card {
  display: flex; flex-direction: column; height: 100%;
  padding: var(--s4) 0 0;
  border: 0; border-top: 1px solid var(--rule);
  background: transparent; color: inherit; text-decoration: none;
  transition: border-color .2s var(--ease);
}
.n2k-card:hover, .dest-card:hover { border-top-color: var(--seal); color: inherit; }
.n2k-card:focus-visible, .dest-card:focus-visible { outline-offset: 4px; }
.n2k-card h3 {
  font-family: var(--serif); font-weight: 400;
  font-size: 23px; line-height: 1.2; margin: 0 0 var(--s2); color: var(--ink);
}
html[lang^="zh"] .n2k-card h3 { font-family: var(--sans); font-weight: 700; font-size: 18px; }
.n2k-card p { margin: 0 0 var(--s3); font-size: var(--fs-sm); line-height: 1.6; color: var(--ink-3); }
.n2k-card .more, .dest-card .more {
  margin-top: auto; padding-top: var(--s3);
  font-size: var(--fs-label); font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  color: var(--seal);
}
.dest-card img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; background: var(--paper-2); }
.dest-card .dc-body { display: flex; flex-direction: column; flex: 1 1 auto; padding: var(--s3) 0 0; }
.dest-card h3 { font-family: var(--serif); font-weight: 400; font-size: 22px; margin: 0 0 var(--s2); }
html[lang^="zh"] .dest-card h3 { font-family: var(--sans); font-weight: 700; font-size: 18px; }
.dest-card p { margin: 0 0 var(--s3); font-size: var(--fs-sm); line-height: 1.6; color: var(--ink-3); }
.soon {
  display: inline-block;
  font-size: 10px; font-style: normal; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase; color: var(--seal);
}

.tour-links { display: flex; flex-wrap: wrap; gap: var(--s2); margin: var(--s5) 0 var(--s7); }
.tour-link {
  display: inline-flex; flex-direction: column; gap: 2px;
  padding: var(--s3) var(--s4);
  border: 1px solid var(--rule-2);
  text-decoration: none; color: inherit;
  transition: border-color .18s var(--ease), color .18s var(--ease);
}
.tour-link:hover { border-color: var(--seal); color: var(--seal); }
.tour-link b { font-size: 14.5px; font-weight: 600; }
.tour-link span { font-size: 12px; color: var(--ink-3); font-variant-numeric: tabular-nums; }

/* ---------- 9. 行程时间轴 ------------------------------------------------- */
.day { position: relative; margin: 0 0 var(--s6); padding-left: var(--s6); }
.day::before {
  content: ""; position: absolute; left: 3px; top: 9px;
  width: 7px; height: 7px; border-radius: 50%; background: var(--seal);
  box-shadow: 0 0 0 4px var(--paper);
}
.day::after {
  content: ""; position: absolute; left: 6px; top: 24px; bottom: calc(-1 * var(--s6));
  width: 1px; background: linear-gradient(var(--rule-2), rgba(200,191,172,0));
}
.day:last-child::after { display: none; }
.day h4 {
  margin: 0 0 var(--s2);
  font-family: var(--sans); font-size: var(--fs-label); font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--seal);
}
.day p { margin: 0 0 var(--s3); font-size: var(--fs-bd); line-height: 1.7; color: var(--ink-2); max-width: var(--measure); }
.day p:last-child { margin-bottom: 0; }
.day img {
  width: 100%; height: clamp(170px, 19vw, 230px); object-fit: cover;
  margin: 0 0 var(--s3); background: var(--paper-2);
}

.mini-itin { list-style: none; margin: 0 0 var(--s4); padding: var(--s3) 0 var(--s4); border-bottom: 1px solid var(--rule); }
.mini-itin li { position: relative; padding: 6px 0 6px var(--s5); font-size: 14.5px; color: var(--ink-3); line-height: 1.6; }
.mini-itin li::before { content: ""; position: absolute; left: 2px; top: 15px; width: 4px; height: 4px; border-radius: 50%; background: var(--seal); }
.mini-itin b { color: var(--ink); font-weight: 600; }

/* ---------- 10. 正文 ------------------------------------------------------ */
.prose { max-width: none; }
.prose > p, .prose > ul, .prose > ol { max-width: var(--measure); }
.prose h1 { font-size: var(--fs-h1); line-height: 1.0; margin: 0 0 var(--s4); max-width: 24ch; }
.prose h2 { font-size: var(--fs-h2); margin: var(--s8) 0 var(--s3); }
.prose h3 { font-size: var(--fs-h3); margin: var(--s6) 0 var(--s2); }
.prose p { font-size: var(--fs-bd); line-height: 1.72; color: var(--ink-2); margin: 0 0 var(--s4); }
.prose li { font-size: var(--fs-bd); line-height: 1.7; margin-bottom: var(--s2); color: var(--ink-2); }
.prose a { color: inherit; text-decoration-color: var(--seal); }
.prose a:hover { color: var(--seal); }
.prose > :first-child { margin-top: 0; }
.prose .lede { color: var(--ink-2); margin-bottom: var(--s5); }
.prose figure { margin: var(--s6) 0; }
.prose figcaption { margin-top: var(--s2); font-size: var(--fs-xs); color: var(--ink-3); }
.prose hr { border: 0; border-top: 1px solid var(--rule); margin: var(--s7) 0; }

.callout {
  border-left: 2px solid var(--seal);
  background: var(--paper-2);
  padding: var(--s4) var(--s5);
  font-size: var(--fs-bd); line-height: 1.66; color: var(--ink);
  margin: var(--s6) 0;
  max-width: var(--measure);
}
.callout b, .callout strong { font-weight: 600; }
.callout p:last-child { margin-bottom: 0; }

.note { font-size: var(--fs-xs); line-height: 1.6; color: var(--ink-3); border-top: 1px solid var(--rule); padding-top: var(--s3); margin: var(--s5) 0; }
.src-note { font-size: 13px; line-height: 1.6; color: var(--ink-3); background: var(--paper-2); padding: var(--s3) var(--s4); margin-top: var(--s5); }
.src-note a { color: inherit; }

/* ---------- 11. 表格 ------------------------------------------------------ */
.tbl { overflow-x: auto; margin: var(--s6) 0 var(--s7); border-top: 1px solid var(--ink); }
table.facts { width: 100%; min-width: 520px; border-collapse: collapse; font-size: var(--fs-sm); line-height: 1.55; font-variant-numeric: tabular-nums; }
table.facts th {
  text-align: left; white-space: nowrap; padding: var(--s3) var(--s3) var(--s3) 0;
  font-size: 10.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--ink-3); border-bottom: 1px solid var(--rule-2);
}
table.facts td { padding: var(--s3) var(--s3) var(--s3) 0; border-bottom: 1px solid var(--rule); vertical-align: top; color: var(--ink-2); }
table.facts td:first-child { color: var(--ink); font-weight: 500; padding-right: var(--s5); }
table.facts tr:last-child td { border-bottom: 0; }

/* ---------- 12. FAQ / 评价 ------------------------------------------------ */
.faq { border-top: 1px solid var(--ink); margin: var(--s6) 0; max-width: var(--measure); }
.faq details { border-bottom: 1px solid var(--rule); }
.faq summary {
  display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4);
  padding: var(--s4) 0; cursor: pointer; list-style: none;
  font-size: 17px; font-weight: 500; line-height: 1.45; color: var(--ink);
  transition: color .18s var(--ease);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary:hover { color: var(--seal); }
.faq summary::after { content: "+"; flex: 0 0 auto; font-size: 18px; line-height: 1.2; color: var(--seal); }
.faq details[open] summary::after { content: "−"; }
.faq .ans { padding: 0 0 var(--s4); color: var(--ink-2); font-size: 16px; line-height: 1.68; }
.faq .ans p:last-child { margin-bottom: 0; }

.review { border-top: 1px solid var(--rule); padding-top: var(--s4); margin-bottom: var(--s5); }
.review .who { font-weight: 600; font-size: var(--fs-sm); }
.review .meta { font-size: var(--fs-xs); color: var(--ink-3); margin-bottom: var(--s2); }
.stars { color: var(--seal); letter-spacing: 2px; font-size: var(--fs-sm); }

/* ---------- 13. CTA 带 ---------------------------------------------------- */
.cta-band { background: var(--ink); color: var(--paper); padding: var(--s8) 0; margin-top: var(--s8); }
.cta-band h2 { color: var(--paper); margin: 0 0 var(--s3); }
.cta-band p { color: rgba(251,248,242,.76); max-width: 56ch; margin: 0 0 var(--s5); }
.cta-band .btn { background: var(--paper); border-color: var(--paper); color: var(--ink); }
.cta-band .btn:hover { background: var(--seal); border-color: var(--seal); color: #fff; }
.cta-band .btn.ghost { background: transparent; color: var(--paper); border-color: rgba(251,248,242,.4); }
.cta-band .btn.ghost:hover { border-color: var(--paper); color: var(--paper); background: transparent; }
.cta-band.in-page { margin: var(--s8) 0 var(--s6); padding: var(--s7) var(--s6); }
.cta-band.in-page h2 { font-size: var(--fs-h2); margin: 0 0 var(--s2); }
.cta-band.in-page p { margin: 0 0 var(--s4); font-size: var(--fs-sm); line-height: 1.62; }
.cta-row { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: center; }

.cta-inline {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s4);
  background: var(--paper-2); padding: var(--s5) var(--s6); margin: var(--s6) 0;
}
.cta-inline h3 { margin: 0 0 var(--s1); font-size: 21px; }
.cta-inline p { margin: 0; font-size: var(--fs-sm); line-height: 1.6; color: var(--ink-2); max-width: 52ch; }

/* ---------- 14. 侧栏 ------------------------------------------------------ */
.rail { position: sticky; top: calc(var(--head-h) + var(--s4)); display: flex; flex-direction: column; gap: var(--s4); }
.rail-card { border-top: 1px solid var(--ink); padding-top: var(--s4); }
.rail-card h4 { margin: 0 0 var(--s2); font-size: var(--fs-label); font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); }
.rail-card p { margin: 0 0 var(--s3); font-size: 14px; line-height: 1.6; color: var(--ink-2); }
.rail-card p:last-child { margin-bottom: 0; }
.rail-cta { border-top-color: var(--seal); }
.rail-cta .btn { display: flex; width: 100%; }
.rail-wa { display: block; margin-top: var(--s3); font-size: 13px; font-weight: 500; text-decoration: none; border-bottom: 1px solid var(--seal); padding-bottom: 2px; }
.rail-list { margin: 0; padding-left: 16px; }
.rail-list li { font-size: 14px; line-height: 1.6; color: var(--ink-2); margin-bottom: var(--s2); }
.rail-links { list-style: none; margin: 0; padding: 0; }
.rail-links li { margin-bottom: var(--s2); }
.rail-links a { font-size: 14px; line-height: 1.5; color: var(--ink-2); text-decoration: none; border-bottom: 1px solid var(--rule-2); }
.rail-links a:hover { color: var(--seal); border-bottom-color: var(--seal); }

/* ---------- 15. 表单 ------------------------------------------------------ */
.form-sec { max-width: 720px; margin: var(--s8) 0 var(--s5); }
.form-sec h2 { font-size: var(--fs-h2); margin: 0 0 var(--s2); }
.form-sec .lede { font-size: var(--fs-sm); margin: 0 0 var(--s4); }

.quote-form { border: 1px solid var(--rule-2); padding: var(--s5); background: var(--paper); }
.qf-grid { display: grid; gap: var(--s4); grid-template-columns: repeat(auto-fit, minmax(212px, 1fr)); }
.quote-form label { display: flex; flex-direction: column; gap: var(--s2); font-size: var(--fs-label); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.quote-form label.full { margin-top: var(--s3); }
.quote-form input, .quote-form select, .quote-form textarea {
  font-family: var(--sans); font-size: 16px; font-weight: 400;
  letter-spacing: 0; text-transform: none; color: var(--ink);
  min-height: 46px; padding: var(--s2) var(--s3);
  background: #fff; border: 1px solid var(--rule-2); border-radius: 0;
  width: 100%;
  transition: border-color .18s var(--ease);
}
.quote-form textarea { min-height: 128px; line-height: 1.6; resize: vertical; }
.quote-form input:hover, .quote-form select:hover, .quote-form textarea:hover { border-color: var(--ink-3); }
.quote-form input:focus-visible, .quote-form select:focus-visible, .quote-form textarea:focus-visible { outline: 2px solid var(--seal); outline-offset: 1px; border-color: var(--ink); }
.quote-form button.btn { margin-top: var(--s5); width: 100%; border: 1px solid var(--ink); }
.qf-note { margin: var(--s3) 0 0; font-size: var(--fs-xs); line-height: 1.6; color: var(--ink-3); }
.hp { position: absolute; left: -9999px; opacity: 0; pointer-events: none; }
.qf-status { margin-top: var(--s3); font-size: 14px; }
.qf-status.warn { color: var(--ink); background: var(--paper-2); padding: var(--s3); border-left: 2px solid var(--ink-3); }
.qf-status.error { color: var(--seal-2); background: var(--seal-soft); padding: var(--s3); border-left: 2px solid var(--seal); }
.qf-done h3 { margin: 0 0 var(--s2); color: var(--ink); }
.qf-done p { margin: 0; font-size: var(--fs-sm); line-height: 1.64; }

/* ---------- 16. 面包屑 ---------------------------------------------------- */
.crumb {
  display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--s1);
  padding: var(--s4) 0; font-size: var(--fs-label);
  letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3);
}
.crumb a { color: var(--ink-3); text-decoration: none; }
.crumb a:hover { color: var(--seal); }
.crumb span { color: var(--rule-2); margin: 0 var(--s1); }
.crumb + span { font-size: var(--fs-label); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.crumb-above-hero { background: var(--paper); border-bottom: 1px solid var(--rule); }
.crumb-above-hero .wrap { display: flex; align-items: center; }
.crumb-above-hero .crumb { padding: var(--s3) 0; }

.tour-body { padding-top: var(--s7); }

/* ---------- 17. 页脚 ------------------------------------------------------ */
.site-foot { background: var(--ink); color: rgba(251,248,242,.72); padding: var(--s8) 0 var(--s6); margin-top: var(--s8); }
.foot-grid { display: grid; gap: var(--s6) var(--s5); grid-template-columns: repeat(auto-fit, minmax(176px, 1fr)); }
.site-foot h4 {
  margin: 0 0 var(--s3);
  font-family: var(--sans); font-size: 10.5px; font-weight: 600;
  letter-spacing: .2em; text-transform: uppercase; color: rgba(251,248,242,.5);
}
.site-foot ul { list-style: none; margin: 0; padding: 0; }
.site-foot li { margin-bottom: var(--s2); }
.site-foot a { color: rgba(251,248,242,.86); font-size: var(--fs-sm); text-decoration: none; }
.site-foot a:hover { color: #fff; text-decoration: underline; text-decoration-color: var(--seal); }
.site-foot .legal {
  margin-top: var(--s7); padding-top: var(--s4);
  border-top: 1px solid rgba(251,248,242,.16);
  font-size: 12px; line-height: 1.7; color: rgba(251,248,242,.5);
}
.foot-cta { margin-top: var(--s5); padding-top: var(--s4); border-top: 1px solid rgba(251,248,242,.16); }
.foot-cta p { margin: 0 0 var(--s3); font-size: var(--fs-sm); color: rgba(251,248,242,.72); }
.foot-cta .btn { background: var(--paper); border-color: var(--paper); color: var(--ink); }
.foot-cta .btn:hover { background: var(--seal); border-color: var(--seal); color: #fff; }
.foot-cta .btn.ghost { background: transparent; color: var(--paper); border-color: rgba(251,248,242,.4); }

/* ---------- 18. 同意横幅 -------------------------------------------------- */
.bk-consent {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 900;
  background: var(--ink); color: rgba(251,248,242,.86);
  padding: var(--s4) var(--gutter);
  border-top: 1px solid rgba(251,248,242,.14);
}
.bk-consent-in { max-width: var(--maxw); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: var(--s4); flex-wrap: wrap; }
.bk-consent p { margin: 0; max-width: 60ch; font-size: 12.5px; line-height: 1.6; color: rgba(251,248,242,.66); }
.bk-consent a { color: var(--paper); }
.bk-consent-btns { display: flex; gap: var(--s2); flex-shrink: 0; }
.bk-consent button {
  font-family: var(--sans); font-size: var(--fs-label); font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase; cursor: pointer;
  min-height: 42px; padding: 0 var(--s4);
  color: rgba(251,248,242,.86); background: transparent;
  border: 1px solid rgba(251,248,242,.32); border-radius: 0;
  transition: color .18s var(--ease), border-color .18s var(--ease);
}
.bk-consent button:hover { color: #fff; border-color: #fff; }
.bk-consent button.acc { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.bk-consent button.acc:hover { background: #fff; }
body.has-consent { padding-bottom: 96px; }

/* ---------- 19. 免签自查 -------------------------------------------------- */
.visa-check { border: 1px solid var(--rule-2); padding: var(--s5); margin: var(--s6) 0; background: var(--paper); }
.vc-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); }
.vc-label { font-size: var(--fs-label); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.vc-select {
  font-family: var(--sans); font-size: 16px; color: var(--ink);
  min-height: 46px; min-width: 248px; max-width: 100%;
  padding: var(--s2) var(--s3);
  background: #fff; border: 1px solid var(--rule-2); border-radius: 0;
}
.vc-select:focus-visible { outline: 2px solid var(--seal); outline-offset: 1px; border-color: var(--ink); }
.vc-out { margin-top: var(--s4); }
.vc-out:empty { margin-top: 0; }
.vc-out p { margin: 0 0 var(--s2); font-size: var(--fs-sm); line-height: 1.64; color: var(--ink-2); }
.vc-head { font-size: 18px !important; color: var(--ink) !important; }
.vc-until { font-weight: 600; color: var(--ink) !important; font-variant-numeric: tabular-nums; }
.vc-src { font-size: var(--fs-xs) !important; }
.vc-src a { color: inherit; }
.vc-free, .vc-treaty, .vc-visa, .vc-neutral { padding: var(--s3) var(--s4); border-left: 2px solid var(--seal); background: var(--seal-soft); }
.vc-treaty { border-left-color: var(--ink-3); background: var(--paper-2); }
.vc-visa { border-left-color: var(--ink); background: var(--paper-2); }
.vc-neutral { border-left-color: var(--rule-2); background: var(--paper-2); }

/* ---------- 20. 旧组件（保留类名，统一外观） ------------------------------ */
.pkg { display: grid; grid-template-columns: 320px 1fr; border-top: 1px solid var(--rule); padding-top: var(--s4); margin-bottom: var(--s5); }
.pkg .pic { aspect-ratio: 4 / 3; overflow: hidden; background: var(--paper-2); }
.pkg .pic img { width: 100%; height: 100%; object-fit: cover; }
.pkg .bd { padding: 0 0 0 var(--s5); }
.pkg h3 { margin: 0 0 var(--s1); font-size: 26px; font-family: var(--serif); font-weight: 400; }
.pkg .facts { display: flex; flex-wrap: wrap; gap: var(--s2); margin: var(--s3) 0; }
.pkg .route { margin: 0 0 var(--s4); font-size: var(--fs-sm); color: var(--ink-3); }
.pkg .acts { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); }
.pkg.flag { border-top: 2px solid var(--seal); }
.pkg .flagbadge {
  display: inline-block; margin-bottom: var(--s2); padding: 3px var(--s2);
  font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--paper); background: var(--seal);
}

.two { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s5); }
.two .col { border-top: 1px solid var(--rule); padding-top: var(--s4); }
.two .col.hi { border-top-color: var(--seal); }
.two .col h3 { margin: 0 0 var(--s1); font-size: 24px; font-weight: 400; font-family: var(--serif); }
.two .col ul { margin: var(--s3) 0 var(--s4); }

.pkgfold { border-top: 1px solid var(--rule); }
.pkgfold > summary {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s3);
  padding: var(--s3) 0; cursor: pointer; list-style: none;
  font-size: 15px; font-weight: 500; color: var(--ink);
  transition: color .18s var(--ease);
}
.pkgfold > summary:hover { color: var(--seal); }
.pkgfold > summary::-webkit-details-marker { display: none; }
.pkgfold > summary::after { content: "+"; font-size: 17px; color: var(--seal); }
.pkgfold[open] > summary::after { content: "−"; }
.pkgfold > summary .cnt { margin-left: auto; margin-right: var(--s2); font-size: 12px; font-weight: 400; color: var(--ink-3); }
.pkgfold .inner { padding-bottom: var(--s4); }

.prow { display: grid; grid-template-columns: 116px 1fr auto; gap: var(--s4); align-items: center; padding: var(--s3) 0; border-bottom: 1px solid var(--rule); }
.prow:last-child { border-bottom: 0; }
.prow .th { width: 116px; height: 78px; overflow: hidden; background: var(--paper-2); }
.prow .th img { width: 100%; height: 100%; object-fit: cover; }
.prow h4 { margin: 0 0 3px; font-size: 16px; }
.prow .rt { margin: 0 0 var(--s2); font-size: 13px; color: var(--ink-3); }
.prow .pr { font-size: 13px; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.prow .pr em { font-style: normal; font-weight: 400; color: var(--ink-3); }
.prow .ask { font-size: 13px; font-weight: 500; white-space: nowrap; }

.pkgfold.prodfold > summary { flex-wrap: wrap; }
.pf-head { display: flex; align-items: center; gap: var(--s4); flex: 1 1 auto; min-width: 0; }
.pf-th { flex: 0 0 auto; width: 116px; height: 78px; overflow: hidden; background: var(--paper-2); }
.pf-th img { width: 100%; height: 100%; object-fit: cover; }
.pf-txt { min-width: 0; }
.pf-txt h4 { margin: 0 0 3px; font-size: 16px; }
.pf-txt .rt { margin: 0; font-size: 13px; color: var(--ink-3); }
.pf-num {
  display: inline-block; margin-left: var(--s1); padding: 1px var(--s2);
  font-size: 10px; font-weight: 600; letter-spacing: .1em;
  color: var(--seal); border: 1px solid var(--seal);
}
.pf-ask { flex: 0 0 auto; margin-left: var(--s3); }

.trust {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--s3) var(--s6);
  padding: var(--s4) 0; margin: var(--s6) 0;
  border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule);
  font-size: var(--fs-sm); line-height: 1.55; color: var(--ink-3);
}
.trust b { display: inline; color: var(--ink); font-weight: 600; }

.wa-people, .ops-photos { display: grid; gap: var(--s5); margin: var(--s6) 0 var(--s7); grid-template-columns: repeat(auto-fit, minmax(224px, 1fr)); }
.wa-card { border-top: 1px solid var(--rule); padding-top: var(--s4); }
.wa-card img { width: 100%; max-width: 168px; margin: 0 0 var(--s3); }
.wa-card h4 { margin: 0 0 2px; font-size: 16px; }
.wa-card .meta { margin: 0 0 var(--s3); font-size: var(--fs-xs); color: var(--ink-3); }
.wa-card p { margin: 0; font-size: 14px; line-height: 1.7; color: var(--ink-2); }
.ops-photos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin-bottom: var(--s2); }
.ops-photos figcaption { font-size: var(--fs-xs); line-height: 1.6; color: var(--ink-3); }
.ops-photos figcaption b { display: block; margin-bottom: 2px; font-size: 14.5px; color: var(--ink); }

.pill-soon {
  display: inline-block; padding: 6px var(--s3);
  font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--seal); border: 1px solid var(--seal);
}

.holidays { margin: var(--s7) 0 0; }

/* 次要语言入口：去掉胶囊边框，退成小字，避免导航区拥挤 */
.lang-sw.mini {
  height: auto; padding: 0 2px;
  border: 0; background: transparent;
  font-size: 10.5px; letter-spacing: .06em;
  color: var(--ink-3);
}
.lang-sw.mini:hover { color: var(--ink); background: transparent; text-decoration: underline; }
@media (max-width: 1080px) { .lang-sw.mini { display: none; } }

/* ---------- 21. 响应式 ---------------------------------------------------- */
@media (max-width: 1280px) {
  .site-nav { position: static; transform: none; margin-left: auto; gap: var(--s4); }
  .nav-actions { margin-left: var(--s4); }
}

@media (max-width: 1020px) {
  :root { --rail: 280px; }
  .content-2col { grid-template-columns: 1fr; gap: var(--s6); }
  .rail { position: static; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--s5); }
  .rail-cta .btn { width: 100%; }
}

@media (max-width: 960px) {
  :root { --head-h: 64px; }

  .nav-toggle { display: inline-flex; position: absolute; top: 10px; right: var(--gutter); z-index: 80; }
  .nav-panel { display: none; }
  .site-head .wrap { gap: var(--s3); }

  .site-head.nav-open .nav-panel {
    display: flex; flex-direction: column; gap: var(--s5);
    position: fixed; left: 0; right: 0; top: var(--head-h);
    max-height: calc(100vh - var(--head-h)); overflow: auto;
    padding: var(--s5) var(--gutter) var(--s6);
    background: var(--paper);
    border-bottom: 1px solid var(--rule);
    z-index: 70;
  }
  .site-head.nav-open .site-nav { display: flex; flex-direction: column; align-items: stretch; gap: 0; margin: 0; position: static; transform: none; }
  .site-head.nav-open .site-nav a {
    font-family: var(--serif); font-size: 30px; font-weight: 400;
    letter-spacing: -.01em; text-transform: none;
    padding: var(--s3) 0; border-bottom: 1px solid var(--rule);
  }
  .site-head.nav-open .nav-actions { margin: 0; display: flex; flex-direction: column; align-items: stretch; gap: var(--s3); }
  .site-head.nav-open .nav-actions .btn { width: 100%; }
  .site-head.nav-open .lang-sw { align-self: flex-start; }

  .hero:has(.cta) { grid-template-columns: 1fr; grid-template-rows: auto 300px; min-height: 0; }
  .hero:has(.cta) .wrap { grid-column: 1; grid-row: 1; padding: var(--s7) var(--gutter); }
  .hero:has(.cta) .hero-bg { grid-column: 1; grid-row: 2; height: 300px; }

  .pkg { grid-template-columns: 1fr; }
  .pkg .bd { padding: var(--s4) 0 0; }
  .two { grid-template-columns: 1fr; }
  .hero { min-height: 420px; }
}

@media (max-width: 680px) {
  :root { --gutter: 20px; --fs-bd: 16.5px; }
  h1 { font-size: clamp(30px, 8vw, 40px); }
  .hero h1 { font-size: clamp(32px, 9vw, 44px); }
  .prose h1 { font-size: clamp(28px, 7.6vw, 36px); }
  .hero .wrap { padding-top: var(--s8); padding-bottom: var(--s6); }
  .photo-band { height: 220px; }
  .cta-band.in-page { padding: var(--s5) var(--s4); }
  .quote-form { padding: var(--s4); }
  .prow { grid-template-columns: 86px 1fr; }
  .prow .th { width: 86px; height: 64px; }
  .prow .pr, .prow .ask { grid-column: 2; white-space: normal; }
  .pf-th { width: 86px; height: 64px; }
  .pf-ask { width: 100%; margin-left: 0; margin-top: var(--s2); }
  .bk-consent-in { flex-direction: column; align-items: flex-start; }
  body.has-consent { padding-bottom: 140px; }
  .grid.c3, .grid.c2, .grid.c4 { grid-template-columns: 1fr; }
  .day { padding-left: var(--s5); }
}

/* ---------- 22. 动效与打印 ------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .gal figure:hover img { transform: none; }
}

/* ---------- 23. 阿拉伯语 / RTL -------------------------------------------- */
/* Instrument 系列没有阿拉伯字形，这里回落到系统阿拉伯字体，并给更大的行距 */
html[lang="ar"] body {
  font-family: 'Instrument Sans', 'Segoe UI', 'Noto Naskh Arabic', 'Geeza Pro', Tahoma, sans-serif;
  line-height: 1.95;
  letter-spacing: 0;
}
html[lang="ar"] h1,
html[lang="ar"] h2,
html[lang="ar"] h3,
html[lang="ar"] h4 { font-family: inherit; font-weight: 700; letter-spacing: 0; line-height: 1.35; }
html[lang="ar"] .brand { font-family: 'Instrument Serif', Georgia, serif; }

/* 阿拉伯文不用大写/字距（本来也不适用） */
[dir="rtl"] .site-nav a,
[dir="rtl"] .sec-kicker,
[dir="rtl"] .crumb,
[dir="rtl"] .btn,
[dir="rtl"] .tag,
[dir="rtl"] .more,
[dir="rtl"] .lang-sw { letter-spacing: 0; text-transform: none; }

[dir="rtl"] .site-nav { left: auto; right: 50%; transform: translateX(50%); }
[dir="rtl"] .nav-actions,
[dir="rtl"] .head-right { margin-left: 0; margin-right: auto; }
[dir="rtl"] .nav-toggle { right: auto; left: var(--gutter); }

[dir="rtl"] .crumb span { transform: scaleX(-1); display: inline-block; }
[dir="rtl"] .callout { border-left: 0; border-right: 2px solid var(--seal); }
[dir="rtl"] .vc-free, [dir="rtl"] .vc-treaty, [dir="rtl"] .vc-visa, [dir="rtl"] .vc-neutral {
  border-left: 0; border-right: 2px solid var(--seal);
}
[dir="rtl"] .tbl { direction: rtl; }
[dir="rtl"] table.facts th,
[dir="rtl"] table.facts td { text-align: right; }
[dir="rtl"] table.facts td:first-child { padding-right: 0; padding-left: var(--s5); }

[dir="rtl"] .day { padding-left: 0; padding-right: var(--s6); }
[dir="rtl"] .day::before { left: auto; right: 3px; }
[dir="rtl"] .day::after { left: auto; right: 6px; }
[dir="rtl"] .mini-itin li { padding-left: 0; padding-right: var(--s5); }
[dir="rtl"] .mini-itin li::before { left: auto; right: 2px; }

[dir="rtl"] .lnk::after { content: "←"; }
[dir="rtl"] .lnk:hover::after { transform: translateX(-3px); }
[dir="rtl"] .rail-list,
[dir="rtl"] .prose ul,
[dir="rtl"] .prose ol { padding-left: 0; padding-right: 20px; }

@media (max-width: 960px) {
  [dir="rtl"] .site-head.nav-open .nav-panel { direction: rtl; }
}

@media print {
  #preview-notice, .site-head, .bk-consent, .rail, .cta-band, .nav-toggle { display: none !important; }
  body { background: #fff; font-size: 11pt; }
  .wrap { max-width: none; padding: 0; }
  a { text-decoration: none; color: #000; }
}

/* ---------- 24. 路线示意条（行程页） -------------------------------------- */
.route-strip {
  margin: var(--s6) 0 var(--s7);
  padding: var(--s4) 0 var(--s3);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  overflow-x: auto;
}
.route-svg { width: 100%; min-width: 560px; height: auto; display: block; }
.route-strip figcaption { margin-top: var(--s2); font-size: var(--fs-xs); color: var(--ink-3); }
@media (max-width: 680px) { .route-svg { min-width: 480px; } }