/* ==========================================================================
   HMA — 全站样式
   来源：原本内联在 index.html 的 <style> 块，逐字节搬迁，未做改写。
   改动请只改本文件；index.html 不再包含样式。
   ========================================================================== */

/* ==========================================================================
   HERO MONGOLIA ADVENTURE — v5
   ========================================================================== */
:root{
  --bone:#F5F2EA;
  --paper:#FBFAF5;
  --ink:#14161A;
  --ink-2:#3A3D42;
  --muted:#77746C;
  --line:rgba(20,22,26,.13);
  --line-2:rgba(20,22,26,.07);
  --ochre:#A34724;
  --deep:#0E1012;
  --on-deep:#F6F3EC;
  --btn-lit:#F5F2EA;
  --btn-lit-fg:#14161A;
  --nav-glass:rgba(245,242,234,.9);
  --mount:#DFD8C9;
  --hover:rgba(20,22,26,.03);
  --tint:rgba(163,71,36,.05);
  --tint-2:rgba(163,71,36,.035);
  --sans:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans","Noto Sans KR",sans-serif;
  --serif:"Instrument Serif","Songti SC","Hiragino Mincho ProN","AppleMyungjo","Noto Serif KR",Georgia,serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --gut:clamp(1.1rem,3.4vw,3.6rem);
  --max:1400px;
}
html[data-theme="dark"]{
  --bone:#141512;
  --paper:#1A1B17;
  --ink:#F3EFE3;
  --ink-2:#D2CBBC;
  --muted:#948F80;
  --line:rgba(243,239,227,.19);
  --line-2:rgba(243,239,227,.10);
  --ochre:#C86A41;
  --deep:#0A0B09;
  --nav-glass:rgba(20,21,18,.88);
  --mount:#26271F;
  --hover:rgba(255,255,255,.04);
  --tint:rgba(200,106,65,.14);
  --tint-2:rgba(200,106,65,.08);
  color-scheme:dark;
}
html{color-scheme:light}
html[data-theme="dark"]{color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bone);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.62;font-weight:400;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
::selection{background:var(--ochre);color:#fff}
body::after{
  content:"";position:fixed;inset:0;z-index:9990;pointer-events:none;opacity:.022;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");
}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
section{position:relative;isolation:isolate}

/* ---------- type ---------- */
.display{font-family:var(--serif);font-weight:400;letter-spacing:-.02em;line-height:.98;margin:0}
.h2{font-size:clamp(1.5rem,2.9vw,2.7rem);line-height:1.04;text-wrap:balance}
.eyebrow{font-size:.64rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0}
.small{font-size:.79rem;line-height:1.6;color:var(--muted);margin:0}
html[lang="zh"] .display,html[lang="ja"] .display,html[lang="ko"] .display{letter-spacing:0;line-height:1.22}
html[lang="zh"] .h2,html[lang="ja"] .h2,html[lang="ko"] .h2{font-size:clamp(1.32rem,2.4vw,2.2rem)}
html[lang="ru"] .h2{font-size:clamp(1.4rem,2.6vw,2.4rem);letter-spacing:0}
html[lang="mn"] .h2{font-size:clamp(1.42rem,2.7vw,2.45rem);letter-spacing:0}
html[lang="zh"] .eyebrow,html[lang="ja"] .eyebrow,html[lang="ko"] .eyebrow,html[lang="mn"] .eyebrow,html[lang="ru"] .eyebrow{letter-spacing:.1em}

/* ---------- preloader ---------- */
#pre{position:fixed;inset:0;z-index:9999;background:var(--bone);display:grid;place-items:center;transition:opacity .6s var(--ease)}
#pre img{width:70px;opacity:0;transform:translateY(8px);animation:pin .8s var(--ease) .05s forwards}
@keyframes pin{to{opacity:1;transform:none}}
#pre .bar{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--line-2)}
#pre .bar i{display:block;height:100%;width:0;background:var(--ochre);transition:width .12s linear}
body.ready #pre{opacity:0;pointer-events:none}

/* ---------- nav ---------- */
.prog{position:fixed;top:0;left:0;height:2px;width:0;background:var(--ochre);z-index:960}
.nav{position:fixed;top:0;left:0;right:0;z-index:940;transition:background .45s var(--ease),border-color .45s var(--ease)}
.nav.on{background:var(--nav-glass);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);border-bottom:1px solid var(--line-2)}
.nav-in{max-width:var(--max);margin:0 auto;padding:.95rem var(--gut);display:flex;align-items:center;gap:.85rem;transition:padding .45s var(--ease)}
.nav.on .nav-in{padding-top:.6rem;padding-bottom:.6rem}
.brand{display:flex;align-items:center;gap:.6rem;flex:none}
.brand img{width:34px;height:auto;transition:width .45s var(--ease)}
.nav.on .brand img{width:28px}
.brand b{display:block;font-size:clamp(.58rem,.52vw + .4rem,.72rem);font-weight:700;letter-spacing:.13em;text-transform:uppercase;line-height:1.15;white-space:nowrap}
.brand b i{font-style:normal;font-weight:400;opacity:.6;letter-spacing:.13em}
.brand span{display:block;font-size:.56rem;font-weight:500;letter-spacing:.23em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.nav-links{display:flex;align-items:center;gap:.1rem;margin-left:auto}
.nav-links a{
  display:inline-flex;align-items:center;height:38px;
  font-size:.875rem;font-weight:500;letter-spacing:.005em;color:var(--ink-2);
  padding:0 .78rem;border-radius:3px;white-space:nowrap;line-height:1;
  transition:background .35s var(--ease),color .3s;
}
.nav-links a:hover{background:var(--tint-2);color:var(--ink)}
.nav-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  height:38px;padding:0 1.15rem;border-radius:3px;
  background:var(--ink);color:var(--bone);font-size:.735rem;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;line-height:1;
  transition:background .4s var(--ease),transform .4s var(--ease);
}
.nav-cta:hover{background:var(--ochre);transform:translateY(-1px)}
.nav-cta:hover{background:var(--ochre)}
.nav-tel{
  font-size:.82rem;font-weight:500;color:var(--ink-2);white-space:nowrap;
  margin-left:.5rem;padding-left:1rem;border-left:1px solid var(--line);
  letter-spacing:.01em;line-height:1;transition:color .3s;
}
.nav-tel:hover{color:var(--ochre)}

.nav:not(.on) .brand b{color:#fff}
.nav:not(.on) .brand b i{opacity:.72}
.nav:not(.on) .brand span{color:rgba(255,255,255,.6)}
.nav:not(.on) .nav-links a{color:rgba(255,255,255,.86)}
.nav:not(.on) .nav-links a:hover{background:rgba(255,255,255,.12);color:#fff}
.nav:not(.on) .nav-tel{color:rgba(255,255,255,.86);border-left-color:rgba(255,255,255,.22)}
.nav:not(.on) .nav-tel:hover{color:#fff}
.nav:not(.on) .nav-cta{background:#fff;color:#14161A;border:1px solid #fff}
.nav:not(.on) .nav-cta:hover{background:var(--ochre);border-color:var(--ochre);color:#fff}
.nav:not(.on) .burger i{background:#fff}
.nav:not(.on) .brand img{filter:invert(1) drop-shadow(0 1px 4px rgba(0,0,0,.5))}
html[data-theme="dark"] .brand img,html[data-theme="dark"] #pre img{filter:invert(1) drop-shadow(0 1px 4px rgba(0,0,0,.35))}
.nav:not(.on) .lang-btn{color:#fff;border-color:rgba(255,255,255,.34)}

.lang{position:relative;flex:none}
.lang-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;height:38px;font-size:.78rem;font-weight:500;letter-spacing:.04em;color:var(--ink-2);border:1px solid var(--line);border-radius:3px;padding:0 .78rem;transition:border-color .3s,color .3s,background .3s;white-space:nowrap;line-height:1}
.lang-btn:hover{border-color:var(--ink)}
.lang-btn svg{width:9px;height:9px;flex:none;transition:transform .3s}
.lang.open .lang-btn svg{transform:rotate(180deg)}
.lang-menu{
  position:absolute;top:calc(100% + .45rem);right:0;min-width:11rem;background:var(--paper);
  border:1px solid var(--line);border-radius:2px;box-shadow:0 18px 40px rgba(20,22,26,.14);
  padding:.3rem;margin:0;list-style:none;opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .25s var(--ease),transform .3s var(--ease),visibility .25s;z-index:20;
}
.lang.open .lang-menu{opacity:1;visibility:visible;transform:none}
.lang-menu li{padding:.5rem .7rem;font-size:.82rem;cursor:pointer;border-radius:2px;display:flex;justify-content:space-between;gap:1rem;color:var(--ink-2)}
.lang-menu li:hover{background:rgba(163,71,36,.07)}
.lang-menu li[aria-selected="true"]{color:var(--ochre);font-weight:600}
.lang-menu li small{color:var(--muted);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}

/* ---------- theme switch ---------- */
.theme{position:relative;flex:none}
.tbtn{
  display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  border:1px solid var(--line);border-radius:3px;color:var(--ink-2);
  transition:border-color .3s,color .3s,background .3s;
}
.tbtn:hover{border-color:var(--ink)}
.tbtn svg{width:13px;height:13px}
.tbtn .i-auto,.tbtn .i-sun,.tbtn .i-moon{display:none}
html[data-mode="light"] .tbtn .i-sun{display:block}
html[data-mode="dark"] .tbtn .i-moon{display:block}
html[data-mode="auto"] .tbtn .i-auto{display:block}
html[data-mode="auto"] .tbtn svg{opacity:.9}
.tmenu{
  position:absolute;top:calc(100% + .45rem);right:0;min-width:10.5rem;background:var(--paper);
  border:1px solid var(--line);border-radius:2px;box-shadow:0 18px 40px rgba(20,22,26,.14);
  padding:.3rem;margin:0;list-style:none;opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .25s var(--ease),transform .3s var(--ease),visibility .25s;z-index:20;
}
.theme.open .tmenu{opacity:1;visibility:visible;transform:none}
.tmenu li{display:flex;align-items:center;gap:.55rem;padding:.5rem .7rem;font-size:.8rem;cursor:pointer;border-radius:2px;color:var(--ink-2)}
.tmenu li:hover{background:var(--tint-2)}
.tmenu li svg{width:12px;height:12px;flex:none;opacity:.7}
.tmenu li[aria-selected="true"]{color:var(--ochre);font-weight:600}
.tmenu li[aria-selected="true"] svg{opacity:1}
.tmenu li em{font-style:normal;margin-left:auto;font-size:.6rem;letter-spacing:.1em;color:var(--muted);opacity:0}
.tmenu li[aria-selected="true"] em{opacity:1;color:var(--ochre)}
.nav:not(.on) .tbtn{color:#fff;border-color:rgba(255,255,255,.34)}

.burger{display:none;width:40px;height:40px;position:relative;margin-left:.1rem}
.burger i{position:absolute;left:9px;right:9px;height:1px;background:var(--ink);transition:transform .4s var(--ease)}
.burger i:first-child{top:16px}
.burger i:last-child{top:23px}
.burger.x i:first-child{transform:translateY(3.5px) rotate(45deg)}
.burger.x i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.mmenu{position:fixed;inset:0;z-index:930;background:var(--bone);padding:5rem var(--gut) 2rem;display:flex;flex-direction:column;justify-content:space-between;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .4s var(--ease),transform .5s var(--ease),visibility .4s;overflow:auto}
.mmenu.open{opacity:1;visibility:visible;transform:none}
.mmenu nav a{display:block;font-family:var(--serif);font-size:1.55rem;line-height:2;border-bottom:1px solid var(--line-2)}
.mmenu .lang-row{display:flex;flex-wrap:wrap;gap:.4rem;margin:1.4rem 0}
.mmenu .lang-row button{font-size:.75rem;border:1px solid var(--line);padding:.4rem .7rem;border-radius:2px}
.mmenu .lang-row button[aria-selected="true"]{background:var(--ink);color:var(--bone);border-color:var(--ink)}

/* ---------- hero ---------- */
.hero{min-height:94svh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:var(--deep)}
.hero-ph{position:absolute;inset:0}
.hero-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;filter:saturate(.82) contrast(1.04);transform:scale(1.03);will-change:transform}
.hero-veil{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(9,10,11,.62) 0%,rgba(9,10,11,.22) 12%,rgba(9,10,11,0) 22%),
  linear-gradient(88deg,rgba(9,10,11,.9) 0%,rgba(9,10,11,.74) 34%,rgba(9,10,11,.28) 62%,rgba(9,10,11,.04) 100%),
  linear-gradient(0deg,rgba(9,10,11,.82) 0%,rgba(9,10,11,.12) 46%,rgba(9,10,11,0) 66%);}
.hero-in{position:relative;z-index:2;padding-bottom:clamp(1.2rem,2vw,1.8rem);color:#fff;width:100%}

/* hero brand lockup */
.hero-top{display:flex;align-items:center;gap:clamp(.7rem,1.5vw,1.15rem);margin-bottom:clamp(.85rem,1.5vw,1.25rem)}
.hero-mark{
  width:clamp(52px,5vw,82px);height:auto;flex:none;
  filter:invert(1) drop-shadow(0 2px 9px rgba(0,0,0,.5));
  opacity:0;transform:translateY(10px);
}
body.ready .hero-mark{animation:markIn 1.1s var(--ease) .15s forwards}
@keyframes markIn{to{opacity:.95;transform:none}}

.hero-badge{display:inline-flex;align-items:center;gap:.55rem;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:.36rem .75rem}
.hero-badge i{width:5px;height:5px;border-radius:50%;background:#D4734A;flex:none}
.hero-badge .bg-short{display:none}
.hero-badge span{font-size:.61rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.88);font-weight:600;white-space:nowrap}
.hero h1{
  font-size:clamp(1.9rem,7.1vw,6.9rem);
  line-height:.94;letter-spacing:-.03em;
  white-space:nowrap;color:#fff;margin:0;
}
.hero h1 .ln{display:block}
.hero-dir{
  margin:clamp(.85rem,1.5vw,1.2rem) 0 0;
  font-size:.63rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(255,255,255,.62);
}
.hero-sub{
  max-width:46ch;margin:clamp(.5rem,1vw,.75rem) 0 clamp(1.3rem,2.2vw,1.9rem);
  font-size:clamp(.96rem,1.1vw,1.12rem);line-height:1.6;color:rgba(255,255,255,.86);font-weight:400;
  text-wrap:pretty;
}
.hero-act{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-bottom:clamp(1.3rem,2.4vw,2.2rem)}
.btn{display:inline-flex;align-items:center;gap:.65rem;padding:.95rem 1.6rem;border-radius:2px;font-size:.74rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:var(--btn-lit);color:var(--btn-lit-fg);transition:background .4s var(--ease),color .4s var(--ease)}
.btn:hover{background:var(--ochre);color:#fff}
.btn .arw{transition:transform .4s var(--ease)}
.btn:hover .arw{transform:translateX(4px)}
.btn-line{color:#fff;font-size:.79rem;letter-spacing:.03em;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:.22rem;transition:border-color .4s}
.btn-line:hover{border-color:#fff}
.hero-foot{border-top:1px solid rgba(255,255,255,.18);display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;padding:1rem 0 0;color:#fff}
.hero-foot div{font-size:.71rem;letter-spacing:.02em;color:rgba(255,255,255,.6);line-height:1.5}
.hero-foot b{display:block;font-size:.73rem;font-weight:600;color:#fff;letter-spacing:.05em;text-transform:uppercase;margin-bottom:.15rem}

/* ---------- trust ---------- */
.trust{background:var(--paper);border-bottom:1px solid var(--line-2)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.trust-cell{padding:clamp(1.2rem,2.2vw,1.9rem) clamp(.9rem,1.8vw,1.8rem);border-left:1px solid var(--line-2)}
.trust-cell:first-child{border-left:0;padding-left:0}
.trust-num{font-family:var(--serif);font-size:clamp(1.4rem,2.1vw,2rem);line-height:1;letter-spacing:-.01em}
.trust-lab{font-size:.7rem;color:var(--muted);margin-top:.45rem;line-height:1.45}

/* ---------- section header ---------- */
.sec{padding:clamp(3rem,5.4vw,5.4rem) 0}
.shead{
  display:grid;grid-template-columns:3.2rem minmax(0,1fr) minmax(0,21rem);
  gap:clamp(.8rem,2.2vw,2.4rem);
  align-items:end;border-top:1px solid var(--line);padding-top:1.05rem;margin-bottom:clamp(1.8rem,3vw,2.8rem);
}
.shead .rail{font-size:.66rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ochre);padding-bottom:.5rem}
.shead h2{white-space:nowrap}
/* 韩文按词换行，避免把"있습니다"拆成 있/습니다 */
html[lang="ko"] .shead h2{word-break:keep-all}
.shead .desc{
  font-size:.83rem;line-height:1.55;color:var(--muted);text-align:right;
  margin:0 0 0 auto;max-width:34ch;text-wrap:balance;
}

/* ---------- ribbon ---------- */
.ribbon{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.45fr 1fr;gap:2px;height:clamp(170px,20vw,290px);background:var(--bone)}
.ribbon figure{margin:0;position:relative;overflow:hidden;background:var(--mount)}
.ribbon img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.03);transition:transform 1.2s var(--ease)}
.ribbon figure:hover img{transform:scale(1.04)}
.ribbon-cap{
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding:.75rem var(--gut) 0;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}

/* ---------- programmes: index + stage ---------- */
.programmes{background:var(--paper);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.explorer{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(1.4rem,3.4vw,3.6rem);align-items:start}
.ex-idx{border-bottom:1px solid var(--line-2)}
.ex-row{
  display:grid;grid-template-columns:2.4rem minmax(0,1fr) auto;gap:.9rem;align-items:center;
  width:100%;text-align:left;padding:.95rem .1rem;border-top:1px solid var(--line-2);
  position:relative;transition:padding .45s var(--ease),background .45s var(--ease);
}
.ex-row::before{
  content:"";position:absolute;left:-1.1rem;top:0;bottom:0;width:2px;background:var(--ochre);
  transform:scaleY(0);transform-origin:top;transition:transform .55s var(--ease);
}
.ex-row.on::before{transform:scaleY(1)}
.ex-row .no{font-family:var(--serif);font-size:.8rem;color:var(--muted);letter-spacing:.06em;transition:color .35s}
.ex-row.on .no{color:var(--ochre)}
.ex-row .nm{font-family:var(--serif);font-size:clamp(.98rem,1.25vw,1.12rem);line-height:1.24;transition:color .35s}
.ex-row .mt{font-size:.66rem;color:var(--muted);letter-spacing:.04em;white-space:nowrap;transition:color .35s}
.ex-row:hover{background:var(--tint-2);padding-left:.55rem}
.ex-row.on{background:var(--tint);padding-left:.55rem}

.ex-stage{display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);gap:clamp(1rem,2vw,1.6rem) clamp(1.2rem,2.4vw,2.4rem);align-items:start}
.stage-media{grid-row:1 / span 2;display:grid;gap:.4rem;align-self:start}
.stage-media .big{overflow:hidden;background:var(--mount);aspect-ratio:4/5}
.stage-media .big img{width:100%;height:100%;object-fit:cover;filter:saturate(.86) contrast(1.03)}
.stage-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}
.stage-thumbs div{aspect-ratio:1/1;overflow:hidden;background:var(--mount)}
.stage-thumbs img{width:100%;height:100%;object-fit:cover;filter:saturate(.86);transition:transform 1s var(--ease)}
.stage-thumbs div:hover img{transform:scale(1.06)}
.stage-body{display:flex;flex-direction:column;min-width:0}
.stage-kicker{font-size:.6rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ochre);margin:0 0 .5rem;font-weight:600}
.stage-name{font-family:var(--serif);font-size:clamp(1.4rem,2.1vw,1.95rem);line-height:1.1;margin:0 0 .45rem;font-weight:400;text-wrap:balance}
.stage-meta{font-size:.75rem;color:var(--muted);letter-spacing:.03em;margin:0 0 1rem;line-height:1.5}
.stage-meta em{font-style:normal;color:var(--ink-2)}
.stage-hl{list-style:none;margin:0 0 .9rem;padding:0;display:grid;gap:.32rem}
.stage-hl li{position:relative;padding-left:1rem;font-size:.855rem;line-height:1.5;color:var(--ink-2);text-wrap:pretty}
.stage-hl li::before{content:"";position:absolute;left:0;top:.68em;width:.45rem;height:1px;background:var(--ochre)}
.stage-fit{display:flex;flex-wrap:wrap;gap:.3rem;margin:0 0 1.05rem}
.stage-fit span{font-size:.6rem;letter-spacing:.07em;text-transform:uppercase;border:1px solid var(--line);border-radius:999px;padding:.2rem .55rem;color:var(--muted);white-space:nowrap}
.stage-act{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap;margin-top:auto}
.pdl{display:inline-flex;align-items:center;gap:.5rem;background:var(--ink);color:var(--bone);font-size:.65rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.66rem 1rem;border-radius:2px;transition:background .4s var(--ease)}
.pdl:hover{background:var(--ochre)}
.pdl svg{width:11px;height:11px;flex:none}
.pask{font-size:.72rem;border-bottom:1px solid var(--line);padding-bottom:.15rem;color:var(--ink-2);transition:border-color .3s,color .3s}
.pask:hover{border-color:var(--ochre);color:var(--ochre)}

.stage-plan{border-top:1px solid var(--line-2);padding-top:.9rem}
.plabel{font-size:.58rem;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);margin:0 0 .6rem;font-weight:600}
.plan{list-style:none;margin:0;padding:0;columns:2;column-gap:clamp(.9rem,2vw,2rem)}
.plan li{
  break-inside:avoid;display:grid;grid-template-columns:2.15rem minmax(0,1fr);gap:.4rem;
  padding:.3rem 0;border-bottom:1px dotted var(--line);font-size:.775rem;line-height:1.42;
}
.plan .d{font-family:var(--sans);font-weight:700;color:var(--ochre);font-size:.665rem;letter-spacing:.02em;white-space:nowrap;font-variant-numeric:tabular-nums;padding-top:.14rem}
.plan b{font-weight:600;color:var(--ink)}
.plan .a{color:var(--muted)}
.ex-left{display:flex;flex-direction:column;align-self:stretch}
.prog-note{margin:auto 0 0;padding-top:1.1rem;font-size:.74rem;color:var(--muted);line-height:1.5}

/* pager */
.ex-pager{display:flex;align-items:center;gap:.55rem;margin-top:.95rem}
.pg-btn{
  width:30px;height:30px;flex:none;border:1px solid var(--line);border-radius:50%;
  display:grid;place-items:center;color:var(--ink-2);
  transition:background .35s var(--ease),color .35s,border-color .35s,opacity .3s;
}
.pg-btn svg{width:10px;height:10px}
.pg-btn:hover:not(:disabled){background:var(--ink);color:var(--bone);border-color:var(--ink)}
.pg-btn:disabled{opacity:.28;cursor:default}
.pg-info{font-size:.66rem;letter-spacing:.11em;color:var(--muted);font-variant-numeric:tabular-nums;text-transform:uppercase}
.pg-info b{color:var(--ink-2);font-weight:600}

@keyframes sin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.ex-stage.swap .stage-media{animation:sin .7s var(--ease) both}
.ex-stage.swap .stage-body{animation:sin .7s var(--ease) .06s both}
.ex-stage.swap .stage-plan{animation:sin .7s var(--ease) .12s both}

/* ---------- season ---------- */
.sx{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;min-width:820px}
th,td{padding:.55rem .2rem;text-align:center;font-weight:400;border-bottom:1px solid var(--line-2)}
th{font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;padding-bottom:.85rem}
td:first-child,th:first-child{text-align:left;width:23%;padding-left:0}
th.fitcol,td.fitcol{text-align:left;width:19%;padding-left:.9rem;border-left:1px solid var(--line-2)}
tbody tr{transition:background .3s}
tbody tr:hover{background:var(--hover)}
td:first-child b{font-family:var(--serif);font-size:.98rem;font-weight:400;display:block;line-height:1.2}
td:first-child span{font-size:.62rem;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}
td.fitcol span{display:inline-block;font-size:.575rem;color:var(--muted);border:1px solid var(--line-2);border-radius:999px;padding:.09rem .36rem;margin:.14rem .1rem 0 0;white-space:nowrap}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ochre)}
.half{display:inline-block;width:8px;height:8px;border-radius:50%;border:1px solid var(--ochre);opacity:.5}
.none{display:inline-block;width:4px;height:1px;background:var(--line);vertical-align:middle}
.mon .ms{display:none}
.fitmini{display:none}
.legend{display:flex;gap:1.4rem;flex-wrap:wrap;margin-top:1.2rem;font-size:.72rem;color:var(--muted)}
.legend i{display:inline-block;margin-right:.4rem;vertical-align:middle}

/* ---------- gallery mosaic ---------- */
.gal-sec{background:var(--deep);color:var(--on-deep);padding:clamp(3rem,5.2vw,5.2rem) 0}
.gal-sec .shead{border-top-color:rgba(255,255,255,.16)}
.gal-sec .shead h2{color:var(--on-deep)}
.gal-sec .shead .desc{color:rgba(246,243,236,.52)}
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.35rem,.7vw,.7rem)}
.tile{position:relative;overflow:hidden;background:#17191c;aspect-ratio:4/5;display:block;width:100%}
.tile img{width:100%;height:100%;object-fit:cover;opacity:.88;filter:saturate(.85);transition:transform 1.2s var(--ease),opacity .5s}
.tile:hover img{transform:scale(1.05);opacity:1}
.tile .cap{
  position:absolute;left:.7rem;right:.7rem;bottom:.6rem;z-index:2;
  font-size:.63rem;letter-spacing:.06em;color:#fff;line-height:1.35;
  opacity:0;transform:translateY(6px);transition:opacity .45s var(--ease),transform .45s var(--ease);
  text-shadow:0 1px 12px rgba(0,0,0,.9);
}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,7,8,.72),rgba(6,7,8,0) 45%);opacity:0;transition:opacity .45s}
.tile:hover .cap,.tile:hover::after{opacity:1;transform:none}
.tile-more{
  display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:.55rem;
  padding:clamp(.9rem,1.6vw,1.4rem);
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);text-align:left;
  transition:background .45s var(--ease),border-color .45s var(--ease);
}
.tile-more:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3)}
.tile-more .n{font-family:var(--serif);font-size:2.4rem;line-height:1;color:var(--on-deep)}
.tile-more span{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,243,236,.62);display:flex;align-items:center;gap:.5rem}

/* ---------- credentials ---------- */
.cred{background:var(--bone)}
.cert{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.8rem,1.6vw,1.4rem);margin-bottom:clamp(1.4rem,2.4vw,2rem)}
.certcard{
  display:grid;grid-template-columns:clamp(84px,8.4vw,116px) minmax(0,1fr) auto;gap:clamp(.85rem,1.6vw,1.4rem);
  align-items:center;border:1px solid var(--line);background:var(--paper);
  padding:clamp(.7rem,1.2vw,1rem);text-align:left;width:100%;
  transition:border-color .45s var(--ease),transform .45s var(--ease),box-shadow .45s var(--ease);
}
.certcard:hover{border-color:rgba(20,22,26,.32);transform:translateY(-2px);box-shadow:0 18px 34px -26px rgba(20,22,26,.5)}
.certcard .th{aspect-ratio:5/6.6;background:var(--mount);padding:4px;overflow:hidden}
.certcard .th img{width:100%;height:100%;object-fit:cover;object-position:50% 12%}
.certcard b{display:block;font-family:var(--serif);font-size:clamp(1.06rem,1.4vw,1.3rem);font-weight:400;line-height:1.2;margin-bottom:.22rem}
.certcard span{display:block;font-size:.79rem;color:var(--muted);line-height:1.5}
.certcard em{display:inline-block;font-style:normal;font-size:.615rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ochre);margin-top:.45rem}
.certcard .go{width:30px;height:30px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--ink-2);transition:background .4s var(--ease),color .4s var(--ease),border-color .4s,transform .45s var(--ease)}
.certcard:hover .go{background:var(--ink);color:var(--bone);border-color:var(--ink);transform:translateX(2px)}
.certcard .go svg{width:11px;height:11px}
.specs{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(1.2rem,3.2vw,3.4rem);margin:0;border-top:1px solid var(--line)}
.spec{display:grid;grid-template-columns:minmax(min-content,8.6rem) minmax(0,1fr);gap:1rem;padding:.72rem 0;border-bottom:1px solid var(--line-2);align-items:baseline}
.spec dt{font-size:.635rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:0}
.spec dd{margin:0;font-size:.9rem;color:var(--ink-2);line-height:1.5}
.spec.wide{grid-column:1/-1}

/* ---------- process ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.8rem,2vw,2rem)}
.step{border-top:1px solid var(--line);padding-top:1.05rem}
.step .n{font-family:var(--serif);font-size:.95rem;color:var(--ochre);display:block;margin-bottom:.45rem}
.step b{display:block;font-family:var(--serif);font-size:1.12rem;font-weight:400;margin-bottom:.3rem;line-height:1.2}
.step p{margin:0;font-size:.81rem;color:var(--ink-2);line-height:1.6;text-wrap:pretty}

/* ---------- outbound ---------- */
.out{background:var(--deep);color:var(--on-deep);padding:clamp(3rem,5.2vw,5.2rem) 0}
.out .shead{border-top-color:rgba(255,255,255,.16)}
.out .shead h2{color:var(--on-deep)}
.out .shead .desc{color:rgba(246,243,236,.52)}
.out-lead{font-size:clamp(.92rem,1.05vw,1.02rem);line-height:1.68;color:rgba(246,243,236,.72);max-width:58ch;margin:0 0 clamp(1.6rem,2.6vw,2.4rem);text-wrap:pretty}
.out-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.5rem,1vw,1rem)}
.ocard{display:flex;flex-direction:column;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.1);transition:border-color .45s var(--ease),transform .5s var(--ease),background .45s}
.ocard:hover{border-color:rgba(255,255,255,.26);transform:translateY(-4px);background:rgba(255,255,255,.06)}
.ocard .ph{aspect-ratio:4/3;overflow:hidden}
.ocard .ph img{width:100%;height:100%;object-fit:cover;opacity:.88;filter:saturate(.9);transition:transform 1.1s var(--ease),opacity .5s}
.ocard:hover .ph img{transform:scale(1.05);opacity:1}
.ocard .bd{padding:clamp(.8rem,1.2vw,1.1rem);display:flex;flex-direction:column;gap:.55rem;flex:1;min-width:0}
.ocard h3{font-family:var(--serif);font-size:clamp(1.1rem,1.5vw,1.32rem);font-weight:400;line-height:1.15;margin:0}
.ocard .tag{font-size:.62rem;letter-spacing:.11em;text-transform:uppercase;color:rgba(246,243,236,.52);line-height:1.4}
.ocard ul{list-style:none;margin:.1rem 0 0;padding:0;display:grid;gap:.34rem}
.ocard li{position:relative;padding-left:.85rem;font-size:.785rem;line-height:1.45;color:rgba(246,243,236,.7);text-wrap:pretty}
.ocard li::before{content:"";position:absolute;left:0;top:.62em;width:.38rem;height:1px;background:var(--ochre)}
.ocard .cfoot{margin-top:auto;padding-top:.7rem;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.odl{display:inline-flex;align-items:center;gap:.4rem;font-size:.62rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--on-deep);border-bottom:1px solid rgba(246,243,236,.3);padding-bottom:.15rem;transition:color .3s,border-color .3s}
.odl:hover{color:#fff;border-color:#fff}
.odl svg{width:10px;height:10px;flex:none}
.oask{font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;color:rgba(246,243,236,.5);transition:color .3s}
.oask:hover{color:var(--on-deep)}
.out-svc{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,2.4vw,2.6rem);margin:clamp(1.8rem,3vw,2.6rem) 0 0;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.14)}
.out-svc div b{display:block;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--on-deep);margin-bottom:.35rem;font-weight:600}
.out-svc div p{margin:0;font-size:.8rem;line-height:1.55;color:rgba(246,243,236,.55);text-wrap:pretty}
.out-foot{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;margin-top:clamp(1.6rem,2.6vw,2.2rem)}
.out-cta{display:inline-flex;align-items:center;gap:.6rem;background:var(--btn-lit);color:var(--btn-lit-fg);font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.8rem 1.3rem;border-radius:2px;transition:background .4s var(--ease),color .4s var(--ease)}
.out-cta:hover{background:var(--ochre);color:#fff}
.out-note{font-size:.71rem;color:rgba(246,243,236,.45)}

/* ---------- contact ---------- */
.c-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(1.8rem,4.5vw,4rem);align-items:start}
.cinfo{border-top:1px solid var(--line);margin:0}
.cinfo div{display:flex;justify-content:space-between;gap:1.2rem;padding:.8rem 0;border-bottom:1px solid var(--line-2)}
.cinfo dt{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-top:.22rem;margin:0;flex:none}
.cinfo dd{margin:0;font-size:.83rem;text-align:right;line-height:1.5;min-width:0;overflow-wrap:break-word}
.form{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1rem}
.field{display:flex;flex-direction:column;gap:.28rem}
.field.full{grid-column:1/-1}
label{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
input,select,textarea{font-family:inherit;font-size:.89rem;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line);padding:.5rem 0;border-radius:0;transition:border-color .35s;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-bottom-color:var(--ochre)}
textarea{resize:vertical;min-height:62px}
.form button{grid-column:1/-1;justify-self:start;background:var(--ink);color:var(--bone);padding:.92rem 1.75rem;border-radius:2px;font-size:.71rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.6rem;transition:background .4s var(--ease)}
.form button:hover{background:var(--ochre)}
.form-note{grid-column:1/-1;font-size:.68rem;color:var(--muted);margin:0}

/* ---------- footer ---------- */
.ft{background:var(--deep);color:rgba(246,243,236,.6);padding:clamp(2.2rem,3.6vw,3.2rem) 0 1.4rem}
.ft-grid{display:grid;grid-template-columns:1.7fr .8fr .8fr 1.1fr;gap:2rem;padding-bottom:1.8rem;border-bottom:1px solid rgba(255,255,255,.1)}
.ft h4{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(246,243,236,.36);margin:0 0 .8rem;font-weight:600}
.ft a,.ft p{display:block;font-size:.79rem;line-height:1.9;margin:0}
.ft a:hover{color:#fff}
.ft-brand{display:flex;align-items:center;gap:.75rem;margin-bottom:.8rem}
.ft-brand img{width:40px;filter:invert(1);opacity:.9}
.ft-brand b{color:var(--on-deep);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;display:block;line-height:1.2}
.ft-brand span{font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(246,243,236,.4)}
.ft-credits{font-size:.66rem;color:rgba(246,243,236,.32);line-height:1.6;margin-top:.8rem;max-width:40ch}
.ft-addr{font-size:.78rem;line-height:1.6;color:rgba(246,243,236,.6);max-width:26ch}
.ft-base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.1rem;font-size:.66rem;letter-spacing:.02em}

/* ---------- lightbox ---------- */
.lb{position:fixed;inset:0;z-index:9800;background:rgba(8,9,10,.97);display:grid;grid-template-rows:1fr auto;opacity:0;visibility:hidden;transition:opacity .42s var(--ease),visibility .42s}
.lb.open{opacity:1;visibility:visible}
.lb-stage{display:grid;place-items:center;padding:clamp(1rem,4vw,3rem) clamp(1rem,6vw,5rem);min-height:0;position:relative}
.lb-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 40px 90px -40px rgba(0,0,0,.9);opacity:0;transform:scale(.985);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.lb.ready .lb-stage img{opacity:1;transform:none}
.lb-bar{display:flex;align-items:center;gap:1.1rem;padding:.8rem var(--gut) 1.2rem;color:rgba(255,255,255,.66);font-size:.72rem}
.lb-cap{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.03em}
.lb-idx{font-family:var(--serif);font-size:.86rem;color:rgba(255,255,255,.5);letter-spacing:.1em}
.lb-btn{width:40px;height:40px;border:1px solid rgba(255,255,255,.24);border-radius:50%;display:grid;place-items:center;color:#fff;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s}
.lb-btn:hover{background:#fff;color:var(--ink);border-color:#fff}
.lb-btn svg{width:13px;height:13px}
.lb-close{position:absolute;top:clamp(1rem,2vw,1.6rem);right:clamp(1rem,2vw,1.6rem);z-index:3}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0ms)}
.rv.in{opacity:1;transform:none}
.word{display:inline-block;white-space:nowrap}
/* 逐字遮罩：行高 .94 的裁剪盒装不下 g/y/p 的下伸部，
   补 padding 撑开裁剪区、再用等量负 margin 还原排版位置（字形位置不受影响）。 */
.ch{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.26em;margin-bottom:-.26em}
.ch i{display:inline-block;font-style:inherit;transform:translateY(145%);transition:transform .95s var(--ease);transition-delay:calc(var(--i) * 16ms + 80ms)}
body.ready .ch i{transform:none}

/* ---------- responsive ---------- */
@media (min-width:1700px){
  :root{--max:1620px;--gut:clamp(2rem,3.2vw,3.4rem)}
  body{font-size:17px}
  .h2{font-size:2.9rem}
  html[lang="zh"] .h2,html[lang="ja"] .h2,html[lang="ko"] .h2{font-size:2.35rem}
  html[lang="ru"] .h2{font-size:2.55rem}
  .hero h1{font-size:clamp(5.4rem,6.3vw,7.5rem)}
  .plan li{font-size:.83rem}
  .ex-row .nm{font-size:1.2rem}
}
@media (min-width:2200px){
  :root{--max:1840px}
  body{font-size:18px}
  .h2{font-size:3.15rem}
  html[lang="zh"] .h2,html[lang="ja"] .h2,html[lang="ko"] .h2{font-size:2.55rem}
  html[lang="ru"] .h2{font-size:2.8rem}
  .hero h1{font-size:8.1rem}
  .ex-row{padding:1.15rem .1rem}
  .ex-row .nm{font-size:1.32rem}
}
@media (max-width:1240px){
  .nav-links,.nav-tel{display:none}
  .burger{display:block;margin-left:auto}
  .explorer{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
  .plan{columns:1}
  .c-grid{grid-template-columns:1fr;gap:2rem}
  .ft-grid{grid-template-columns:1fr 1fr;gap:1.6rem}
}
@media (max-width:1080px){
  .shead{grid-template-columns:3rem minmax(0,1fr) minmax(0,14rem);gap:.6rem 1.2rem}
  .shead h2{white-space:normal}
  .shead .desc{max-width:26ch}
  .explorer{grid-template-columns:1fr;gap:1.8rem}
  .ex-idx{display:grid;grid-template-columns:1fr 1fr;gap:0 1.6rem}
  .ex-row::before{left:-.8rem}
  .ex-left{display:block}
  .prog-note{margin-top:1.1rem}
  .stage-media .big{aspect-ratio:16/10}
  .stage-media{gap:.4rem}
  .plan{columns:2}
}
@media (max-width:860px){
  .shead{grid-template-columns:1fr;gap:.45rem;align-items:start}
  .shead .rail{padding-bottom:0}
  .shead .desc{grid-column:1;text-align:left;margin:0;max-width:48ch}
  .ex-stage{grid-template-columns:1fr;gap:1.1rem}
  .stage-media{grid-row:auto}
  .stage-media .big{aspect-ratio:3/2}
}
@media (max-width:900px){
  .hero{min-height:88svh}
  .hero-foot{gap:1rem;padding-top:.9rem}
  .trust-grid{grid-template-columns:1fr 1fr}
  .trust-cell{padding:1rem}
  .trust-cell:nth-child(odd){border-left:0;padding-left:0}
  .ribbon{grid-template-columns:1.4fr 1fr 1.4fr;height:clamp(150px,26vw,220px)}
  .ribbon figure:nth-child(2),.ribbon figure:nth-child(5){display:none}
  .steps{grid-template-columns:1fr 1fr;gap:1.6rem 1.2rem}
  .cert{grid-template-columns:1fr}
  .out-grid{grid-template-columns:1fr 1fr}
  .out-svc{grid-template-columns:1fr 1fr;gap:1.2rem 1.6rem}
  .form{grid-template-columns:1fr}
  .mosaic{grid-template-columns:repeat(3,1fr)}
  .spec{grid-template-columns:minmax(min-content,7.4rem) minmax(0,1fr);gap:.7rem}
}
@media (max-width:720px){
  .ex-idx{grid-template-columns:1fr}
  .ex-row{grid-template-columns:2.2rem minmax(0,1fr);gap:.7rem;padding:.8rem .1rem}
  .ex-row .mt{grid-column:2;font-size:.62rem}
  .ex-row .nm{font-size:1rem}
  .stage-name{font-size:1.35rem}
  .stage-media .big{aspect-ratio:4/3}
  .plan{columns:1}
  .shead h2{white-space:normal;text-wrap:balance}
  .shead .desc{text-align:left;margin-left:0;max-width:44ch}
  .hero-foot{grid-template-columns:1fr 1fr}
  .hero-foot div:nth-child(3){display:none}
  .specs{grid-template-columns:1fr}
  .spec{grid-template-columns:1fr;gap:.1rem}
  .mosaic{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:620px){
  /* 窄屏上标签与值并排一定会挤（日语"（ウランバートル時間）"这类长串尤其），
     改为上下两行，七种语言都不再需要压字或截断。 */
  .cinfo div{flex-direction:column;gap:.15rem}
  .cinfo dd{text-align:left}
  .sx{overflow:visible}
  table{min-width:0}
  th,td{padding:.5rem .08rem}
  th{font-size:.6rem;letter-spacing:0}
  .mon .ml{display:none}
  .mon .ms{display:inline}
  th.fitcol,td.fitcol{display:none}
  td:first-child,th:first-child{width:40%;padding-right:.35rem}
  td:first-child b{font-size:.86rem}
  td:first-child span{font-size:.55rem}
  .fitmini{display:flex;flex-wrap:wrap;gap:.18rem;margin-top:.3rem}
  .fitmini span{font-size:.46rem;border:1px solid var(--line-2);border-radius:999px;padding:.04rem .22rem;color:var(--muted);letter-spacing:0;text-transform:none;white-space:nowrap}
  .legend{margin-top:.9rem;font-size:.66rem;gap:.9rem}
  .mosaic .tile:nth-child(n+8):not(.tile-more){display:none}
}
@media (max-width:560px){
  .brand span{display:none}
  .brand b{font-size:.58rem;letter-spacing:.08em}
  .brand img{width:26px}
  .nav.on .brand img{width:24px}
  .nav-cta{display:none}
  .hero-badge .bg-long{display:none}
  .hero-badge .bg-short{display:inline}
  .lang-btn{padding:.44rem .48rem;font-size:.64rem}
  .hero{min-height:86svh}
  .hero-mark{width:38px}
  .hero-top{gap:.55rem}
  .hero-sub{font-size:.92rem}
  .hero-dir{font-size:.56rem;letter-spacing:.12em;line-height:1.6}
  .hero-act{gap:1rem}
  .steps{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:1fr;gap:1.6rem}
  .out-grid{grid-template-columns:1fr}
  .out-svc{grid-template-columns:1fr}
  .ribbon{grid-template-columns:1fr 1fr;height:clamp(130px,40vw,190px)}
  .ribbon figure:nth-child(4){display:none}
  .ribbon-cap span:last-child{display:none}
  .plan li{font-size:.75rem}
  .tile-more .n{font-size:1.9rem}
}
@media (hover:none){
  .tile .cap,.tile::after{opacity:1;transform:none}
  .tile::after{background:linear-gradient(0deg,rgba(6,7,8,.6),rgba(6,7,8,0) 42%)}
  .ribbon figure:hover img,.ocard:hover .ph img,.tile:hover img{transform:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none}
  .ch i{transform:none}
}

/* ==========================================================================
   静态渲染后新增（2026-11-01）
   1) 线路详情改为 8 个预渲染面板，用 display:contents 让面板内的三块
      继续参与 .ex-stage 的两列网格，视觉与「只有一个面板时」完全一致。
   2) 语言菜单改为真实链接（爬虫可发现、可被 hreflang 验证）。
   ========================================================================== */
.stage-panel{display:contents}
.stage-panel[hidden]{display:none}

.lang-menu a{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;color:inherit;text-decoration:none}
.mmenu .lang-row a{font-size:.75rem;border:1px solid var(--line);padding:.4rem .7rem;border-radius:2px;text-decoration:none;color:inherit}
.mmenu .lang-row a[aria-selected="true"]{background:var(--ink);color:var(--bone);border-color:var(--ink)}

.cinfo address{font-style:normal}

/* ---------- 影像：视频区（挂在图集 section 内，深色底） ---------- */
.vblock{margin-top:clamp(2.2rem,4vw,3.4rem)}
.vhead{display:flex;align-items:baseline;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;
       border-top:1px solid rgba(255,255,255,.16);padding-top:1.05rem;margin-bottom:clamp(1rem,2vw,1.6rem)}
.vhead h3{margin:0;font-size:clamp(1.1rem,1.9vw,1.5rem);color:var(--on-deep)}
.vhead .desc{margin:0;color:rgba(255,255,255,.58);font-size:.87rem}
.vgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:clamp(.6rem,1.2vw,1rem)}
/* 只有一条视频时别让它拉满整行：16:9 铺满 1400px 会变成 790px 高的一块 */
.vgrid:has(> .vcard:only-child){grid-template-columns:minmax(17rem,36rem)}
.vcard{display:block;margin:0;background:#17191c;color:inherit;text-decoration:none;overflow:hidden}
.vplay{position:relative;display:block;width:100%;aspect-ratio:16/9;padding:0;border:0;
       background:#17191c;overflow:hidden;cursor:pointer}
.vplay img{display:block;width:100%;height:100%;object-fit:cover;opacity:.9;
           transition:opacity .3s,transform .5s ease}
.vplay:hover img{opacity:1;transform:scale(1.02)}
.vnoimg{display:block;width:100%;height:100%;background:linear-gradient(135deg,#1d2024,#0e1012)}
.vbtn{position:absolute;inset:0;margin:auto;width:3.2rem;height:3.2rem;border-radius:50%;
      background:rgba(255,255,255,.93);color:#14161A;display:flex;align-items:center;justify-content:center;
      transition:background .25s,transform .25s,color .25s}
.vbtn svg{width:1.35rem;height:1.35rem;margin-left:2px}
.vplay:hover .vbtn{background:var(--ochre);color:#fff;transform:scale(1.06)}
.vbadge{position:absolute;left:.55rem;bottom:.55rem;font-size:.66rem;letter-spacing:.07em;
        text-transform:uppercase;color:#fff;background:rgba(14,16,18,.74);padding:.2rem .48rem}
.vmeta{padding:.68rem .8rem .82rem;border-top:1px solid rgba(255,255,255,.08)}
.vmeta b{display:block;font-size:.92rem;font-weight:500;line-height:1.4;color:var(--on-deep)}
.vmeta span{display:block;margin-top:.15rem;font-size:.8rem;color:rgba(255,255,255,.55)}
.vframe{position:relative;aspect-ratio:16/9;background:#000}
.vframe iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---------- 320–360px：h1 是 nowrap，clamp 下限 1.9rem 在这个宽度会顶出容器 ---------- */
/* 体检报 CLIP_X / H1_OVERFLOW：en 首页在 320px 下 306px 宽的内容挤进 285px 的容器 */
@media (max-width:360px){
  .hero h1{font-size:1.7rem}
}

/* ---------- 逐日行程的细节行（距离/车程/住宿/餐食 + 当天备注） ---------- */
/* 细节与主体共用同一个 <li>，所以用块级显示换行，不加额外的列表结构 */
.plan .pmeta{display:block;margin-top:.12rem;font-size:.72em;color:var(--muted);letter-spacing:.01em}
.plan .pnote{display:block;margin-top:.16rem;font-size:.76em;color:var(--ink-2);line-height:1.45}
.plan .pnote::before{content:"— ";color:var(--muted)}
