/* SetupHK 品牌樣式：品牌色與字體同 go.setuphk.com v2；版面走 setuphk.com 原有的明亮風（白底、淺灰區塊，2026-10-05 使用者指定）。 */
:root {
  /* 主視覺唯一尺寸（2026-10-17 使用者：以 /setup-company/ 為準，全站一改全改）。
     服務頁、關於我們、聯絡我們的分割款主視覺（.hm-shero2）：桌機 ≥1101px 高 741px、手機 ≤760px 高 760px（2026-10-17 由 910 裁短）；
     首頁（.hm-hero，透明頁首疊在上面）＝頁首高＋上述高度，下緣與服務頁對齊。各頁 css 只引用這幾個變數，不另寫數字。 */
  --sh-hero-h: 741px;
  --sh-hero-h-m: 760px;
  --sh-header-h: 81px;
  --sh-header-h-m: 61px;
  --sh-yellow: #E8B931;
  --sh-yellow-hover: #F0C955;
  --sh-navy: #163375;
  --sh-navy-deep: #0C1B3D;
  --sh-night: #07101F;
  --sh-wa: #075E54;
  --sh-wa-hover: #054C44;
  --sh-text: #111A2C;
  --sh-muted: #4E596D;
  --sh-surface: #F3F5F9;
  --sh-border: #DDE2EB;
  --sh-font: 'Poppins', 'Noto Sans TC', 'PingFang HK', sans-serif;
  --sh-shadow: 0 18px 40px -18px rgba(7, 16, 31, .28);

  /* 字級分兩層：內容層（display/h2/h3/title/prose，只有這層用 700）與框架層（ui/small/micro，最高 500、都比內文小）。
     全站唯一一套；Elementor 模板的 global class sh-display／sh-h3／sh-title／sh-ui／sh-small／sh-micro 用同一組數值，見 DESIGN.md） */
  --sh-fs-display: 3.25rem;   /* 頁面 H1（抬頭區） */
  --sh-fs-h2: 1.75rem;        /* 內文 H2 */
  --sh-fs-h3: 1.25rem;        /* 內文 H3、「相關文章」 */
  --sh-fs-title: 1.125rem;    /* 卡片標題、CTA 標題、側欄標題、目錄標題 */
  --sh-fs-prose: 1.0625rem;   /* 文章內文 */
  --sh-fs-ui: .9375rem;       /* 框架層：選單、按鈕字、清單、卡片摘要、表格 */
  --sh-fs-small: .875rem;     /* 框架層：目錄項目、麵包屑、日期、頁尾連結、chip、小標籤 */
  --sh-fs-micro: .75rem;      /* 牌照、版權 */
  --sh-lh-heading: 1.3;
  --sh-lh-title: 1.45;
  --sh-lh-prose: 1.85;
  --sh-lh-ui: 1.5;
  --sh-lh-small: 1.6;
  --sh-lh-ctl: 1.25;          /* 所有按鈕、可點的列：自帶行高，不繼承內文 */
  /* 尺寸 */
  --sh-ctl-md: 40px;          /* 按鈕高 */
  --sh-ctl-hit: 44px;         /* 分頁、清單列、選單鈕的點擊高度 */
  --sh-ctl-sm: 36px;          /* chip、手機頁首按鈕 */
  --sh-radius-ctl: 6px;
  --sh-radius-card: 8px;
  --sh-radius-pill: 999px;
  --sh-pad-card: 20px;

  /* ---------- 行銷頁 token（首頁、服務頁、關於、聯絡；2026-10-17 使用者「把設定都要 css 的 class 一致性起來」） ----------
     頁面 CSS 由 docs/**/mockups/build_*.py 產生，一律寫成 var(--sh-x, 同值)：括號內預設值只給沒載入本檔的示範稿用，
     必須和這裡的值一致（docs/css-tokens/check_tokens.py 檢查）。-m 結尾是手機值，頁面在自己的 ≤760px 區塊引用，本檔不另設斷點。
     改值：只改這裡，再跑 ./deploy-staging.sh；收斂前後對照見 docs/css-token-audit-2026-10-17.md。 */
  /* 文字顏色 */
  --sh-ink-2: #2D3648;        /* 強內文：評價、法律頁 */
  --sh-subtle: #5A6478;       /* 副標、卡片內文、小字 */
  --sh-faint: #9AA3B2;        /* 停用、刪除線 */
  --sh-gold-ink: #6E5410;     /* 淺底上的金色字：期限、條文出處 */
  --sh-ok: #1E6B52;
  --sh-danger: #8A2A1F;
  --sh-on-dark-1: rgba(255,255,255,.92);  /* 深底：主要文字 */
  --sh-on-dark-2: rgba(255,255,255,.78);  /* 深底：段落 */
  --sh-on-dark-3: rgba(255,255,255,.62);  /* 深底：註腳 */
  /* 線、底色 */
  --sh-line: #E3E7EE;
  --sh-line-soft: #EEF1F5;
  --sh-surface-2: #F7F8FB;
  --sh-gold-tint: #F4F1E6;
  /* 圓角、陰影 */
  --sh-r-btn: 10px;
  --sh-r-card: 14px;
  --sh-r-panel: 18px;
  --sh-r-tick: 2px;
  --sh-shadow-card: 0 1px 2px rgba(17,26,44,.05),0 16px 32px -22px rgba(17,26,44,.28);
  --sh-shadow-card-hover: 0 1px 2px rgba(17,26,44,.05),0 22px 40px -24px rgba(17,26,44,.4);
  --sh-shadow-media: 0 20px 40px -12px rgba(0,0,0,.45);
  /* 標題字級（桌機／手機 -m） */
  --sh-fs-band: 38px;   --sh-fs-band-m: 26px;    /* 深色帶、CTA 大標 */
  --sh-fs-sec: 34px;    --sh-fs-sec-m: 24px;     /* 區塊標題 */
  --sh-fs-sec-sm: 30px; --sh-fs-sec-sm-m: 22px;  /* 文章牆、指南章節 */
  --sh-fs-card-lg: 22px; --sh-fs-card-lg-m: 19px; /* 大卡標題 */
  --sh-fs-card: 20px;   --sh-fs-card-m: 17px;    /* 卡片標題 */
  --sh-fs-card-sm: 18px; --sh-fs-card-sm-m: 16px; /* 小卡、清單標題 */
  /* 段落字級（第二批：卡片內文、區塊頭段落、深色帶段落）；行高一律 1.8 */
  --sh-fs-lead: 18px;    --sh-fs-lead-m: 15px;     /* 深色帶、CTA、樞紐段落 */
  --sh-fs-sub: 17px;     --sh-fs-sub-m: 15px;      /* 區塊頭段落 */
  --sh-fs-body: 16px;    --sh-fs-body-m: 15px;     /* 長段卡片內文 */
  --sh-fs-body-sm: 15px; --sh-fs-body-sm-m: 14px;  /* 卡片摘要 */
  --sh-lh-body: 1.8;
  /* 按鈕：大（主視覺）58／手機 56、中 50 */
  --sh-btn-h-lg: 58px;   --sh-btn-h-lg-m: 56px;
  --sh-btn-pad-lg: 0 32px;
  --sh-btn-h: 50px;
  --sh-btn-pad: 0 22px;
  --sh-btn-fs: 15px;
  /* 文字連結 */
  --sh-fs-lk: 15px;      --sh-fs-lk-sm: 14px;
  --sh-fw-lk: 700;
  /* 區塊上下留白 */
  --sh-sec-y: 100px;     --sh-sec-y-m: 56px;       /* 一般區塊 */
  --sh-sec-y-lg: 112px;  --sh-sec-y-lg-m: 64px;    /* 深色帶、CTA、樞紐、短片 */
  --sh-sec-y-sm: 72px;   --sh-sec-y-sm-m: 48px;    /* 步驟、文章牆 */
  /* 大數字（第三批）：價錢、評分、步驟號、主視覺數字列 */
  --sh-fs-num-xl: 56px;  --sh-fs-num-xl-m: 44px;   /* 主價錢、評分總分 */
  --sh-fs-num-lg: 46px;  --sh-fs-num-lg-m: 34px;   /* 次價錢、步驟號 */
  --sh-fs-num-md: 40px;  --sh-fs-num-md-m: 28px;   /* 首頁數字列、評分卡 */
  --sh-fs-num-sm: 30px;  --sh-fs-num-sm-m: 22px;   /* 計費器、地圖金額 */
  --sh-fs-num-hero: 28px;                          /* 服務頁主視覺數字列（桌機；手機用 num-sm-m）：主視覺高度 741 的上限 */
}
@media (max-width: 767px) {
  :root { --sh-fs-display: 1.875rem; --sh-fs-h2: 1.5rem; }
}

body {
  font-family: var(--sh-font);
  color: var(--sh-text);
  -webkit-font-smoothing: antialiased;
}
::selection { background: var(--sh-yellow); color: var(--sh-night); }
:focus-visible { outline: 3px solid var(--sh-navy); outline-offset: 3px; }

/* 跳到主要內容（鍵盤第一個停點） */
.sh-skip { position: absolute; left: 12px; top: -60px; z-index: 10000; padding: 10px 16px; border-radius: var(--sh-radius-ctl); background: var(--sh-navy); color: #fff; font-size: var(--sh-fs-ui); font-weight: 500; text-decoration: none; }
.sh-skip:focus { top: 12px; color: #fff; }

/* ---------- 文章內文（Elementor「文章內容」widget 與主題預設內容區） ---------- */
.single-post .elementor-widget-theme-post-content,
.single-post .entry-content {
  font-size: var(--sh-fs-prose);
  line-height: var(--sh-lh-prose);
}
.single-post .elementor-widget-theme-post-content :is(h2, h3),
.single-post .entry-content :is(h2, h3) {
  font-family: var(--sh-font);
  font-weight: 700;
  line-height: var(--sh-lh-heading);
  color: var(--sh-text);
  scroll-margin-top: 104px;
  text-wrap: balance;
}
.single-post .elementor-widget-theme-post-content h2,
.single-post .entry-content h2 {
  font-size: var(--sh-fs-h2);
  margin: 2.6em 0 .8em;
  padding-top: .9em;
  border-top: 1px solid var(--sh-border);
}
.single-post .elementor-widget-theme-post-content h3,
.single-post .entry-content h3 {
  font-size: var(--sh-fs-h3);
  margin: 2em 0 .6em;
}
.single-post .elementor-widget-theme-post-content :is(p, ul, ol, table, blockquote),
.single-post .entry-content :is(p, ul, ol, table, blockquote) { margin: 0 0 1.25em; }
.single-post .elementor-widget-theme-post-content a:not(.sh-cta__btn),
.single-post .entry-content a:not(.sh-cta__btn) {
  color: var(--sh-navy);
  text-decoration: underline;
  text-decoration-color: var(--sh-yellow);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}
.single-post .elementor-widget-theme-post-content table,
.single-post .entry-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--sh-fs-ui);
  display: block;
  overflow-x: auto;
}
.single-post .elementor-widget-theme-post-content :is(th, td),
.single-post .entry-content :is(th, td) {
  border: 1px solid var(--sh-border);
  padding: .65em .8em;
  text-align: left;
  vertical-align: top;
}
.single-post .elementor-widget-theme-post-content th,
.single-post .entry-content th { background: var(--sh-surface); font-weight: 700; }
.single-post .elementor-widget-theme-post-content blockquote,
.single-post .entry-content blockquote {
  background: var(--sh-surface);
  padding: 1em 1.25em;
  border-radius: var(--sh-radius-ctl);
}
.single-post .elementor-widget-theme-post-content img,
.single-post .entry-content img { height: auto; border-radius: var(--sh-radius-ctl); }

/* ---------- 文章目錄（平板、手機在內文開頭收合；桌機由 toc.js 搬進側欄） ---------- */
.sh-toc {
  background: var(--sh-surface);
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius-card);
  margin: 0 0 2rem;
}
.sh-toc[hidden] { display: none; }
.sh-toc__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: var(--sh-ctl-hit);
  padding: .5rem var(--sh-pad-card);
  font-weight: 500;
  font-size: var(--sh-fs-ui);
  line-height: var(--sh-lh-ctl);
  cursor: pointer;
  list-style: none;
}
.sh-toc__title::-webkit-details-marker { display: none; }
.sh-toc__title::after {
  content: "";
  width: .55rem;
  height: .55rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform .2s;
}
.sh-toc[open] .sh-toc__title::after { transform: rotate(225deg) translateY(-2px); }
.sh-toc__list { margin: 0; padding: 0 var(--sh-pad-card) 1rem 2.5rem; font-size: var(--sh-fs-ui); line-height: var(--sh-lh-ui); }
.sh-toc__list li { margin: .3em 0; }
.sh-toc__list a { color: var(--sh-navy); text-decoration: none; }
.sh-toc__list a:hover { text-decoration: underline; text-decoration-color: var(--sh-yellow); text-decoration-thickness: 2px; }
/* 側欄版：常駐展開、可捲動、標示目前章節 */
.sh-toc--side { margin: 0; background: #fff; }
.sh-toc--side .sh-toc__title { min-height: 0; padding: 16px 20px 8px; color: var(--sh-muted); font-size: var(--sh-fs-small); letter-spacing: .02em; }
.sh-toc--side .sh-toc__title { cursor: default; }
.sh-toc--side .sh-toc__title::after { display: none; }
.sh-toc--side .sh-toc__list {
  max-height: calc(100vh - 360px);
  overflow-y: auto;
  padding: 0 12px 12px 34px;
  font-size: var(--sh-fs-small);
  overscroll-behavior: contain;
}
.sh-toc--side .sh-toc__list { scrollbar-width: thin; scrollbar-color: var(--sh-border) transparent; }
.sh-toc--side .sh-toc__list li { margin: 0; }
.sh-toc--side .sh-toc__list a { display: block; padding: 4px 8px; margin-left: -8px; border-radius: 4px; color: var(--sh-muted); transition: color .15s, background-color .15s; }
.sh-toc--side .sh-toc__list a:hover { color: var(--sh-navy); }
.sh-toc--side .sh-toc__list a.is-active { color: var(--sh-navy); font-weight: 500; background: var(--sh-surface); }

/* ---------- 文中／文末 WhatsApp CTA：框架層的低調旁註（字重、字級都低於 H3 與內文） ---------- */
.sh-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 16px;
  margin: 2rem 0;
  padding: 16px 20px;
  border-radius: var(--sh-radius-card);
  background: var(--sh-surface);
  color: var(--sh-text);
}
.sh-cta__body { flex: 1 1 16rem; min-width: 0; }
/* 內文 p 的 margin 規則權重較高，這裡要壓過 */
.single-post .elementor-widget-theme-post-content .sh-cta p { margin: 0; }
.sh-cta .sh-cta__title { font-weight: 500; font-size: var(--sh-fs-ui); line-height: var(--sh-lh-ui); color: var(--sh-text); }
.single-post .elementor-widget-theme-post-content .sh-cta .sh-cta__desc { margin-top: 2px; color: var(--sh-muted); font-size: var(--sh-fs-small); line-height: var(--sh-lh-small); }
.single-post .elementor-widget-theme-post-content .sh-cta .sh-cta__link { margin-top: 4px; color: var(--sh-muted); font-size: var(--sh-fs-small); line-height: var(--sh-lh-small); }
.sh-cta .sh-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  white-space: nowrap;
  box-sizing: border-box;
  min-height: var(--sh-ctl-md);
  padding: 0 16px;
  border-radius: var(--sh-radius-ctl);
  border: 1px solid var(--sh-navy);
  background: var(--sh-navy);
  color: #fff !important;
  font-weight: 500;
  font-size: var(--sh-fs-ui);
  line-height: var(--sh-lh-ctl);
  text-decoration: none !important;
  transition: background-color .2s, color .2s;
}
.sh-cta .sh-cta__btn:hover { background: var(--sh-navy-deep); border-color: var(--sh-navy-deep); }
/* 文中那個用次要樣式，只有文末是實心 */
.sh-cta--mid .sh-cta__btn { background: #fff; color: var(--sh-navy) !important; }
.sh-cta--mid .sh-cta__btn:hover { background: var(--sh-navy); color: #fff !important; }
@media (max-width: 767px) {
  .sh-cta { flex-direction: column; align-items: flex-start; padding: 16px; }
  /* 直排時 flex-basis 16rem 會變成「高度」，撐出約 256px 空白 */
  .sh-cta__body { flex: none; width: 100%; }
  .sh-cta .sh-cta__btn { min-height: var(--sh-ctl-hit); }
}
.sh-icon { width: 1.15em; height: 1.15em; flex: none; }

/* ---------- 浮動 WhatsApp＋電話 ---------- */
.sh-float {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 9990;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}
/* 手機首頁主視覺內先不出現（會蓋到貼底的數字列），捲離主視覺由 home.js 加 body.sh-float-on 才顯示（2026-10-18） */
.sh-float { transition: opacity .25s, visibility .25s; }
@media (max-width: 760px) {
  body.home:not(.sh-float-on) .sh-float { opacity: 0; visibility: hidden; pointer-events: none; }
}
.sh-float__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  border-radius: var(--sh-radius-pill);
  color: #fff !important;
  font-weight: 500;
  font-size: var(--sh-fs-ui);
  line-height: var(--sh-lh-ctl);
  text-decoration: none !important;
  box-shadow: 0 10px 24px -8px rgba(7, 16, 31, .45);
  transition: background-color .2s;
}
.sh-float__btn--tel { background: var(--sh-navy); width: 48px; height: 48px; }
.sh-float__btn--tel:hover { background: var(--sh-navy-deep); }
.sh-float__btn--wa { background: var(--sh-wa); width: 56px; height: 56px; }
.sh-float__btn--wa:hover { background: var(--sh-wa-hover); }
.sh-float__btn--wa .sh-icon { width: 1.75rem; height: 1.75rem; }
.sh-float__label { display: none; }
/* blog 三模板＋作者頁：桌機有側欄聯絡卡，浮動鈕收起；手機只留 WhatsApp，避免同一意圖三個入口 */
@media (min-width: 1025px) {
  :is(.single-post, .blog, .category, .author) .sh-float { display: none; }
}
@media (max-width: 767px) {
  :is(.single-post, .blog, .category, .author) .sh-float__btn--tel { display: none; }
}
@media (min-width: 1200px) {
  .sh-float { align-items: stretch; }  /* 兩顆膠囊同寬（跟較長那顆），不要上長下短（2026-10-19 使用者） */
  .sh-float__btn { width: auto; height: auto; padding: .7rem 1.2rem .7rem 1rem; }
  .sh-float__btn--wa .sh-icon { width: 1.4rem; height: 1.4rem; }
  .sh-float__label { display: inline; }
}
@media print { .sh-float, .sh-cta { display: none; } }

/* ---------- Theme Builder 頁首 ---------- */
[data-elementor-type="header"] { position: sticky; top: 0; z-index: 9980; }
.admin-bar [data-elementor-type="header"] { top: 32px; }
@media (max-width: 782px) { .admin-bar [data-elementor-type="header"] { top: 46px; } }
/* 桌機選單：label 角色 14/500（中文字面比拉丁字大，15 看起來偏大）；間距交給 gap，padding 對所有狀態鎖死，
   蓋過 Elementor `a:hover/:focus/.highlighted { padding:13px 20px }`（hover 時整排跳動的元兇） */
[data-elementor-type="header"] .elementor-nav-menu--main > .elementor-nav-menu { gap: 24px; }
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-nav-menu a.elementor-item {
  color: var(--sh-text);
  font-family: var(--sh-font);
  font-size: var(--sh-fs-small);
  font-weight: 500;
  line-height: var(--sh-lh-ui);
  padding: 8px 0;
  box-shadow: none;
  transition: color .15s;
}
/* 目前頁：只換深藍，不畫線；hover／展開中：只有文字寬的 2px 底線（同一時間最多一條線） */
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-nav-menu a.elementor-item.elementor-item-active { color: var(--sh-navy); }
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-nav-menu a.elementor-item:hover,
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-nav-menu a.elementor-item.highlighted {
  color: var(--sh-navy);
  text-decoration: underline 2px var(--sh-navy);
  text-underline-offset: 8px;
}
/* 下拉箭頭：10px 線框 chevron（取代 Font Awesome 實心三角），跟文字距 4px，展開轉 180° */
[data-elementor-type="header"] .elementor-nav-menu--main .sub-arrow { padding: 0 0 0 4px; margin-block: 0; }
[data-elementor-type="header"] .elementor-nav-menu--main .sub-arrow svg { display: none; }
[data-elementor-type="header"] .elementor-nav-menu--main .sub-arrow::after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 4 6 8l4.5-4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 4 6 8l4.5-4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .15s;
}
[data-elementor-type="header"] .elementor-nav-menu--main a.highlighted .sub-arrow::after { transform: rotate(180deg); }
[data-elementor-type="header"] .elementor-nav-menu,
[data-elementor-type="header"] .elementor-nav-menu li { line-height: var(--sh-lh-ui); }
/* 桌機下拉：細框小面板 */
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu {
  background: #fff;
  border: 1px solid var(--sh-border);
  box-shadow: 0 12px 28px -16px rgba(7, 16, 31, .28);
  border-radius: var(--sh-radius-card);
  padding: 6px;
  min-width: 200px !important;
}
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu a.elementor-sub-item {
  color: var(--sh-text);
  font-size: var(--sh-fs-small);
  font-weight: 400;
  line-height: var(--sh-lh-ui);
  padding: 9px 12px;
  border-radius: var(--sh-radius-ctl);
  border: 0;
}
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu a.elementor-sub-item:hover,
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu a.elementor-sub-item.elementor-item-active { background: var(--sh-surface); color: var(--sh-navy); }
[data-elementor-type="header"] .elementor-widget-nav-menu { align-self: center; flex: 1 1 auto; min-width: 0; gap: 0; }
/* 平板、手機：logo｜WhatsApp｜漢堡選單（選單鈕靠最右） */
@media (max-width: 1024px) {
  [data-elementor-type="header"] .elementor-widget-nav-menu { order: 3; flex: 0 0 auto; }
  [data-elementor-type="header"] .elementor-menu-toggle { margin-left: 0; }
  [data-elementor-type="header"] .e-button-base { margin-left: auto; }
}
[data-elementor-type="header"] .elementor-menu-toggle { color: var(--sh-text); background: transparent; font-size: 24px; width: var(--sh-ctl-hit); height: var(--sh-ctl-hit); padding: 10px; box-sizing: border-box; border-radius: var(--sh-radius-ctl); margin-left: auto; }
[data-elementor-type="header"] .elementor-menu-toggle svg { fill: var(--sh-text); }
/* 手機下拉：外層面板規則只套 nav，不套內層 ul（之前面板裡又疊一張卡）；子項壓過 Elementor 的 .85em（之前 11px） */
[data-elementor-type="header"] nav.elementor-nav-menu--dropdown { background: #fff; box-shadow: var(--sh-shadow); border-top: 1px solid var(--sh-border); }
[data-elementor-type="header"] nav.elementor-nav-menu--dropdown .sub-menu { box-shadow: none; border-top: 0; }
[data-elementor-type="header"] nav.elementor-nav-menu--dropdown .elementor-sub-item { font-size: var(--sh-fs-ui); font-weight: 400; padding: 10px 20px 10px 36px; }
/* 手機：展開中的父項不要 Elementor 預設深灰底；箭頭同桌機用細線 chevron */
[data-elementor-type="header"] nav.elementor-nav-menu--dropdown a.highlighted,
[data-elementor-type="header"] nav.elementor-nav-menu--dropdown a:focus { background: var(--sh-surface); color: var(--sh-navy); }
[data-elementor-type="header"] nav.elementor-nav-menu--dropdown .sub-arrow svg { display: none; }
[data-elementor-type="header"] nav.elementor-nav-menu--dropdown .sub-arrow::after {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 4 6 8l4.5-4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 4 6 8l4.5-4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .15s;
}
[data-elementor-type="header"] nav.elementor-nav-menu--dropdown a.highlighted .sub-arrow::after { transform: rotate(180deg); }
/* 手機／平板選單：Elementor 的「滿版下拉」在 V4 flexbox 裡算錯位置（會偏移並撐出橫向捲動），改成固定貼在頁首正下方 */
@media (max-width: 1024px) {
  [data-elementor-type="header"] nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    position: fixed;
    top: 72px !important;
    margin-top: 0;
    left: 0 !important;
    right: 0;
    width: 100% !important;
    max-height: calc(100vh - 72px);
    overflow-y: auto;
  }
}
@media (max-width: 767px) {
  [data-elementor-type="header"] nav.elementor-nav-menu--dropdown.elementor-nav-menu__container { top: 60px !important; max-height: calc(100vh - 60px); }
}
/* 登入時有 WP 管理列（32px；≤782px 時 46px），選單要再往下 */
@media (max-width: 1024px) {
  .admin-bar [data-elementor-type="header"] nav.elementor-nav-menu--dropdown.elementor-nav-menu__container { top: 104px !important; }
}
@media (max-width: 782px) {
  .admin-bar [data-elementor-type="header"] nav.elementor-nav-menu--dropdown.elementor-nav-menu__container { top: 106px !important; }
}
@media (max-width: 767px) {
  .admin-bar [data-elementor-type="header"] nav.elementor-nav-menu--dropdown.elementor-nav-menu__container { top: 106px !important; }
}
[data-elementor-type="header"] .elementor-nav-menu--dropdown a { color: var(--sh-text); font-size: var(--sh-fs-ui); font-weight: 500; line-height: var(--sh-lh-ui); padding: 12px 20px; }
[data-elementor-type="header"] .elementor-nav-menu--dropdown a:hover,
[data-elementor-type="header"] .elementor-nav-menu--dropdown a.elementor-item-active { background: var(--sh-surface); color: var(--sh-navy); }

/* ---------- 文章頁、列表頁、分類頁的抬頭區（<header>）：麵包屑 ---------- */
:is([data-elementor-type="single-post"], [data-elementor-type="archive"]) header .e-paragraph-base a { color: inherit; text-decoration: none; }
:is([data-elementor-type="single-post"], [data-elementor-type="archive"]) header .e-paragraph-base a:hover { color: var(--sh-navy); text-decoration: underline; text-decoration-color: var(--sh-yellow); text-decoration-thickness: 2px; text-underline-offset: 4px; }

/* ---------- 分頁（[setuphk_pagination]，放在模板的 <nav> 裡） ---------- */
[data-elementor-type="archive"] nav .e-paragraph-base {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  cursor: default;
}
[data-elementor-type="archive"] nav .e-paragraph-base :is(a, span) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: var(--sh-ctl-hit);
  height: var(--sh-ctl-hit);
  padding: 0 14px;
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius-ctl);
  color: var(--sh-navy);
  font-size: var(--sh-fs-ui);
  font-weight: 500;
  line-height: var(--sh-lh-ctl);
  text-decoration: none;
}
[data-elementor-type="archive"] nav .e-paragraph-base a:hover { border-color: var(--sh-navy); }
[data-elementor-type="archive"] nav .e-paragraph-base span { background: var(--sh-navy); border-color: var(--sh-navy); color: #fff; }

/* ---------- 相關文章（[setuphk_related]，放在文章頁模板的 <aside> 裡） ---------- */
[data-elementor-type="single-post"] aside:not(.sh-cta) ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
[data-elementor-type="single-post"] aside:not(.sh-cta) ul > li { border-top: 1px solid var(--sh-border); }
[data-elementor-type="single-post"] aside:not(.sh-cta) ul > li:last-child { border-bottom: 1px solid var(--sh-border); }
[data-elementor-type="single-post"] aside:not(.sh-cta) ul a {
  display: block;
  padding: 10px 0;
  color: var(--sh-text);
  font-size: var(--sh-fs-ui);
  font-weight: 400;
  line-height: var(--sh-lh-ui);
  text-decoration: none;
}
[data-elementor-type="single-post"] aside:not(.sh-cta) ul a:hover { color: var(--sh-navy); text-decoration: underline; text-decoration-color: var(--sh-yellow); text-decoration-thickness: 2px; text-underline-offset: 4px; }

/* ---------- 頁尾連結 ---------- */
[data-elementor-type="footer"] a { color: inherit; text-decoration: none; }
[data-elementor-type="footer"] a:hover { color: var(--sh-navy); text-decoration: underline; text-decoration-color: var(--sh-yellow); text-decoration-thickness: 2px; text-underline-offset: 4px; }

/* ---------- 列表頁、分類頁側欄：分類清單（[setuphk_categories]） ---------- */
[data-elementor-type="archive"] aside ul { list-style: none; margin: 0; padding: 0; }
[data-elementor-type="archive"] aside li + li { border-top: 1px solid var(--sh-border); }
[data-elementor-type="archive"] aside ul a {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 4px;
  color: var(--sh-text);
  text-decoration: none;
  font-size: var(--sh-fs-ui);
  line-height: var(--sh-lh-ui);
}
[data-elementor-type="archive"] aside ul a span { color: var(--sh-muted); font-variant-numeric: tabular-nums; }
[data-elementor-type="archive"] aside ul a:hover { color: var(--sh-navy); }
[data-elementor-type="archive"] aside ul strong a { color: var(--sh-navy); font-weight: 500; background: var(--sh-surface); border-radius: var(--sh-radius-ctl); padding-left: 12px; padding-right: 12px; }

/* ---------- 側欄聯絡卡內的電話連結 ---------- */
:is([data-elementor-type="single-post"], [data-elementor-type="archive"]) aside .e-paragraph-base a[href^="tel:"] { color: var(--sh-navy); font-weight: 500; text-decoration: none; }
:is([data-elementor-type="single-post"], [data-elementor-type="archive"]) aside .e-paragraph-base a[href^="tel:"]:hover { text-decoration: underline; text-decoration-color: var(--sh-yellow); text-decoration-thickness: 2px; text-underline-offset: 4px; }

/* ---------- 列表卡片：標題、摘要最多 3 行，卡片高度一致 ---------- */
[data-elementor-type="archive"] [data-element_type="e-collection-loop-item"] :is(h2, p.e-paragraph-base:last-child) {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}



/* ---------- 抬頭區（深藍）：麵包屑連結、資訊列、列表頁斜向光帶 ---------- */
:is([data-elementor-type="single-post"], [data-elementor-type="archive"]) header.e-div-block-base .e-paragraph-base a { color: inherit; }
:is([data-elementor-type="single-post"], [data-elementor-type="archive"]) header.e-div-block-base .e-paragraph-base a:hover { color: #fff; text-decoration: underline; text-decoration-color: var(--sh-yellow); }
/* 文章頁摘要最多 2 行 */
[data-elementor-type="single-post"] header.e-div-block-base h1 + .e-paragraph-base {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* 列表、分類頁：右側一道寬的淡白光帶＋一道細的品牌黃線條 */
[data-elementor-type="archive"] header.e-div-block-base::before,
[data-elementor-type="archive"] header.e-div-block-base::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: auto; /* Elementor 容器的 ::before 預設 left:0，要蓋掉 */
  height: auto;
  pointer-events: none;
  z-index: 1;
}
[data-elementor-type="archive"] header.e-div-block-base::after {
  right: -8%;
  width: 44%;
  background: linear-gradient(115deg, rgba(255, 255, 255, .03) 0%, rgba(255, 255, 255, .13) 100%);
  clip-path: polygon(46% 0, 100% 0, 100% 100%, 0 100%);
}
[data-elementor-type="archive"] header.e-div-block-base::before {
  right: 27%;
  width: 22%;
  background: linear-gradient(180deg, rgba(255, 200, 0, .95), rgba(255, 200, 0, .55));
  clip-path: polygon(calc(100% - 6px) 0, 100% 0, 6px 100%, 0 100%);
}
@media (max-width: 1024px) {
  [data-elementor-type="archive"] header.e-div-block-base::before { right: 8%; width: 34%; }
}
@media (max-width: 767px) {
  [data-elementor-type="archive"] header.e-div-block-base::before { display: none; }
  [data-elementor-type="archive"] header.e-div-block-base::after { width: 70%; right: -20%; }
}

/* 頁首選單：一律單行；1025–1280px 收緊項目間距（6 個主項目＋英文切換塞得下） */
[data-elementor-type="header"] .elementor-nav-menu--main > .elementor-nav-menu { flex-wrap: nowrap; }
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-item { white-space: nowrap; }
/* 1025–1280px（筆電）：Elementor 只有平板／手機兩個斷點，這段在 CSS 補一個筆電斷點。
   全站外距一起 72→40（頁首、抬頭、內文、頁尾仍對齊同一條線），logo 縮小、選單字 14px、英文切換只留國旗。 */
@media (min-width: 1025px) and (max-width: 1280px) {
  [data-elementor-type="header"] > .e-con,
  :is([data-elementor-type="single-post"], [data-elementor-type="archive"]) > .e-con,
  [data-elementor-type="footer"] > .e-con { padding-left: 40px !important; padding-right: 40px !important; }
  [data-elementor-type="header"] > .e-con > .e-con { gap: 16px !important; }
  [data-elementor-type="header"] > .e-con > .e-con img.e-image-base:not(.trp-flag-image) { width: 148px !important; }
  /* 頁尾 logo 跟頁首同尺寸（2026-10-14 使用者：以頁首為主） */
  [data-elementor-type="footer"] img.e-image-base { width: 148px !important; }
  [data-elementor-type="header"] .elementor-nav-menu--main > .elementor-nav-menu { gap: 18px; }
  /* 只留國旗，但保留可存取名稱（之前 display:none，螢幕閱讀器只念「連結」） */
  [data-elementor-type="header"] .elementor-nav-menu--main .trp-ls-language-name { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
[data-elementor-type="header"] .trp-flag-image { margin-right: 6px; vertical-align: -2px; }

/* 頁首 CTA：深藍實心（sh-btn-navy）＋16px WhatsApp 圖示，文字「預約諮詢」——黃底黑字讀起來像促銷，不像會計公司 */
[data-elementor-type="header"] .e-button-base { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
[data-elementor-type="header"] .e-button-base::before {
  content: "";
  width: 16px;
  height: 16px;
  flex: none;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 00-8.6 15.1L2 22l5-1.3A10 10 0 1012 2zm0 18.2a8.2 8.2 0 01-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1112 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 01-3.3-2.9c-.3-.4.3-.4.7-1.3a.5.5 0 000-.5l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 00-.7.3 3 3 0 00-.9 2.2 5.2 5.2 0 001.1 2.7 11.8 11.8 0 004.5 4c1.7.7 2.3.8 3.2.6a2.7 2.7 0 001.7-1.2 2.2 2.2 0 00.2-1.2c-.1-.1-.3-.2-.5-.3z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 00-8.6 15.1L2 22l5-1.3A10 10 0 1012 2zm0 18.2a8.2 8.2 0 01-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1112 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 01-3.3-2.9c-.3-.4.3-.4.7-1.3a.5.5 0 000-.5l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 00-.7.3 3 3 0 00-.9 2.2 5.2 5.2 0 001.1 2.7 11.8 11.8 0 004.5 4c1.7.7 2.3.8 3.2.6a2.7 2.7 0 001.7-1.2 2.2 2.2 0 00.2-1.2c-.1-.1-.3-.2-.5-.3z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 作者（E-E-A-T）：抬頭署名、文末作者框、作者頁抬頭 ---------- */
/* 抬頭署名（摘要下方，參考 SEJ；2026-10-05 critique 後定案）：40px 圓形相片＋名字（白 15/500）＋職稱（14、72% 白）。
   側欄不放作者卡：sticky 右欄會超高把聯絡卡切掉，而且一頁同一張臉三次。 */
[data-elementor-type="single-post"] header.e-div-block-base .e-div-block-base:has(> img) .e-paragraph-base a { display: block; color: #fff; font-weight: 500; text-decoration: none; }
[data-elementor-type="single-post"] header.e-div-block-base .e-div-block-base:has(> img) .e-paragraph-base span { display: block; color: rgba(255, 255, 255, .72); font-size: var(--sh-fs-small); font-weight: 400; line-height: var(--sh-lh-small); }
/* 作者沒有完整資料（相片＋簡介）就收起抬頭署名 */
body:not(.sh-has-author) [data-elementor-type="single-post"] header .e-div-block-base:has(> img) { display: none; }
/* 作者頁抬頭：外部檔案連結（LinkedIn）要看得出是連結 */
[data-elementor-type="archive"] header.e-div-block-base .e-paragraph-base a[target="_blank"] { color: #fff; font-weight: 500; text-decoration: underline; text-decoration-color: var(--sh-yellow); text-decoration-thickness: 2px; text-underline-offset: 4px; }
/* 文末作者框：白底細框卡，圓形相片 72（手機 56）；字全部框架層，名字 500 不用 700 */
.sh-author {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  margin: 2.5rem 0 1.5rem;
  padding: var(--sh-pad-card);
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius-card);
  background: #fff;
}
/* 要壓過內文 img 的 6px 圓角與 height:auto */
.single-post .elementor-widget-theme-post-content .sh-author .sh-author__photo { flex: none; width: 72px; height: 72px; border-radius: 50%; object-fit: cover; }
.sh-author__body { flex: 1 1 auto; min-width: 0; }
.single-post .elementor-widget-theme-post-content .sh-author p { margin: 0; }
.single-post .elementor-widget-theme-post-content .sh-author .sh-author__label { color: var(--sh-muted); font-size: var(--sh-fs-small); font-weight: 500; line-height: var(--sh-lh-small); }
.single-post .elementor-widget-theme-post-content .sh-author .sh-author__name { margin-top: 2px; font-size: var(--sh-fs-ui); font-weight: 500; line-height: var(--sh-lh-ui); }
.single-post .elementor-widget-theme-post-content .sh-author .sh-author__name a { color: var(--sh-text); text-decoration: none; }
.single-post .elementor-widget-theme-post-content .sh-author .sh-author__title { color: var(--sh-muted); font-size: var(--sh-fs-small); line-height: var(--sh-lh-small); }
.single-post .elementor-widget-theme-post-content .sh-author .sh-author__bio { margin-top: 8px; color: var(--sh-text); font-size: var(--sh-fs-ui); line-height: 1.7; }
.single-post .elementor-widget-theme-post-content .sh-author .sh-author__links { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 8px; font-size: var(--sh-fs-small); line-height: var(--sh-lh-small); }
.single-post .elementor-widget-theme-post-content .sh-author .sh-author__links a { color: var(--sh-navy); font-weight: 500; }
/* 手機：相片＋名字職稱一列，簡介與連結改整寬（之前被擠成 223px 窄欄） */
@media (max-width: 767px) {
  .sh-author { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 0 14px; align-items: center; }
  .single-post .elementor-widget-theme-post-content .sh-author .sh-author__bio { margin-top: 12px; }
  .sh-author__body { display: contents; }
  .single-post .elementor-widget-theme-post-content .sh-author .sh-author__photo { width: 56px; height: 56px; grid-row: 1 / span 3; }
  .sh-author :is(.sh-author__label, .sh-author__name, .sh-author__title) { grid-column: 2; }
  .sh-author :is(.sh-author__bio, .sh-author__links) { grid-column: 1 / -1; }
}

/* ---------- 首頁（頁面 19）：v3 樣式在 assets/home.css（to_elementor.py 產生） ---------- */
/* 2026-10-17 使用者：首頁右下的電話、WhatsApp 浮動鈕不見了——頁首已拿掉電話，首頁浮動鈕改為和內頁一樣顯示（原本桌機整組收起、手機只留 WhatsApp） */

/* 公司取名攻略（文章 8115）敏感字表：英文頁第二欄「英文對應」和第一欄譯文重複，只在英文頁隱藏（2026-10-18，docs/translation/zh-source-fixes-2026-10-18.md 第三節） */
html[lang^="en"] body.postid-8115 .wp-block-table th:nth-child(2),
html[lang^="en"] body.postid-8115 .wp-block-table td:nth-child(2){display:none}

/* 英文頁手機版：按中文字數設定的「不換行」遇到英文會撐寬整頁（2026-10-19 使用者：英文版手機很多頁嚴重破版）。
   ①頁首「Book a consultation」把選單鍵擠出畫面（全部英文頁）→ 2026-10-19 英文改寫時字典直接改成「Enquire」，不再靠 CSS 換字
   ②首頁主視覺 H1 不換行，字級公式按約 10 個中文字算 → 英文改換行、固定 display 字級
   ③主視覺與文章 CTA 長英文按鈕（如 WhatsApp us to enquire about business licence applications）不換行 → 改可換行、高度隨字 */
@media (max-width: 767px) {
  html[lang^="en"] .elementor .hm-hero h1.e-heading-base { white-space: normal; font-size: var(--sh-fs-display); line-height: 1.25; }
  html[lang^="en"] :is(.hm-btn, .sh-cta .sh-cta__btn) { white-space: normal; height: auto; min-height: var(--sh-btn-h-lg-m); padding-top: 12px; padding-bottom: 12px; line-height: 1.3; text-align: center; }
}

/* 公司銀行開戶文章（8047）的銀行牆：2026-10-18 由首頁搬來（首頁拿掉開戶段），淺色版配合文章頁 */
.sh-banks { margin: 2.5em 0; }
.sh-banks h3 { margin-top: 1.6em; font-size: 15px; font-weight: 700; letter-spacing: .08em; color: var(--sh-navy, #0E204A); }
.sh-banks ul { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 16px; }
.sh-banks__dg { grid-template-columns: repeat(4, 1fr); }
.sh-banks__lg { position: relative; aspect-ratio: 16 / 10; border: 1px solid var(--sh-line, #E3E7EE); border-radius: var(--sh-r-card, 14px); background: #fff; display: grid; place-items: center; overflow: hidden; }
.sh-banks__lg img { display: block; max-width: 62%; max-height: 60%; }
.sh-banks__lg--cover img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; }
.sh-banks figure { margin: 0; }
.sh-banks figcaption { font-style: normal; text-align: left; margin-top: 10px; font-size: 14px; line-height: 1.6; color: var(--sh-subtle, #5A6478); }
.sh-banks figcaption b { display: block; color: var(--sh-ink, #0F1A2E); font-size: 15px; }
.sh-banks__tb { grid-template-columns: repeat(8, 1fr); gap: 10px; }
.sh-banks__tb li { aspect-ratio: 5 / 4; border: 1px solid var(--sh-line, #E3E7EE); border-radius: var(--sh-r-btn, 10px); overflow: hidden; background: #fff; }
.sh-banks__tb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sh-banks__note { margin-top: 16px; font-size: 13px; line-height: 1.7; color: var(--sh-subtle, #5A6478); }
@media (max-width: 760px) {
  .sh-banks__dg { grid-template-columns: repeat(2, 1fr); }
  .sh-banks__tb { grid-template-columns: repeat(4, 1fr); }
}
