/* ============================================================
   site.css — site-no8(哈吉設計)版型層
   佈景契約 v1 可調層;皮膚=nx-skin--blueprint(C v2.3 藍圖)
   規則:平台樣式只掛 nx-* 鉤子(fe-structure-naming v0.9);
   「舊結構橋接」段例外=對固定層 header/footer 的視覺對位,
   以 .nx-skin--blueprint 作用域化,不動固定層 HTML。
   ============================================================ */

/* ── ⭐根字級校正:母版 bootstrap.min.css 設 html{font-size:10px}(62.5% 技巧),
      但 C v2.3 mockup 是以瀏覽器預設 16px 根設計、tokens/site 的 rem 值全照 mockup 抄。
      不校正 → 每個 rem 只剩 62.5%(h1 52px→32.5px、全頁又小又擠)。site.css 為最後載入,
      此處 reset 回 16px 讓 rem 還原 mockup 尺寸。母版 header/footer 為 px 基準不受影響。 */
html { font-size: 16px; }

/* ── 皮膚底:藍圖格線世界 ── */
body.nx-skin--blueprint {
	font-family: var(--f-sans);
	line-height: 1.7;   /* mockup 基準行高(母版預設 1.43 太擠) */
	background:
		linear-gradient(var(--c-gridline) 1px, transparent 1px),
		linear-gradient(90deg, var(--c-gridline) 1px, transparent 1px);
	background-size: var(--grid-size) var(--grid-size);
	background-color: var(--c-bg);
	color: var(--c-ink);
}
body.nx-skin--blueprint :focus-visible { outline: 3px solid var(--c-accent); outline-offset: 2px; }

/* ── 巧思層(nx-fx.js 動態注入;canvas 墊底、內容在上)── */
.nx-fx-canvas { position: fixed; inset: 0; z-index: 1; pointer-events: none; }
.nx-fx-coords {
	position: fixed; right: .9rem; bottom: .9rem; z-index: 40;
	font-family: var(--f-mono); font-size: .68rem; letter-spacing: .08em;
	color: var(--c-text-soft); background: rgba(255, 255, 255, .9);
	border: 1px solid var(--c-line2); padding: .25rem .55rem; pointer-events: none;
}
.nx-fx-coords b { color: var(--c-accent-ink); }
.nx-fx-toggle {
	position: fixed; left: .9rem; bottom: .9rem; z-index: 40;
	font: inherit; font-size: .74rem; padding: .2rem .65rem; border-radius: 999px;
	border: 1px solid var(--c-line2); background: rgba(255, 255, 255, .92);
	color: var(--c-text-soft); cursor: pointer;
}
.nx-fx-toggle[aria-pressed="true"] { background: var(--c-accent); border-color: var(--c-accent); color: #fff; font-weight: 700; }
body.nx-fx-off .nx-fx-canvas, body.nx-fx-off .nx-fx-coords { display: none; }
body.nx-skin--blueprint #wrapper { position: relative; z-index: 2; }
@media (max-width: 780px) { .nx-fx-coords { display: none; } }

/* ── 進場顯示:觸發沿用既有機制(fe-animations.js 加 .is-visible),
      樣式在此補齊(inner 頁未載 main-hero.css 也有動畫);reduced-motion=直接顯示 ── */
body.nx-skin--blueprint .reveal-up { opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease; }
body.nx-skin--blueprint .reveal-up.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	body.nx-skin--blueprint .reveal-up { opacity: 1; transform: none; transition: none; }
}
/* ⭐ 無 JS 退路(2026-08-15 補,N5):上面那條 opacity:0 靠 IntersectionObserver 加 .is-visible 才解除,
   **JS 沒跑 = 內容永久隱形**(無腳本環境實測:/about 18 個區塊可見 0 個)。
   ⚠️ 為什麼一定要補在**這一支**而不是只補 main-hero.css:
     本站各頁 body 硬寫 `nx-skin--blueprint`,上面那條的具體度是 (0,2,1) 且本檔後載;
     **媒體查詢不增加具體度** → main-hero.css 裡的 `.reveal-up`(0,1,0)包幾層 @media 都蓋不掉它。
     所以這裡必須用**同樣 scoped 的選擇器**才贏得了自己上面那條。
   有 JS 時本區塊不生效,進場動畫行為完全不變(scripting:none 只在瀏覽器停用 JS 時為真);
   舊瀏覽器不認得此查詢會整段略過 → 行為與補之前相同,不會更糟。 */
@media (scripting: none) {
	body.nx-skin--blueprint .reveal-up { opacity: 1; transform: none; transition: none; }
}

/* ── 通用單元 ── */
/* section 一律透明:讓 body 藍圖格線透出(招牌視覺);白色只出現在卡片/面板。
   母版 main.css 給 section 上了不透明白底會遮格線,此處 reset(佈景可調層)。 */
.nx-sec { position: relative; background: transparent; padding: 0; }  /* padding:0 = reset 母版 section{padding:120px} 洩漏;各區段 padding 由節奏規則控 */
/* ⚠️reset 職責邊界(2026-07-12 業主抓 UI 修正):上行 reset 曾誤殺 inner-banner 的母版 padding
   (120px 0 56px=80px fixed header 補償+40px 呼吸,inner-pages.css:18 註解載明)→ 全內頁
   標題帶被 fixed header 壓線。此處恢復母版值(banner 藍圖化樣式在下方橋接段)。 */
body.nx-skin--blueprint .inner-banner.nx-sec { padding: 120px 0 56px; }
@media (max-width: 767px) {
	body.nx-skin--blueprint .inner-banner.nx-sec { padding: 88px 0 36px; }
}

/* ── ⭐內頁垂直節奏(2026-07-13 業主截圖批:題1「各頁有高有低」+題3「間距過小」)──
   量測:banner→首段內距各頁 0/15/23/38/49/63/116/139px 亂跳——自訂頁 .nx-sec 被 reset 為 0、
   模組頁 inner-pages.css 只有 15px,節奏規則先前僅首頁有(.nx-page--home .nx-sec)。
   統一節奏單位=4.2rem(67px,與首頁同值):banner→首區 4.2rem、
   區與區 2.1+2.1=4.2rem、末區→footer 2.1(區)+2.1(footer margin)=4.2rem。
   作用域=.inner-content-section(自訂頁+模組頁皆掛;首頁區段無此類故零影響)。 */
body.nx-skin--blueprint .inner-content-section { padding: 2.1rem 0; }
body.nx-skin--blueprint .inner-banner + .inner-content-section { padding-top: 4.2rem; }
body.nx-skin--blueprint:not(.nx-page--home) .nx-c-footer--nap3 { margin-top: 2.1rem; }
@media (max-width: 767px) {
	body.nx-skin--blueprint .inner-content-section { padding: 1.4rem 0; }
	body.nx-skin--blueprint .inner-banner + .inner-content-section { padding-top: 2.6rem; }
	body.nx-skin--blueprint:not(.nx-page--home) .nx-c-footer--nap3 { margin-top: 1.4rem; }
}

/* 題2「文字段落應該 100%」(業主截圖裁示):lead/導言段撤 44em 上限改滿容器寬;
   1060px 有效寬約 66 中文字/行,字級 1rem→1.05rem 補可讀性(判斷處,業主過眼可退) */
.nx-c-lead { color: var(--c-text-soft); font-size: 1.05rem; line-height: 2.05; max-width: none; }
.nx-c-note { color: var(--c-text-soft); font-size: .88rem; }
.nx-c-heading { font-size: 1.4rem; font-weight: 900; letter-spacing: .02em; margin: 2.2rem 0 .8rem; }
.nx-c-heading::before { content: "■ "; color: var(--c-accent); font-size: .75em; vertical-align: .12em; }

/* 清單容器 */
.nx-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(255px, 1fr)); gap: 1.25rem; margin: 1.6rem 0; }
/* 四卡清單:auto-fit 在 1100 容器落 3 欄→4 卡成 3+1 孤兒列,改 2×2 對稱
   (260712_04 單元2 about 能力卡+單元3 solutions 服務卡;皆只在該頁使用) */
@media (min-width: 768px) {
	.nx-list--ability,
	.nx-list--services { grid-template-columns: repeat(2, 1fr); }
}

/* ── 卡片(藍圖規格卡:十字角標+hover 抬升)── */
.nx-c-card {
	position: relative; display: block; background: var(--c-card);
	border: 1.5px solid var(--c-line2); border-radius: var(--radius);
	padding: 1.5rem 1.4rem 1.35rem; color: var(--c-ink); text-decoration: none;
	transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.nx-c-card::before, .nx-c-card::after {
	content: ""; position: absolute; width: 13px; height: 13px; opacity: 0; transition: opacity .16s ease;
}
.nx-c-card::before { top: -7px; left: -7px; border-right: 1.5px solid var(--c-accent); border-bottom: 1.5px solid var(--c-accent); }
.nx-c-card::after { bottom: -7px; right: -7px; border-left: 1.5px solid var(--c-accent); border-top: 1.5px solid var(--c-accent); }
.nx-c-card:hover { transform: translateY(-4px); border-color: var(--c-ink); box-shadow: var(--shadow-card-sm); color: var(--c-ink); text-decoration: none; }
.nx-c-card:hover::before, .nx-c-card:hover::after { opacity: 1; }
.nx-c-card__code { font-family: var(--f-mono); color: var(--c-accent-ink); font-size: .76rem; letter-spacing: .04em; display: block; }
.nx-c-card__title { display: block; font-size: 1.02rem; margin: .5rem 0; font-weight: 800; line-height: 1.6; }
.nx-c-card__desc { color: var(--c-text-soft); font-size: .86rem; line-height: 1.95; margin: 0 0 .35rem; }
.nx-c-card__more { color: var(--c-accent-ink); font-weight: 700; font-size: .84rem; }
.nx-c-card__price { font-size: 1.5rem; font-weight: 900; margin: .4rem 0 .6rem; font-variant-numeric: tabular-nums; }
.nx-c-card__price small { font-size: .8rem; font-weight: 700; color: var(--c-text-soft); }
/* 歪斜註記(hover 才現身的人味) */
.nx-c-card__note {
	position: absolute; top: -.85rem; right: .8rem; background: var(--c-ink); color: #ffe9df;
	font-size: .68rem; padding: .18rem .55rem; transform: rotate(-1.5deg);
	opacity: 0; transition: opacity .18s ease; pointer-events: none;
}
.nx-c-card:hover .nx-c-card__note { opacity: 1; }

/* ── 按鈕 ── */
.nx-c-btn { display: inline-block; text-decoration: none; font-weight: 800; transition: transform .12s ease, background .12s ease, box-shadow .12s ease; }
.nx-c-btn--primary { background: var(--c-accent); color: #fff; padding: .78rem 1.55rem; border: 2px solid var(--c-accent); }
.nx-c-btn--primary:hover { background: var(--c-accent-ink); border-color: var(--c-accent-ink); color: #fff; transform: translate(-1px, -1px); text-decoration: none; }
.nx-c-btn--outline { border: var(--border-ink); color: var(--c-ink); padding: .68rem 1.2rem; background: var(--c-card); font-weight: 700; }
.nx-c-btn--outline:hover { box-shadow: 4px 4px 0 rgba(29, 39, 51, .15); color: var(--c-ink); text-decoration: none; }
.nx-sec--cta { display: flex; gap: .9rem; flex-wrap: wrap; margin-top: 2.2rem; }

/* ── chip(產業帶)── */
.nx-c-chip {
	font-size: .84rem; color: var(--c-text-soft); border: 1.5px solid var(--c-line2);
	padding: .28rem .8rem; border-radius: 999px; background: var(--c-bg); transition: all .15s ease;
}
.nx-c-chip:hover { color: var(--c-accent-ink); border-color: var(--c-accent); transform: translateY(-2px); }

/* ── 公司規格表(signature 面板)── */
.nx-c-fact { background: var(--c-card); border: var(--border-ink); box-shadow: var(--shadow-card); }
.nx-c-fact__head {
	font-size: .74rem; letter-spacing: .3em; padding: .85rem 1.2rem;
	border-bottom: var(--border-ink); color: var(--c-accent-ink); font-weight: 700;
	display: flex; justify-content: space-between; align-items: center;
}
.nx-c-fact__head span:last-child { letter-spacing: .05em; color: var(--c-text-soft); font-weight: 400; }
.nx-c-fact dl { display: grid; grid-template-columns: auto 1fr; font-size: .92rem; margin: 0; }
.nx-c-fact dt { padding: .72rem 1.2rem; color: var(--c-text-soft); border-bottom: 1px solid var(--c-line); white-space: nowrap; font-weight: 400; }
.nx-c-fact dd { padding: .72rem 1.2rem; border-bottom: 1px solid var(--c-line); font-weight: 700; font-variant-numeric: tabular-nums; margin: 0; }
.nx-c-fact__wink { display: contents; }
.nx-c-fact .nx-c-fact__wink dt, .nx-c-fact .nx-c-fact__wink dd { border-bottom: 0; color: var(--c-text-soft); font-weight: 400; font-size: .8rem; }

/* ── 顧問人格區(人味)── */
.nx-c-voice { background: var(--c-card); border: var(--border-ink); box-shadow: var(--shadow-card); padding: 2.4rem 2.2rem; }
.nx-c-voice__say { font-size: 1.28rem; font-weight: 900; line-height: 1.9; max-width: 26em; text-wrap: balance; }
.nx-c-voice__say em { font-style: normal; color: var(--c-accent-ink); }
.nx-c-voice p { color: var(--c-text-soft); margin-top: 1.1rem; line-height: 2.05; }
.nx-c-faqmini { margin-top: 1.8rem; display: grid; gap: .6rem; }
.nx-c-faqmini a {
	display: flex; gap: .8rem; align-items: baseline; text-decoration: none;
	font-size: .92rem; color: var(--c-text-soft); padding: .55rem .2rem; border-bottom: 1px dashed var(--c-line2);
}
.nx-c-faqmini a b { color: var(--c-ink); }
.nx-c-faqmini a span:last-child { margin-left: auto; color: var(--c-accent); font-weight: 700; opacity: 0; transition: opacity .15s ease; }
.nx-c-faqmini a:hover span:last-child { opacity: 1; }

/* ── 評價 ── */
.nx-c-quote { border-left: 3px solid var(--c-accent); padding: .5rem 1rem .5rem 1.2rem; max-width: 36em; margin: 0; }
.nx-c-quote p { font-size: 0.9rem; line-height: 2.05; font-weight: 500; }
.nx-c-quote footer { color: var(--c-text-soft); margin-top: .9rem; font-size: .86rem; letter-spacing: .06em; }

/* ── 事實/流程清單 ── */
.nx-c-factlist { color: var(--c-text-soft); line-height: 2.1; padding-left: 1.4em; }
.nx-c-steps { color: var(--c-text-soft); line-height: 2.3; padding-left: 1.6em; }
/* 母版 master.css `ul li{color:#888}` 直接命中 li,壓過上行的繼承色 → 白底對比僅 3.5:1(未達 AA 4.5:1)。
   還原為元件宣告色(#5c6b7a=5.9:1)。2026-07-20 pricing 面板 UI 檢討時實測發現。 */
.nx-c-factlist li, .nx-c-steps li { color: inherit; }
.nx-c-steps strong { color: var(--c-ink); }

/* ── 首頁 section 垂直節奏(fe-naming v1.0 §六 併正:
      nx-sec--home → .nx-page--home 作用域;nx-sec--tight → nx-lay-tight)── */
.nx-page--home .nx-sec { padding: 4.2rem 0; }              /* = mockup section */
.nx-page--home .nx-sec--fields { padding: 0; }             /* 產業帶:高度由列自身 padding 控 */
.nx-page--home .nx-sec.nx-lay-tight { padding-top: .5rem; } /* = mockup 連續段 padding-top:.5rem */

/* ── 首頁 hero(fe-naming v1.0 §六 併正:nx-sec--hero-home 樣式併入 .nx-page--home .nx-sec--hero)──
   ⭐fixed header 補償(2026-07-12 業主抓 UI 修正):mockup 的 header 是 sticky(佔文流),
   hero 4.8rem=header 底線以下淨空;母版 header 是 fixed(浮在內容上,桌機 80px/手機 62px)
   → padding-top 必須加上 header 高度,否則 eyebrow 壓在 header 底線(實測 -3px)。 */
.nx-page--home .nx-sec--hero { padding: calc(80px + 4.8rem) 0 4.2rem; }  /* 淨空 76.8px = mockup .hero */
@media (max-width: 991px) {
	.nx-page--home .nx-sec--hero { padding-top: calc(62px + 3rem); }  /* 手機 header 62px+呼吸 3rem */
}
.nx-page--home .nx-sec--hero .nx-hero-grid { display: grid; grid-template-columns: 1.25fr .9fr; gap: 3rem; align-items: start; }
.nx-c-eyebrow { font-size: .72rem; letter-spacing: .34em; color: var(--c-accent-ink); font-weight: 700; margin-bottom: 1.1rem; font-family: var(--f-mono); }
.nx-page--home .nx-sec--hero h1 { font-size: clamp(2rem, 4.8vw, 3.25rem); line-height: 1.32; font-weight: 900; letter-spacing: .01em; text-wrap: balance; }
.nx-page--home .nx-sec--hero h1 u {
	text-decoration: none;
	background: linear-gradient(var(--c-accent), var(--c-accent)) left bottom / 0% 6px no-repeat;
	animation: nx-draw 1s .35s ease forwards;
}
@keyframes nx-draw { to { background-size: 100% 6px; } }
@media (prefers-reduced-motion: reduce) { .nx-page--home .nx-sec--hero h1 u { background-size: 100% 6px; animation: none; } }
.nx-page--home .nx-sec--hero .nx-hero-lead { color: var(--c-text-soft); margin-top: 1.5rem; max-width: 31em; font-size: 1rem; line-height: 2.05; }

/* 首頁 section 標題 */
.nx-sec__title { font-size: 1.4rem; font-weight: 900; margin-bottom: .45rem; letter-spacing: .02em; }
.nx-sec__title::before { content: "■ "; color: var(--c-accent); font-size: .75em; vertical-align: .12em; }
.nx-sec__sub { color: var(--c-text-soft); margin-bottom: 2.1rem; }
/* 題2 同步:內頁 sub 與 .nx-c-lead 一致撤 44em 上限;首頁不動(首頁=業主已驗收基準,
   要不要跟進 100% 列判斷處給業主裁) */
body.nx-skin--blueprint:not(.nx-page--home) .nx-sec__sub { max-width: none; }

/* 產業帶 */
.nx-sec--fields { background: var(--c-card); border-top: var(--border-ink); border-bottom: var(--border-ink); }
.nx-sec--fields .nx-fields-row { display: flex; gap: .6rem 1rem; flex-wrap: wrap; align-items: center; padding: 1.05rem 0; }
.nx-sec--fields .nx-fields-k { font-size: .72rem; letter-spacing: .26em; color: var(--c-accent-ink); font-weight: 700; margin-right: .6rem; }

/* 安靜服務格(輔線) */
.nx-list--svcquiet { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1px; background: var(--c-line2); border: 1.5px solid var(--c-line2); margin: 1.6rem 0; }
.nx-list--svcquiet > div { background: var(--c-card); padding: 1.5rem 1.35rem; }
.nx-list--svcquiet h3 { font-size: .97rem; margin-bottom: .5rem; font-weight: 800; }
.nx-list--svcquiet p { color: var(--c-text-soft); font-size: .85rem; line-height: 1.9; margin: 0; }

/* 解法流程格(nx-sec--process 主敘事:同 svcquiet 語彙+mono 步驟碼=藍圖工序感) */
.nx-list--process { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1px; background: var(--c-line2); border: 1.5px solid var(--c-line2); margin: 1.6rem 0; }
.nx-list--process > div { background: var(--c-card); padding: 1.5rem 1.35rem; }
.nx-process-code { font-family: var(--f-mono); color: var(--c-accent-ink); font-size: .72rem; letter-spacing: .18em; font-weight: 700; display: block; }
.nx-list--process h3 { font-size: .97rem; margin: .5rem 0; font-weight: 800; }
.nx-list--process p { color: var(--c-text-soft); font-size: .85rem; line-height: 1.9; margin: 0; }

/* 費用表 */
.nx-tbl-scroll { overflow-x: auto; }
.nx-c-table { width: 100%; border-collapse: collapse; background: var(--c-card); border: var(--border-ink); font-size: .92rem; min-width: 560px; }
.nx-c-table th, .nx-c-table td { padding: .9rem 1.1rem; border-bottom: 1px solid var(--c-line); text-align: left; }
.nx-c-table th { font-size: .76rem; letter-spacing: .16em; color: var(--c-text-soft); border-bottom: var(--border-ink); }
.nx-c-table tbody tr { transition: background .12s ease; }
.nx-c-table tbody tr:hover { background: #fff6f1; }
.nx-c-table td .nx-acc { color: var(--c-accent-ink); font-weight: 800; }

/* ── 聯絡頁:資訊 + 地圖雙欄 ── */
.nx-contact-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 2.2rem; align-items: start; margin: 1.4rem 0; }
.nx-contact-col { min-width: 0; }
.nx-c-fact dd a.nx-c-card__more { font-size: .92rem; }
.nx-map-wrap { border: var(--border-ink); background: var(--c-card); box-shadow: var(--shadow-card); line-height: 0; }
.nx-map-iframe { display: block; width: 100%; border: 0; }
.nx-map-wrap--empty { padding: 2.4rem 1.4rem; line-height: 1.6; text-align: center; }

@media (max-width: 780px) {
	.nx-page--home .nx-sec--hero .nx-hero-grid { grid-template-columns: 1fr; }
	.nx-contact-grid { grid-template-columns: 1fr; gap: 1.6rem; }
}

/* ── 容器寬度對位 mockup .wrap(max-width:1100px;2026-07-12 首頁視覺批)──
      bootstrap .container 在 lg 為固定 width:1170px;mockup 內容收在 1100px。
      width:100% 化+max-width 收斂,gutter 照 mockup 1.25rem。
      ⚠️header container-fluid 不收窄:母版 float 版頭在 1100px 會斷行溢出(2026-07-12 實測),
      header 寬度=業主待釐清項(260711_01 §一-3),留視覺批與業主收斂。 */
body.nx-skin--blueprint .container { width: 100%; max-width: 1100px; padding-left: 1.25rem; padding-right: 1.25rem; }

/* ── 舊結構橋接(固定層 header 的藍圖視覺對位;只動 CSS 不動 HTML)──
      公証母版 logo=上小下大(master.css 28px 藍),哈吉=上大下小(mockup);
      需覆蓋 base/.on(捲動)/transparent 三態,故比照 master.css 選擇器並以 body 作用域拉高權重 */
body.nx-skin--blueprint nav.navbar.bootsnav { background: var(--c-card); border-bottom: var(--border-ink); box-shadow: none; }
body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.navbar-transparent,
body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.no-background,
body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.on { background: var(--c-card); }
body.nx-skin--blueprint .itemXHeaderCpyPreName,
body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.on .itemXHeaderCpyPreName,
body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.navbar-transparent .itemXHeaderCpyPreName,
body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.no-background .itemXHeaderCpyPreName {
	font-size: 25px; font-weight: 900; letter-spacing: .05em; color: var(--c-ink); line-height: 1.3;
}
body.nx-skin--blueprint .itemXHeaderCpyLastName,
body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.on .itemXHeaderCpyLastName,
body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.navbar-transparent .itemXHeaderCpyLastName,
body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.no-background .itemXHeaderCpyLastName {
	font-size: 12px; font-weight: 700; letter-spacing: .28em; color: var(--c-accent); line-height: 1.4;
}
body.nx-skin--blueprint .logo-notary-inner:hover .itemXHeaderCpyLastName { color: var(--c-accent-ink); }
/* 題2(2026-07-15 業主回饋):手機品牌原 base 蓋成 10px 中文/18px 英文=階層倒置且中文過小。
   改單列「哈吉設計 | No8 DESIGN」:中文為主(16px 墨)、英文為輔(10.5px 橘)、中間細分隔線。
   選擇器比照上方桌機三態,加 @media 覆寫 base 手機規則。 */
@media (max-width: 767px) {
	body.nx-skin--blueprint .logo-notary-text {
		flex-direction: row; align-items: baseline; gap: 0; flex-wrap: nowrap;
	}
	/* base master.css 手機規則用 !important(PreName 17/10px、LastName 18px)→ 需同以 !important + 高特異性覆寫 */
	body.nx-skin--blueprint .itemXHeaderCpyPreName,
	body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.on .itemXHeaderCpyPreName,
	body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.on:not(.navbar-transparent) .itemXHeaderCpyPreName,
	body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.navbar-transparent .itemXHeaderCpyPreName,
	body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.no-background .itemXHeaderCpyPreName {
		font-size: 16px !important; line-height: 1.2 !important; letter-spacing: .04em !important;
	}
	body.nx-skin--blueprint .itemXHeaderCpyLastName,
	body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.on .itemXHeaderCpyLastName,
	body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.on:not(.navbar-transparent) .itemXHeaderCpyLastName,
	body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.navbar-transparent .itemXHeaderCpyLastName,
	body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.no-background .itemXHeaderCpyLastName {
		font-size: 10.5px !important; line-height: 1.2 !important; letter-spacing: .14em !important;
		margin-left: .5rem; padding-left: .5rem; border-left: 1px solid var(--c-line2);
	}
}
/* 主選單連結:藍圖世界一律深字(母版透明態為白字,底改淺後會看不見) */
body.nx-skin--blueprint nav.navbar.bootsnav ul.nav > li > a,
body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.navbar-transparent ul.nav > li > a,
body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.on ul.nav > li > a {
	color: var(--c-text-soft); font-weight: 500;
}
body.nx-skin--blueprint nav.navbar.bootsnav ul.nav > li > a:hover,
body.nx-skin--blueprint nav.navbar.bootsnav ul.nav > li.active > a { color: var(--c-ink); }
/* main.css 以 !important 給 hover/focus/active 公証藍(#2B4590),藍圖皮需同權重覆寫
   (260712_04 單元1;active 標示由 nx-fx.js ⑥ 補) */
body.nx-skin--blueprint #navbar-menu ul.nav > li > a:hover,
body.nx-skin--blueprint #navbar-menu ul.nav > li > a:focus,
body.nx-skin--blueprint #navbar-menu ul.nav > li.active > a,
body.nx-skin--blueprint #navbar-menu ul.nav > li.open > a { color: var(--c-ink) !important; }
body.nx-skin--blueprint nav.navbar.bootsnav ul.nav ul.dropdown-menu > li > a { color: var(--c-text-soft); }
body.nx-skin--blueprint nav.navbar.bootsnav ul.nav ul.dropdown-menu > li > a:hover { color: var(--c-accent-ink); }
/* 題1(2026-07-15 業主回饋):產品方案下拉 10 項單欄過長、平鋪無層次。
   桌機改雙欄 mega-menu(CSS columns,相容 bootsnav 顯隱、不動結構)+ 精修 hover。 */
@media (min-width: 992px) {
	body.nx-skin--blueprint nav.navbar.bootsnav ul.nav > li.dropdown > ul.dropdown-menu {
		min-width: 456px; column-count: 2; column-gap: 0;
		column-rule: 1px solid rgba(255, 255, 255, .08);
		padding: .5rem 0; border-top: 2px solid var(--c-accent);
	}
	body.nx-skin--blueprint nav.navbar.bootsnav ul.nav > li.dropdown > ul.dropdown-menu > li {
		break-inside: avoid;
	}
	body.nx-skin--blueprint nav.navbar.bootsnav ul.nav > li.dropdown > ul.dropdown-menu > li > a {
		padding: 10px 20px; border-left: 2px solid transparent;
		transition: background .14s ease, border-color .14s ease, padding .14s ease, color .14s ease;
	}
	body.nx-skin--blueprint nav.navbar.bootsnav ul.nav > li.dropdown > ul.dropdown-menu > li > a:hover {
		background: rgba(255, 88, 33, .10); border-left-color: var(--c-accent);
		color: #fff; padding-left: 24px;
	}
}
/* header CTA 鈕(mockup C v2.3 .cta「索取評估」;掛 navbaritem nbi_aClass=nx-nav-cta) */
body.nx-skin--blueprint nav.navbar.bootsnav ul.nav > li > a.nx-nav-cta,
body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.on ul.nav > li > a.nx-nav-cta,
body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.navbar-transparent ul.nav > li > a.nx-nav-cta {
	border: 2px solid var(--c-ink); color: var(--c-ink); background: var(--c-card);
	font-weight: 800; padding: .42rem 1.05rem; margin: 22px 0 0 .6rem;
	transition: all .15s ease;
}
body.nx-skin--blueprint nav.navbar.bootsnav ul.nav > li > a.nx-nav-cta:hover {
	background: var(--c-accent); border-color: var(--c-accent); color: #fff;
	transform: translateY(-1px); box-shadow: 0 4px 12px rgba(255, 88, 33, .28);
}
/* 題2(2026-07-15 業主回饋):選單項 a::after 是 hover/active 的 2px 橘金底線(bottom:14px),
   對 80px 高的一般連結=文字下方底線;但 CTA 是 37px 矮框線鈕 → 底線落在文字中間=「刪除線」觀感。
   CTA 關掉 ::after(框線鈕不需底線指示);hover 回饋改用既有橘底填充 + 微上浮(上方 :hover 規則)。 */
body.nx-skin--blueprint nav.navbar.bootsnav ul.nav > li > a.nx-nav-cta::after { display: none; }
/* 題1(2026-07-15 業主回饋):CTA 頁頂偏高。實測 header 兩態=頁頂 .on+.navbar-transparent(80px)、
   捲動收窄 .on 無 transparent(60px)。11px 是 60px 態的置中值,但原選擇器只 key 在 .on →
   頁頂 80px 態誤吃 11px 致 CTA 中心 30 vs 選單 40,高 10px。改 key 為 .on:not(.navbar-transparent):
   頁頂維持基底 22px(80px 置中)、收窄態才 11px(60px 置中)。沿用既有正確值,不加新魔術數字。
   media 守衛:≤991 手機選單態 margin:0(下方規則),.on 不得蓋掉。 */
@media (min-width: 992px) {
	body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.on:not(.navbar-transparent) ul.nav > li > a.nx-nav-cta { margin-top: 11px; }
}
@media (max-width: 991px) {
	/* 手機收合選單:CTA 回一般選單項(margin:0)。三選擇器對齊基底 transparent/on 規則的
	   特異性(否則 margin:22px 洩到手機選單,索取評估 上方多一段孤兒間距)。 */
	body.nx-skin--blueprint nav.navbar.bootsnav ul.nav > li > a.nx-nav-cta,
	body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.navbar-transparent ul.nav > li > a.nx-nav-cta,
	body.nx-skin--blueprint nav.navbar.bootsnav.navbar-fixed.on ul.nav > li > a.nx-nav-cta { border: 0; margin: 0; padding: 10px 15px; background: transparent; font-weight: 700; }
}

/* ============================================================
   模組頁(docs/news/faq 家族)nx 皮膚橋接
   _core 功能模組經 _skinSetting 帶入本皮;此段把 inner-pages.css 的
   公証藍(#2B4590/#0077B6)視覺覆寫為藍圖語言。作用域 body.nx-skin--blueprint
   (0,2,0)勝單類公証規則(0,1,0),不需 !important。
   ============================================================ */

/* 導言 */
body.nx-skin--blueprint .docs-intro { background: var(--c-card); border: var(--border-ink); border-left: 4px solid var(--c-accent); border-radius: var(--radius); padding: 1.3rem 1.5rem; }
body.nx-skin--blueprint .docs-intro p { color: var(--c-text-soft); line-height: 2.05; margin: 0; }

/* 文章卡(列表) */
body.nx-skin--blueprint .article-card { background: var(--c-card); border: 1.5px solid var(--c-line2); border-radius: var(--radius); box-shadow: none; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
body.nx-skin--blueprint .article-card:hover { transform: translateY(-4px); border-color: var(--c-ink); box-shadow: var(--shadow-card-sm); }
body.nx-skin--blueprint .article-card-category { color: var(--c-accent-ink); background: transparent; border: 1px solid var(--c-line2); }
body.nx-skin--blueprint .article-card-category:hover { color: #fff; background: var(--c-accent); border-color: var(--c-accent); }
body.nx-skin--blueprint .article-card-title, body.nx-skin--blueprint .article-card-title a { color: var(--c-ink); }
body.nx-skin--blueprint .article-card:hover .article-card-title, body.nx-skin--blueprint .article-card:hover .article-card-title a { color: var(--c-accent-ink); }
body.nx-skin--blueprint .article-read-more { color: var(--c-accent-ink); }

/* 分頁 */
body.nx-skin--blueprint .inner-pagination .page-btn { border: 1.5px solid var(--c-line2); color: var(--c-text-soft); background: var(--c-card); border-radius: 0; }
body.nx-skin--blueprint .inner-pagination .page-btn:hover, body.nx-skin--blueprint .inner-pagination .page-btn.active { background: var(--c-accent); border-color: var(--c-accent); color: #fff; }

/* 側欄 widget */
body.nx-skin--blueprint .sidebar-widget { background: var(--c-card); border: 1.5px solid var(--c-line2); border-radius: var(--radius); box-shadow: none; }
body.nx-skin--blueprint .sidebar-widget-title { color: var(--c-ink); border-bottom: var(--border-ink); }
body.nx-skin--blueprint .sidebar-cat-list a, body.nx-skin--blueprint .sidebar-recent-info a { color: var(--c-text-soft); }
body.nx-skin--blueprint .sidebar-cat-list a:hover, body.nx-skin--blueprint .sidebar-cat-list a.active { color: var(--c-accent-ink); }
body.nx-skin--blueprint .sidebar-cat-count { background: var(--c-bg); color: var(--c-text-soft); border: 1px solid var(--c-line2); }
body.nx-skin--blueprint .sidebar-tag { color: var(--c-text-soft); border: 1px solid var(--c-line2); background: var(--c-bg); }
body.nx-skin--blueprint .sidebar-tag:hover, body.nx-skin--blueprint .sidebar-tag.active { color: var(--c-accent-ink); border-color: var(--c-accent); }
body.nx-skin--blueprint .sidebar-search-btn { background: var(--c-accent); border-color: var(--c-accent); }
body.nx-skin--blueprint .sidebar-search-input:focus { border-color: var(--c-accent); }

/* 空狀態 */
body.nx-skin--blueprint .news-empty { color: var(--c-text-soft); }

/* 文章明細 */
body.nx-skin--blueprint .news-article-title { color: var(--c-ink); }
body.nx-skin--blueprint .news-article-category { color: var(--c-accent-ink); background: transparent; border: 1px solid var(--c-line2); }
body.nx-skin--blueprint .news-article-category:hover { color: #fff; background: var(--c-accent); border-color: var(--c-accent); }
body.nx-skin--blueprint .news-article-summary { border-left: 3px solid var(--c-accent); background: var(--c-card); }
body.nx-skin--blueprint .news-article-body { color: var(--c-ink); }
/* 文章內文回錨點字階:母版 inner-pages 15px/24px 偏小,長文閱讀對齊全站 16px 制(260712_04 單元6) */
body.nx-skin--blueprint .news-article-body p,
body.nx-skin--blueprint .news-article-body li { font-size: 1rem; line-height: 1.85; }
body.nx-skin--blueprint .news-article-body h2, body.nx-skin--blueprint .news-article-body h3 { color: var(--c-ink); }
/* 內文標題階層校正(2026-07-13 逐頁批):root 16px 校正後母版 h2 rem 被放大成 50px/300,
   比文章主標 26px/700 還大=層級倒置;回藍圖字階(主標 26 > h2 21.6 > h3 18.4 > 內文 16) */
body.nx-skin--blueprint .news-article-body h2 { font-size: 1.35rem; line-height: 1.7; font-weight: 800; margin: 2.4rem 0 .9rem; }
body.nx-skin--blueprint .news-article-body h3 { font-size: 1.15rem; line-height: 1.7; font-weight: 800; margin: 1.8rem 0 .7rem; }
body.nx-skin--blueprint .news-article-body h2::before { content: "■ "; color: var(--c-accent); font-size: .72em; vertical-align: .12em; }
body.nx-skin--blueprint .news-article-body a { color: var(--c-accent-ink); }
body.nx-skin--blueprint .news-article-body blockquote { border-left: 3px solid var(--c-accent); background: var(--c-card); color: var(--c-ink); }
body.nx-skin--blueprint .news-article-tag { color: var(--c-text-soft); border: 1px solid var(--c-line2); background: var(--c-bg); }
body.nx-skin--blueprint .news-article-tag:hover { color: var(--c-accent-ink); border-color: var(--c-accent); }
body.nx-skin--blueprint .news-nav-title { color: var(--c-ink); }
body.nx-skin--blueprint .news-nav-title:hover { color: var(--c-accent-ink); }

/* 明細 CTA(svc-cta-section 公証金 → 藍圖墨底) */
body.nx-skin--blueprint .svc-cta-section { background: var(--c-ink); }
body.nx-skin--blueprint .svc-cta-section::before, body.nx-skin--blueprint .svc-cta-section::after { display: none; }
body.nx-skin--blueprint .svc-cta-title, body.nx-skin--blueprint .svc-cta-label, body.nx-skin--blueprint .svc-cta-desc { color: #fff; }
body.nx-skin--blueprint .btn-svc-cta-primary { background: var(--c-accent); color: #fff; border: 2px solid var(--c-accent); }
body.nx-skin--blueprint .btn-svc-cta-primary:hover { background: var(--c-accent-ink); border-color: var(--c-accent-ink); }
body.nx-skin--blueprint .btn-svc-cta-outline { border: 2px solid rgba(255, 255, 255, .55); color: #fff; background: transparent; }
body.nx-skin--blueprint .btn-svc-cta-outline:hover { background: rgba(255, 255, 255, .12); }

/* faq 手風琴 + 導言 + quicklinks */
body.nx-skin--blueprint .faq-intro-section .faq-intro-wrap { background: var(--c-card); border: var(--border-ink); border-left: 4px solid var(--c-accent); border-radius: var(--radius); }
body.nx-skin--blueprint .faq-intro-icon { color: var(--c-accent-ink); background: rgba(214, 60, 7, .08); }
body.nx-skin--blueprint .faq-intro-title { color: var(--c-ink); }
body.nx-skin--blueprint .faq-group-title { color: var(--c-ink); }
body.nx-skin--blueprint .faq-group-title svg { color: var(--c-accent); }
body.nx-skin--blueprint .faq-item { background: var(--c-card); border: 1.5px solid var(--c-line2); border-radius: var(--radius); }
body.nx-skin--blueprint .faq-item.is-open { border-color: var(--c-ink); }
body.nx-skin--blueprint .faq-q-num,
body.nx-skin--blueprint .faq-item.is-open .faq-q-num { color: var(--c-accent-ink); font-family: var(--f-mono); background: transparent; }
body.nx-skin--blueprint .faq-q-text { color: var(--c-ink); }
body.nx-skin--blueprint .faq-question:hover .faq-q-text { color: var(--c-accent-ink); }
body.nx-skin--blueprint .faq-item.is-open .faq-q-arrow { color: var(--c-accent); }
body.nx-skin--blueprint .faq-answer-inner { color: var(--c-text-soft); }
body.nx-skin--blueprint .faq-answer-inner a { color: var(--c-accent-ink); }
body.nx-skin--blueprint .faq-quicklink-title { color: var(--c-ink); }
/* 相關連結標題對齊全站標題語言:左對齊+■(2026-07-13 逐頁批;原母版置中) */
body.nx-skin--blueprint .faq-quicklink-section .faq-quicklink-title { text-align: left; }
body.nx-skin--blueprint .faq-quicklink-section .faq-quicklink-title::before { content: "■ "; color: var(--c-accent); font-size: .75em; vertical-align: .12em; }
body.nx-skin--blueprint .faq-quicklink-card { background: var(--c-card); border: 1.5px solid var(--c-line2); border-radius: var(--radius); }
body.nx-skin--blueprint .faq-quicklink-card:hover { border-color: var(--c-ink); box-shadow: var(--shadow-card-sm); transform: translateY(-4px); }
body.nx-skin--blueprint .faq-quicklink-icon { color: var(--c-accent-ink); background: rgba(214, 60, 7, .08); }
body.nx-skin--blueprint .faq-quicklink-en { color: var(--c-accent-ink); font-family: var(--f-mono); }
body.nx-skin--blueprint .faq-quicklink-zh { color: var(--c-ink); }
body.nx-skin--blueprint .faq-quicklink-arrow { color: var(--c-accent); }

/* 相關連結頁(links)nx 橋接:req-intro 導言框 + links 清單,公証藍/金 → 藍圖墨/焦土 */
body.nx-skin--blueprint .req-intro-wrap { background: var(--c-card); border: var(--border-ink); border-left: 4px solid var(--c-accent); border-radius: var(--radius); box-shadow: none; }
body.nx-skin--blueprint .req-intro-icon { color: var(--c-accent); }
body.nx-skin--blueprint .req-intro-body p, body.nx-skin--blueprint .req-intro-note { color: var(--c-text-soft); }
body.nx-skin--blueprint .links-group-title { color: var(--c-ink); border-bottom: 1px solid var(--c-line2); }
body.nx-skin--blueprint .links-group-icon { color: var(--c-accent); }
body.nx-skin--blueprint .links-group-count { background: var(--c-bg); color: var(--c-text-soft); border: 1px solid var(--c-line2); }
body.nx-skin--blueprint .links-item { border-bottom: 1px dashed var(--c-line2); }
body.nx-skin--blueprint .links-anchor { color: var(--c-ink); }
body.nx-skin--blueprint .links-anchor:hover { background: rgba(214, 60, 7, .05); }
body.nx-skin--blueprint .links-anchor-name { color: var(--c-ink); }
body.nx-skin--blueprint .links-anchor:hover .links-anchor-name { color: var(--c-accent-ink); }
body.nx-skin--blueprint .links-anchor-host { color: var(--c-text-soft); font-family: var(--f-mono); }
body.nx-skin--blueprint .links-anchor-external { color: var(--c-text-soft); }

/* 檔案下載頁(filedownload)nx 橋接:公証藍/金/青 → 藍圖墨/焦土(ext-badge 檔型語意色保留)*/
body.nx-skin--blueprint .filedownload-group-title { color: var(--c-ink); border-bottom: 1px solid var(--c-line2); }
body.nx-skin--blueprint .filedownload-group-icon { color: var(--c-accent); }
body.nx-skin--blueprint .filedownload-group-count { background: var(--c-bg); color: var(--c-text-soft); border: 1px solid var(--c-line2); }
body.nx-skin--blueprint .filedownload-item { border-bottom: 1px dashed var(--c-line2); }
body.nx-skin--blueprint .filedownload-item:hover { background: rgba(214, 60, 7, .05); }
body.nx-skin--blueprint .filedownload-item-name { color: var(--c-ink); }
body.nx-skin--blueprint .btn-filedownload { background: var(--c-accent); color: #fff; }
body.nx-skin--blueprint .btn-filedownload:hover { background: var(--c-accent-ink); color: #fff; }
body.nx-skin--blueprint .filedownload-cta-block { background: var(--c-card); border: var(--border-ink); border-radius: var(--radius); }
body.nx-skin--blueprint .filedownload-cta-text { color: var(--c-text-soft); }
body.nx-skin--blueprint .btn-filedownload-cta { background: var(--c-accent); color: #fff; }
body.nx-skin--blueprint .btn-filedownload-cta:hover { background: var(--c-accent-ink); color: #fff; }

/* 內頁按鈕 */
body.nx-skin--blueprint .btn-inner-outline { border: var(--border-ink); color: var(--c-ink); background: var(--c-card); }
body.nx-skin--blueprint .btn-inner-outline:hover { box-shadow: 4px 4px 0 rgba(29, 39, 51, .15); color: var(--c-ink); }
body.nx-skin--blueprint .btn-inner-primary { background: var(--c-accent); border-color: var(--c-accent); color: #fff; }
body.nx-skin--blueprint .btn-inner-primary:hover { background: var(--c-accent-ink); border-color: var(--c-accent-ink); }

/* 內頁 banner:公証藍漸層 → 藍圖淺色(卡面+墨線) */
body.nx-skin--blueprint .inner-banner { background: var(--c-card); border-bottom: var(--border-ink); }
body.nx-skin--blueprint .inner-banner::before, body.nx-skin--blueprint .inner-banner::after { display: none; }
body.nx-skin--blueprint .inner-banner-label { color: var(--c-accent-ink); font-family: var(--f-mono); letter-spacing: .34em; font-weight: 700; }
body.nx-skin--blueprint .inner-banner-title { color: var(--c-ink); }
body.nx-skin--blueprint .inner-breadcrumb, body.nx-skin--blueprint .inner-breadcrumb a,
body.nx-skin--blueprint .inner-breadcrumb ol li { color: var(--c-text-soft); }
body.nx-skin--blueprint .inner-breadcrumb a:hover { color: var(--c-accent-ink); }

/* ── footer 變體 nap3(租戶框架機制 · _core/__frame/footer--nap3.php)──
   mockup C v2.1 .foot 對位:卡面底+墨線頂框、三欄 flex、輔文字色 */

/* footer 文流化(2026-07-12 首頁視覺批):mockup .foot=正常文流;母版 #footer-fixed 為
   fixed-reveal 設計,前提=內容區不透明遮擋——藍圖皮 section 透明(招牌格線)後頁尾會在
   頁中透出(products 區鬼影實證)。藍圖皮下改回文流,母版 JS 的 .footer-height 墊位歸零。 */
@media only screen and (min-width: 992px) {
	body.nx-skin--blueprint #footer-fixed { position: static; }
}
body.nx-skin--blueprint .footer-height { height: 0 !important; }
body.nx-skin--blueprint .nx-c-footer--nap3 {
	position: relative; z-index: 2;
	background: var(--c-card); border-top: var(--border-ink);
	padding: 2.6rem 0 3rem; font-size: .88rem;
	color: var(--c-text-soft); line-height: 2.05;
}
body.nx-skin--blueprint .nx-c-footer--nap3 .nx-c-footer__inner {
	max-width: 1100px; margin: 0 auto; padding: 0 1.25rem;
	display: flex; gap: 2.5rem; flex-wrap: wrap; justify-content: space-between;
}
body.nx-skin--blueprint .nx-c-footer--nap3 .nx-c-footer__brand { color: var(--c-ink); font-weight: 800; }
body.nx-skin--blueprint .nx-c-footer--nap3 a { color: var(--c-text-soft); text-decoration: none; }
body.nx-skin--blueprint .nx-c-footer--nap3 a:hover { color: var(--c-accent-ink); }
body.nx-skin--blueprint .nx-c-footer--nap3 .nx-list--footer-links {
	display: flex; flex-wrap: wrap; gap: .1rem 1.1rem;
	list-style: none; margin: 0; padding: 0; max-width: 22em;
}
body.nx-skin--blueprint .nx-c-footer--nap3 .nx-list--footer-social {
	display: flex; gap: .9rem; list-style: none; margin: .5rem 0 0; padding: 0;
}
body.nx-skin--blueprint .nx-c-footer--nap3 .nx-list--footer-social a { font-size: 1.05rem; }
body.nx-skin--blueprint .nx-c-footer--nap3 .nx-c-footer__col--meta { text-align: left; }
/* 法律列(2026-08-15 N3):隱私權政策 / 網站服務條款的全站入口(個資法告知義務)。
   meta 欄是直排,法律列自己是一條橫排;連結色沿用上方 `.nx-c-footer--nap3 a`。
   藍圖皮的次要資訊語言=底線僅在 hover 出現,與其他頁尾連結一致。 */
body.nx-skin--blueprint .nx-c-footer--nap3 .nx-c-footer__legal {
	display: flex; flex-wrap: wrap; align-items: center; margin-bottom: .15rem;
}
body.nx-skin--blueprint .nx-c-footer--nap3 .nx-c-footer__legal-sep { padding: 0 .25rem; opacity: .5; }
body.nx-skin--blueprint .nx-c-footer--nap3 .nx-c-footer__legal a:hover { text-decoration: underline; }
@media (max-width: 780px) {
	body.nx-skin--blueprint .nx-c-footer--nap3 .nx-c-footer__inner { flex-direction: column; gap: 1.6rem; }
}

/* ============================================================
   全站框架件一致性批(260712_04 逐頁盤點 · 單元1 header/footer)
   ============================================================ */
@media (max-width: 991px) {
	/* 手機開啟選單:master.css 半透明 0.93 造成頁面內容 ghost 穿透選單文字
	   → 藍圖皮改實面(同 header 白);master 該條帶 !important 故此處亦需 */
	body.nx-skin--blueprint #navbar-menu.navbar-collapse {
		background-color: var(--c-card, #ffffff) !important;
	}
	/* 子選單項觸控高度 43px → ≥44px(master 同 selector 帶 !important 故此處亦需) */
	body.nx-skin--blueprint nav.navbar.bootsnav ul.nav ul.dropdown-menu > li > a {
		padding-top: 12px !important; padding-bottom: 12px !important;
	}
	/* footer 連結原行高 20px 過密,放大觸控面(次要連結,溫和放寬) */
	body.nx-skin--blueprint .nx-c-footer--nap3 .nx-list--footer-links a,
	body.nx-skin--blueprint .nx-c-footer--nap3 .nx-c-footer__legal a {
		display: inline-block; padding: 6px 0;
	}
}

/* ============================================================
   contact 最小顧問式表單(260713 視覺內容批 · C-37)
   藍圖語言:卡面+墨線+mono 標籤;輸入框 ≥44px 觸控
   ============================================================ */
body.nx-skin--blueprint .nx-form {
	background: var(--c-card);
	border: var(--border-ink);
	box-shadow: var(--shadow-card);
	padding: 2.2rem 2.2rem 2rem;
	max-width: 820px;
}
body.nx-skin--blueprint .nx-form__grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.4rem;
}
body.nx-skin--blueprint .nx-form__field { margin-bottom: 1.35rem; }
body.nx-skin--blueprint .nx-form__field label {
	display: block; margin-bottom: .45rem;
	color: var(--c-ink); font-weight: 700; font-size: .95rem;
}
body.nx-skin--blueprint .nx-form__req,
body.nx-skin--blueprint .nx-form__opt {
	font-family: var(--f-mono); font-size: .72rem; font-weight: 700;
	letter-spacing: .12em; vertical-align: .1em; margin-left: .4em;
}
body.nx-skin--blueprint .nx-form__req { color: var(--c-accent-ink); }
body.nx-skin--blueprint .nx-form__opt { color: var(--c-text-soft); }
body.nx-skin--blueprint .nx-form input[type="text"],
body.nx-skin--blueprint .nx-form textarea {
	width: 100%; min-height: 46px;
	padding: .62rem .85rem;
	border: 1.5px solid var(--c-line2); border-radius: var(--radius);
	background: var(--c-bg); color: var(--c-ink);
	font-family: var(--f-sans); font-size: 1rem; line-height: 1.6;
	transition: border-color .18s ease, box-shadow .18s ease;
}
body.nx-skin--blueprint .nx-form textarea { resize: vertical; }
body.nx-skin--blueprint .nx-form input[type="text"]:focus,
body.nx-skin--blueprint .nx-form textarea:focus {
	outline: none; border-color: var(--c-ink);
	box-shadow: 3px 3px 0 rgba(29, 39, 51, .12);
	background: var(--c-card);
}
body.nx-skin--blueprint .nx-form ::placeholder { color: #8b98a5; opacity: 1; }
body.nx-skin--blueprint .nx-form__help {
	margin: .45rem 0 0; font-size: .85rem; color: var(--c-text-soft);
}
body.nx-skin--blueprint .nx-form__actions { margin-top: .4rem; }
body.nx-skin--blueprint .nx-form__actions .nx-c-note { margin-top: .8rem; }
body.nx-skin--blueprint .nx-form__submit { min-height: 48px; cursor: pointer; }
body.nx-skin--blueprint .nx-form__submit:disabled { opacity: .55; cursor: default; }
/* honeypot:視覺移出但不 display:none(部分機器人會跳過 display:none 欄位) */
body.nx-skin--blueprint .nx-form__hp {
	position: absolute; left: -9999px; top: auto;
	width: 1px; height: 1px; overflow: hidden;
}
body.nx-skin--blueprint .nx-form__notice {
	max-width: 820px; margin: 0 0 1.4rem;
	padding: .9rem 1.1rem; font-weight: 700;
	border: 1.5px solid; border-radius: var(--radius);
}
body.nx-skin--blueprint .nx-form__notice--ok {
	color: #1c5f3a; border-color: #1c5f3a; background: #eef7f0;
}
body.nx-skin--blueprint .nx-form__notice--err {
	color: var(--c-accent-ink); border-color: var(--c-accent-ink); background: #fdf1ec;
}
@media (max-width: 780px) {
	body.nx-skin--blueprint .nx-form { padding: 1.4rem 1.1rem 1.2rem; }
	body.nx-skin--blueprint .nx-form__grid { grid-template-columns: 1fr; }
}

/* ============================================================
   contact 常見狀況勾選 modal + chips(260723_01)
   藍圖語言:方角+墨線+硬陰影;沿用 nx-form / nx-diag-opt 慣例
   ============================================================ */
/* email/tel 輸入沿用 text 樣式(原選擇器只涵蓋 text)*/
body.nx-skin--blueprint .nx-form input[type="email"],
body.nx-skin--blueprint .nx-form input[type="tel"] {
	width: 100%; min-height: 46px; padding: .62rem .85rem;
	border: 1.5px solid var(--c-line2); border-radius: var(--radius);
	background: var(--c-bg); color: var(--c-ink);
	font-family: var(--f-sans); font-size: 1rem; line-height: 1.6;
	transition: border-color .18s ease, box-shadow .18s ease;
}
body.nx-skin--blueprint .nx-form input[type="email"]:focus,
body.nx-skin--blueprint .nx-form input[type="tel"]:focus {
	outline: none; border-color: var(--c-ink);
	box-shadow: 3px 3px 0 rgba(29, 39, 51, .12); background: var(--c-card);
}
/* 送出動作列靠右 */
body.nx-skin--blueprint .nx-form__actions { display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
/* 標籤 + 勾選觸發鈕 同列 */
body.nx-skin--blueprint .nx-form__label-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-bottom: .45rem; flex-wrap: wrap; }
body.nx-skin--blueprint .nx-form__label-row label { margin-bottom: 0; }
/* 觸發鈕:無 JS 隱藏(不給死鈕),JS 就緒才顯示 */
body.nx-skin--blueprint .nx-cf-pick { display: none; padding: .4rem .9rem; font-size: .85rem; }
body.nx-skin--blueprint.nx-js .nx-cf-pick { display: inline-block; }
/* chips */
body.nx-skin--blueprint .nx-cf-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 .7rem; }
body.nx-skin--blueprint .nx-cf-chips:empty { margin: 0; }
body.nx-skin--blueprint .nx-cf-chip { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .3rem .3rem .7rem; background: #fdf1ec; border: 1.5px solid var(--c-accent-ink); color: var(--c-accent-ink); font-size: .85rem; font-weight: 700; }
body.nx-skin--blueprint .nx-cf-chip__x { border: none; background: var(--c-accent-ink); color: #fff; width: 20px; height: 20px; line-height: 1; cursor: pointer; font-size: 1rem; }
/* modal */
body.nx-skin--blueprint.nx-modal-open { overflow: hidden; }
.nx-modal[hidden] { display: none; }
.nx-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.nx-modal__overlay { position: absolute; inset: 0; background: rgba(29, 39, 51, .55); }
body.nx-skin--blueprint .nx-modal__panel { position: relative; z-index: 1; width: 100%; max-width: 560px; max-height: 88vh; overflow-y: auto; background: var(--c-card); border: var(--border-ink); box-shadow: var(--shadow-card); padding: 1.6rem 1.6rem 1.4rem; }
body.nx-skin--blueprint .nx-modal__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
body.nx-skin--blueprint .nx-modal__title { margin: 0; font-size: 1.25rem; color: var(--c-ink); }
body.nx-skin--blueprint .nx-modal__x { border: none; background: none; font-size: 1.6rem; line-height: 1; cursor: pointer; color: var(--c-text-soft); }
body.nx-skin--blueprint .nx-modal__sub { margin: .4rem 0 1.1rem; color: var(--c-text-soft); font-size: .9rem; }
body.nx-skin--blueprint .nx-cf-group { margin-bottom: 1.2rem; }
body.nx-skin--blueprint .nx-cf-group__title { font-family: var(--f-mono); font-size: .8rem; font-weight: 700; letter-spacing: .06em; color: var(--c-accent-ink); border-bottom: 1.5px solid var(--c-line); padding-bottom: .4rem; margin-bottom: .7rem; }
body.nx-skin--blueprint .nx-cf-group__opts { display: flex; flex-direction: column; gap: .5rem; }
body.nx-skin--blueprint .nx-cf-opt { display: flex; align-items: flex-start; gap: .6rem; cursor: pointer; padding: .6rem .7rem; border: 1.5px solid var(--c-line2); background: var(--c-bg); }
body.nx-skin--blueprint .nx-cf-opt:hover { border-color: var(--c-ink); }
body.nx-skin--blueprint .nx-cf-opt:has(.nx-cf-opt__box:checked) { border-color: var(--c-accent-ink); background: #fdf1ec; }
body.nx-skin--blueprint .nx-cf-opt__box { margin-top: .2rem; width: 18px; height: 18px; accent-color: var(--c-accent-ink); flex: none; }
body.nx-skin--blueprint .nx-cf-opt__text { color: var(--c-ink); font-size: .95rem; line-height: 1.5; }
body.nx-skin--blueprint .nx-modal__foot { display: flex; justify-content: flex-end; gap: .7rem; margin-top: 1.2rem; }
@media (max-width: 620px) {
	body.nx-skin--blueprint .nx-modal__panel { padding: 1.2rem 1rem 1rem; max-height: 92vh; }
	body.nx-skin--blueprint .nx-form__label-row { align-items: stretch; }
}

/* ============================================================
   首頁內容視覺條 nx-shots(260713 視覺內容批 · 策略 §9:讓圖負責說服)
   真實截圖切片:墨線框+mono 圖說;桌機 3/4 欄、手機 1/2 欄
   ============================================================ */
body.nx-skin--blueprint .nx-shots {
	display: grid; gap: 1.4rem; margin-top: 2.2rem;
}
body.nx-skin--blueprint .nx-shots--products { grid-template-columns: repeat(3, 1fr); }
body.nx-skin--blueprint .nx-shots--sites    { grid-template-columns: repeat(4, 1fr); margin-top: 1.8rem; }
body.nx-skin--blueprint .nx-shot { display: block; text-decoration: none; }
body.nx-skin--blueprint .nx-shot__frame {
	display: block; overflow: hidden;
	border: 1.5px solid var(--c-line2); background: var(--c-card);
	aspect-ratio: 16 / 10;
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
body.nx-skin--blueprint .nx-shot__frame--site { aspect-ratio: 16 / 9; }
body.nx-skin--blueprint .nx-shot__frame img {
	width: 100%; height: 100%; object-fit: cover; object-position: top;
	display: block;
}
body.nx-skin--blueprint .nx-shot:hover .nx-shot__frame {
	border-color: var(--c-ink);
	box-shadow: var(--shadow-card-sm);
	transform: translateY(-4px);
}
body.nx-skin--blueprint .nx-shot__cap {
	display: block; margin-top: .55rem;
	font-family: var(--f-mono); font-size: .78rem; letter-spacing: .04em;
	color: var(--c-text-soft); line-height: 1.5;
}
body.nx-skin--blueprint .nx-shot__cap b { color: var(--c-ink); }
body.nx-skin--blueprint .nx-shot:hover .nx-shot__cap { color: var(--c-ink); }
@media (max-width: 991px) {
	body.nx-skin--blueprint .nx-shots--products { grid-template-columns: 1fr; }
	body.nx-skin--blueprint .nx-shots--sites    { grid-template-columns: repeat(2, 1fr); }
}

/* ════════════════════════════════════════════════════════════
   關於哈吉頁 改版(棒2 落版,自 main-quickguide-mock.css About 段併入;規劃稿 260716_01 §五)
   內容:發展時間軸 / 「一條沒斷過的線」spine / 能力地圖簡版 / voice 大字 pull-quote
   ⚠️非首頁專屬 → 住 site.css(不進 main-home-v2.css)
   ════════════════════════════════════════════════════════════ */

/* ── 發展時間軸(§五 A2)—— 首頁幕3 五步 SVG 同語言:導軌 + 節點 + 下方對齊欄 ──
   節點 x=125/375/625/875(=12.5/37.5/62.5/87.5%)對齊 4 欄各欄中心
   ⚠️色值一律走 tokens var(幕3 舊例寫死 hex;新元件不沿用該壞習慣) */
body.nx-skin--blueprint .nx-timeline { margin-top: 2rem; position: relative; }
body.nx-skin--blueprint .nx-timeline__svg {
	display: block; width: 100%; height: 62px; overflow: visible;
}
body.nx-skin--blueprint .nx-timeline__rail {
	stroke: var(--c-ink); stroke-width: 1.5;
}
/* 持續中=虛線且不收口(呼應 hero「∞ 恆運轉」:故事沒有結束) */
body.nx-skin--blueprint .nx-timeline__rail--ongoing {
	stroke: var(--c-line2); stroke-dasharray: 4 4;
}
body.nx-skin--blueprint .nx-timeline__node {
	fill: var(--c-card); stroke: var(--c-ink); stroke-width: 2;
}
body.nx-skin--blueprint .nx-timeline__node--now {
	fill: var(--c-accent); stroke: var(--c-accent-ink);
}
/* ⚠️gap 必須為 0:有 gap 時欄位中心不落在 12.5/37.5/62.5/87.5%,SVG 節點會對不準
   (實測 1440 寬 gap:1.2rem → 外側節點偏移 7px)。間距改由 li 內距吃 → 欄寬=W/4,
   任何寬度都精準對齊。⚠️首頁幕3 五步 SVG 有同源偏移(舊例,live 已定版,不在本批回改範圍) */
body.nx-skin--blueprint .nx-timeline__steps {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
}
body.nx-skin--blueprint .nx-timeline__steps > li { text-align: center; padding: 0 .9rem; }
body.nx-skin--blueprint .nx-timeline__code {
	display: block; font-family: var(--f-mono); font-size: .8rem; font-weight: 700;
	letter-spacing: .08em; color: var(--c-text-soft); margin-bottom: .5rem;
}
body.nx-skin--blueprint .nx-timeline__steps h3 { font-size: 1rem; font-weight: 800; margin: 0 0 .5rem; }
body.nx-skin--blueprint .nx-timeline__steps p {
	font-size: .84rem; line-height: 1.85; color: var(--c-text-soft); margin: 0; text-wrap: pretty;
}
body.nx-skin--blueprint .nx-timeline__steps > li.is-now .nx-timeline__code { color: var(--c-accent-ink); }
body.nx-skin--blueprint .nx-timeline__steps > li.is-now h3 { color: var(--c-accent-ink); }

/* ── ⭐「一條沒斷過的線」全頁 spine(提案回件 260716_05 B案,業主裁示「依你建議」)──
   意象=2006 上線的東西今天還在跑:線縱貫內容 section 不斷,與時間軸導軌十字交會,
   頁底虛線+箭頭出口不收口。
   ── X 錨(全段共用):max(10px, calc(50% - 582px))
      582px = 半容器 550(max-width 1100/2)+ 2rem(容器外側留距);
      窄於 1164 視口收斂至左緣 10px(容器內距 20px → 與文字仍有 8px 淨距)
   ── 顯影=transform scaleY(合成層,一次性 0.9s 無常駐迴圈);
      漸進增強:預設=畫好,JS 可播才歸零再畫
   ── 橘色紀律:全線墨色;橘=TODAY 節點 + voice 左框線 + 出口箭頭,全頁僅三處
   ⚠️踩雷(260716_06 §三):body 同時帶 nx-page--about + nx-skin--blueprint,
      選擇器必須複合在 body 上(body.A.B .nx-sec);寫成後代(body.A .B .nx-sec)永不匹配 */
body.nx-skin--blueprint.nx-page--about .nx-sec.inner-content-section { position: relative; }
body.nx-skin--blueprint.nx-page--about .nx-sec.inner-content-section::before {
	content: ''; position: absolute; top: 0; bottom: 0; width: 2px;
	left: max(10px, calc(50% - 582px));
	background: var(--c-ink);
	transform: scaleY(1); transform-origin: top center;   /* 預設=畫好(無 JS 直接見全線) */
}
/* JS 判定「可播」→ 歸零待命;IO 捲入 → 逐段顯影 */
body.nx-skin--blueprint.nx-spine-ready.nx-page--about .nx-sec.inner-content-section:not(.is-drawn)::before {
	transform: scaleY(0);
}
body.nx-skin--blueprint.nx-spine-ready.nx-page--about .nx-sec.inner-content-section.is-drawn::before {
	transition: transform .9s cubic-bezier(.2, .7, .2, 1);
	transform: scaleY(1);
}

/* 時間軸接點(墨色實心=線路接點語彙,區隔里程碑白底節點;不佔橘色配額) */
body.nx-skin--blueprint .nx-timeline__joint { fill: var(--c-ink); }
/* spine → 導軌接線:自 .nx-timeline 左緣(=rail x1=0)向左跨過 spine,
   輕微過頭 8px=製圖十字語彙(同巧思閃點的 + 十字);寬度公式=容器縮放三段皆準:
   ≥1164 定值 60、1100~1164 隨容器居中收斂、≤1100 定值 18(20px 內距 − 10px spine + 8 過頭)
   top 30px=rail y35/70 × svg 高 62 − 線寬一半 */
body.nx-skin--blueprint .nx-spine-tap {
	position: absolute; right: 100%; top: 30px; height: 2px;
	width: clamp(18px, calc(50vw - 532px), 60px);
	background: var(--c-ink);
}

/* 出口:CTA 後虛線+箭頭離開頁面(不收口=還在跑);橘色時刻之三 */
body.nx-skin--blueprint .nx-spine-exit { position: relative; height: 48px; }
body.nx-skin--blueprint .nx-spine-exit svg {
	position: absolute; top: 0;
	left: calc(max(10px, 50% - 582px) - 11px);   /* svg 內線 x=12 對齊 spine 中心 */
	display: block; overflow: visible;
}
body.nx-skin--blueprint .nx-spine-exit__dash {
	stroke: var(--c-accent); stroke-width: 2; stroke-dasharray: 6 4;
}
body.nx-skin--blueprint .nx-spine-exit__arrow {
	fill: none; stroke: var(--c-accent); stroke-width: 2;
}
body.nx-skin--blueprint.nx-spine-ready .nx-spine-exit:not(.is-drawn) svg { opacity: 0; }
body.nx-skin--blueprint.nx-spine-ready .nx-spine-exit.is-drawn svg {
	transition: opacity .5s ease .25s; opacity: 1;
}

/* ── spine 降級三閘(CSS 側保險)──
   ①prefers-reduced-motion ②巧思關(body.nx-fx-off,含中途切關即時接管)③無 JS=預設即靜態 */
@media (prefers-reduced-motion: reduce) {
	body.nx-skin--blueprint.nx-page--about .nx-sec.inner-content-section::before {
		transform: scaleY(1) !important; transition: none !important;
	}
	body.nx-skin--blueprint .nx-spine-exit svg { opacity: 1 !important; transition: none !important; }
}
body.nx-skin--blueprint.nx-fx-off.nx-page--about .nx-sec.inner-content-section::before {
	transform: scaleY(1) !important; transition: none !important;
}
body.nx-skin--blueprint.nx-fx-off .nx-spine-exit svg { opacity: 1 !important; transition: none !important; }

/* ── 能力地圖簡版(§五 配圖表)—— 首頁幕4 靜態簡化,零 AI / 零 JS ── */
body.nx-skin--blueprint .nx-abmap {
	margin-top: 2.4rem; padding-top: 2rem; border-top: 1px dashed var(--c-line2);
}
body.nx-skin--blueprint .nx-abmap__cap {
	font-size: .9rem; line-height: 1.8; color: var(--c-text-soft); margin: 0 0 1.2rem;
}
body.nx-skin--blueprint .nx-abmap__svg { display: block; width: 100%; height: auto; }
body.nx-skin--blueprint .nx-abmap__core { fill: var(--c-ink); }
body.nx-skin--blueprint .nx-abmap__coretext {
	fill: var(--c-card); font-family: var(--f-sans); font-size: 15px; font-weight: 800;
}
body.nx-skin--blueprint .nx-abmap__wire { stroke: var(--c-line2); stroke-width: 1.5; }
body.nx-skin--blueprint .nx-abmap__wire--bus { stroke: var(--c-ink); }
body.nx-skin--blueprint .nx-abmap__node { fill: var(--c-accent); }
body.nx-skin--blueprint .nx-abmap__code {
	fill: var(--c-text-soft); font-family: var(--f-mono); font-size: 11px; letter-spacing: .08em;
}
body.nx-skin--blueprint .nx-abmap__name {
	fill: var(--c-ink); font-family: var(--f-sans); font-size: 16px; font-weight: 800;
}
body.nx-skin--blueprint .nx-abmap__tags {
	fill: var(--c-text-soft); font-family: var(--f-mono); font-size: 12px;
}
body.nx-skin--blueprint .nx-abmap__list { display: none; }

/* voice 大字 pull-quote:文字即視覺;橘色左框線=全頁 spine 橘色時刻之二(方角硬線,克制用色) */
body.nx-skin--blueprint .nx-c-voice__say--pull {
	font-size: clamp(1.5rem, 3.2vw, 2.2rem); line-height: 1.7; max-width: 21em;
	border-left: 6px solid var(--c-accent); padding-left: 1.15rem; margin-top: 1.3rem;
}

/* ── About 段 RWD ── */
@media (max-width: 860px) {
	/* 塌 2 欄後 SVG 導軌已隱藏 → 不需再守 gap:0 對齊,恢復 gap 取間距 */
	body.nx-skin--blueprint .nx-timeline__steps { grid-template-columns: repeat(2, 1fr); gap: 1.6rem 1.2rem; }
	/* ⚠️SVG 導軌對齊 4 欄;塌成 2 欄後對不上 → 隱藏導軌,節點資訊改由 code 承擔(降級不失真) */
	body.nx-skin--blueprint .nx-timeline__svg { display: none; }
	body.nx-skin--blueprint .nx-timeline__steps > li {
		text-align: left; border-left: 2px solid var(--c-line2); padding: .1rem 0 .1rem .9rem;
	}
	body.nx-skin--blueprint .nx-timeline__steps > li.is-now { border-left-color: var(--c-accent); }
	/* SVG 導軌已隱藏 → spine 接線一併收(交會點不存在) */
	body.nx-skin--blueprint .nx-spine-tap { display: none; }
}
@media (max-width: 767px) {
	/* 能力地圖:SVG 縮到手機字會小到不可讀 → 換等值文字清單(降級不是隱藏) */
	body.nx-skin--blueprint .nx-abmap__svg { display: none; }
	body.nx-skin--blueprint .nx-abmap__list {
		display: grid; gap: 1px; background: var(--c-line2);
		border: 1.5px solid var(--c-line2); list-style: none; margin: 0; padding: 0;
	}
	body.nx-skin--blueprint .nx-abmap__list > li {
		background: var(--c-card); padding: .9rem 1rem;
		display: flex; flex-direction: column; gap: .18rem;
	}
	body.nx-skin--blueprint .nx-abmap__licode {
		font-family: var(--f-mono); font-size: .66rem; letter-spacing: .08em; color: var(--c-text-soft);
	}
	body.nx-skin--blueprint .nx-abmap__list > li strong { font-size: .98rem; font-weight: 800; color: var(--c-ink); }
	body.nx-skin--blueprint .nx-abmap__litags {
		font-family: var(--f-mono); font-size: .72rem; line-height: 1.7; color: var(--c-text-soft);
	}
}
@media (max-width: 560px) {
	body.nx-skin--blueprint .nx-timeline__steps { grid-template-columns: 1fr; gap: 1.1rem; }
}

/* ── 服務範疇卡的「看費用與流程 →」連結(棒2;5 卡改版)──
   ⚠️`nx-c-card__more` 是**既有共用元件**(site.css:116 定基礎樣式;contact 電話/Email/地圖 ×6、
     products「了解更多」×1 都在用)→ 本段**必須頁面作用域**,否則 0,2,0 會蓋過全站基礎樣式,
     把 contact 的電話與 Email 一起變成 mono+底線(修了這裡壞了那裡)。
     依 fe-naming v1.1 §二「頁面級差異優先用作用域選擇器」:.nx-page--solutions 作用域,零新 class。
   卡片 flex-column + 連結 margin-top:auto → 同列等高卡的連結一律貼底對齊。 */
body.nx-skin--blueprint.nx-page--solutions .nx-c-card--service { display: flex; flex-direction: column; }
body.nx-skin--blueprint.nx-page--solutions .nx-c-card--service .nx-c-card__more {
	margin-top: auto; padding-top: .9rem;
	display: inline-flex; align-items: center; gap: .4rem; align-self: flex-start;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	transition: border-color .16s ease, color .16s ease;
}
body.nx-skin--blueprint.nx-page--solutions .nx-c-card--service .nx-c-card__more i {
	font-style: normal; transition: transform .16s ease;
}
body.nx-skin--blueprint.nx-page--solutions .nx-c-card--service .nx-c-card__more:hover,
body.nx-skin--blueprint.nx-page--solutions .nx-c-card--service .nx-c-card__more:focus-visible {
	color: var(--c-accent); border-bottom-color: var(--c-accent); outline: none;
}
body.nx-skin--blueprint.nx-page--solutions .nx-c-card--service .nx-c-card__more:hover i,
body.nx-skin--blueprint.nx-page--solutions .nx-c-card--service .nx-c-card__more:focus-visible i {
	transform: translateX(4px);
}

/* ── 服務範疇:奇數卡的孤兒列(棒2,5 卡改版)──
   site.css:96 的 nx-list--services 為 2 欄;卡數為奇數時最後一張獨佔半列、右半留大片空白=版面失衡。
   解:最後一張「且位置為奇數」(=該列只有它)時跨滿兩欄。
   ⚠️條件式而非寫死 :nth-child(5):未來補到 6 卡時規則自動失效,不留死規則。
   ⚠️頁面作用域(fe-naming v1.1 §二「頁面級差異優先用作用域選擇器」);≤991 塌 1 欄時 1/-1 = 單欄,無副作用。 */
body.nx-skin--blueprint.nx-page--solutions .nx-list--services > .nx-c-card--service:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}

/* ════════════════════════════════════════════════════════════
   產品方案彙總頁補強(棒2;規劃稿 260716_01 §七)——只服務彙總頁,頁面作用域
   ════════════════════════════════════════════════════════════ */

/* 可驗數字條:hero console 同語彙(mono 標籤 + 橘大數字);橫向三格,窄機不塌到 1 欄前保持可讀 */
body.nx-skin--blueprint.nx-page--products .nx-prodfacts {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
	margin: 1.6rem 0 0; padding: 0;
	background: var(--c-line2); border: 1.5px solid var(--c-line2);
}
body.nx-skin--blueprint.nx-page--products .nx-prodfacts > div {
	background: var(--c-card); padding: 1.1rem 1.3rem;
}
body.nx-skin--blueprint.nx-page--products .nx-prodfacts dt {
	font-family: var(--f-mono); font-size: .72rem; letter-spacing: .06em;
	color: var(--c-text-soft); margin: 0 0 .35rem;
}
body.nx-skin--blueprint.nx-page--products .nx-prodfacts dd { margin: 0; font-size: .95rem; color: var(--c-ink); }
body.nx-skin--blueprint.nx-page--products .nx-prodfacts dd b {
	font-family: var(--f-mono); font-size: 1.5rem; font-weight: 800; color: var(--c-accent-ink); margin-right: .2rem;
}

/* 誠實定調句:橘左框(呼應幕6「何時不適合」的克制用色) */
body.nx-skin--blueprint.nx-page--products .nx-prodintro-note {
	margin: 1.2rem 0 0; font-size: .92rem; line-height: 1.85; color: var(--c-text-soft);
	border-left: 3px solid var(--c-accent); padding-left: .9rem; text-wrap: pretty;
}

/* 頁尾三出口:三張導引卡(藍圖方角 + hover 抬起橘框,同引導區語彙) */
body.nx-skin--blueprint.nx-page--products .nx-prodout {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.4rem;
}
body.nx-skin--blueprint.nx-page--products .nx-prodout__card {
	display: flex; flex-direction: column; gap: .45rem;
	padding: 1.2rem 1.25rem; text-decoration: none;
	background: var(--c-card); border: 2px solid var(--c-line2);
	transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
body.nx-skin--blueprint.nx-page--products .nx-prodout__card:hover,
body.nx-skin--blueprint.nx-page--products .nx-prodout__card:focus-visible {
	transform: translate(-3px, -3px); box-shadow: 8px 8px 0 rgba(255, 88, 33, .22);
	border-color: var(--c-accent); outline: none;
}
body.nx-skin--blueprint.nx-page--products .nx-prodout__k {
	font-weight: 800; font-size: 1rem; color: var(--c-ink);
}
body.nx-skin--blueprint.nx-page--products .nx-prodout__t {
	font-size: .86rem; line-height: 1.75; color: var(--c-accent-ink); font-weight: 700; text-wrap: pretty;
}

@media (max-width: 767px) {
	body.nx-skin--blueprint.nx-page--products .nx-prodfacts { grid-template-columns: 1fr; }
	body.nx-skin--blueprint.nx-page--products .nx-prodout { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════════
   產品方案單元頁 七節骨架(C 主線第一棒 260716_15;規劃稿 260716_01 §七)
   頁面作用域 nx-page--product(單數,異於彙總頁 nx-page--products)
   ════════════════════════════════════════════════════════════ */

/* ①適合對象:一行標籤(藍圖方角 mono 小標 + 值) */
body.nx-skin--blueprint.nx-page--product .nx-prd-suit {
	display: flex; align-items: baseline; flex-wrap: wrap; gap: .6rem;
	margin: 1rem 0 0; font-size: .95rem;
}
body.nx-skin--blueprint.nx-page--product .nx-prd-suit__k {
	flex: none; font-family: var(--f-mono); font-size: .8rem; font-weight: 800;
	letter-spacing: .04em; color: var(--c-accent-ink);
	border: 1.5px solid var(--c-accent); padding: .12rem .5rem;
}
body.nx-skin--blueprint.nx-page--product .nx-prd-suit__v { color: var(--c-ink); font-weight: 700; }

/* ②③問題/價值:規格卡(單卡撐滿、雙卡並排;卡樣式沿用 nx-c-card--spec) */
body.nx-skin--blueprint.nx-page--product .nx-prd-pv {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin-top: 1.4rem;
}

/* ④功能架構:藍圖風占位框(虛線墨框 + 內文 + 導流鈕);骨架先行、GAP 待素材 */
body.nx-skin--blueprint.nx-page--product .nx-prd-arch__note {
	display: flex; flex-direction: column; align-items: flex-start; gap: 1rem;
	padding: 1.6rem 1.5rem; background: var(--c-card); border: 2px dashed var(--c-line2);
}
body.nx-skin--blueprint.nx-page--product .nx-prd-arch__note p {
	margin: 0; font-size: 1rem; line-height: 1.9; color: var(--c-text-soft); text-wrap: pretty;
}

/* ⑤系統畫面:圖片格(有真截圖才顯示;藍圖方框留白) */
body.nx-skin--blueprint.nx-page--product .nx-prd-shots {
	display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.1rem; margin-top: 1.4rem;
}
body.nx-skin--blueprint.nx-page--product .nx-prd-shots__item {
	margin: 0; border: 2px solid var(--c-line2); background: var(--c-card); padding: .5rem;
}
body.nx-skin--blueprint.nx-page--product .nx-prd-shots__item img { display: block; width: 100%; height: auto; }

/* ⑥⑦導流卡(同彙總頁 nx-prodout 語彙:藍圖方角 + hover 橘框抬起) */
body.nx-skin--blueprint.nx-page--product .nx-prd-out {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: .4rem;
}
body.nx-skin--blueprint.nx-page--product .nx-prd-out__card {
	display: flex; flex-direction: column; gap: .45rem;
	padding: 1.2rem 1.25rem; text-decoration: none;
	background: var(--c-card); border: 2px solid var(--c-line2);
	transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
body.nx-skin--blueprint.nx-page--product .nx-prd-out__card:hover,
body.nx-skin--blueprint.nx-page--product .nx-prd-out__card:focus-visible {
	transform: translate(-3px, -3px); box-shadow: 8px 8px 0 rgba(255, 88, 33, .22);
	border-color: var(--c-accent); outline: none;
}
body.nx-skin--blueprint.nx-page--product .nx-prd-out__k { font-weight: 800; font-size: 1rem; color: var(--c-ink); }
body.nx-skin--blueprint.nx-page--product .nx-prd-out__t {
	font-size: .86rem; line-height: 1.75; color: var(--c-accent-ink); font-weight: 700; text-wrap: pretty;
}

@media (max-width: 767px) {
	body.nx-skin--blueprint.nx-page--product .nx-prd-shots { grid-template-columns: 1fr; }
	body.nx-skin--blueprint.nx-page--product .nx-prd-out { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════════
   費用流程 4 tab(棒2;規劃稿 260716_01 §八)——頁面作用域 nx-page--pricing
   漸進增強:無 JS(無 .is-enhanced)→ 4 panel 全顯示堆疊;
             JS(.is-enhanced)→ 只顯示 .is-active;tab nav 藍圖分頁樣式
   ════════════════════════════════════════════════════════════ */

/* tab 導覽列:藍圖方角分頁 */
body.nx-skin--blueprint.nx-page--pricing .nx-tabs__nav {
	display: flex; flex-wrap: wrap; gap: .5rem;
	margin: 1.8rem 0 0; padding: 0 0 0;
	border-bottom: 2px solid var(--c-ink);
}
body.nx-skin--blueprint.nx-page--pricing .nx-tabs__tab {
	display: inline-flex; align-items: center;
	padding: .7rem 1.15rem; margin-bottom: -2px;
	font-size: .95rem; font-weight: 800; letter-spacing: .01em;
	color: var(--c-text-soft); text-decoration: none;
	background: transparent;
	border: 2px solid transparent; border-bottom: none;
	transition: color .16s ease, background .16s ease, border-color .16s ease;
}
body.nx-skin--blueprint.nx-page--pricing .nx-tabs__tab:hover,
body.nx-skin--blueprint.nx-page--pricing .nx-tabs__tab:focus-visible {
	color: var(--c-ink); outline: none;
}
/* active tab:白底接續內容、頂橘條標記(藍圖招牌) */
body.nx-skin--blueprint.nx-page--pricing .nx-tabs__tab.is-active {
	color: var(--c-ink);
	background: var(--c-card);
	border-color: var(--c-ink);
	position: relative;
}
body.nx-skin--blueprint.nx-page--pricing .nx-tabs__tab.is-active::before {
	content: ''; position: absolute; top: -2px; left: -2px; right: -2px; height: 3px;
	background: var(--c-accent);
}

/* panel=真面板(2026-07-20 UI 檢討):原本的白底來自母版 master.css `section{background:#fff}`
   洩漏——`.nx-tabs__panel` 是 <section> 但未帶 `.nx-sec`,漏掉本檔 §通用單元的透明 reset,
   於是白色無框、無內距、無交代(業主:「上部看起來特別奇怪」)。
   決策=收編成面板而非透明化:分頁隱喻要求 active tab 的白底延續成內容面板,
   透明化會讓白色分頁接到虛空、tab 與內容斷開。
   作法=白底明示宣告 + 左右下墨線(上緣由 .nx-tabs__nav 的 border-bottom 擔任=資料夾分頁)+ 內距。 */
body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel {
	background: var(--c-card);
	border: var(--border-ink);
	border-top: none;                 /* 上緣=nav 墨線;active tab 白底蓋出缺口=分頁與面板連通 */
	padding: 1.6rem 1.5rem 1.8rem;
}
/* panel 首標題:上緣節奏由 panel padding 定;歸零全域 heading 上距,免疊成 64px 空帶(2026-07-20 業主抓) */
body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel > .nx-c-heading:first-child { margin-top: 0; }
/* 防框中框:面板已有 2px 墨框,內部量級表外框降為細線,表頭下緣保留墨線維持規格表結構感。
   頁面作用域=首頁幕8 的 .nx-c-table 不受影響。 */
body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table { border: 1px solid var(--c-line); }
/* 無 JS 堆疊時:各 panel 各自成框,以間距分隔(不再需要虛線),並補回上緣墨線讓每框完整 */
body.nx-skin--blueprint.nx-page--pricing .nx-tabs:not(.is-enhanced) .nx-tabs__panel + .nx-tabs__panel {
	border-top: var(--border-ink); margin-top: 1.2rem;
}
/* JS 啟用:hidden 屬性已隱藏非 active;確保 is-active 顯示 */
body.nx-skin--blueprint.nx-page--pricing .nx-tabs.is-enhanced .nx-tabs__panel[hidden] { display: none; }
body.nx-skin--blueprint.nx-page--pricing .nx-tabs.is-enhanced .nx-tabs__panel.is-active { display: block; }

/* panel 內定調句 */
body.nx-skin--blueprint.nx-page--pricing .nx-tab-lead {
	margin: 0 0 1.2rem; font-size: .95rem; line-height: 1.85; color: var(--c-text-soft);
	border-left: 3px solid var(--c-accent); padding-left: .9rem; text-wrap: pretty;
}
body.nx-skin--blueprint.nx-page--pricing .nx-tab-subhead {
	margin: 1.6rem 0 .7rem; font-size: 1rem; font-weight: 800; color: var(--c-ink);
}
body.nx-skin--blueprint.nx-page--pricing .nx-tab-foot {
	margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: .7rem;
	justify-content: flex-end;   /* 面板行動鈕靠右(2026-07-20 業主裁示);DOM 順序不動=焦點順序與視覺順序仍一致 */
}

/* tab 內量級表沿用 nx-c-table(main.php 幕8 既有);此處僅補起價欄對齊 */
body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table td:nth-child(3),
body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table th:nth-child(3) { white-space: nowrap; }

/* ── 手機(≤620):分頁=可橫捲的一排晶片;量級表=每列一張卡 ──
   分頁:4 個中文標籤在 390px 塞不進一行,換行會留下 3+1 的孤兒列、且作用中分頁不再
        貼著面板上緣(資料夾隱喻斷掉)→ 改單列橫捲(Material scrollable tabs 慣例),
        末端露出半張=可捲提示;作用中=墨底白字(對比 >12:1),面板補回上緣墨線成完整框。
   表格:原本靠 .nx-tbl-scroll 橫捲,會把最關鍵的「起價」推出畫面外 → 改卡片式,
        欄名由 td[data-label](pricing.php 輸出)以 ::before 帶出,thead 視覺隱藏但留給螢幕閱讀器。
   2026-07-20 UI 檢討。 */
@media (max-width: 620px) {
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__nav {
		gap: .4rem; border-bottom: none; margin-bottom: .8rem;
		flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch;
		scroll-snap-type: x proximity; scrollbar-width: none;
	}
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__nav::-webkit-scrollbar { display: none; }
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__tab {
		padding: .68rem .8rem; margin-bottom: 0; font-size: .85rem;  /* 高度 ≥44px 觸控最小標準 */
		border: 1px solid var(--c-line2);
		flex: 0 0 auto; white-space: nowrap; scroll-snap-align: start;
	}
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__tab.is-active {
		background: var(--c-ink); color: #fff; border-color: var(--c-ink);
	}
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__tab.is-active::before { display: none; }
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel {
		border-top: var(--border-ink); padding: 1.2rem 1rem 1.4rem;
	}

	/* 量級表 → 卡片式 */
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-tbl-scroll { overflow-x: visible; }
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table {
		display: block; min-width: 0; border: none; background: transparent;
	}
	/* thead 視覺隱藏、保留給螢幕閱讀器(欄名另由 data-label 呈現給視覺使用者) */
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table thead {
		position: absolute; width: 1px; height: 1px; overflow: hidden;
		clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
	}
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table tbody,
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table tr,
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table td { display: block; }
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table tr {
		border: 1px solid var(--c-line); background: var(--c-card);
		padding: 0 .9rem .55rem; margin-bottom: .7rem;
	}
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table tr:last-child { margin-bottom: 0; }
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table td {
		border-bottom: none; padding: .4rem 0;
		display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
	}
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table td::before {
		content: attr(data-label); flex: 0 0 auto;
		font-size: .78rem; letter-spacing: .1em; color: var(--c-text-soft);
	}
	/* 首欄=卡片標題:不掛欄名、獨占一行、墨線收底 */
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table td:first-child {
		display: block; font-weight: 800; font-size: 1rem; color: var(--c-ink);
		padding: .75rem 0 .55rem; margin-bottom: .3rem; border-bottom: 1px solid var(--c-line);
	}
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table td:first-child::before { content: none; }
	body.nx-skin--blueprint.nx-page--pricing .nx-tabs__panel .nx-c-table td > * { text-align: right; }
}

/* ============================================================
   價值解惑頁 /value —— 判斷題手風琴(details 原生;藍圖皮)
   結構 fe-structure-naming v1.2:nx-faq(-item/-q/-a),可複用結構字彙
   ============================================================ */
body.nx-skin--blueprint .nx-sec--faq .nx-sec__sub { color: var(--c-text-soft); }
body.nx-skin--blueprint .nx-faq { display: grid; gap: .9rem; margin-top: 1.6rem; }
body.nx-skin--blueprint .nx-faq-item {
	background: var(--c-card);
	border: 1.5px solid var(--c-line2);
	border-left: 4px solid var(--c-line2);
	border-radius: var(--radius);
	transition: border-color .15s ease, box-shadow .15s ease;
}
body.nx-skin--blueprint .nx-faq-item[open] {
	border-color: var(--c-ink);
	border-left-color: var(--c-accent);
	box-shadow: var(--shadow-card-sm);
}
body.nx-skin--blueprint .nx-faq-q {
	display: flex; align-items: baseline; gap: .7rem;
	padding: 1.05rem 1.3rem; cursor: pointer; list-style: none; user-select: none;
}
body.nx-skin--blueprint .nx-faq-q::-webkit-details-marker { display: none; }
body.nx-skin--blueprint .nx-faq-q__code {
	font-family: var(--f-mono); font-size: .8rem; font-weight: 700;
	color: var(--c-accent-ink); flex: 0 0 auto; letter-spacing: .04em;
}
body.nx-skin--blueprint .nx-faq-q__text {
	flex: 1 1 auto; color: var(--c-ink); font-weight: 800; font-size: 1.05rem; line-height: 1.5;
}
body.nx-skin--blueprint .nx-faq-q:hover .nx-faq-q__text { color: var(--c-accent-ink); }
body.nx-skin--blueprint .nx-faq-q__mark {
	flex: 0 0 auto; position: relative; width: 14px; height: 14px; align-self: center; margin-left: .3rem;
}
body.nx-skin--blueprint .nx-faq-q__mark::before,
body.nx-skin--blueprint .nx-faq-q__mark::after {
	content: ""; position: absolute; background: var(--c-accent);
	top: 50%; left: 50%; transform: translate(-50%, -50%);
}
body.nx-skin--blueprint .nx-faq-q__mark::before { width: 14px; height: 2px; }
body.nx-skin--blueprint .nx-faq-q__mark::after  { width: 2px; height: 14px; transition: transform .15s ease; }
body.nx-skin--blueprint .nx-faq-item[open] .nx-faq-q__mark::after { transform: translate(-50%, -50%) scaleY(0); }
body.nx-skin--blueprint .nx-faq-a { padding: 0 1.3rem 1.15rem 1.3rem; color: var(--c-text-soft); }
body.nx-skin--blueprint .nx-faq-a p { margin: 0 0 .7rem; line-height: 1.85; }
body.nx-skin--blueprint .nx-faq-a p:last-child { margin-bottom: 0; }
@media (max-width: 620px) {
	body.nx-skin--blueprint .nx-faq-q { padding: .95rem 1rem; gap: .5rem; }
	body.nx-skin--blueprint .nx-faq-q__text { font-size: .98rem; }
	body.nx-skin--blueprint .nx-faq-a { padding: 0 1rem 1rem 1rem; }
}

/* ============================================================
   診斷頁 /diagnose —— 勾選聚合式診斷(規則式無 AI;藍圖皮)
   結構 fe-structure-naming v1.2:nx-diag(-opt/-result/-advice/-send)
   ============================================================ */
body.nx-skin--blueprint .nx-diag { margin-top: 1.2rem; }
body.nx-skin--blueprint .nx-diag__options { display: grid; gap: .7rem; margin-top: 1.3rem; }
@media (min-width: 720px) { body.nx-skin--blueprint .nx-diag__options { grid-template-columns: 1fr 1fr; } }
body.nx-skin--blueprint .nx-diag-opt {
	display: flex; align-items: flex-start; gap: .8rem;
	padding: 1rem 1.1rem; background: var(--c-card);
	border: 1.5px solid var(--c-line2); border-left: 4px solid var(--c-line2);
	border-radius: var(--radius); cursor: pointer;
	transition: border-color .15s ease, box-shadow .15s ease;
}
body.nx-skin--blueprint .nx-diag-opt:hover { border-color: var(--c-ink); }
body.nx-skin--blueprint .nx-diag-opt:has(.nx-diag-opt__box:checked) {
	border-color: var(--c-ink); border-left-color: var(--c-accent); box-shadow: var(--shadow-card-sm);
}
body.nx-skin--blueprint .nx-diag-opt__box {
	flex: 0 0 auto; width: 18px; height: 18px; margin-top: .18rem;
	accent-color: var(--c-accent); cursor: pointer;
}
body.nx-skin--blueprint .nx-diag-opt__body { display: flex; flex-direction: column; gap: .22rem; }
body.nx-skin--blueprint .nx-diag-opt__title { color: var(--c-ink); font-weight: 800; font-size: 1rem; }
body.nx-skin--blueprint .nx-diag-opt__desc { color: var(--c-text-soft); font-size: .9rem; line-height: 1.6; }
body.nx-skin--blueprint .nx-diag__actions { margin-top: 1.4rem; display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; }

body.nx-skin--blueprint .nx-diag-result { display: none; margin-top: 2.4rem; padding-top: 2rem; border-top: var(--border-ink); }
body.nx-skin--blueprint .nx-diag-result.is-shown { display: block; }
body.nx-skin--blueprint .nx-diag-advices { display: grid; gap: .9rem; margin-top: 1.3rem; }
body.nx-skin--blueprint .nx-diag-advice {
	background: var(--c-card); border: 1.5px solid var(--c-line2); border-left: 4px solid var(--c-accent);
	border-radius: var(--radius); padding: 1.15rem 1.3rem;
}
body.nx-skin--blueprint .nx-diag-advice__title { display: block; color: var(--c-ink); font-weight: 800; font-size: 1.06rem; }
body.nx-skin--blueprint .nx-diag-advice__text { color: var(--c-text-soft); line-height: 1.8; margin: .5rem 0 0; }
body.nx-skin--blueprint .nx-diag-advice__links { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }

body.nx-skin--blueprint .nx-diag-send { margin-top: 1.8rem; padding: 1.3rem; background: var(--c-bg); border: 1.5px dashed var(--c-line2); border-radius: var(--radius); }
body.nx-skin--blueprint .nx-diag-send__row { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; }
body.nx-skin--blueprint .nx-diag-send__email { flex: 1 1 260px; margin: 0; }
body.nx-skin--blueprint .nx-diag-send__submit { flex: 0 0 auto; }
@media (max-width: 620px) {
	body.nx-skin--blueprint .nx-diag-send__row { flex-direction: column; align-items: stretch; }
	body.nx-skin--blueprint .nx-diag-send__submit { width: 100%; }
}


/* ── 批2 B4：條款/法律長文容器（nx-c-prose）· 佈景可調層 ──
   termsOfService / termsOfPrivacy 的 DB 富文本基本排版；只在 nx-skin--blueprint 生效，
   母版型租戶（空 bodyClass）不受影響。色彩繼承 body、不寫死（tokens 鐵則）。 */
.nx-skin--blueprint .nx-c-prose{max-width:56rem;margin-inline:auto;line-height:1.9;}
.nx-skin--blueprint .nx-c-prose h1,
.nx-skin--blueprint .nx-c-prose h2{margin:2em 0 .6em;font-size:1.3rem;line-height:1.45;font-weight:700;}
.nx-skin--blueprint .nx-c-prose h3{margin:1.6em 0 .5em;font-size:1.12rem;line-height:1.45;font-weight:700;}
.nx-skin--blueprint .nx-c-prose h4{margin:1.4em 0 .5em;font-weight:700;}
.nx-skin--blueprint .nx-c-prose p{margin:0 0 1em;}
.nx-skin--blueprint .nx-c-prose ul,
.nx-skin--blueprint .nx-c-prose ol{margin:0 0 1em;padding-inline-start:1.6em;}
.nx-skin--blueprint .nx-c-prose li{margin:.35em 0;}
.nx-skin--blueprint .nx-c-prose a{text-decoration:underline;}
.nx-skin--blueprint .nx-c-prose:empty::after{content:"條款內容整理中。";color:#888;}


/* ── sticky footer：內容不足一屏時把頁尾推到視窗底(全站 nx 頁；佈景可調層、2026-07-25) ──
   #wrapper 改 flex 直欄 + min-height:100vh；footer margin-top:auto 吸掉剩餘空間→貼底。
   長內容頁無剩餘空間→auto=0→footer 自然接在內容後(靠其自身 padding 分隔)。
   nav 是 position:fixed 不參與 flex 排版；空 bodyClass 母版型租戶不受影響。 */
.nx-skin--blueprint #wrapper{display:flex;flex-direction:column;min-height:100vh;}
.nx-skin--blueprint #wrapper > .nx-c-footer,
.nx-skin--blueprint #wrapper > .footer{margin-top:auto;}

/* ── 隱藏無樣式 scroll-to-top 裸 button(2026-07-25 業主過審)──
   此顆 <button.scroll-to-top> 全站無 CSS/JS=裸顯示在左下角、static 佔 31px 頂出頁尾下方空白；
   正牌回頂鈕=footer 內 #back-to-top(master.css 有樣式、右下 fixed)。 */
.nx-skin--blueprint .scroll-to-top{display:none;}

/* ── 回頂鈕 #back-to-top 重設計(2026-07-25 業主 UI/UX 審視)──
   母版 master.css 給公證金 #C4933F 圓角方塊+hover 公證藍 #2B4590，不搭哈吉 nx。
   改對齊 nx-c-btn 藍圖語言：直角、44×44、墨線稿預設、hover 橘實心+硬陰影位移。
   只覆蓋不動母版；.show 顯示邏輯保留；svg=currentColor 跟隨 color。
   注：母版把 a#back-to-top 算成 display:block，故用 line-height+vertical-align 置中。 */
.nx-skin--blueprint #back-to-top{
	width:44px;height:44px;
	bottom:60px;right:32px;	/* 提高避開右下 grid HUD 座標讀數 */
	border-radius:0;
	background:var(--c-card,#fff);
	border:2px solid var(--c-ink,#1d2733);
	color:var(--c-ink,#1d2733);
	box-shadow:none;
	text-align:center;
	line-height:40px;
	transition:transform .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease;
}
.nx-skin--blueprint #back-to-top svg{vertical-align:middle;}
.nx-skin--blueprint #back-to-top:hover{
	background:var(--c-accent,#ff5821);
	border-color:var(--c-accent,#ff5821);
	color:#fff;
	transform:translate(-2px,-2px);
	box-shadow:4px 4px 0 rgba(29,39,51,.15);
}
@media (prefers-reduced-motion:reduce){
	.nx-skin--blueprint #back-to-top{transition:none;}
	.nx-skin--blueprint #back-to-top:hover{transform:none;}
}

/* 行動版回頂鈕：避開手機右下 HUD、貼邊、維 42 touch */
@media (max-width:767px){
	.nx-skin--blueprint #back-to-top{bottom:70px;right:16px;width:42px;height:42px;line-height:38px;}
}
