/* ------------------------------------------------------------------ 越南語 / 拉丁語系排版修正
   越南語字母多聲調符（ă â ê ô ơ ư đ）+ 拉丁字母長詞，西文排版規則要放寬：
   1. 標題 / 字距：--ls-tight/-wide/wider 在 Latin 字符上顯得過擠或過散，置 0
   2. 全局 nowrap 元素（徽標、按鈕、導航、側欄）：允許換行 + word-break 兜底
   3. 固定寬度容器：overflow-wrap: break-word 讓長詞斷行而不是溢出
   作用域限 html[lang="vi"]，不影響其他語言的原稿面視覺。 */

/* —— 字型：CJK 字型（PMingLiU / Noto Serif TC…）不含越南語拉丁擴充字
      （ấ ứ ạ…），缺字時會退到 Georgia，而 Georgia 會把聲調拆成獨立字元，
      造成「nấu」顯示成「nâ' u」這種錯位。改以越南語支援完整的字型優先，
      CJK 字元再由後備字型接手。 —— */
html[lang="vi"] {
  --font-serif: "Noto Serif", Cambria, "Times New Roman", "Songti TC", "PMingLiU", serif;
  --font-sans: "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans",
               "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif;
}

/* —— 字距：Latin 字符不適用 CJK 字距 token —— */
html[lang="vi"] h1, html[lang="vi"] h2, html[lang="vi"] h3,
html[lang="vi"] h4, html[lang="vi"] h5, html[lang="vi"] h6,
html[lang="vi"] .en,
html[lang="vi"] .site-logo__text,
html[lang="vi"] .site-nav__item,
html[lang="vi"] .site-nav__item--merchant,
html[lang="vi"] .site-footer__app-title,
html[lang="vi"] .home-card__title,
html[lang="vi"] .side-title,
html[lang="vi"] .c-post__title,
html[lang="vi"] .c-pcard__title {
  letter-spacing: 0;
}

/* —— 導航 / 標籤 / 按鈕：允許換行，避免撑爆卡片 —— */
html[lang="vi"] .site-nav__item,
html[lang="vi"] .site-nav__item--merchant,
html[lang="vi"] .c-tag,
html[lang="vi"] .c-btn,
html[lang="vi"] .c-search__input,
html[lang="vi"] .site-tools__link,
html[lang="vi"] .site-tools__weather {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: break-word;
  vertical-align: middle;
}

/* —— 導航整體：允許折行 —— */
html[lang="vi"] .site-nav {
  flex-wrap: wrap;
  row-gap: var(--sp-1);
}

/* —— 側欄分類：長類目名換行 —— */
html[lang="vi"] .c-side-item,
html[lang="vi"] .c-side-item__name,
html[lang="vi"] .shop-cats__item,
html[lang="vi"] .site-footer__list a,
html[lang="vi"] .m-tabbar__item,
html[lang="vi"] .m-drawer__item,
html[lang="vi"] .site-footer__col-title {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: break-word;
}

/* —— 卡片 / 帖子標題：自然換行，不裁切 —— */
html[lang="vi"] .c-pcard__title,
html[lang="vi"] .c-post__title,
html[lang="vi"] .home-card__title,
html[lang="vi"] .home-card__desc,
html[lang="vi"] .home-card__body {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: break-word;
  line-height: var(--lh-snug);
}

/* —— 頭部 / 工具列 / 浮層：兜底換行 —— */
html[lang="vi"] .site-header__inner,
html[lang="vi"] .site-tools,
html[lang="vi"] .site-tools__weather,
html[lang="vi"] .weather-tooltip,
html[lang="vi"] .weather-tooltip__row,
html[lang="vi"] .weather-tooltip__title,
html[lang="vi"] .site-tools__slot {
  word-break: break-word;
  overflow-wrap: break-word;
}

/* —— 卡片 / 容器 / 頁面整體：長詞斷行 —— */
html[lang="vi"] .c-pcard,
html[lang="vi"] .c-pcard__body,
html[lang="vi"] .c-pcard__meta,
html[lang="vi"] .c-post,
html[lang="vi"] .c-post__body,
html[lang="vi"] .home-card,
html[lang="vi"] .shop-cats,
html[lang="vi"] .side-list,
html[lang="vi"] .shell,
html[lang="vi"] .shell-body {
  overflow-wrap: break-word;
  word-break: break-word;
  min-width: 0;
}

/* —— 全局 body / p / li 兜底 —— */
html[lang="vi"] body,
html[lang="vi"] p,
html[lang="vi"] li {
  overflow-wrap: break-word;
}
