{
  "version": 3,
  "sources": ["/cdn/shop/t/38/assets/ct-route-map-runtime-fix.js?ctv=20260615054100"],
  "sourcesContent": ["\uFEFF(function(){\n  if (window.__ctRouteMapRuntimeFix) return;\n  window.__ctRouteMapRuntimeFix = true;\n\n  (function ctCanonicalNavGuard(){\n    if (window.__ctCanonicalNavGuard) return;\n    window.__ctCanonicalNavGuard = true;\n    var rewrites = [\n      ['/collections/bespoke-journeys', '/pages/bespoke'],\n      ['/pages/bespoke-journeys', '/pages/bespoke'],\n      ['/collections/journeys-guizhou', '/collections/guizhou'],\n      ['/collections/journeys-history', '/collections/history'],\n      ['/collections/experiences-photography', '/pages/experience-photography'],\n      ['/collections/experiences-beijing', '/pages/beijing'],\n      ['/collections/experiences-jiangnan', '/pages/jiangnan'],\n      ['/collections/experiences-shanghai', '/pages/shanghai'],\n      ['/collections/experiences-sichuan', '/pages/sichuan'],\n      ['/collections/experiences-tibet', '/pages/tibet'],\n      ['/collections/experiences-xian', '/pages/xian'],\n      ['/collections/experiences-yunnan', '/pages/yunnan']\n    ];\n    function rewrite(root){\n      var scope = root && root.querySelectorAll ? root : document;\n      rewrites.forEach(function(pair){\n        scope.querySelectorAll('a[href*=\"' + pair[0] + '\"]').forEach(function(a){\n          var href = a.getAttribute('href') || '';\n          a.setAttribute('href', href.split(pair[0]).join(pair[1]));\n        });\n      });\n    }\n    if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', function(){ rewrite(document); });\n    else rewrite(document);\n    setTimeout(function(){ rewrite(document); }, 500);\n    setTimeout(function(){ rewrite(document); }, 2000);\n    if ('MutationObserver' in window) {\n      new MutationObserver(function(records){\n        records.forEach(function(record){\n          record.addedNodes && record.addedNodes.forEach(function(node){\n            if (node.nodeType === 1) rewrite(node);\n          });\n        });\n      }).observe(document.documentElement, { childList: true, subtree: true });\n    }\n  })();\n\n  (function ctProductVariantLinkRepair(){\n    if (window.__ctProductVariantLinkRepair) return;\n    window.__ctProductVariantLinkRepair = true;\n    function pathFromHref(href){\n      try {\n        var url = new URL(href, window.location.origin);\n        if (url.pathname.indexOf('/products/') !== 0) return '';\n        return url.pathname.replace(/\\/$/, '');\n      } catch(e) {\n        return '';\n      }\n    }\n    var staticMap = {\n      '/products/beijing-pingyao-old-capitals-8-days-private-tour-2026':'?variant=55550906466472',\n      '/products/beijing-xian-imperial-arc-9-days-private-tour-2026':'?variant=55550906171560',\n      '/products/beijing-foundations-6-days-private-tour-2026':'?variant=55550905843880',\n      '/products/beijing-imperial-immersion-private-tour-2026':'?variant=55454147608744',\n      '/products/beijing-wall-walk-hutong-deep-7-days-private-tour-2026':'?variant=55550906925224',\n      '/products/buddhist-art-chronology-private-tour-2026':'?variant=55568117694632',\n      '/products/cantonese-triangle-private-tour-2026':'?variant=55568120676520',\n      '/products/chengdu-jiuzhaigou-nature-8-days-private-tour-2026':'?variant=55550910365864',\n      '/products/chengdu-pandas-sichuan-culinary-7-days-private-tour-2026':'?variant=55550909218984',\n      '/products/chengdu-spice-deep-dive-private-tour-2026':'?variant=55568120512680',\n      '/products/danba-watchtower-private-tour-2026':'?variant=55568124477608',\n      '/products/dynasty-capitals-14-days-private-tour-2026':'?variant=55568116482216',\n      '/products/emeishan-leshan-deep-stay-private-tour-2026':'?variant=55568118579368',\n      '/products/fujian-tulou-overnight-private-tour-2026':'?variant=55568124281000',\n      '/products/guangxi-guizhou-ethnic-discovery-11-days-private-tour-2026':'?variant=55550911381672',\n      '/products/guilin-yangshuo-karst-7-days-private-tour-2026':'?variant=55550911053992',\n      '/products/guilin-yangshuo-longji-private-tour-2026':'?variant=55568118874280',\n      '/products/guizhou-minority-craft-private-tour-2026':'?variant=55568123297960',\n      '/products/hidden-guizhou-miao-dong-9-days-private-tour-2026':'?variant=55550910070952',\n      '/products/hongkong-guangzhou-heritage-8-days-private-tour-2026':'?variant=55550911676584',\n      '/products/huangshan-anhui-villages-private-tour-2026':'?variant=55568120021160',\n      '/products/indian-family-vegetarian-private-tour-2026':'?variant=55568125165736',\n      '/products/jiangnan-heritage-private-tour-2026':'?variant=55454147641512',\n      '/products/jiangnan-precision-private-tour-2026':'?variant=55568120971432',\n      '/products/jiangnan-slow-water-8-days-private-tour-2026':'?variant=55550908432552',\n      '/products/jiuzhaigou-huanglong-autumn-private-tour-2026':'?variant=55568119136424',\n      '/products/kashgar-karakoram-five-days-private-tour-2026':'?variant=55568123101352',\n      '/products/lhasa-cultural-foundation-8-days-private-tour-2026':'?variant=55550912168104',\n      '/products/longji-karst-country-private-tour-2026':'?variant=55568123527336',\n      '/products/multi-gen-china-private-tour-2026':'?variant=55568124969128',\n      '/products/nanjing-jiangnan-ming-heritage-private-tour-2026':'?variant=55568117137576',\n      '/products/naxi-lijiang-shangri-la-private-tour-2026':'?variant=55568123920552',\n      '/products/panda-first-china-private-tour-2026':'?variant=55568125624488',\n      '/products/photographers-western-desert-private-tour-2026':'?variant=55568122151080',\n      '/products/pingyao-datong-northern-loop-private-tour-2026':'?variant=55568116711592',\n      '/products/putuoshan-pilgrimage-private-tour-2026':'?variant=55568118382760',\n      '/products/shanghai-hangzhou-suzhou-triangle-9-days-private-tour-2026':'?variant=55550908104872',\n      '/products/shanghai-suzhou-gardens-7-days-private-tour-2026':'?variant=55550907809960',\n      '/products/shanghai-yangtze-river-cruise-10-days-private-tour-2026':'?variant=55550908924072',\n      '/products/sichuan-tibet-overland-16-days-private-tour-2026':'?variant=55550912757928',\n      '/products/sichuan-discovery-private-tour-2026':'?variant=55454147707048',\n      '/products/silk-road-beginning-11-days-private-tour-2026':'?variant=55550907252904',\n      '/products/silk-road-long-14-days-private-tour-2026':'?variant=55550912463016',\n      '/products/silk-road-revival-private-tour-2026':'?variant=55454147969192',\n      '/products/slow-comfort-china-private-tour-2026':'?variant=55568125919400',\n      '/products/tang-capital-hexi-corridor-private-tour-2026':'?variant=55568122708136',\n      '/products/tibet-heart-pilgrimage-private-tour-2026':'?variant=55568117170344',\n      '/products/tibet-plateau-private-tour-2026':'?variant=55454148657320',\n      '/products/wutaishan-datong-sacred-loop-private-tour-2026':'?variant=55568117858472',\n      '/products/xian-mogao-depth-private-tour-2026':'?variant=55568122478760',\n      '/products/xian-shaanxi-chronicle-private-tour-2026':'?variant=55568116056232',\n      '/products/xian-muslim-quarter-plus-private-tour-2026':'?variant=55568121626792',\n      '/products/xian-to-kashgar-14-days-private-tour-2026':'?variant=55568121856168',\n      '/products/yangtze-family-cruise-private-tour-2026':'?variant=55568125755560',\n      '/products/yunnan-sichuan-foodway-12-days-private-tour-2026':'?variant=55550910595240',\n      '/products/yunnan-classics-10-days-private-tour-2026':'?variant=55550909546664',\n      '/products/yunnan-ethnic-kitchens-private-tour-2026':'?variant=55568121364648',\n      '/products/yunnan-ethnic-tapestry-private-tour-2026':'?variant=55454148690088',\n      '/products/yunnan-multi-landscape-private-tour-2026':'?variant=55568119660712',\n      '/products/zhangjiajie-fenghuang-private-tour-2026':'?variant=55568119857320',\n      '/products/beijing-imperial-immersion':'/products/beijing-imperial-immersion-private-tour-2026?variant=55454147608744',\n      '/products/shanghai-suzhou-gardens-7-days':'/products/shanghai-suzhou-gardens-7-days-private-tour-2026?variant=55550907809960',\n      '/products/guilin-yangshuo-karst-7-days':'/products/guilin-yangshuo-karst-7-days-private-tour-2026?variant=55550911053992',\n      '/products/chengdu-pandas-sichuan-culinary-7-days':'/products/chengdu-pandas-sichuan-culinary-7-days-private-tour-2026?variant=55550909218984',\n      '/products/beijing-xian-imperial-arc-9-days':'/products/beijing-xian-imperial-arc-9-days-private-tour-2026?variant=55550906171560',\n      '/products/jiangnan-heritage':'/products/jiangnan-heritage-private-tour-2026?variant=55454147641512',\n      '/products/yunnan-classics-10-days':'/products/yunnan-classics-10-days-private-tour-2026?variant=55550909546664',\n      '/products/lhasa-cultural-foundation-8-days':'/products/lhasa-cultural-foundation-8-days-private-tour-2026?variant=55550912168104',\n      '/products/jiangnan-precision':'/products/jiangnan-precision-private-tour-2026?variant=55568120971432',\n      '/products/silk-road-revival':'/products/silk-road-revival-private-tour-2026?variant=55454147969192',\n      '/products/tibet-heart-pilgrimage':'/products/tibet-heart-pilgrimage-private-tour-2026?variant=55568117170344',\n      '/products/naxi-lijiang-shangri-la':'/products/naxi-lijiang-shangri-la-private-tour-2026?variant=55568123920552',\n      '/products/buddhist-art-chronology':'/products/buddhist-art-chronology-private-tour-2026?variant=55568117694632',\n      '/products/dynasty-capitals-14-days':'/products/dynasty-capitals-14-days-private-tour-2026?variant=55568116482216',\n      '/products/sichuan-tibet-overland-16-days':'/products/sichuan-tibet-overland-16-days-private-tour-2026?variant=55550912757928',\n      '/products/silk-road-long-14-days':'/products/silk-road-long-14-days-private-tour-2026?variant=55550912463016'\n    };\n    function buildVariantMap(scope){\n      var map = Object.assign({}, staticMap);\n      (scope || document).querySelectorAll('a[href*=\"/products/\"][href*=\"variant=\"]').forEach(function(anchor){\n        var href = anchor.getAttribute('href') || '';\n        var path = pathFromHref(href);\n        if (!path) return;\n        try {\n          var url = new URL(href, window.location.origin);\n          var variant = url.searchParams.get('variant');\n          if (variant) map[path] = '?variant=' + encodeURIComponent(variant);\n        } catch(e) {}\n      });\n      return map;\n    }\n    function rewrite(scope){\n      var root = scope && scope.querySelectorAll ? scope : document;\n      var map = buildVariantMap(document);\n      if (!Object.keys(map).length) return;\n      root.querySelectorAll('a[href*=\"/products/\"]').forEach(function(anchor){\n        var href = anchor.getAttribute('href') || '';\n        if (href.indexOf('variant=') !== -1 || href.indexOf('view=quickview') !== -1) return;\n        var path = pathFromHref(href);\n        if (!path || !map[path]) return;\n        anchor.setAttribute('href', map[path].indexOf('/products/') === 0 ? map[path] : path + map[path]);\n      });\n    }\n    if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', function(){ rewrite(document); });\n    else rewrite(document);\n    setTimeout(function(){ rewrite(document); }, 500);\n    setTimeout(function(){ rewrite(document); }, 2000);\n    if ('MutationObserver' in window) {\n      new MutationObserver(function(records){\n        records.forEach(function(record){\n          record.addedNodes && record.addedNodes.forEach(function(node){\n            if (node.nodeType === 1) rewrite(node);\n          });\n        });\n      }).observe(document.documentElement, { childList: true, subtree: true });\n    }\n  })();\n\n  var cityCoords = {\n    Shanghai:[121.4737,31.2304], Hangzhou:[120.1551,30.2741], Suzhou:[120.5853,31.2989],\n    Beijing:[116.4074,39.9042], ForbiddenCity:[116.397,39.916], Mutianyu:[116.56,40.43], TerracottaWarriors:[109.278,34.385], Xian:[108.9398,34.3416],\n    Luoyang:[112.454,34.619], LongmenGrottoes:[112.471,34.559], Kaifeng:[114.307,34.797], Chengdu:[104.0665,30.5728],\n    Leshan:[103.7656,29.5521], Emeishan:[103.4845,29.6012], Jiuzhaigou:[103.918,33.26],\n    Guilin:[110.290,25.274], Yangshuo:[110.496,24.778], Longji:[110.13,25.77],\n    Zhangjiajie:[110.479,29.117], Fenghuang:[109.599,27.948], Lhasa:[91.132,29.652],\n    Shigatse:[88.885,29.267], Gyantse:[89.606,28.917], Dali:[100.267,25.606],\n    Lijiang:[100.227,26.856], ShangriLa:[99.706,27.826], Kunming:[102.832,24.88],\n    Yuanyang:[102.835,23.219], Xishuangbanna:[100.797,22.009], Xiamen:[118.089,24.479],\n    Gulangyu:[118.067,24.447], Tulou:[117.016,24.657], Nanjing:[118.796,32.060],\n    Yangzhou:[119.412,32.394], Huangshan:[118.337,29.714], Hongcun:[117.990,29.902],\n    Wutaishan:[113.59,39.00], Datong:[113.3,40.076], Pingyao:[112.175,37.189],\n    Taiyuan:[112.548,37.870], Dunhuang:[94.662,40.142], Zhangye:[100.449,38.925],\n    Jiayuguan:[98.289,39.773], Turpan:[89.184,42.951], Kashgar:[75.989,39.470],\n    Guangzhou:[113.264,23.129], Shenzhen:[114.057,22.543], HongKong:[114.169,22.319],\n    Chongqing:[106.551,29.563], Guiyang:[106.6302,26.6470], Kaili:[107.981,26.566],\n    Xijiang:[108.173,26.495], Danzhai:[107.79,26.20], Zhaoxing:[109.178,25.906],\n    Danba:[101.884,30.878], Tagong:[101.507,30.321], Songpan:[103.599,32.638],\n    KarakulLake:[75.055,38.431], Tashkurgan:[75.229,37.775], Yamdrok:[90.695,28.934],\n    Shaxi:[99.852,26.317]\n  };\n  var displayNames = {Xian:\"Xi'an\", ShangriLa:'Shangri-La', HongKong:'Hong Kong', KarakulLake:'Karakul Lake', Mutianyu:'Great Wall', ForbiddenCity:'Forbidden City', TerracottaWarriors:'Terracotta Warriors', LongmenGrottoes:'Longmen Grottoes'};\n  var regionLabelCoords = [\n    {name:'BEIJING', coord:[116.40,39.90]}, {name:'SHANXI', coord:[112.50,37.80]}, {name:'SHAANXI', coord:[108.94,34.35]},\n    {name:'HENAN', coord:[113.70,34.70]}, {name:'JIANGNAN', coord:[120.20,31.10]}, {name:'FUJIAN', coord:[117.80,25.60]},\n    {name:'SICHUAN', coord:[103.90,30.65]}, {name:'CHONGQING', coord:[106.55,29.55]}, {name:'GUIZHOU', coord:[106.90,26.70]},\n    {name:'GUANGXI', coord:[108.20,23.80]}, {name:'HUNAN', coord:[112.85,27.80]}, {name:'YUNNAN', coord:[101.90,24.70]},\n    {name:'TIBET', coord:[91.20,30.00]}, {name:'GANSU', coord:[99.80,38.60]}, {name:'XINJIANG', coord:[84.40,41.70]},\n    {name:'GUANGDONG', coord:[113.40,23.10]}, {name:'HONG KONG', coord:[114.15,22.30]}, {name:'YANGTZE', coord:[107.70,30.40]}\n  ];\n  var cityAliases = [\n    ['Mutianyu',['great wall','mutianyu']], ['TerracottaWarriors',['terracotta warriors','terracotta army']], ['ForbiddenCity',['forbidden city']],\n    ['LongmenGrottoes',['longmen grottoes','longmen']], ['Luoyang',['luoyang']], ['Kaifeng',['kaifeng']],\n    ['Xian',[\"xi'an\",'xian','terracotta']],\n    ['Beijing',['beijing','temple of heaven']],\n    ['Chengdu',['chengdu','panda']], ['Leshan',['leshan']], ['Emeishan',['emei','emeishan']],\n    ['Jiuzhaigou',['jiuzhaigou','huanglong']], ['Guilin',['guilin']], ['Yangshuo',['yangshuo']],\n    ['Longji',['longji']], ['Zhangjiajie',['zhangjiajie','avatar mountain']],\n    ['Fenghuang',['fenghuang']], ['Lhasa',['lhasa','potala','jokhang']], ['Shigatse',['shigatse']],\n    ['Gyantse',['gyantse']], ['Dali',['dali']], ['Lijiang',['lijiang']],\n    ['ShangriLa',['shangri-la','shangrila','shangri la','meili']], ['Kunming',['kunming']],\n    ['Yuanyang',['yuanyang']], ['Xishuangbanna',['xishuangbanna','banna']],\n    ['Xiamen',['xiamen','nanputuo']], ['Gulangyu',['gulangyu']], ['Tulou',['tulou','hakka']],\n    ['Nanjing',['nanjing']], ['Yangzhou',['yangzhou']], ['Huangshan',['huangshan','yellow mountain']],\n    ['Hongcun',['hongcun']], ['Wutaishan',['wutaishan','mount wutai','wutai']], ['Datong',['datong','yungang']],\n    ['Pingyao',['pingyao']], ['Taiyuan',['taiyuan']], ['Dunhuang',['dunhuang','mogao']],\n    ['Zhangye',['zhangye']], ['Jiayuguan',['jiayuguan']], ['Turpan',['turpan']], ['Kashgar',['kashgar']],\n    ['Guiyang',['guiyang','qianling','jiaxiu']], ['Kaili',['kaili','langde','shidong','silverwork']],\n    ['Xijiang',['xijiang','thousand-household','miao village']], ['Danzhai',['danzhai','batik','paper villages']],\n    ['Zhaoxing',['zhaoxing','dong village','drum tower','wind-rain']],\n    ['Danba',['danba','jiarong','watchtower']], ['Tagong',['tagong','grassland']], ['Songpan',['songpan']],\n    ['KarakulLake',['karakul lake','karakul','pamir']], ['Tashkurgan',['tashkurgan','stone fortress']],\n    ['Yamdrok',['yamdrok','yamdrok lake']], ['Shaxi',['shaxi','tea-horse']],\n    ['Guangzhou',['guangzhou','canton']], ['Shenzhen',['shenzhen']], ['HongKong',['hong kong','hongkong']],\n    ['Chongqing',['chongqing','yangtze']], ['Shanghai',['shanghai','bund']], ['Hangzhou',['hangzhou','west lake']],\n    ['Suzhou',['suzhou','garden']]\n  ];\n  var assetFiles = {\n    Beijing:'ct-day-forbidden-city.jpg', ForbiddenCity:'ct-day-forbidden-city.jpg', Mutianyu:'ct-day-mutianyu.jpg',\n    TerracottaWarriors:'ct-day-terracotta.jpg', Xian:'ct-day-terracotta.jpg', Luoyang:'ct-day-shaanxi-museum.jpg',\n    LongmenGrottoes:'ct-day-shaanxi-museum.jpg', Kaifeng:'ct-day-pingyao.jpg',\n    Chengdu:'ct-day-panda.jpg', Leshan:'ct-day-sichuan.jpg', Emeishan:'ct-day-sichuan.jpg', Jiuzhaigou:'ct-day-sichuan.jpg',\n    Guilin:'ct-day-guilin-river.webp', Yangshuo:'ct-day-yangshuo.jpg', Longji:'ct-day-longji.jpg',\n    Zhangjiajie:'ct-day-zhangjiajie.jpg', Fenghuang:'ct-day-fenghuang.jpg', Lhasa:'ct-day-potala.jpg',\n    Shigatse:'ct-day-jokhang.jpg', Gyantse:'ct-day-yamdrok.jpg', Dali:'ct-day-yunnan.jpg',\n    Lijiang:'ct-day-lijiang.jpg', ShangriLa:'ct-day-meili.jpg', Kunming:'ct-day-yunnan-village.jpg',\n    Yuanyang:'ct-day-yuanyang.jpg', Xishuangbanna:'ct-day-yunnan.jpg', Xiamen:'ct-day-xiamen-gulangyu.jpg',\n    Gulangyu:'ct-day-xiamen-gulangyu.jpg', Tulou:'ct-day-tulou.jpg', Nanjing:'ct-day-nanjing.jpg',\n    Yangzhou:'ct-day-suzhou.jpg', Huangshan:'ct-day-huangshan.jpg', Hongcun:'ct-day-hongcun.jpg',\n    Wutaishan:'ct-day-wutaishan.jpg', Datong:'ct-day-yungang.jpg', Pingyao:'ct-day-pingyao.jpg',\n    Taiyuan:'ct-day-wutaishan.jpg', Dunhuang:'ct-day-mogao.jpg', Zhangye:'ct-day-zhangye.jpg',\n    Jiayuguan:'ct-day-jiayuguan.jpg', Turpan:'ct-day-turpan.jpg', Kashgar:'ct-day-kashgar.jpg',\n    Guangzhou:'ct-day-guangdong.webp', Shenzhen:'ct-day-guangdong.webp', HongKong:'ct-day-guangdong.webp',\n    Chongqing:'ct-day-yangtze.webp', Shanghai:'ct-day-shanghai.webp', Hangzhou:'ct-day-hangzhou.jpg',\n    Suzhou:'ct-day-suzhou.jpg', Guiyang:'ct-day-guizhou-miao.jpg', Kaili:'ct-day-guizhou-silver.jpg',\n    Xijiang:'ct-day-guizhou-miao.jpg', Danzhai:'ct-day-guizhou-silver.jpg', Zhaoxing:'ct-day-guizhou-miao.jpg',\n    Danba:'ct-day-sichuan.jpg', Tagong:'ct-day-sichuan.jpg', Songpan:'ct-day-sichuan.jpg',\n    KarakulLake:'ct-day-kashgar.jpg', Tashkurgan:'ct-day-kashgar.jpg', Yamdrok:'ct-day-tibet-monastery.jpg',\n    Shaxi:'ct-day-yunnan.jpg'\n  };\n\n  function escapeHtml(value){\n    return String(value || '').replace(/[&<>\"']/g, function(ch){\n      return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[ch];\n    });\n  }\n  function escapeRegExp(value){ return String(value || '').replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); }\n  function hasAlias(hay, alias){\n    alias = String(alias || '').toLowerCase();\n    if(!alias) return false;\n    if(/^[a-z0-9]+$/.test(alias)){\n      return new RegExp('(^|[^a-z0-9])' + escapeRegExp(alias) + '([^a-z0-9]|$)').test(hay);\n    }\n    return hay.indexOf(alias) !== -1;\n  }\n  function matchCity(text){\n    var hay = String(text || '').toLowerCase();\n    for(var i=0;i<cityAliases.length;i++){\n      var key = cityAliases[i][0];\n      var aliases = cityAliases[i][1];\n      for(var j=0;j<aliases.length;j++){\n        if(hasAlias(hay, aliases[j])) return key;\n      }\n    }\n    return '';\n  }\n  function textOf(day){\n    return [day.city, day.highlight, day.play, day.culture, day.lodging, day.stayArea, day.note].join(' ');\n  }\n  function displayCity(key){ return displayNames[key] || key; }\n  var transportModes = {\n    flight:{label:'Flight', color:'#bf711e', icon:'<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M2 16l20-8-9 12-2-7-7 3z\"></path><path d=\"M11 13l-3 7\"></path></svg>'},\n    rail:{label:'Rail', color:'#405b4b', icon:'<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"5\" y=\"3\" width=\"14\" height=\"14\" rx=\"3\"></rect><path d=\"M8 21l3-4\"></path><path d=\"M16 21l-3-4\"></path><path d=\"M8 8h8\"></path><path d=\"M8 12h8\"></path></svg>'},\n    car:{label:'Private car', color:'#8e6229', icon:'<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12l2-5h10l2 5\"></path><rect x=\"3\" y=\"12\" width=\"18\" height=\"7\" rx=\"2\"></rect><path d=\"M7 19v2\"></path><path d=\"M17 19v2\"></path><path d=\"M6 15h.1\"></path><path d=\"M18 15h.1\"></path></svg>'},\n    boat:{label:'Boat', color:'#3f6a76', icon:'<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 17h16l-2 4H6l-2-4z\"></path><path d=\"M7 17V8l5-3 5 3v9\"></path><path d=\"M9 11h6\"></path></svg>'}\n  };\n  function transportModeForText(value){\n    var text = String(value || '').toLowerCase();\n    if(/flight|airport|plane|fly|air/.test(text)) return 'flight';\n    if(/rail|train|high-speed|bullet/.test(text)) return 'rail';\n    if(/cruise|river|boat|ferry|ship/.test(text)) return 'boat';\n    return 'car';\n  }\n  function transportLabel(mode){\n    return (transportModes[mode] || transportModes.car).label;\n  }\n  function transportIcon(mode){\n    return (transportModes[mode] || transportModes.car).icon;\n  }\n  function dayNumber(value, fallback){\n    var m = String(value || '').match(/\\d+/);\n    return m ? Number(m[0]) : fallback;\n  }\n  function dayLabel(stop){\n    return stop.startDay === stop.endDay ? 'Day ' + stop.startDay : 'Day ' + stop.startDay + '-' + stop.endDay;\n  }\n  function cleanTitle(day, cityKey){\n    var t = String(day.highlight || day.play || displayCity(cityKey)).replace(/\\s+/g,' ').trim();\n    return t || displayCity(cityKey);\n  }\n  function roleText(day){\n    return String(day.play || day.highlight || day.culture || '').replace(/\\s+/g,' ').trim().slice(0, 96);\n  }\n  function detailText(day, cityKey){\n    return String(day.culture || day.note || (displayCity(cityKey) + ' route anchor.')).replace(/\\s+/g,' ').trim().slice(0, 150);\n  }\n  function assetBase(){\n    var html = document.documentElement.innerHTML;\n    var m = html.match(/(?:https?:)?\\/\\/[^\"']+\\/cdn\\/shop\\/t\\/\\d+\\/assets\\//) || html.match(/\\/cdn\\/shop\\/t\\/\\d+\\/assets\\//);\n    if(!m) return 'https://chinatourly.com/cdn/shop/t/29/assets/';\n    var base = m[0];\n    if(base.indexOf('//') === 0) base = location.protocol + base;\n    if(base.indexOf('/') === 0) base = location.origin + base;\n    return base;\n  }\n  function injectRuntimeStyles(){\n    if(document.getElementById('ct-route-runtime-style')) return;\n    var style = document.createElement('style');\n    style.id = 'ct-route-runtime-style';\n    style.textContent = [\n      '.ct-route-live-map{margin:8px 0 46px;padding:18px;border-radius:24px;background:linear-gradient(135deg,#f8f3e9,#fffdf7);border:1px solid rgba(139,111,71,.16);box-shadow:0 22px 60px rgba(31,24,17,.10)}',\n      '.ct-route-live-map,.ct-route-live-map *{box-sizing:border-box}',\n      '.ct-route-live-map__canvas{display:grid;grid-template-columns:.86fr 1.14fr;min-height:560px;border-radius:18px;overflow:hidden;background:#f4efe5;border:1px solid rgba(139,111,71,.12)}',\n      '.ct-route-live-map__desk{position:relative;z-index:3;display:grid;align-content:space-between;gap:22px;min-height:560px;padding:28px;color:#fffaf0;background:linear-gradient(rgba(25,28,23,.72),rgba(25,28,23,.82));border-right:1px solid rgba(255,250,240,.18);overflow:hidden}',\n      '.ct-route-live-map__desk:before{content:\\\"\\\";position:absolute;inset:0;background:var(--ct-route-desk-image,none) center/cover no-repeat;z-index:-2;transform:scale(1.02);transition:background-image .25s ease,transform .4s ease}',\n      '.ct-route-live-map__desk:after{content:\\\"\\\";position:absolute;inset:0;background:radial-gradient(circle at 18% 18%,rgba(248,221,160,.18),transparent 24%),linear-gradient(180deg,rgba(25,28,23,.18),rgba(25,28,23,.82));z-index:-1}',\n      '.ct-route-live-map__desk small,.ct-route-live-map__panel small,.ct-route-live-map__day span,.ct-route-live-map__transport-label{display:block;margin:0 0 8px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#d7aa66;font-weight:850}',\n      '.ct-route-live-map__desk strong{display:block;max-width:500px;font-family:Georgia,\\\"Times New Roman\\\",serif;font-size:46px;line-height:.9;margin:8px 0 12px;color:#fffaf0;font-weight:500}',\n      '.ct-route-live-map__desk span,.ct-route-live-map__desk em{display:block;max-width:520px;font-size:14px;line-height:1.6;color:rgba(255,250,240,.82);font-style:normal}',\n      '.ct-route-live-map__desk-card{display:grid;grid-template-columns:112px 1fr;gap:14px;align-items:stretch;width:min(480px,100%);padding:12px;background:rgba(31,24,17,.54);border:1px solid rgba(255,250,240,.20);box-shadow:0 22px 44px rgba(31,24,17,.24);backdrop-filter:blur(14px)}',\n      '.ct-route-live-map__desk-card img{display:block;width:112px;height:104px;object-fit:cover;border:1px solid rgba(255,250,240,.18);background:#1f1811}',\n      '.ct-route-live-map__desk-card h4{margin:5px 0 6px;font-family:Georgia,\\\"Times New Roman\\\",serif;font-size:23px;line-height:1.05;font-weight:500;color:#fffaf0}',\n      '.ct-route-live-map__desk-card p{margin:0;color:rgba(255,250,240,.78);font-size:12px;line-height:1.45}',\n      '.ct-route-live-map__right{display:grid;grid-template-rows:auto minmax(335px,1fr) auto;background:#fffaf0}',\n      '.ct-route-live-map__panel{position:relative;z-index:2;padding:22px 24px 16px;background:linear-gradient(180deg,#fffaf0,#fbf3e4);border-bottom:1px solid rgba(139,111,71,.16)}',\n      '.ct-route-live-map__panel h3{font-family:Georgia,\\\"Times New Roman\\\",serif;font-size:36px;line-height:.95;margin:0 0 8px;color:#1f1811;font-weight:600}',\n      '.ct-route-live-map__panel p{font-size:13px;line-height:1.55;color:#6d6257;margin:0;max-width:700px}',\n      '.ct-route-live-map__facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:15px}',\n      '.ct-route-live-map__facts span{display:block;padding:10px;background:rgba(255,253,247,.84);border:1px solid rgba(139,111,71,.14);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#7a7165;font-weight:800}',\n      '.ct-route-live-map__facts b{display:block;font-family:Georgia,\\\"Times New Roman\\\",serif;font-size:22px;letter-spacing:0;text-transform:none;color:#1f1811}',\n      '.ct-route-live-map__mapwrap{position:relative;min-height:335px;overflow:hidden;background:radial-gradient(circle at 78% 16%,rgba(255,253,247,.54),transparent 28%),#f4efe5}',\n      '.ct-route-live-map__echart{position:absolute;inset:0;width:100%;height:100%}',\n      '.ct-route-live-map__region-labels{position:absolute;inset:0;z-index:2;pointer-events:none}',\n      '.ct-route-live-map__region-label{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font-size:12px;line-height:1;letter-spacing:.20em;text-transform:uppercase;font-weight:900;color:rgba(88,78,62,.34);text-shadow:0 1px 0 rgba(255,253,247,.78);font-family:Inter,Arial,sans-serif}',\n      '.ct-route-live-map__region-label.is-primary{font-size:18px;color:rgba(67,91,78,.54);letter-spacing:.25em}',\n      '.ct-route-live-map__pins,.ct-route-live-map__transport{position:absolute;inset:0;z-index:4;pointer-events:none}',\n      '.ct-route-live-map__transport{z-index:3}',\n      '.ct-route-live-map__pin{position:absolute;min-width:104px;padding:8px 12px 9px 30px;border:1px solid rgba(199,119,46,.32);border-radius:999px;background:rgba(255,253,247,.96);box-shadow:0 14px 30px rgba(31,24,17,.14);backdrop-filter:blur(14px);color:#1f1811;text-align:left;cursor:pointer;pointer-events:auto;transform:translate(-50%,-50%);transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}',\n      '.ct-route-live-map__pin span{display:block;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#9a6b38;font-weight:850;line-height:1.1}',\n      '.ct-route-live-map__pin strong{display:block;margin-top:2px;font-size:13px;line-height:1.05;color:#1f1811;font-weight:850;white-space:nowrap}',\n      '.ct-route-live-map__pin:before{content:\\\"\\\";position:absolute;left:12px;top:50%;width:8px;height:8px;border-radius:50%;background:#c7772e;transform:translateY(-50%);box-shadow:0 0 0 7px rgba(199,119,46,.14),0 0 0 14px rgba(199,119,46,.06)}',\n      '.ct-route-live-map__pin:hover,.ct-route-live-map__pin:focus-visible,.ct-route-live-map__pin.is-active{background:#fffdf7;border-color:rgba(199,119,46,.58);box-shadow:0 18px 34px rgba(31,24,17,.18);transform:translate(-50%,-54%)}',\n      '.ct-route-live-map__transport-marker{position:absolute;left:50%;top:50%;width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:rgba(255,250,240,.92);border:1px solid rgba(255,250,240,.88);color:#2f473d;box-shadow:0 8px 22px rgba(58,43,28,.22);backdrop-filter:blur(8px);transform:translate(-50%,-50%);will-change:left,top}',\n      '.ct-route-live-map__transport-marker:after{content:\\\"\\\";position:absolute;inset:-5px;border-radius:inherit;border:1px solid rgba(199,119,46,.24);animation:ctRoutePulse 1.9s ease-out infinite}',\n      '.ct-route-live-map__transport-marker svg{width:17px;height:17px;display:block;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}',\n      '.ct-route-live-map__transport-marker[data-mode=\\\"flight\\\"]{color:#bf711e}.ct-route-live-map__transport-marker[data-mode=\\\"rail\\\"]{color:#405b4b}.ct-route-live-map__transport-marker[data-mode=\\\"car\\\"]{color:#8e6229}.ct-route-live-map__transport-marker[data-mode=\\\"boat\\\"]{color:#3f6a76}',\n      '.ct-route-live-map__timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));border-top:1px solid rgba(139,111,71,.16);background:#fffaf0}',\n      '.ct-route-live-map__day{min-height:150px;padding:18px;border:0;border-right:1px solid rgba(139,111,71,.14);background:transparent;color:#1f1811;cursor:pointer;text-align:left;font:inherit;display:grid;align-content:space-between;gap:10px;transition:background .18s ease,color .18s ease}',\n      '.ct-route-live-map__day:last-child{border-right:0}.ct-route-live-map__day.is-active{background:#f4ead7}.ct-route-live-map__day strong{display:block;font-family:Georgia,\\\"Times New Roman\\\",serif;font-size:26px;line-height:.96;font-weight:600;color:#1f1811}.ct-route-live-map__day p{margin:0;color:#6d6257;font-size:12px;line-height:1.45}',\n      '.ct-route-live-map__day em{display:inline-flex;align-items:center;gap:7px;color:#42614f;font-style:normal;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.ct-route-live-map__day em svg{width:14px;height:14px;stroke-width:2.2}',\n      '.ct-route-live-map__legend{display:flex;gap:18px;align-items:center;justify-content:center;margin-top:14px;font-size:12px;color:#6d6257;font-weight:750}',\n      '.ct-route-live-map__legend span{display:inline-flex;align-items:center;gap:8px}',\n      '.ct-route-live-map__legend i{width:10px;height:10px;border-radius:50%;background:#c7772e;display:inline-block}.ct-route-live-map__legend i.is-line{width:26px;height:2px;border-radius:2px;background:#53685b}',\n      '.ct-route-map[data-ct-old-map-hidden=\\\"1\\\"]{display:none!important}',\n      '.ct-route-live-map.ct-route-live-map--runtime-upgraded .ct-route-live-map__canvas{display:grid!important;grid-template-columns:.86fr 1.14fr!important;min-height:560px!important;position:relative!important;border-radius:18px!important;overflow:hidden!important;background:#f4efe5!important;border:1px solid rgba(139,111,71,.12)!important}',\n      '.ct-route-live-map.ct-route-live-map--runtime-upgraded .ct-route-live-map__panel{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:auto!important;z-index:2!important;padding:22px 24px 16px!important;background:linear-gradient(180deg,#fffaf0,#fbf3e4)!important;border:0!important;border-bottom:1px solid rgba(139,111,71,.16)!important;box-shadow:none!important;backdrop-filter:none!important}',\n      '.ct-route-live-map.ct-route-live-map--runtime-upgraded .ct-route-live-map__pins{position:absolute!important;inset:0!important;display:block!important;z-index:4!important;pointer-events:none!important}',\n      '.ct-route-live-map.ct-route-live-map--runtime-upgraded .ct-route-live-map__region-labels{position:absolute!important;inset:0!important;z-index:2!important;pointer-events:none!important}',\n      '.ct-route-live-map.ct-route-live-map--runtime-upgraded .ct-route-live-map__pin{position:absolute!important;min-width:104px!important;padding:8px 12px 9px 30px!important;border-radius:999px!important;transform:translate(-50%,-50%)!important}',\n      '.ct-route-live-map.ct-route-live-map--runtime-upgraded .ct-route-live-map__pin:hover,.ct-route-live-map.ct-route-live-map--runtime-upgraded .ct-route-live-map__pin:focus-visible,.ct-route-live-map.ct-route-live-map--runtime-upgraded .ct-route-live-map__pin.is-active{transform:translate(-50%,-54%)!important}',\n      '@keyframes ctRoutePulse{0%{transform:scale(.82);opacity:.62}100%{transform:scale(1.7);opacity:0}}',\n      '@media(max-width:900px){.ct-route-live-map{padding:12px;margin:4px 0 30px;border-radius:20px}.ct-route-live-map__canvas{grid-template-columns:1fr}.ct-route-live-map.ct-route-live-map--runtime-upgraded .ct-route-live-map__canvas{grid-template-columns:1fr!important}.ct-route-live-map__desk{min-height:460px;padding:22px;border-right:0}.ct-route-live-map__desk strong{font-size:34px}.ct-route-live-map__desk-card{grid-template-columns:96px 1fr}.ct-route-live-map__desk-card img{width:96px;height:96px}.ct-route-live-map__right{grid-template-rows:auto 330px auto}.ct-route-live-map__panel{padding:18px}.ct-route-live-map.ct-route-live-map--runtime-upgraded .ct-route-live-map__panel{padding:18px!important}.ct-route-live-map__panel h3{font-size:28px}.ct-route-live-map__pins{display:none}.ct-route-live-map.ct-route-live-map--runtime-upgraded .ct-route-live-map__pins{display:none!important}.ct-route-live-map__timeline{grid-template-columns:1fr}.ct-route-live-map__day{min-height:116px;border-right:0;border-bottom:1px solid rgba(139,111,71,.14)}}'\n    ].join('\\n');\n    document.head.appendChild(style);\n  }\n  function pickImage(day, cityKey, fallback){\n    var image = String(day.image || '').trim();\n    if(image === 'https://cdn.shopify.com/s/files/1/0748/7419/2040/t/21/assets/dimg-beijing-pingyao-old-capitals-8-days-01.webp') return assetBase() + 'dimg-beijing-pingyao-old-capitals-8-days-01.webp';\n    if(image) return image;\n    var file = assetFiles[cityKey];\n    return file ? assetBase() + file : fallback;\n  }\n  function extractArray(text, start){\n    var i = text.indexOf('[', start);\n    if(i < 0) return '';\n    var quote = '', escaped = false, depth = 0;\n    for(var p=i; p<text.length; p++){\n      var ch = text[p];\n      if(quote){\n        if(escaped) escaped = false;\n        else if(ch === '\\\\') escaped = true;\n        else if(ch === quote) quote = '';\n      } else {\n        if(ch === '\"' || ch === \"'\") quote = ch;\n        else if(ch === '[') depth++;\n        else if(ch === ']'){\n          depth--;\n          if(depth === 0) return text.slice(i, p + 1);\n        }\n      }\n    }\n    return '';\n  }\n  function rawDaysFromPage(){\n    var scripts = Array.prototype.slice.call(document.scripts);\n    for(var i=0;i<scripts.length;i++){\n      var text = scripts[i].textContent || '';\n      var idx = text.indexOf('var rawDays');\n      if(idx === -1) continue;\n      var arr = extractArray(text, idx);\n      if(!arr) continue;\n      try { return Function('\"use strict\";return (' + arr + ');')(); }\n      catch(e){}\n    }\n    return rawDaysFromAccordions();\n  }\n  function rawDaysFromAccordions(){\n    return Array.prototype.slice.call(document.querySelectorAll('.day-acc')).map(function(acc, index){\n      var title = acc.querySelector('.day-acc__title') ? acc.querySelector('.day-acc__title').textContent : '';\n      var day = acc.querySelector('.day-acc__num strong') ? acc.querySelector('.day-acc__num strong').textContent : String(index + 1);\n      var meta = acc.querySelector('.day-acc__meta') ? acc.querySelector('.day-acc__meta').textContent : '';\n      var play = acc.querySelector('.day__detail:nth-child(2) p') ? acc.querySelector('.day__detail:nth-child(2) p').textContent : '';\n      var lede = acc.querySelector('.day-acc__lede') ? acc.querySelector('.day-acc__lede').textContent : '';\n      var culture = acc.querySelector('.day__culture') ? acc.querySelector('.day__culture').textContent : '';\n      var note = acc.querySelector('.day__detail:last-child p') ? acc.querySelector('.day__detail:last-child p').textContent : '';\n      var photo = acc.querySelector('.day-acc__photo');\n      var image = '';\n      if(photo){\n        var bg = window.getComputedStyle(photo).backgroundImage || photo.style.backgroundImage || '';\n        var m = bg.match(/url\\([\\\"']?([^\\\"')]+)[\\\"']?\\)/);\n        if(m) image = m[1];\n      }\n      return {day:day, city:title.split(/\\s+[\u2013\u2014-]\\s+/)[0] || title, transport:meta, highlight:title, play:play || lede, culture:culture, note:note, image:image};\n    });\n  }\n  function routeShellMarkup(fallback){\n    return '<div class=\"ct-route-live-map__canvas\"><aside class=\"ct-route-live-map__desk\" data-ct-route-detail><div><small>Route desk</small><strong>Route map</strong><span>Tap a route stop to see the role of that place, the day range, and the transfer logic.</span></div><div class=\"ct-route-live-map__desk-card\"><img src=\"'+escapeHtml(fallback || '')+'\" alt=\"Route preview\" loading=\"lazy\" width=\"160\" height=\"118\"><div><small>Route preview</small><h4>Planner-selected stop</h4><p>Each route anchor shows why it matters before enquiry.</p></div></div></aside><div class=\"ct-route-live-map__right\"><div class=\"ct-route-live-map__panel\"><small>ChinaTourly route map</small><h3 data-ct-route-title>Route map</h3><p>City stops, day ranges, and the main movement between anchors are shown before you ask a planner to confirm the route.</p><div class=\"ct-route-live-map__facts\"><span><b data-ct-route-duration>Route</b> Duration</span><span><b data-ct-route-count>Stops</b> City anchors</span><span><b data-ct-route-transport>Mixed</b> Transport</span></div></div><div class=\"ct-route-live-map__mapwrap\"><div class=\"ct-route-live-map__echart\" aria-label=\"Interactive China route map\"></div><div class=\"ct-route-live-map__region-labels\" data-ct-route-region-labels aria-hidden=\"true\"></div><div class=\"ct-route-live-map__pins\" data-ct-route-pins aria-label=\"Route city stops\"></div><div class=\"ct-route-live-map__transport\" data-ct-route-transport-layer aria-hidden=\"true\"></div></div><div class=\"ct-route-live-map__timeline\" data-ct-route-timeline></div></div></div><div class=\"ct-route-live-map__legend\"><span><i></i> City stop</span><span><i class=\"is-line\"></i> Route segment with animated transport</span></div>';\n  }\n  function upgradeExistingShell(shell, fallback){\n    if(!shell) return;\n    if(shell.querySelector('.ct-route-live-map__desk') && shell.querySelector('.ct-route-live-map__mapwrap') && shell.querySelector('[data-ct-route-timeline]')) return;\n    var existingRoot = shell.querySelector('.ct-route-live-map__echart');\n    var rootId = existingRoot && existingRoot.id ? existingRoot.id : '';\n    shell.innerHTML = routeShellMarkup(fallback || '');\n    shell.classList.add('ct-route-live-map--runtime-upgraded');\n    if(rootId){\n      var nextRoot = shell.querySelector('.ct-route-live-map__echart');\n      if(nextRoot) nextRoot.id = rootId;\n    }\n  }\n  function createShellFromOldMap(){\n    if(document.querySelector('.ct-route-live-map')) return;\n    var oldMap = document.querySelector('.ct-route-map');\n    if(!oldMap) return;\n    injectRuntimeStyles();\n    var fallback = oldMap.querySelector('img') ? (oldMap.querySelector('img').currentSrc || oldMap.querySelector('img').src) : '';\n    var shell = document.createElement('section');\n    shell.className = 'ct-route-live-map ct-route-live-map--runtime-upgraded';\n    shell.setAttribute('data-ct-route-live-map','');\n    shell.innerHTML = routeShellMarkup(fallback);\n    oldMap.parentNode.insertBefore(shell, oldMap);\n    oldMap.dataset.ctOldMapHidden = '1';\n  }\n  function buildStops(rawDays, fallbackImage){\n    var grouped = [];\n    rawDays.forEach(function(day, index){\n      var cityKey = matchCity(day.city) || matchCity(day.highlight) || matchCity(textOf(day));\n      if(!cityKey || !cityCoords[cityKey]) return;\n      var n = dayNumber(day.day, index + 1);\n      var mode = transportModeForText([day.transport, day.highlight, day.play, day.note].join(' '));\n      var previous = grouped[grouped.length - 1];\n      if(previous && previous.key === cityKey){\n        previous.endDay = Math.max(previous.endDay, n);\n        if(roleText(day, cityKey).length > previous.role.length) previous.role = roleText(day, cityKey);\n        if(detailText(day, cityKey).length > previous.detail.length) previous.detail = detailText(day, cityKey);\n        if(!previous.mode || previous.mode === 'car') previous.mode = mode;\n        return;\n      }\n      grouped.push({\n        key: cityKey,\n        name: displayCity(cityKey),\n        title: cleanTitle(day, cityKey),\n        startDay: n,\n        endDay: n,\n        coord: cityCoords[cityKey],\n        image: pickImage(day, cityKey, fallbackImage),\n        role: roleText(day, cityKey),\n        detail: detailText(day, cityKey),\n        mode: mode\n      });\n    });\n    if(grouped.length > 7) grouped = grouped.slice(0, 6).concat(grouped[grouped.length - 1]);\n    grouped.forEach(function(stop){ stop.day = dayLabel(stop); });\n    return grouped;\n  }\n  function titleForStops(stops){\n    var names = stops.map(function(s){ return s.name; });\n    if(names.length > 2 && names[0] === names[names.length - 1]) names = names.slice(0, -1);\n    if(names.length > 4) return names.slice(0, 3).join(' > ') + ' + ' + (names.length - 3) + ' more';\n    return names.join(' > ');\n  }\n  function transportForDays(rawDays){\n    var text = rawDays.map(function(d){ return d.transport || ''; }).join(' ').toLowerCase();\n    var modes = [];\n    if(/flight|airport|plane|fly|air/.test(text)) modes.push('Flight');\n    if(/rail|train|high-speed|bullet/.test(text)) modes.push('Rail');\n    if(/cruise|river|boat|ferry|ship/.test(text)) modes.push('Boat');\n    if(!modes.length || /transfer|driver|private|road|car/.test(text)) modes.push('Private car');\n    return modes.slice(0, 2).join(' + ');\n  }\n  function setDetail(detail, stop){\n    if(!detail || !stop) return;\n    detail.style.setProperty('--ct-route-desk-image', 'url(\"' + String(stop.image || '').replace(/\"/g, '%22') + '\")');\n    detail.innerHTML = '<div><small>Route desk</small><strong>'+escapeHtml(stop.title)+'</strong><span>'+escapeHtml(stop.role || ('Private planner stop in ' + stop.name + '.'))+'</span></div><div class=\"ct-route-live-map__desk-card\"><img src=\"'+escapeHtml(stop.image)+'\" alt=\"'+escapeHtml(stop.name)+' route preview\" loading=\"lazy\" width=\"160\" height=\"118\"><div><small>'+escapeHtml(stop.day)+'</small><h4>'+escapeHtml(stop.name)+'</h4><p>'+escapeHtml(stop.detail || 'Planner-reviewed route anchor.')+'</p></div></div>';\n  }\n  function lineData(stops){\n    var out = [];\n    for(var i=1;i<stops.length;i++){\n      out.push({coords:[stops[i-1].coord, stops[i].coord], name: stops[i-1].name + ' to ' + stops[i].name, mode: stops[i].mode || 'car', from:i-1, to:i});\n    }\n    return out;\n  }\n  function lineStyleForMode(mode){\n    var meta = transportModes[mode] || transportModes.car;\n    return {color:meta.color, width:2.6, curveness:.16, opacity:.88, type:mode === 'flight' || mode === 'boat' ? 'dashed' : 'solid'};\n  }\n  function lineSeries(stops){\n    return lineData(stops).map(function(segment){\n      var meta = transportModes[segment.mode] || transportModes.car;\n      return {\n        type:'lines',\n        coordinateSystem:'geo',\n        zlevel:2,\n        silent:true,\n        effect:{show:false},\n        lineStyle:lineStyleForMode(segment.mode),\n        data:[{coords:segment.coords,name:segment.name,lineStyle:{color:meta.color}}]\n      };\n    });\n  }\n  function scatterSeries(stops){\n    return {\n      type:'effectScatter',\n      coordinateSystem:'geo',\n      zlevel:3,\n      rippleEffect:{brushType:'stroke',scale:3.6},\n      symbolSize:12,\n      itemStyle:{color:'#c7772e',borderColor:'#fffdf7',borderWidth:2,shadowBlur:10,shadowColor:'rgba(199,119,46,.42)'},\n      data:stops.map(function(s){ return {name:s.name,value:s.coord,day:s.day,title:s.title,role:s.role,detail:s.detail,image:s.image}; })\n    };\n  }\n  function buildTransportMarkers(root, layer, stops){\n    if(!root || !layer || !stops.length || !window.echarts) return;\n    var chart = echarts.getInstanceByDom(root);\n    if(!chart) return;\n    var segments = lineData(stops);\n    layer.innerHTML = segments.map(function(segment, index){\n      var mode = segment.mode || 'car';\n      return '<span class=\"ct-route-live-map__transport-marker\" data-mode=\"'+escapeHtml(mode)+'\" data-ct-route-transport-index=\"'+index+'\" aria-hidden=\"true\">'+transportIcon(mode)+'</span>';\n    }).join('');\n    if(root.__ctTransportRaf) cancelAnimationFrame(root.__ctTransportRaf);\n    function tick(now){\n      var rect = root.getBoundingClientRect();\n      segments.forEach(function(segment, index){\n        var marker = layer.querySelector('[data-ct-route-transport-index=\"'+index+'\"]');\n        if(!marker || !rect.width) return;\n        var a = chart.convertToPixel({geoIndex:0}, stops[segment.from].coord);\n        var b = chart.convertToPixel({geoIndex:0}, stops[segment.to].coord);\n        if(!a || !b) return;\n        var duration = 6200 + index * 520;\n        var t = ((now + index * 1100) % duration) / duration;\n        t = t < .5 ? t * 2 : (1 - t) * 2;\n        var ease = t < .5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n        var x = a[0] + (b[0] - a[0]) * ease;\n        var y = a[1] + (b[1] - a[1]) * ease;\n        marker.style.left = (x / rect.width * 100) + '%';\n        marker.style.top = (y / rect.height * 100) + '%';\n      });\n      root.__ctTransportRaf = requestAnimationFrame(tick);\n    }\n    root.__ctTransportRaf = requestAnimationFrame(tick);\n  }\n  function positionPins(root, pinWrap, stops){\n    if(!pinWrap || window.matchMedia('(max-width:760px)').matches) return;\n    var chart = window.echarts && window.echarts.getInstanceByDom(root);\n    var rect = root.getBoundingClientRect();\n    if(!chart || !rect.width) return;\n    var positions = stops.map(function(stop, index){\n      var px = chart.convertToPixel({geoIndex:0}, stop.coord);\n      return {index:index, x:px ? px[0] : rect.width / 2, y:px ? px[1] : rect.height / 2};\n    });\n    for(var pass=0; pass<8; pass++){\n      for(var i=0; i<positions.length; i++){\n        for(var j=i+1; j<positions.length; j++){\n          var a = positions[i];\n          var b = positions[j];\n          var dx = b.x - a.x;\n          var dy = b.y - a.y;\n          if(Math.abs(dx) < 120 && Math.abs(dy) < 44){\n            var sx = dx >= 0 ? 1 : -1;\n            var sy = dy >= 0 ? 1 : -1;\n            b.x += sx * 18;\n            a.x -= sx * 8;\n            b.y += sy * 12;\n            a.y -= sy * 6;\n          }\n        }\n      }\n    }\n    positions.forEach(function(pos){\n      var pin = pinWrap.querySelector('[data-ct-route-index=\"'+pos.index+'\"]');\n      if(!pin) return;\n      pos.x = Math.max(64, Math.min(rect.width - 74, pos.x));\n      pos.y = Math.max(34, Math.min(rect.height - 34, pos.y));\n      pin.style.left = (pos.x / rect.width * 100) + '%';\n      pin.style.top = (pos.y / rect.height * 100) + '%';\n    });\n  }\n  function routeBounds(stops, pad){\n    var lon = stops.map(function(s){ return s.coord[0]; });\n    var lat = stops.map(function(s){ return s.coord[1]; });\n    return {\n      minLon:Math.min.apply(Math, lon) - pad,\n      maxLon:Math.max.apply(Math, lon) + pad,\n      minLat:Math.min.apply(Math, lat) - pad,\n      maxLat:Math.max.apply(Math, lat) + pad\n    };\n  }\n  function regionLabelsForStops(stops){\n    if(!stops.length) return [];\n    var bounds = routeBounds(stops, 2.8);\n    var centerLon = (bounds.minLon + bounds.maxLon) / 2;\n    var centerLat = (bounds.minLat + bounds.maxLat) / 2;\n    var labels = regionLabelCoords.filter(function(label){\n      return label.coord[0] >= bounds.minLon && label.coord[0] <= bounds.maxLon && label.coord[1] >= bounds.minLat && label.coord[1] <= bounds.maxLat;\n    });\n    if(labels.length < 2){\n      labels = regionLabelCoords.slice().sort(function(a,b){\n        var da = Math.pow(a.coord[0] - centerLon, 2) + Math.pow(a.coord[1] - centerLat, 2);\n        var db = Math.pow(b.coord[0] - centerLon, 2) + Math.pow(b.coord[1] - centerLat, 2);\n        return da - db;\n      }).slice(0, 3);\n    }\n    labels.sort(function(a,b){\n      var da = Math.pow(a.coord[0] - centerLon, 2) + Math.pow(a.coord[1] - centerLat, 2);\n      var db = Math.pow(b.coord[0] - centerLon, 2) + Math.pow(b.coord[1] - centerLat, 2);\n      return da - db;\n    });\n    return labels.slice(0, 6);\n  }\n  function ensureRegionLayer(shell){\n    var mapWrap = shell && shell.querySelector('.ct-route-live-map__mapwrap');\n    if(!mapWrap) return null;\n    var layer = mapWrap.querySelector('[data-ct-route-region-labels]');\n    if(layer) return layer;\n    layer = document.createElement('div');\n    layer.className = 'ct-route-live-map__region-labels';\n    layer.setAttribute('data-ct-route-region-labels','');\n    layer.setAttribute('aria-hidden','true');\n    var pins = mapWrap.querySelector('[data-ct-route-pins]');\n    mapWrap.insertBefore(layer, pins || null);\n    return layer;\n  }\n  function positionRegionLabels(root, labelLayer, stops){\n    if(!labelLayer || window.matchMedia('(max-width:760px)').matches){ if(labelLayer) labelLayer.innerHTML = ''; return; }\n    var chart = window.echarts && window.echarts.getInstanceByDom(root);\n    var rect = root.getBoundingClientRect();\n    if(!chart || !rect.width) return;\n    var labels = regionLabelsForStops(stops);\n    labelLayer.innerHTML = labels.map(function(label, index){\n      return '<span class=\"ct-route-live-map__region-label'+(index === 0 ? ' is-primary' : '')+'\" data-ct-route-region-index=\"'+index+'\">'+escapeHtml(label.name)+'</span>';\n    }).join('');\n    labels.forEach(function(label, index){\n      var node = labelLayer.querySelector('[data-ct-route-region-index=\"'+index+'\"]');\n      var px = chart.convertToPixel({geoIndex:0}, label.coord);\n      if(!node || !px){ if(node) node.style.display = 'none'; return; }\n      var x = Math.max(46, Math.min(rect.width - 46, px[0]));\n      var y = Math.max(26, Math.min(rect.height - 26, px[1]));\n      if(index === 0){\n        x = Math.max(74, Math.min(rect.width - 74, x - 16));\n        y = Math.max(36, Math.min(rect.height - 36, y - 58));\n      }\n      node.style.left = (x / rect.width * 100) + '%';\n      node.style.top = (y / rect.height * 100) + '%';\n    });\n  }\n  function ensureEcharts(callback){\n    if(window.echarts){ callback(); return; }\n    var existing = document.querySelector('script[data-ct-echarts]');\n    if(existing){ existing.addEventListener('load', callback, {once:true}); return; }\n    var script = document.createElement('script');\n    script.src = 'https://cdn.jsdelivr.net/npm/echarts@5.5.1/dist/echarts.min.js';\n    script.async = true;\n    script.dataset.ctEcharts = '1';\n    script.onload = callback;\n    document.head.appendChild(script);\n  }\n  function routeView(stops){\n    var lon = stops.map(function(s){ return s.coord[0]; });\n    var lat = stops.map(function(s){ return s.coord[1]; });\n    var minLon = Math.min.apply(Math, lon), maxLon = Math.max.apply(Math, lon);\n    var minLat = Math.min.apply(Math, lat), maxLat = Math.max.apply(Math, lat);\n    var span = Math.max(maxLon - minLon, maxLat - minLat);\n    var zoom = span > 35 ? 1.25 : span > 20 ? 1.8 : span > 12 ? 2.6 : span > 7 ? 4 : span > 3 ? 5.7 : 7.4;\n    return {center:[(minLon + maxLon) / 2, (minLat + maxLat) / 2], zoom:zoom};\n  }\n  function initChart(root, stops, rawDays, pinWrap, transportLayer, labelLayer){\n    if(!root || !stops.length || root.dataset.ctRuntimeChartInit) return;\n    root.dataset.ctRuntimeChartInit = '1';\n    ensureEcharts(function(){\n      fetch(assetBase() + 'china-map.json').then(function(r){ return r.json(); }).then(function(geoJson){\n        var mapName = 'ct-route-runtime-cn';\n        try{ echarts.registerMap(mapName, geoJson); }catch(e){}\n        var chart = echarts.getInstanceByDom(root) || echarts.init(root);\n        var view = routeView(stops);\n        chart.setOption({\n          backgroundColor:'transparent',\n          tooltip:{\n            trigger:'item',\n            confine:true,\n            backgroundColor:'#fffdf7',\n            borderColor:'rgba(139,111,71,.18)',\n            borderWidth:1,\n            textStyle:{color:'#1f1811'},\n            formatter:function(p){\n              if(p.seriesType === 'effectScatter'){\n                var d = p.data;\n                return '<b>'+d.name+'</b><br><span style=\"color:#8b6f47\">'+d.day+'</span><br>'+d.role;\n              }\n              if(p.seriesType === 'lines') return p.data.name;\n              return '';\n            }\n          },\n          geo:{\n            map:mapName,\n            roam:false,\n            silent:true,\n            center:view.center,\n            zoom:view.zoom,\n            label:{show:false},\n            itemStyle:{areaColor:'#efe9dc',borderColor:'#d1bea0',borderWidth:1},\n            emphasis:{disabled:true}\n          },\n          series:lineSeries(stops).concat([scatterSeries(stops)])\n        });\n        chart.on('click', function(p){\n          if(p.seriesType === 'effectScatter'){\n            var pin = pinWrap && pinWrap.querySelector('[data-ct-route-stop=\"'+p.data.name+'\"]');\n            if(pin) pin.click();\n          }\n        });\n        chart.resize();\n        setTimeout(function(){ chart.resize(); positionRegionLabels(root, labelLayer, stops); positionPins(root, pinWrap, stops); buildTransportMarkers(root, transportLayer, stops); }, 120);\n        setTimeout(function(){ chart.resize(); positionRegionLabels(root, labelLayer, stops); positionPins(root, pinWrap, stops); buildTransportMarkers(root, transportLayer, stops); }, 700);\n      }).catch(function(){ positionPins(root, pinWrap, stops); });\n    });\n  }\n  function applyFix(shell){\n    if(shell.dataset.ctRouteRuntimeApplied) return;\n    var existingDetail = shell.querySelector('[data-ct-route-detail]');\n    var fallback = existingDetail && existingDetail.querySelector('img') ? (existingDetail.querySelector('img').currentSrc || existingDetail.querySelector('img').src) : '';\n    if(!fallback){\n      var existingImg = shell.querySelector('img');\n      if(existingImg) fallback = existingImg.currentSrc || existingImg.src || '';\n    }\n    upgradeExistingShell(shell, fallback);\n    var root = shell.querySelector('.ct-route-live-map__echart');\n    var pinWrap = shell.querySelector('[data-ct-route-pins]');\n    var detail = shell.querySelector('[data-ct-route-detail]');\n    var timeline = shell.querySelector('[data-ct-route-timeline]');\n    var transportLayer = shell.querySelector('[data-ct-route-transport-layer]');\n    var labelLayer = ensureRegionLayer(shell);\n    if(!root || !pinWrap) return;\n    var rawDays = rawDaysFromPage();\n    var stops = buildStops(rawDays, fallback);\n    if(!stops.length) return;\n    shell.dataset.ctRouteRuntimeApplied = '1';\n    var titleNode = shell.querySelector('[data-ct-route-title]');\n    var countNode = shell.querySelector('[data-ct-route-count]');\n    var transportNode = shell.querySelector('[data-ct-route-transport]');\n    if(titleNode) titleNode.textContent = titleForStops(stops);\n    if(countNode) countNode.textContent = String(stops.length);\n    if(transportNode) transportNode.textContent = transportForDays(rawDays);\n    pinWrap.innerHTML = stops.map(function(stop, index){\n      return '<button type=\"button\" class=\"ct-route-live-map__pin'+(index === 0 ? ' is-active' : '')+'\" data-ct-route-stop=\"'+escapeHtml(stop.name)+'\" data-ct-route-index=\"'+index+'\" aria-pressed=\"'+(index === 0 ? 'true' : 'false')+'\"><span>'+escapeHtml(stop.day)+'</span><strong>'+escapeHtml(stop.name)+'</strong></button>';\n    }).join('');\n    if(timeline){\n      timeline.innerHTML = stops.map(function(stop, index){\n        var mode = index === 0 ? 'car' : (stop.mode || 'car');\n        var label = index === 0 ? 'Start city' : transportLabel(mode);\n        return '<button type=\"button\" class=\"ct-route-live-map__day'+(index === 0 ? ' is-active' : '')+'\" data-ct-route-day-index=\"'+index+'\"><span>'+escapeHtml(stop.day)+'</span><strong>'+escapeHtml(stop.name)+'</strong><p>'+escapeHtml(stop.role || stop.detail || 'Planner-reviewed route anchor.')+'</p><em>'+transportIcon(mode)+escapeHtml(label)+'</em></button>';\n      }).join('');\n    }\n    var pins = Array.prototype.slice.call(pinWrap.querySelectorAll('[data-ct-route-stop]'));\n    var days = timeline ? Array.prototype.slice.call(timeline.querySelectorAll('[data-ct-route-day-index]')) : [];\n    function activate(stop, pin){\n      pins.forEach(function(p){ p.classList.remove('is-active'); p.setAttribute('aria-pressed','false'); });\n      if(pin){ pin.classList.add('is-active'); pin.setAttribute('aria-pressed','true'); }\n      days.forEach(function(item){ item.classList.toggle('is-active', Number(item.getAttribute('data-ct-route-day-index')) === stops.indexOf(stop)); });\n      setDetail(detail, stop);\n    }\n    pins.forEach(function(pin){\n      var stop = stops[Number(pin.getAttribute('data-ct-route-index')) || 0];\n      pin.addEventListener('mouseenter', function(){ activate(stop, pin); });\n      pin.addEventListener('focus', function(){ activate(stop, pin); });\n      pin.addEventListener('click', function(){ activate(stop, pin); });\n    });\n    days.forEach(function(dayButton){\n      var stop = stops[Number(dayButton.getAttribute('data-ct-route-day-index')) || 0];\n      dayButton.addEventListener('mouseenter', function(){ activate(stop, pins[stops.indexOf(stop)]); });\n      dayButton.addEventListener('focus', function(){ activate(stop, pins[stops.indexOf(stop)]); });\n      dayButton.addEventListener('click', function(){ activate(stop, pins[stops.indexOf(stop)]); });\n    });\n    setDetail(detail, stops[0]);\n    function syncChart(){\n      var chart = window.echarts && window.echarts.getInstanceByDom(root);\n      if(chart){\n        chart.setOption({\n          tooltip:{\n            formatter:function(p){\n              if(p.seriesType === 'effectScatter'){\n                var d = p.data;\n                return '<b>'+d.name+'</b><br><span style=\"color:#8b6f47\">'+d.day+'</span><br>'+d.role;\n              }\n              if(p.seriesType === 'lines') return p.data.name;\n              return '';\n            }\n          },\n          series:lineSeries(stops).concat([scatterSeries(stops)])\n        }, {replaceMerge:['series']});\n        positionRegionLabels(root, labelLayer, stops);\n        positionPins(root, pinWrap, stops);\n        buildTransportMarkers(root, transportLayer, stops);\n        return true;\n      }\n      initChart(root, stops, rawDays, pinWrap, transportLayer, labelLayer);\n      return false;\n    }\n    function startChart(){\n      if(root.dataset.ctRouteChartRequested) return;\n      root.dataset.ctRouteChartRequested = '1';\n      syncChart();\n    }\n    if('IntersectionObserver' in window){\n      var chartObserver = new IntersectionObserver(function(entries){\n        if(!entries.some(function(entry){ return entry.isIntersecting; })) return;\n        chartObserver.disconnect();\n        startChart();\n      }, {rootMargin:'500px 0px'});\n      chartObserver.observe(root.closest('.ct-route-live-map__stage') || root.parentElement || root);\n    } else {\n      startChart();\n    }\n    window.addEventListener('resize', function(){ setTimeout(function(){ positionRegionLabels(root, labelLayer, stops); positionPins(root, pinWrap, stops); buildTransportMarkers(root, transportLayer, stops); }, 120); });\n  }\n  function run(){\n    injectRuntimeStyles();\n    createShellFromOldMap();\n    document.querySelectorAll('.ct-route-live-map').forEach(applyFix);\n  }\n  if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', run);\n  else run();\n  setTimeout(run, 1200);\n  setTimeout(run, 3000);\n})();\n\n;(function(){\n  if(window.__ctPaymentSceneRuntime20260611) return;\n  window.__ctPaymentSceneRuntime20260611 = true;\n  var css = [\n    '@media (min-width:990px){',\n    '.ctc-booking .ctc-media{isolation:isolate}',\n    '.ctc-booking .ctc-media__motion{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden;background:radial-gradient(circle at 74% 20%,rgba(255,253,247,.18),transparent 22%),radial-gradient(circle at 35% 64%,rgba(199,119,46,.18),transparent 26%)}',\n    '.ctc-booking .ctc-route-thread{position:absolute;left:14%;right:17%;height:2px;background:linear-gradient(90deg,rgba(255,253,247,0),rgba(248,221,160,.84),rgba(255,253,247,0));transform-origin:left center;filter:drop-shadow(0 0 12px rgba(248,221,160,.38));opacity:.78}',\n    '.ctc-booking .ctc-route-thread--one{top:34%;transform:rotate(12deg)}.ctc-booking .ctc-route-thread--two{top:48%;transform:rotate(-9deg)}',\n    '.ctc-booking .ctc-route-thread:after{content:\"\";position:absolute;left:0;top:-3px;width:44px;height:8px;border-radius:999px;background:linear-gradient(90deg,transparent,#fff6d7,transparent);animation:ctcRouteScanLive 3.8s ease-in-out infinite}',\n    '.ctc-booking .ctc-route-pin{position:absolute;width:16px;height:16px;border-radius:50%;background:#c7772e;border:2px solid #fff2cd;box-shadow:0 0 0 8px rgba(199,119,46,.16),0 0 30px rgba(255,229,174,.28);transition:transform .25s ease,background .25s ease}.ctc-booking .ctc-route-pin i{position:absolute;inset:3px;border-radius:50%;background:#fffaf0}',\n    '.ctc-booking .ctc-route-pin--start{left:18%;top:31%}.ctc-booking .ctc-route-pin--mid{left:52%;top:42%}.ctc-booking .ctc-route-pin--end{right:18%;top:31%}',\n    '.ctc-booking .ctc-traveller-mark{position:absolute;left:54%;bottom:26%;width:46px;height:64px;transition:transform .25s ease}.ctc-booking .ctc-traveller-mark__head{position:absolute;left:14px;top:0;width:18px;height:18px;border-radius:50%;background:#ffe1b1;box-shadow:0 0 0 3px rgba(28,22,17,.22)}.ctc-booking .ctc-traveller-mark__body{position:absolute;left:17px;top:19px;width:12px;height:32px;border-radius:999px;background:#f8d06e;box-shadow:0 14px 24px rgba(0,0,0,.22)}.ctc-booking .ctc-traveller-mark__arm{position:absolute;top:26px;width:24px;height:4px;border-radius:999px;background:#ffe1b1;transition:transform .25s ease}.ctc-booking .ctc-traveller-mark__arm--left{left:0;transform-origin:right center;transform:rotate(-24deg)}.ctc-booking .ctc-traveller-mark__arm--right{right:0;transform-origin:left center;transform:rotate(24deg)}',\n    '.ctc-booking .ctc-scene-card{position:absolute;left:30px;top:24%;z-index:3;width:min(340px,calc(100% - 60px));padding:18px 18px 16px;background:rgba(22,18,14,.66);border:1px solid rgba(255,253,247,.26);box-shadow:0 24px 48px rgba(0,0,0,.25);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:background .24s ease,border-color .24s ease}.ctc-booking .ctc-scene-card small{display:block;margin:0 0 8px;color:#f2c66d;font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:850}.ctc-booking .ctc-scene-card strong{display:block;color:#fffdf7;font-family:Georgia,Times New Roman,serif;font-size:24px;line-height:1.08;font-weight:500}.ctc-booking .ctc-scene-card span{display:block;margin-top:9px;color:rgba(255,253,247,.78);font-size:12px;line-height:1.45}',\n    '.ctc-booking .ctc-confirm-stack{position:absolute;right:28px;top:24%;z-index:3;display:grid;gap:8px}.ctc-booking .ctc-confirm-stack span{min-width:68px;padding:7px 9px;border:1px solid rgba(255,253,247,.24);background:rgba(255,253,247,.12);color:rgba(255,253,247,.78);font-size:9px;letter-spacing:.12em;text-transform:uppercase;font-weight:850;text-align:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.ctc-booking .ctc-confirm-stack span.is-live{background:#fffdf7;color:#8b5b2b;border-color:#fffdf7}',\n    '.ctc-booking .ctc-media[data-ctc-scene=\"full\"] .ctc-route-pin--end,.ctc-booking .ctc-media[data-ctc-scene=\"deposit\"] .ctc-route-pin--mid,.ctc-booking .ctc-media[data-ctc-scene=\"date\"] .ctc-route-pin--start{transform:scale(1.22);background:#fff3ca}.ctc-booking .ctc-media[data-ctc-scene=\"full\"] .ctc-traveller-mark,.ctc-booking .ctc-media[data-ctc-scene=\"deposit\"] .ctc-traveller-mark{transform:translateY(-8px)}.ctc-booking .ctc-media[data-ctc-scene=\"full\"] .ctc-traveller-mark__arm--left,.ctc-booking .ctc-media[data-ctc-scene=\"deposit\"] .ctc-traveller-mark__arm--left{transform:rotate(-58deg)}.ctc-booking .ctc-media[data-ctc-scene=\"full\"] .ctc-traveller-mark__arm--right,.ctc-booking .ctc-media[data-ctc-scene=\"deposit\"] .ctc-traveller-mark__arm--right{transform:rotate(58deg)}',\n    '.ctc-booking .ctc-media[data-ctc-scene=\"full\"] .ctc-scene-card{border-color:rgba(242,198,109,.7);background:rgba(112,67,25,.74)}.ctc-booking .ctc-media[data-ctc-scene=\"deposit\"] .ctc-scene-card{top:58%;border-color:rgba(166,190,167,.64);background:rgba(39,64,53,.76)}.ctc-booking .ctc-media[data-ctc-scene=\"deposit\"] .ctc-confirm-stack{top:58%}',\n    '.ctc-booking .ctc-media__motion,.ctc-booking .ctc-route-thread,.ctc-booking .ctc-route-pin,.ctc-booking .ctc-traveller-mark{display:none!important;visibility:hidden!important;opacity:0!important}',\n    '@keyframes ctcRouteScanLive{0%{transform:translateX(-120%);opacity:0}12%{opacity:1}88%{opacity:1}100%{transform:translateX(520%);opacity:0}}',\n    '}'\n  ].join('');\n  function installCss(){\n    if(document.getElementById('ct-payment-scene-runtime-css-20260611')) return;\n    var style=document.createElement('style');\n    style.id='ct-payment-scene-runtime-css-20260611';\n    style.appendChild(document.createTextNode(css));\n    document.head.appendChild(style);\n  }\n  var states={\n    date:{kicker:'Season window active',title:'Planner checks the right travel window.',copy:'Exact dates update the seasonal pressure, price, and hold logic before checkout.',live:'Date'},\n    full:{kicker:'Full route lock',title:'Fastest confirmation path.',copy:'Pay in full applies the 20% saving and sends the route straight to guide, room, and rail checks.',live:'Guide'},\n    deposit:{kicker:'Flexible route hold',title:'Hold the route with a lower today payment.',copy:'The 20% deposit uses the 10% trip-value saving while the planner confirms final details.',live:'Room'}\n  };\n  function sceneMarkup(){\n    return '<div class=\"ctc-media__motion\"><div class=\"ctc-scene-card\"><small data-ctc-scene-kicker>Season window active</small><strong data-ctc-scene-title>Planner checks the right travel window.</strong><span data-ctc-scene-copy>Exact dates update the seasonal pressure, price, and hold logic before checkout.</span></div><div class=\"ctc-confirm-stack\"><span class=\"is-live\">Date</span><span>Guide</span><span>Room</span><span>Rail</span></div></div>';\n  }\n  function pruneMotion(media){\n    if(!media) return;\n    media.querySelectorAll('.ctc-route-thread,.ctc-route-pin,.ctc-traveller-mark').forEach(function(node){\n      node.remove();\n    });\n  }\n  function setScene(root, mode){\n    var media=root.querySelector('.ctc-media');\n    if(!media) return;\n    var next=states[mode] || states.date;\n    media.setAttribute('data-ctc-scene', mode || 'date');\n    var kicker=media.querySelector('[data-ctc-scene-kicker]');\n    var title=media.querySelector('[data-ctc-scene-title]');\n    var copy=media.querySelector('[data-ctc-scene-copy]');\n    if(kicker) kicker.textContent=next.kicker;\n    if(title) title.textContent=next.title;\n    if(copy) copy.textContent=next.copy;\n    Array.prototype.forEach.call(media.querySelectorAll('.ctc-confirm-stack span'), function(item){\n      item.classList.toggle('is-live', item.textContent.trim() === next.live);\n    });\n  }\n  function enhance(root){\n    if(!root || root.dataset.ctPaymentSceneRuntime === '1') return;\n    var media=root.querySelector('.ctc-media');\n    if(!media) return;\n    root.dataset.ctPaymentSceneRuntime = '1';\n    installCss();\n    if(!media.querySelector('.ctc-media__motion')) media.insertAdjacentHTML('afterbegin', sceneMarkup());\n    media.querySelectorAll('.ctc-media__motion').forEach(function(node){ node.setAttribute('aria-hidden', 'true'); });\n    pruneMotion(media);\n    setScene(root, 'date');\n    var full=root.querySelector('[data-ctc-pay-full]');\n    var dep=root.querySelector('[data-ctc-pay-deposit]');\n    if(full){\n      full.addEventListener('mouseenter', function(){ setScene(root,'full'); });\n      full.addEventListener('focus', function(){ setScene(root,'full'); });\n      full.addEventListener('mouseleave', function(){ setScene(root,'date'); });\n      full.addEventListener('blur', function(){ setScene(root,'date'); });\n    }\n    if(dep){\n      dep.addEventListener('mouseenter', function(){ setScene(root,'deposit'); });\n      dep.addEventListener('focus', function(){ setScene(root,'deposit'); });\n      dep.addEventListener('mouseleave', function(){ setScene(root,'date'); });\n      dep.addEventListener('blur', function(){ setScene(root,'date'); });\n    }\n  }\n  function runPaymentScene(){\n    document.querySelectorAll('[data-ctc-booking]').forEach(enhance);\n  }\n  if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', runPaymentScene);\n  else runPaymentScene();\n  setTimeout(runPaymentScene, 1000);\n  setTimeout(runPaymentScene, 3000);\n})();\n\n(function(){\n  'use strict';\n  var STYLE_ID = 'ct-article-cache-repair-20260612';\n  function installStyle(){\n    if(document.getElementById(STYLE_ID)) return;\n    var style = document.createElement('style');\n    style.id = STYLE_ID;\n    style.textContent = [\n      '.ct-article-jump{max-width:1180px;margin:70px auto 0;padding:0 24px 20px}',\n      '.ct-article-jump__head{max-width:720px;margin:0 auto 28px;text-align:center}',\n      '.ct-article-jump__head span{display:block;color:#8b6f47;font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:850;margin-bottom:10px}',\n      '.ct-article-jump__head h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:34px;line-height:1.12;font-weight:500;color:#1f1811}',\n      '.ct-article-jump__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}',\n      '.ct-article-jump__card{display:flex;min-height:142px;flex-direction:column;justify-content:space-between;padding:22px 20px;background:#fffdf8;border:1px solid rgba(139,111,71,.20);box-shadow:0 18px 44px rgba(31,24,17,.05);text-decoration:none;color:#1f1811;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}',\n      '.ct-article-jump__card:hover{transform:translateY(-3px);border-color:#b88b4a;box-shadow:0 22px 52px rgba(31,24,17,.09)}',\n      '.ct-article-jump__card small{color:#a27135;font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:850}',\n      '.ct-article-jump__card strong{font-family:Georgia,Times New Roman,serif;font-size:21px;line-height:1.15;font-weight:500;color:#1f1811}',\n      '.ct-article-jump__card span{color:#6d6357;font-size:13px;line-height:1.45}',\n      '@media(max-width:749px){.ct-article-jump{margin-top:52px;padding-left:16px;padding-right:16px}.ct-article-jump__grid{grid-template-columns:1fr;gap:12px}.ct-article-jump__card{min-height:120px}}'\n    ].join('');\n    document.head.appendChild(style);\n  }\n  function repairHero(){\n    var hero = document.querySelector('.ct-article-hero');\n    if(!hero) return;\n    var bg = window.getComputedStyle(hero).backgroundImage || '';\n    if(bg.indexOf('url(') !== -1) return;\n    var img = document.querySelector('.article-template__content img, article img');\n    var src = img && (img.currentSrc || img.src);\n    if(!src) return;\n    hero.style.backgroundImage = 'linear-gradient(rgba(0,0,0,.16),rgba(0,0,0,.54)), url(\"' + src.replace(/\"/g, '%22') + '\")';\n    hero.style.backgroundSize = 'cover';\n    hero.style.backgroundPosition = 'center';\n  }\n  function repairJump(){\n    if(!document.body.classList.contains('template-article')) return;\n    if(document.querySelector('.ct-article-jump')) return;\n    var article = document.querySelector('.article-template');\n    if(!article) return;\n    installStyle();\n    var jump = document.createElement('div');\n    jump.className = 'ct-article-jump';\n    jump.setAttribute('aria-label', 'Continue planning');\n    jump.innerHTML = '<div class=\"ct-article-jump__head\"><span>Continue planning</span><h2>Turn this reading into a private route</h2></div><div class=\"ct-article-jump__grid\"><a class=\"ct-article-jump__card\" href=\"/collections/signature-journeys\"><small>Routes</small><strong>Signature journeys</strong><span>Planner-reviewed private routes with visible date logic.</span></a><a class=\"ct-article-jump__card\" href=\"/pages/journeys-by-destination\"><small>Places</small><strong>Choose a region</strong><span>Compare China by route anchor, season, and pace.</span></a><a class=\"ct-article-jump__card\" href=\"/pages/china-visa\"><small>Before you go</small><strong>Visa guide</strong><span>Entry rules, transit logic, and documents before booking.</span></a><a class=\"ct-article-jump__card\" href=\"/pages/contact\"><small>Planner</small><strong>Ask a route question</strong><span>Send dates, budget, and the route constraints that matter.</span></a></div>';\n    article.insertAdjacentElement('afterend', jump);\n  }\n  function run(){\n    repairHero();\n    repairJump();\n  }\n  if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', run);\n  else run();\n  setTimeout(run, 1000);\n  setTimeout(run, 3000);\n})();\n"],
  "mappings": "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",
  "names": []
}
