/* Chinese edition - new-Chinese ("xinchinoiserie") grandeur, warm ochre + seal red.
   Keeps the information density domestic readers want, but on a far larger
   typographic and spatial scale than a default utility layout. */

body[data-lang='zh'] {
  --bg: #fdf6ec;
  --bg-2: #f8ecd9;
  --surface: #ffffff;
  --text: #241a12;
  --text-2: #5f5045;
  --text-3: #8d7c6d;
  --line: #ecdfcc;
  --line-strong: #dcc9ad;
  --accent: #c8102e;
  --accent-2: #b8860b;
  --accent-soft: #fdeceb;
  --accent-contrast: #ffffff;
  --warn: #c8102e;
  --warn-bg: #fdeceb;
  --warn-line: #f6c9c5;
  --radius: 8px;
  --gap: 22px;
  --sec-pad: 84px;
  --fs-body: 15px;
  --fs-nav: 13.5px;
  --fs-kicker: 12.5px;
  --fs-h1: clamp(46px, 8.4vw, 92px);
  --fs-h2: clamp(28px, 4vw, 42px);
  --fs-lead: 17px;
  --meta-k-w: 62px;
  --topbar-h: 62px;
  --topbar-bg: rgba(253, 246, 236, .9);
  --hero-scrim: linear-gradient(118deg, rgba(58, 10, 12, .94) 0%, rgba(122, 20, 24, .8) 40%, rgba(253, 246, 236, .12) 100%);
  --hero-title: #fff8ec;
  --hero-lead: rgba(255, 248, 236, .9);
  --hero-kicker: #ffd88a;
  --stat-bg: rgba(255, 255, 255, .12);
  --stat-line: rgba(255, 216, 138, .36);
  --stat-n: #ffd88a;
  --ph-bg: linear-gradient(135deg, #f6e3c8 0%, #efd0a8 100%);
  --badge-bg: rgba(255, 255, 255, .92);
  --badge-fg: #c8102e;
  --shadow-hover: 0 20px 44px rgba(140, 40, 30, .18);
  --font-sans: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Hiragino Sans GB',
    'Microsoft YaHei', 'Source Han Sans SC', sans-serif;
  /* serif display face - the single biggest driver of "grandeur" in CN typography */
  --font-display: 'Songti SC', 'STSong', 'Source Han Serif SC', 'Noto Serif SC',
    'SimSun', 'Songti TC', serif;
}

/* ---------- hero: wide editorial composition ---------- */

body[data-lang='zh'] .hero-in {
  padding: 148px 0 116px;
  display: flex;
  align-items: flex-start;
  gap: 34px;
}

body[data-lang='zh'] .hero-copy { flex: 1; min-width: 0; }

/* the seal: vertical glyph in a red cartouche, top-right of the headline block */
body[data-lang='zh'] .hero-seal {
  flex: 0 0 auto;
  margin-top: 10px;
  width: 62px;
  height: 62px;
  border-radius: 6px;
  background: linear-gradient(145deg, #d81e37, #a80d24);
  box-shadow: 0 10px 26px rgba(160, 20, 34, .42);
  display: grid;
  place-items: center;
  writing-mode: vertical-rl;
  text-orientation: upright;
  position: relative;
}

body[data-lang='zh'] .hero-seal::after {
  content: '';
  position: absolute;
  inset: 5px;
  border: 1px solid rgba(255, 232, 200, .55);
  border-radius: 3px;
}

body[data-lang='zh'] .hero-seal span {
  font-family: var(--font-display);
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
  color: #fff4e2;
  letter-spacing: 0;
}

/* kicker: rule + letterspaced label */
body[data-lang='zh'] .kicker {
  letter-spacing: .3em;
  display: inline-flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 26px;
  font-weight: 700;
}

body[data-lang='zh'] .kicker::after {
  content: '';
  width: 54px;
  height: 1px;
  background: linear-gradient(90deg, var(--hero-kicker), transparent);
}

/* headline: serif, generous tracking (never negative - CJK glyphs collide) */
body[data-lang='zh'] .hero h1 {
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.16;
  margin: 0 0 30px;
  text-shadow: 0 6px 34px rgba(0, 0, 0, .42);
}

body[data-lang='zh'] .hero-lead {
  font-size: var(--fs-lead);
  max-width: 620px;
  line-height: 1.86;
  margin: 0 0 44px;
  padding-left: 17px;
  border-left: 2px solid var(--accent);
}

body[data-lang='zh'] .hero-stats { gap: 14px; }

body[data-lang='zh'] .stat {
  background: var(--stat-bg);
  border: 1px solid var(--stat-line);
  padding: 16px 26px;
  min-width: 118px;
  border-radius: 6px;
}

body[data-lang='zh'] .stat b {
  font-weight: 700;
  font-size: 30px;
  letter-spacing: .02em;
}

body[data-lang='zh'] .stat span {
  font-size: 12px;
  letter-spacing: .08em;
  color: var(--hero-lead);
}

/* ochre/red hairline band closing the hero */
body[data-lang='zh'] .hero::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: linear-gradient(90deg,
      var(--accent) 0 22%,
      var(--accent-2) 22% 46%,
      var(--accent) 46% 72%,
      var(--accent-2) 72% 100%);
  opacity: .9;
  z-index: 3;
}

/* ---------- section headers: seal-red marker ---------- */

body[data-lang='zh'] .sechead {
  position: relative;
  margin-bottom: 38px;
  padding-left: 20px;
}

body[data-lang='zh'] .sechead::before {
  content: '';
  position: absolute;
  left: 0;
  top: 12px;
  width: 5px;
  height: 40px;
  border-radius: 1px;
  background: linear-gradient(180deg, var(--accent), var(--accent-2));
}

body[data-lang='zh'] .sechead .num {
  font-family: var(--font-display);
  font-size: 13px;
  letter-spacing: .26em;
  margin-bottom: 12px;
}

body[data-lang='zh'] .sechead h2 {
  font-weight: 700;
  letter-spacing: .05em;
  padding-left: 0;
  line-height: 1.3;
}

body[data-lang='zh'] .sechead p {
  margin-top: 14px;
  font-size: 14.5px;
  line-height: 1.8;
}

/* ---------- cards: dense but comfortable ---------- */

body[data-lang='zh'] .card { border-radius: var(--radius); }
body[data-lang='zh'] .card:hover { transform: translateY(-4px); }
body[data-lang='zh'] .card-body { padding: 16px 17px 17px; gap: 10px; }
body[data-lang='zh'] .card-body h3 {
  font-weight: 700;
  font-size: 18px;
  letter-spacing: .03em;
  line-height: 1.4;
}
body[data-lang='zh'] .card-sub { font-size: 12px; letter-spacing: .1em; }
body[data-lang='zh'] .card-desc { font-size: 13.2px; line-height: 1.74; }
body[data-lang='zh'] .meta { gap: 7px; }
body[data-lang='zh'] .meta-row { font-size: 12.8px; line-height: 1.62; }
body[data-lang='zh'] .closed-tag { font-size: 12px; padding: 4px 11px; border-radius: 5px; }
body[data-lang='zh'] .card-more { font-size: 12.5px; padding-top: 11px; }

/* ---------- notes / warnings ---------- */

body[data-lang='zh'] .notes-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr));
}

body[data-lang='zh'] .note {
  padding: 26px 24px;
  border-radius: var(--radius);
}

body[data-lang='zh'] .note-h { margin-bottom: 16px; gap: 13px; }

body[data-lang='zh'] .note-h .ic {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 6px;
  font-size: 20px;
}

body[data-lang='zh'] .note-h h3 {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .04em;
}

body[data-lang='zh'] .note ul { padding-left: 17px; }
body[data-lang='zh'] .note li { font-size: 13.4px; margin-bottom: 9px; line-height: 1.78; }

body[data-lang='zh'] .warn-box { padding: 30px 28px; border-radius: var(--radius); }
body[data-lang='zh'] .warn-box h3 { font-size: 17px; margin-bottom: 18px; }
body[data-lang='zh'] .warn-list li { font-size: 13.4px; line-height: 1.72; }

/* ---------- alert ---------- */

body[data-lang='zh'] .alert {
  border-radius: var(--radius);
  padding: 22px 24px;
  border-left-width: 6px;
  margin-bottom: 34px;
}

body[data-lang='zh'] .alert h3 { font-size: 16px; letter-spacing: .03em; }
body[data-lang='zh'] .alert p { font-size: 14px; line-height: 1.78; }

/* ---------- itineraries ---------- */

body[data-lang='zh'] .itin { padding: 28px 26px; border-radius: var(--radius); }
body[data-lang='zh'] .itin h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 21px;
  letter-spacing: .05em;
}
body[data-lang='zh'] .itin li { font-size: 13.4px; line-height: 1.74; margin-bottom: 11px; }
body[data-lang='zh'] .itin .note { font-size: 12.8px; line-height: 1.72; padding: 12px 14px; border-radius: 6px; }

/* ---------- food / essentials ---------- */

body[data-lang='zh'] .food-grid { grid-template-columns: repeat(auto-fill, minmax(min(290px, 100%), 1fr)); gap: 18px; }
body[data-lang='zh'] .food-item { padding: 20px 21px; border-radius: var(--radius); }
body[data-lang='zh'] .food-item h4 { font-size: 15.5px; letter-spacing: .03em; }
body[data-lang='zh'] .food-item p { font-size: 13px; line-height: 1.72; }

body[data-lang='zh'] .ess { padding: 26px 24px; border-radius: var(--radius); }
body[data-lang='zh'] .ess h3 {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: .05em;
  margin-bottom: 16px;
}
body[data-lang='zh'] .ess .row { padding-bottom: 10px; }
body[data-lang='zh'] .ess li { font-size: 13.2px; line-height: 1.72; }

/* ---------- brand ---------- */

body[data-lang='zh'] .brand {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 19px;
  letter-spacing: .1em;
}

/* ---------- responsive ---------- */

@media (max-width: 860px) {
  body[data-lang='zh'] .hero-in {
    flex-direction: column;
    align-items: flex-start;
    gap: 22px;
    padding: 96px 0 76px;
  }
  body[data-lang='zh'] .hero-seal { margin-top: 0; width: 54px; height: 54px; }
  body[data-lang='zh'] .hero-seal span { font-size: 29px; }
  body[data-lang='zh'] .hero h1 { letter-spacing: .04em; }
  body[data-lang='zh'] .hero-lead { margin-bottom: 34px; }
}

@media (max-width: 600px) {
  body[data-lang='zh'] { --fs-h1: clamp(32px, 8vw, 44px); }
  body[data-lang='zh'] .hero-in { padding: 52px 0 42px; gap: 18px; }
  body[data-lang='zh'] .hero-seal { width: 44px; height: 44px; }
  body[data-lang='zh'] .hero-seal span { font-size: 24px; }
  body[data-lang='zh'] .hero h1 { margin-bottom: 22px; letter-spacing: .03em; }
  body[data-lang='zh'] .hero-lead { font-size: 15.5px; padding-left: 14px; margin-bottom: 28px; }
  body[data-lang='zh'] .stat { padding: 12px 14px; }
  body[data-lang='zh'] .stat b { font-size: 24px; }
  body[data-lang='zh'] .stat span { font-size: 11px; }
  body[data-lang='zh'] .sechead h2 { font-size: 28px; letter-spacing: .03em; }
  body[data-lang='zh'] .brand { font-size: 17px; }
  body[data-lang='zh'] .card-body h3 { font-size: 17px; }
  body[data-lang='zh'] .itin h3 { font-size: 19px; }
}
