:root{
  color-scheme: light;
  --ink:#14211C;
  --ink-2:#414F49;
  --ink-3:#5C6A63;
  --ground:#F8F7F3;
  --surface:#EBEDE4;
  --card:#FFFFFF;
  --green:#2F6B52;
  --green-hi:#22523E;
  --deep:#16342A;
  --deep-2:#0F251E;
  --deep-ink:#DCE6DF;
  --deep-ink-2:#9DB3A6;
  --line:#D8DCD1;
  --line-deep:#2E4E41;
  --sand:#C6AE83;

  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Archivo","Helvetica Neue",Arial,sans-serif;
  --han:"Noto Serif SC","Songti SC","SimSun",serif;
  --han-sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;

  --wrap:1120px;
  --gut:clamp(20px,5vw,48px);
  --measure:35rem;
}

*,*::before,*::after{box-sizing:border-box;}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:var(--serif);
  font-size:1.0625rem;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:var(--green);text-underline-offset:3px;text-decoration-thickness:1px;}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--green);outline-offset:3px;border-radius:2px;
}
h1,h2,h3,h4{margin:0;font-weight:400;text-wrap:balance;letter-spacing:-0.02em;line-height:1.14;}
p{margin:0;}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut);}
.measure{max-width:var(--measure);}

.eyebrow{
  font-family:var(--sans);font-size:.6875rem;font-weight:600;
  letter-spacing:.15em;text-transform:uppercase;color:var(--green);
  line-height:1.5;margin:0;
}
.eyebrow--quiet{color:var(--ink-3);}
.eyebrow--deep{color:var(--sand);}

.h-sec{font-size:clamp(1.7rem,3.4vw,2.35rem);}
.lede{font-size:clamp(1.0625rem,1.6vw,1.1875rem);color:var(--ink-2);}

/* ---------- header ---------- */
.hdr{
  position:sticky;top:0;z-index:50;
  background:rgba(248,247,243,.93);
  backdrop-filter:saturate(180%) blur(8px);
  border-bottom:1px solid var(--line);
}
.hdr__in{display:flex;align-items:center;gap:clamp(12px,3vw,32px);min-height:64px;}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);margin-right:auto;}
.brand svg{flex:none;}
.brand b{font-family:var(--serif);font-weight:400;font-size:1.0625rem;letter-spacing:.005em;white-space:nowrap;}
.nav{display:none;gap:clamp(14px,2vw,26px);font-family:var(--sans);font-size:.8125rem;font-weight:500;}
.nav a{color:var(--ink-2);text-decoration:none;padding-block:6px;border-bottom:1px solid transparent;}
.nav a:hover{color:var(--green);border-bottom-color:var(--green);}
.nav .zh{font-family:var(--han);}
@media(min-width:1100px){.nav{display:flex;align-items:center;}}

/* compact menu below the width where the full nav fits */
.menu{position:relative;}
@media(min-width:1100px){.menu{display:none;}}
.menu summary{list-style:none;cursor:pointer;font-family:var(--sans);font-size:.8125rem;font-weight:600;color:var(--ink-2);padding:.55em .25em;border-radius:2px;white-space:nowrap;}
.menu summary::-webkit-details-marker{display:none;}
.menu summary::after{content:" +";color:var(--green);}
.menu[open] summary::after{content:" \2212";}
.menu summary:hover{color:var(--green);}
.menu__panel{position:absolute;right:0;top:calc(100% + 12px);z-index:60;min-width:210px;display:grid;padding:6px 0;background:var(--card);border:1px solid var(--line);box-shadow:0 10px 28px rgba(20,33,28,.10);}
.menu__panel a{display:block;padding:11px 18px;font-family:var(--sans);font-size:.875rem;color:var(--ink);text-decoration:none;}
.menu__panel a:hover{background:var(--ground);color:var(--green);}
.menu__panel .zh{font-family:var(--han);}

/* short booking label on narrow phones */
.btn__short{display:none;}
@media(max-width:520px){.btn__long{display:none;}.btn__short{display:inline;}}
@media(max-width:420px){.brand b{white-space:normal;line-height:1.12;font-size:.9375rem;max-width:8.5rem;}}
@media(max-width:340px){.hdr__in{gap:8px;}.brand svg{display:none;}}

.btn{
  font-family:var(--sans);font-weight:600;font-size:.8125rem;letter-spacing:.02em;
  display:inline-flex;align-items:center;gap:.5em;
  padding:.72em 1.15em;border-radius:2px;text-decoration:none;
  border:1px solid var(--green);background:var(--green);color:#fff;
  transition:background .16s ease,border-color .16s ease,color .16s ease;
  white-space:nowrap;cursor:pointer;
}
.btn:hover{background:var(--green-hi);border-color:var(--green-hi);}
.btn--ghost{background:transparent;color:var(--green);}
.btn--ghost:hover{background:var(--green);color:#fff;}
.btn--lg{font-size:.875rem;padding:.95em 1.5em;}
.btn--deep{background:var(--sand);border-color:var(--sand);color:var(--deep-2);}
.btn--deep:hover{background:#D8C29A;border-color:#D8C29A;}
.btn__arw{font-family:var(--sans);}

/* ---------- hero ---------- */
.hero{padding-block:clamp(48px,7vw,86px) clamp(40px,6vw,72px);}
.hero__grid{display:grid;gap:clamp(32px,5vw,56px);align-items:start;}
@media(min-width:900px){.hero__grid{grid-template-columns:1.12fr .88fr;gap:clamp(40px,6vw,80px);}}
.hero h1{
  font-size:clamp(2.15rem,5.1vw,3.5rem);
  line-height:1.04;letter-spacing:-0.032em;font-weight:400;
  margin-block:.5rem 1.1rem;
}
.hero h1 em{font-style:italic;color:var(--green);}
.hero__sub{font-size:clamp(1.0625rem,1.7vw,1.1875rem);color:var(--ink-2);max-width:32rem;}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.9rem;}
.hero__micro{font-family:var(--sans);font-size:.75rem;color:var(--ink-3);margin-top:1rem;letter-spacing:.01em;}

.portrait{position:relative;max-width:360px;}
.portrait__frame{
  position:relative;aspect-ratio:4/5;background:var(--surface);
  border:1px solid var(--line);
  display:grid;place-items:center;padding:24px;text-align:center;
}
.portrait__slot{font-family:var(--sans);font-size:.75rem;line-height:1.65;color:var(--ink-3);}
.portrait__slot strong{display:block;color:var(--ink-2);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.6875rem;margin-bottom:.5rem;}
.portrait__plate{
  border:1px solid var(--line);border-top:1px solid var(--green);background:var(--card);
  padding:14px 16px;
}
.portrait__plate b{display:block;font-family:var(--serif);font-weight:400;font-size:1.0625rem;}
.portrait__plate span{display:block;font-family:var(--sans);font-size:.75rem;color:var(--ink-3);margin-top:2px;letter-spacing:.01em;}

/* ---------- facts ---------- */
.facts{border-block:1px solid var(--line);background:var(--card);}
.facts__grid{display:grid;grid-template-columns:repeat(2,1fr);}
@media(min-width:760px){.facts__grid{grid-template-columns:repeat(4,1fr);}}
.fact{padding:20px var(--gut) 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.facts__grid .fact:nth-child(2n){border-right:0;}
.facts__grid .fact:nth-last-child(-n+2){border-bottom:0;}
@media(min-width:760px){
  .fact{padding-inline:0;}
  .facts__grid{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut);}
  .fact{padding-left:22px;border-bottom:0;}
  .facts__grid .fact:first-child{padding-left:0;}
  .facts__grid .fact:nth-child(2n){border-right:1px solid var(--line);}
  .facts__grid .fact:last-child{border-right:0;}
}
.fact dt{font-family:var(--sans);font-size:.6875rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);}
.fact dd{margin:.35rem 0 0;font-size:1.0625rem;color:var(--ink);font-variant-numeric:tabular-nums;}
.fact dd small{font-family:var(--sans);font-size:.75rem;color:var(--ink-3);letter-spacing:.01em;}

/* ---------- generic section ---------- */
.sec{padding-block:clamp(56px,8vw,104px);}
.sec--surface{background:var(--surface);}
.sec__head{max-width:38rem;margin-bottom:clamp(32px,4vw,52px);}
.sec__head p{margin-top:.85rem;}

/* ---------- situations ---------- */
.says{border-top:1px solid var(--line);}
.say{
  display:grid;gap:6px 40px;padding-block:clamp(22px,3vw,30px);
  border-bottom:1px solid var(--line);
}
@media(min-width:820px){.say{grid-template-columns:1fr 15rem;align-items:baseline;}}
.say__line{
  font-size:clamp(1.1rem,2vw,1.38rem);color:var(--ink);
  line-height:1.36;letter-spacing:-0.012em;
}
.say__tag{font-family:var(--sans);font-size:.75rem;font-weight:500;color:var(--green);letter-spacing:.04em;}
.says + .after{margin-top:clamp(28px,4vw,40px);}
.after{display:grid;gap:18px;}
@media(min-width:820px){.after{grid-template-columns:1fr 15rem;gap:40px;align-items:start;}}

/* ---------- cycle band ---------- */
.band{background:var(--deep);color:var(--deep-ink);padding-block:clamp(60px,8vw,110px);}
.band h2,.band h3{color:#fff;}
.band .lede{color:var(--deep-ink-2);}

.cycle{
  display:grid;gap:14px;margin-block:clamp(36px,5vw,52px);
  border:1px solid var(--line-deep);background:var(--deep-2);
  padding:clamp(22px,4vw,38px);
}
@media(min-width:840px){.cycle{grid-template-columns:1fr 15rem 1fr;gap:clamp(20px,3vw,36px);align-items:center;}}
.node h3{font-size:1.35rem;letter-spacing:-0.01em;}
.node__do{margin-top:.55rem;color:var(--deep-ink-2);font-size:.9375rem;line-height:1.55;}
.node__under{
  margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--line-deep);
  font-size:.9375rem;color:var(--deep-ink);
}
.node__under span{
  display:block;font-family:var(--sans);font-size:.6875rem;font-weight:600;
  letter-spacing:.13em;text-transform:uppercase;color:var(--sand);margin-bottom:.4rem;
}
.node__under em{font-style:italic;}
.loop{position:relative;display:grid;place-items:center;min-height:132px;}
.loop svg{width:100%;height:auto;overflow:visible;}
.loop__h{max-width:230px;}
.loop__v{display:none;max-width:132px;}
.loop__label{
  position:absolute;font-family:var(--sans);font-size:.625rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--sand);
  background:var(--deep-2);padding:3px 8px;
}
@media(max-width:839px){
  .loop{min-height:172px;padding-block:6px;}
  .loop__h{display:none;}
  .loop__v{display:block;}
}

.stages{display:grid;gap:2px;background:var(--line-deep);border:1px solid var(--line-deep);}
@media(min-width:760px){.stages{grid-template-columns:repeat(3,1fr);}}
.stage{background:var(--deep);padding:clamp(20px,3vw,28px);}
.stage__n{
  font-family:var(--sans);font-size:.6875rem;font-weight:600;letter-spacing:.14em;
  color:var(--sand);text-transform:uppercase;
}
.stage h3{font-size:1.15rem;margin-top:.55rem;}
.stage p{margin-top:.6rem;color:var(--deep-ink-2);font-size:.9375rem;line-height:1.6;}
.band__note{margin-top:clamp(28px,4vw,40px);color:var(--deep-ink-2);font-size:.9375rem;max-width:42rem;}
.band__note a{color:var(--sand);}

/* ---------- mandarin ---------- */
.zh-grid{display:grid;gap:clamp(28px,4vw,56px);}
@media(min-width:900px){.zh-grid{grid-template-columns:1fr 1fr;}}
.zh-card{background:var(--card);border:1px solid var(--line);padding:clamp(24px,4vw,38px);}
.zh-card h3{font-family:var(--han);font-size:1.5rem;font-weight:600;line-height:1.35;letter-spacing:0;}
.zh-card p{font-family:var(--han);font-size:1rem;line-height:1.95;color:var(--ink-2);margin-top:1.1rem;}
.zh-card .zh-cta{margin-top:1.6rem;}
.zh-list{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;gap:.7rem;}
.zh-list li{padding-left:1.4rem;position:relative;color:var(--ink-2);font-size:1rem;}
.zh-list li::before{content:"";position:absolute;left:0;top:.72em;width:.7rem;height:1px;background:var(--green);}

/* ---------- about ---------- */
.about{display:grid;gap:clamp(32px,5vw,60px);}
@media(min-width:900px){.about{grid-template-columns:.85fr 1.15fr;}}
.about__body p + p{margin-top:1.1rem;}
.creds{margin:clamp(28px,4vw,40px) 0 0;padding:0;border-top:1px solid var(--line);}
.cred{display:grid;gap:2px 28px;padding-block:14px;border-bottom:1px solid var(--line);}
@media(min-width:620px){.cred{grid-template-columns:11rem 1fr;}}
.cred dt{font-family:var(--sans);font-size:.6875rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);padding-top:.28em;}
.cred dd{margin:0;font-size:1rem;color:var(--ink);}
.cred dd small{display:block;font-family:var(--sans);font-size:.75rem;color:var(--ink-3);margin-top:.2rem;}
.fill{background:#F3EEE0;border-bottom:1px dashed var(--sand);padding:0 .25em;color:#7A6337;font-family:var(--sans);font-size:.8em;letter-spacing:.02em;}

/* ---------- pull quote ---------- */
.pull{background:var(--card);border-block:1px solid var(--line);padding-block:clamp(46px,6vw,76px);}
.pull blockquote{margin:0;max-width:46rem;border-left:2px solid var(--sand);padding-left:clamp(20px,3vw,34px);}
.pull p{font-size:clamp(1.2rem,2.5vw,1.65rem);line-height:1.36;letter-spacing:-0.018em;font-style:italic;color:var(--ink);}
.pull cite{display:block;margin-top:1.1rem;font-style:normal;font-family:var(--sans);font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);}

/* ---------- second image slot ---------- */
.shot{margin:clamp(26px,3vw,36px) 0 0;}
.shot__frame{aspect-ratio:5/4;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;padding:22px;text-align:center;}
.shot__frame p{font-family:var(--sans);font-size:.75rem;line-height:1.65;color:var(--ink-3);max-width:24rem;}
.shot__frame strong{display:block;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2);font-weight:600;font-size:.6875rem;margin-bottom:.5rem;}
.shot figcaption{font-family:var(--sans);font-size:.6875rem;color:var(--ink-3);margin-top:.6rem;letter-spacing:.02em;}

/* ---------- fees ---------- */
.fees{border-top:1px solid var(--line);max-width:44rem;}
.fee{display:grid;grid-template-columns:1fr auto;gap:4px 24px;padding-block:16px;border-bottom:1px solid var(--line);align-items:baseline;}
.fee b{font-weight:400;font-size:1.0625rem;}
.fee small{grid-column:1/-1;font-family:var(--sans);font-size:.75rem;color:var(--ink-3);}
.fee .amt{font-size:1.0625rem;font-variant-numeric:tabular-nums;color:var(--ink);}
.fee--free .amt{color:var(--green);}
.paynotes{display:grid;gap:.6rem;margin-top:clamp(26px,3vw,34px);max-width:44rem;font-size:.9375rem;color:var(--ink-2);}
.paynotes span{font-family:var(--sans);font-size:.6875rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);display:block;margin-bottom:.15rem;}

/* ---------- faq ---------- */
.faq{border-top:1px solid var(--line);max-width:46rem;}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{
  list-style:none;cursor:pointer;padding-block:18px;
  display:flex;justify-content:space-between;gap:24px;align-items:baseline;
  font-size:1.0625rem;color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:hover{color:var(--green);}
.faq summary::after{content:"+";font-family:var(--sans);font-size:1rem;color:var(--green);flex:none;line-height:1.5;}
.faq details[open] summary::after{content:"\2212";}
.faq .ans{padding-bottom:20px;color:var(--ink-2);font-size:1rem;max-width:38rem;}
.faq .ans p + p{margin-top:.8rem;}

/* ---------- book ---------- */
.book{display:grid;gap:clamp(32px,5vw,56px);}
@media(min-width:900px){.book{grid-template-columns:1fr 1fr;}}
.book__card{background:var(--card);border:1px solid var(--line);padding:clamp(24px,4vw,36px);display:flex;flex-direction:column;}
.book__card h3{font-size:1.3rem;}
.book__card p{margin-top:.8rem;color:var(--ink-2);font-size:.9375rem;}
.book__card .btn{margin-top:1.5rem;}
.field{display:grid;gap:6px;margin-top:1rem;}
.field label{font-family:var(--sans);font-size:.6875rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);}
.field input,.field textarea{
  font-family:var(--serif);font-size:1rem;color:var(--ink);
  background:var(--ground);border:1px solid var(--line);border-radius:0;
  padding:.7em .8em;width:100%;
}
.field textarea{min-height:110px;resize:vertical;}
.direct{margin-top:auto;padding-top:1.2rem;border-top:1px solid var(--line);font-size:.9375rem;color:var(--ink-2);}
.book__card form{margin-top:auto;}
.direct a{font-variant-numeric:tabular-nums;}
.book__card{min-width:0;}
.direct{overflow-wrap:anywhere;}

/* ---------- footer ---------- */
.ftr{background:var(--deep-2);color:var(--deep-ink-2);padding-block:clamp(44px,6vw,64px);font-size:.875rem;}
.ftr a{color:var(--deep-ink);}
.ftr__grid{display:grid;gap:28px;}
@media(min-width:820px){.ftr__grid{grid-template-columns:1.3fr 1fr 1fr;gap:48px;}}
.ftr h4{font-family:var(--sans);font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sand);margin-bottom:.8rem;}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;}
.crisis{
  margin-top:clamp(30px,4vw,44px);padding-top:20px;border-top:1px solid var(--line-deep);
  color:var(--deep-ink);line-height:1.6;
}
.crisis strong{color:#fff;font-weight:400;}
.legal{margin-top:18px;font-size:.75rem;font-family:var(--sans);color:#7C9184;line-height:1.7;}

/* ---------- build notes ---------- */
.notes{background:#101914;color:#C7D2CA;border-top:2px solid var(--sand);}
.notes details{padding-block:22px;}
.notes summary{cursor:pointer;font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sand);}
.notes h3{color:#fff;font-size:1.1rem;margin-top:1.8rem;}
.notes p,.notes li{font-size:.9375rem;line-height:1.7;}
.notes p{margin-top:.7rem;}
.notes ol,.notes ul{margin:.7rem 0 0;padding-left:1.2rem;display:grid;gap:.45rem;}
.notes code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;background:#1B2822;padding:.12em .4em;color:#E0D2B4;}
.notes .swatches{display:flex;flex-wrap:wrap;gap:10px;margin-top:1rem;list-style:none;padding:0;}
.notes .swatches li{display:flex;align-items:center;gap:8px;font-family:ui-monospace,Menlo,monospace;font-size:.75rem;}
.notes .swatches i{width:22px;height:22px;display:block;border:1px solid #33443B;}

@media(prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important;}}

/* booking section when the form isn't configured yet */
@media(min-width:900px){.book.book--single{grid-template-columns:1fr;max-width:38rem;}}
.book--single .direct{margin-top:1.6rem;}

/* photographs */
.portrait__frame{padding:0;}
.portrait__frame img{width:100%;height:100%;object-fit:cover;display:block;}
.shot__frame{padding:0;}
.shot__frame img{width:100%;height:100%;object-fit:cover;display:block;}


/* ---------- inner pages ---------- */
.page-hero{padding-block:clamp(48px,7vw,84px) clamp(28px,4vw,40px);}
.page-hero h1{font-size:clamp(2rem,4.6vw,3rem);line-height:1.06;letter-spacing:-0.03em;margin-top:.5rem;}
.page-hero .lede{margin-top:1rem;max-width:36rem;}
.updated{font-family:var(--sans);font-size:.75rem;color:var(--ink-3);margin-top:.6rem;letter-spacing:.01em;}
.toc{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:1.8rem;font-family:var(--sans);font-size:.8125rem;font-weight:500;}
.toc a{color:var(--green);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:3px;}
.toc a:hover{border-bottom-color:var(--green);}
.policy{padding-block:clamp(36px,5vw,60px);border-top:1px solid var(--line);scroll-margin-top:72px;}
.policy__grid{display:grid;gap:14px 56px;}
@media(min-width:900px){.policy__grid{grid-template-columns:14rem 1fr;}}
.policy h2{font-size:clamp(1.4rem,2.6vw,1.75rem);}
.policy__body{max-width:var(--measure);display:grid;gap:1rem;min-width:0;overflow-wrap:anywhere;}
.policy__body h3{font-size:1.1rem;margin-top:.9rem;}
.policy__body p,.policy__body li{color:var(--ink-2);}
.policy__body ul{margin:0;padding-left:1.2rem;display:grid;gap:.5rem;}
.notice{background:var(--card);border:1px solid var(--line);border-top:2px solid var(--green);padding:clamp(20px,3vw,30px);display:grid;gap:1rem;}
.notice h3{margin:0;font-size:1.15rem;color:var(--ink);}
.notice .src{font-family:var(--sans);font-size:.75rem;color:var(--ink-3);}

/* ---------- articles ---------- */
.shelves{padding-bottom:clamp(56px,8vw,96px);}
.shelf{margin-top:clamp(20px,3vw,32px);max-width:48rem;}
.shelf + .shelf{margin-top:clamp(36px,5vw,52px);}
.shelf__h{font-family:var(--sans);font-size:.6875rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3);padding-bottom:12px;border-bottom:1px solid var(--line);}
.entry{display:grid;gap:6px;padding-block:22px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;}
.entry__meta{font-family:var(--sans);font-size:.75rem;color:var(--green);letter-spacing:.02em;}
.entry__t{font-size:clamp(1.25rem,2.4vw,1.6rem);color:var(--ink);letter-spacing:-0.015em;}
.entry:hover .entry__t{color:var(--green);}
.entry__d{color:var(--ink-2);font-size:1rem;max-width:40rem;}

.article{padding-block:clamp(40px,6vw,72px) clamp(56px,8vw,96px);}
.article__head{max-width:42rem;}
.article__back{font-family:var(--sans);font-size:.8125rem;font-weight:500;color:var(--green);text-decoration:none;}
.article__back:hover{text-decoration:underline;}
.article__meta{font-family:var(--sans);font-size:.75rem;color:var(--ink-3);margin-top:1.6rem;letter-spacing:.02em;}
.article h1{font-size:clamp(2rem,4.6vw,3.1rem);line-height:1.06;letter-spacing:-0.03em;margin-top:.5rem;}
.article__dek{font-size:clamp(1.1rem,1.8vw,1.3rem);color:var(--ink-2);margin-top:1rem;line-height:1.45;}
.article__byline{font-family:var(--sans);font-size:.8125rem;color:var(--ink-3);margin-top:1.4rem;padding-top:1rem;border-top:1px solid var(--line);}
.prose{max-width:38rem;overflow-wrap:break-word;margin-top:clamp(28px,4vw,44px);font-size:1.125rem;line-height:1.72;color:var(--ink);}
.prose p + p{margin-top:1.15em;}
.prose h2{font-size:clamp(1.35rem,2.4vw,1.65rem);margin:2.1em 0 .65em;letter-spacing:-0.015em;}
.prose ul{margin:1em 0;padding-left:1.2rem;display:grid;gap:.55em;}
.prose ul + p{margin-top:1.15em;}
.prose a{color:var(--green);}
.prose .zh{font-family:var(--han);font-size:1.05em;}
.prose .aside-note{font-family:var(--sans);font-size:.875rem;line-height:1.6;color:var(--ink-2);background:var(--surface);padding:12px 16px;border-left:2px solid var(--green);}
.article__cta{max-width:38rem;margin-top:clamp(40px,5vw,56px);background:var(--surface);border-left:2px solid var(--sand);padding:clamp(20px,3vw,28px);}
.article__cta h2{font-size:1.2rem;}
.article__cta p{margin-top:.5rem;color:var(--ink-2);}
.article__cta .btn{margin-top:1.1rem;}

/* ---------- language switch (articles) ---------- */
.langswitch{display:inline-flex;margin-top:1.4rem;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-family:var(--sans);font-size:.8125rem;font-weight:500;line-height:1;}
.langswitch a{display:inline-block;padding:.5rem .95rem;border-radius:999px;color:var(--ink-2);text-decoration:none;}
.langswitch a:hover{color:var(--green);}
.langswitch a[aria-current="page"]{background:var(--green);color:#fff;}
.langswitch .zh{font-family:var(--han-sans);}
.article__top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;}
.article__top .langswitch{margin-top:0;}
.zh-card .zh-more{margin-top:1rem;font-size:.9375rem;}
.langnote{margin-top:1.1rem;max-width:36rem;font-size:.9375rem;color:var(--ink-2);background:var(--surface);border-left:2px solid var(--green);padding:10px 14px;}

/* ---------- Chinese pages (html lang="zh-CN") ----------
   Headings and body use Noto Serif SC first, so Chinese punctuation (“”，。) is set
   full width the way Chinese readers expect; the brand name keeps Newsreader. Labels and
   buttons use Archivo for Latin and the system Chinese sans for characters. Chinese never
   gets italics, negative tracking, or labels smaller than 13px, and headings only break
   at punctuation so a word is never split across lines. */
html:lang(zh){
  --serif:"Noto Serif SC","Newsreader","Songti SC","SimSun",serif;
  --sans:"Archivo","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;
}
html:lang(zh) body{line-height:1.85;}
html:lang(zh) h1,html:lang(zh) h2,html:lang(zh) h3,html:lang(zh) h4{letter-spacing:0;line-height:1.5;}
html:lang(zh) h1,html:lang(zh) h2,html:lang(zh) .entry__t{word-break:keep-all;overflow-wrap:anywhere;}
html:lang(zh) p,html:lang(zh) li,html:lang(zh) dd,html:lang(zh) summary{text-wrap:pretty;}
html:lang(zh) .brand b{font-family:"Newsreader",Georgia,"Times New Roman",serif;}
html:lang(zh) .hero h1 em{white-space:nowrap;}
html:lang(zh) h3{font-weight:600;}
html:lang(zh) em{font-style:normal;}
html:lang(zh) .hero h1{font-size:clamp(1.55rem,7.6vw,3rem);line-height:1.32;}
@media(min-width:900px){html:lang(zh) .hero h1{font-size:clamp(1.9rem,3.4vw,3rem);}}
html:lang(zh) .hero h1 em{font-style:normal;}
html:lang(zh) .h-sec{line-height:1.35;}
html:lang(zh) .page-hero h1,html:lang(zh) .article h1{line-height:1.3;letter-spacing:0;}
html:lang(zh) .lede,html:lang(zh) .hero__sub{line-height:1.85;}
html:lang(zh) .say__line{line-height:1.6;letter-spacing:0;}
html:lang(zh) .node h3{letter-spacing:0;}
html:lang(zh) .node__do{line-height:1.8;}
html:lang(zh) .node__under em{font-style:normal;}
html:lang(zh) .pull p{font-style:normal;line-height:1.75;letter-spacing:0;}
html:lang(zh) .faq summary{line-height:1.6;}
html:lang(zh) .prose{font-size:1.0625rem;line-height:1.95;}
html:lang(zh) .prose h2{line-height:1.4;letter-spacing:0;}
html:lang(zh) .prose i{font-style:italic;}
html:lang(zh) .article__dek{line-height:1.7;}
html:lang(zh) .entry__t{letter-spacing:0;line-height:1.4;}
html:lang(zh) .btn{letter-spacing:.04em;}
html:lang(zh) .eyebrow,
html:lang(zh) .fact dt,
html:lang(zh) .node__under span,
html:lang(zh) .stage__n,
html:lang(zh) .cred dt,
html:lang(zh) .paynotes span,
html:lang(zh) .field label,
html:lang(zh) .ftr h4,
html:lang(zh) .shelf__h,
html:lang(zh) .pull cite{font-size:.8125rem;letter-spacing:.06em;}
html:lang(zh) .loop__label{font-size:.75rem;letter-spacing:.12em;}
html:lang(zh) .say__tag,
html:lang(zh) .hero__micro,
html:lang(zh) .portrait__plate span,
html:lang(zh) .fact dd small,
html:lang(zh) .cred dd small,
html:lang(zh) .fee small,
html:lang(zh) .updated,
html:lang(zh) .entry__meta,
html:lang(zh) .article__meta,
html:lang(zh) .notice .src,
html:lang(zh) .shot figcaption,
html:lang(zh) .legal{font-size:.8125rem;letter-spacing:0;}

/* ---------- separate pages: links, steps, booking band ---------- */
.nav a[aria-current="page"]{color:var(--green);border-bottom-color:var(--green);}
.menu__panel a[aria-current="page"]{color:var(--green);}
.more{margin-top:clamp(22px,3vw,30px);font-family:var(--sans);font-size:.875rem;font-weight:600;}
.more a{text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px;}
.more a:hover{border-bottom-color:var(--green);}
.facts__more{max-width:var(--wrap);margin:0 auto;padding:12px var(--gut) 14px;border-top:1px solid var(--line);font-family:var(--sans);font-size:.8125rem;font-weight:600;}
.facts__more a{text-decoration:none;}
.facts__more a:hover{text-decoration:underline;}
.band__more{margin-top:clamp(22px,3vw,30px);font-family:var(--sans);font-size:.875rem;font-weight:600;}
.band__more a{color:var(--sand);text-decoration:none;border-bottom:1px solid rgba(198,174,131,.45);padding-bottom:2px;}
.band__more a:hover{border-bottom-color:var(--sand);}
.band--tight{padding-block:clamp(40px,6vw,72px);}
.band--tight .cycle{margin-top:0;}
.zh-teaser{display:grid;gap:clamp(24px,4vw,48px);align-items:center;}
@media(min-width:900px){.zh-teaser{grid-template-columns:1.1fr .9fr;}}
.zh-teaser .sec__head{margin-bottom:0;}
.steps{list-style:none;margin:0 0 clamp(28px,4vw,40px);padding:0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line);}
@media(min-width:760px){.steps{grid-template-columns:repeat(3,1fr);}}
.step{background:var(--card);padding:clamp(20px,3vw,28px);}
.step__n{font-family:var(--sans);font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green);}
.step h3{font-size:1.2rem;margin-top:.35rem;}
.step p:not(.step__n){margin-top:.45rem;color:var(--ink-2);font-size:.9375rem;}
.sec--flush-top{padding-top:0;}
.about-hero{display:grid;gap:clamp(28px,5vw,56px);align-items:center;}
@media(min-width:860px){.about-hero{grid-template-columns:1.2fr .8fr;}}
.about-hero .portrait{max-width:300px;}
.creds--flush{margin-top:0;}
.cta-band{background:var(--surface);border-top:1px solid var(--line);padding-block:clamp(40px,6vw,64px);}
.cta-band__in{display:grid;gap:18px 48px;align-items:center;}
@media(min-width:860px){.cta-band__in{grid-template-columns:1fr auto;}}
.cta-band h2{font-size:clamp(1.4rem,2.6vw,1.8rem);}
.cta-band p{color:var(--ink-2);margin-top:.45rem;max-width:36rem;}
.cta-band__actions{min-width:0;}
.cta-band__direct{font-size:.9375rem;margin-top:.9rem;overflow-wrap:anywhere;}
html:lang(zh) .step__n{font-size:.8125rem;letter-spacing:.06em;}
html:lang(zh) .cta-band h2{word-break:keep-all;overflow-wrap:anywhere;}
