/* 公開首頁樣式（#1295 第二階段，2026-10-26；設計來源：研究稿 v9）。
   取代首頁專用的 css/style.css（87KB，含舊玻璃頁首與 115 條通用元素規則），舊檔與 Sass 原始檔已刪。

   寫法約定（改這份前先讀）：
   - 每條規則都以 .aidr-home（首頁 <body> 的 class）或首頁元件 class 開頭，不寫裸元素選擇器，
     不碰 #nav 與頁尾內部——頁首樣式只在 site-nav.css，頁尾只在 site-footer.css（這裡只覆寫它的顏色變數）。
   - 顏色是研究稿 oklch 色票換算成 sRGB 的值（Chromium 畫素比對誤差 ≤1）：iOS 15.4 以前的 Safari 不支援 oklch。
   - 數字字型：自家託管的 Montserrat 只有 400，研究稿用的 600／800 沒有字型檔（不新增字型下載），
     改用已載入的 Noto Sans TC 900（視覺粗細最接近研究稿的 Montserrat 800）。
   - 動態只在 <body> 有 .js-motion 時生效（js/modules/home-motion.js 加上；沒有 JS 或減少動態時畫面完全靜態）。
   - 間距 4pt 制：--hm-s-1 4、-2 8、-3 12、-4 16、-5 24、-6 32、-7 48、-8 64、-9 96。 */

/* ===== 設計變數、頁面基底 ===== */
.aidr-home{
  --hm-brand:#0d736a; --hm-brand-ink:#01544d; --hm-cta:#1F5242; --hm-cta-hover:#173F33;
  --hm-ink:#0e2627; --hm-text:#273637; --hm-muted:#435354; --hm-line:#d4e1df;
  --hm-canvas:#f2f9f6; --hm-surface:#fbfefd; --hm-mint:#def4ed; --hm-on-dark:#f9fdfb;
  /* 四色功能系統：紀錄、722、風險、轉診 */
  --hm-rec:#de6b4f;  --hm-rec-ink:#882d16;  --hm-rec-bg:#ffece7;
  --hm-bp7:#4081d2;  --hm-bp7-ink:#0e4786;  --hm-bp7-bg:#e9f3ff;
  --hm-risk:#edb345; --hm-risk-ink:#6f4606; --hm-risk-bg:#fff4db;
  --hm-ref:#735acc;  --hm-ref-ink:#4a348c;  --hm-ref-bg:#f1efff;
  --hm-ok:#339c6d;   --hm-hi:#e15955;
  --hm-s-1:4px; --hm-s-2:8px; --hm-s-3:12px; --hm-s-4:16px; --hm-s-5:24px; --hm-s-6:32px; --hm-s-7:48px; --hm-s-8:64px; --hm-s-9:96px;
  --hm-r-s:12px; --hm-r-m:20px; --hm-r-l:28px;
  --hm-f-body:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;
  --hm-f-num:"Noto Sans TC","PingFang TC",system-ui,sans-serif;
  --hm-shadow:0 1px 2px rgba(27,50,52,.06),0 12px 32px -16px rgba(17,52,54,.28);
  /* 共用頁首（site-nav.css）與頁尾（site-footer.css）的首頁色：與民眾版同一組綠 */
  --nav-accent:#2d6a4f; --nav-accent-soft:#d3eadb;
  --footer-grad-a:#1d4a3e; --footer-grad-b:#12332c; --footer-ink:#e8f0e9; --footer-ink-rgb:232,240,233;
  --footer-head:#7fc9c0; --footer-z:2; --footer-margin-top:0;
  margin:0; background:var(--hm-canvas); color:var(--hm-text);
  font-family:var(--hm-f-body); font-size:17px; line-height:1.8; letter-spacing:.02em;
  font-kerning:normal; line-break:strict; -webkit-text-size-adjust:100%;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
/* 與其他公開頁（for-patients.css、health-guide.css）同一組重置，共用頁首與頁尾在每一頁的盒模型才一致。
   用 :where() 讓權重為 0：和其他頁的 *{} 一樣，不會蓋掉 site-nav.css／site-footer.css 的單一 class 規則。 */
:where(.aidr-home) *, :where(.aidr-home) *::before, :where(.aidr-home) *::after{ box-sizing:border-box; margin:0; padding:0; }
.aidr-home main img{ display:block; max-width:100%; }
.aidr-home main a{ color:inherit; }
.aidr-home main :focus-visible, .aidrQuickLogin :focus-visible{ outline:3px solid var(--hm-brand); outline-offset:3px; border-radius:6px; }
.aidr-home main section{ scroll-margin-top:96px; }
.aidr-home main[tabindex="-1"]:focus{ outline:none; } /* 回到頂端把焦點移回主要內容時不畫外框 */
.aidr-home main h1, .aidr-home main h2, .aidr-home main h3{ color:var(--hm-ink); font-weight:900; letter-spacing:.03em; }
.aidr-home main h1{ font-size:clamp(34px,8vw,58px); line-height:1.28; }
.aidr-home main h2{ font-size:clamp(27px,5.8vw,42px); line-height:1.34; }
.aidr-home main h3{ font-size:20px; line-height:1.45; font-weight:700; }
.hm-sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* ===== 共用元件 ===== */
.hm-wrap{ width:min(1160px,100%); margin:0 auto; padding:0 var(--hm-s-4); }
.hm-nb{ display:inline-block; }
.hm-sec{ padding:var(--hm-s-8) 0; }
.hm-sec-hd{ max-width:640px; }
.hm-kicker{ font-size:16px; color:var(--hm-brand-ink); letter-spacing:.06em; margin:0 0 var(--hm-s-3); }
.hm-lead{ margin:var(--hm-s-4) 0 0; font-size:18px; color:var(--hm-muted); max-width:32em; }
.hm-num{ font-family:var(--hm-f-num); font-weight:900; letter-spacing:0; font-variant-numeric:tabular-nums; }
.hm-btn{ display:inline-flex; align-items:center; justify-content:center; gap:var(--hm-s-2); min-height:54px; padding:0 var(--hm-s-5);
  border-radius:999px; font-size:17px; font-weight:700; text-decoration:none; border:1.5px solid transparent; }
.aidr-home main .hm-btn-main{ background:var(--hm-cta); color:var(--hm-on-dark); }
.aidr-home main .hm-btn-main:hover{ background:var(--hm-cta-hover); }
.aidr-home main .hm-btn-ghost{ background:var(--hm-surface); color:var(--hm-ink); border-color:#b0cbc5; }
.aidr-home main .hm-btn-light{ background:var(--hm-on-dark); color:var(--hm-cta); }
.hm-btn:active{ transform:scale(.98); }
.hm-arrow{ font-weight:900; }

/* ===== 首屏 ===== */
.hm-hero{ padding:var(--hm-s-4) 0 var(--hm-s-7); }
.hm-hero-grid{ display:grid; gap:var(--hm-s-5); }
.hm-hero-pic{ position:relative; border-radius:var(--hm-r-l); overflow:hidden; background:var(--hm-mint); aspect-ratio:1672/941; box-shadow:var(--hm-shadow); }
.hm-hero-pic picture, .hm-hero-pic .hm-hero-img{ width:100%; height:100%; }
.hm-hero-pic .hm-hero-img{ object-fit:fill; }
.hm-flow{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.hm-chip{ position:absolute; left:var(--hm-s-3); bottom:var(--hm-s-3); display:none; align-items:center; gap:var(--hm-s-3);
  background:rgba(251,254,253,.94); border-radius:16px; padding:var(--hm-s-2) var(--hm-s-4) var(--hm-s-2) var(--hm-s-3);
  box-shadow:var(--hm-shadow); font-size:14px; line-height:1.35; color:var(--hm-muted); }
.hm-chip .hm-num{ font-size:22px; color:var(--hm-rec-ink); }
.hm-chip i{ width:10px; height:10px; border-radius:50%; background:var(--hm-ok); flex:none; }
.hm-hero h1 em{ font-style:normal; color:var(--hm-brand-ink); }
.hm-hero .hm-h1k{ display:block; font-weight:400; }
.hm-def{ margin:var(--hm-s-4) 0 0; font-size:18px; color:var(--hm-text); max-width:30em; }
.hm-def b{ color:var(--hm-brand-ink); }
.hm-acts{ display:grid; gap:var(--hm-s-3); margin-top:var(--hm-s-5); }
.aidr-home main .hm-tlink{ display:inline-flex; align-items:center; gap:var(--hm-s-2); min-height:48px; margin-top:var(--hm-s-2); font-weight:700;
  color:var(--hm-brand-ink); text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:5px; }

/* ===== 四件事 ===== */
.hm-needs{ background:var(--hm-surface); border-block:1px solid var(--hm-line); }
.hm-fgrid{ display:grid; gap:var(--hm-s-4); margin-top:var(--hm-s-6); }
.hm-fcard{ --c:var(--hm-brand); --c-ink:var(--hm-brand-ink); --c-bg:var(--hm-mint);
  display:grid; grid-template-rows:auto auto auto 1fr; gap:var(--hm-s-2); padding:var(--hm-s-5);
  border:1px solid var(--hm-line); border-radius:var(--hm-r-m); background:var(--hm-surface); }
.hm-fcard[data-tone="rec"]{ --c:var(--hm-rec); --c-ink:var(--hm-rec-ink); --c-bg:var(--hm-rec-bg); }
.hm-fcard[data-tone="bp7"]{ --c:var(--hm-bp7); --c-ink:var(--hm-bp7-ink); --c-bg:var(--hm-bp7-bg); }
.hm-fcard[data-tone="risk"]{ --c:#dc932e; --c-ink:var(--hm-risk-ink); --c-bg:var(--hm-risk-bg); }
.hm-fcard[data-tone="ref"]{ --c:var(--hm-ref); --c-ink:var(--hm-ref-ink); --c-bg:var(--hm-ref-bg); }
.hm-fcard header{ display:flex; align-items:center; gap:var(--hm-s-3); }
.hm-ic{ width:40px; height:40px; border-radius:12px; background:var(--c-bg); display:grid; place-items:center; }
.hm-ic svg{ width:26px; height:26px; }
.hm-cat{ font-size:15px; color:var(--c-ink); letter-spacing:.06em; }
.hm-fcard h3{ margin-top:var(--hm-s-2); }
.hm-fcard > p{ margin:0; font-size:16px; color:var(--hm-muted); line-height:1.7; }
.hm-panel{ margin-top:var(--hm-s-3); align-self:stretch; border:1px solid var(--hm-line); border-radius:14px; background:#f7fbfb; padding:var(--hm-s-4); }
.hm-ph{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:var(--hm-s-1) var(--hm-s-3);
  padding-bottom:var(--hm-s-3); margin-bottom:var(--hm-s-3); border-bottom:1px solid var(--hm-line); font-size:14px; color:var(--hm-muted); }
.hm-ph b{ color:var(--hm-ink); font-size:15px; font-weight:700; }
.hm-ph > span{ white-space:nowrap; }
.hm-ph .hm-big{ font-size:22px; color:var(--c-ink); }
.hm-ph .hm-done{ color:#145538; font-weight:700; }
.hm-chartbox{ position:relative; }
.hm-bpchart{ width:100%; height:150px; display:block; }
.hm-bpchart .gl{ stroke:#d7e0e0; stroke-width:1; }
.hm-bpchart .bar{ stroke:#edab9f; stroke-width:9; stroke-linecap:round; }
.hm-bpchart .bar.last{ stroke:var(--hm-rec); }
.hm-yl{ position:absolute; left:0; transform:translateY(-50%); font-family:var(--hm-f-num); font-size:14px; line-height:1; color:var(--hm-muted); }
.hm-tip{ position:absolute; transform:translate(calc(-100% + 18px),-100%); padding:3px 8px; border-radius:6px; background:var(--hm-ink); color:#f8fdfd;
  font-family:var(--hm-f-num); font-weight:900; font-size:14px; line-height:1.3; white-space:nowrap; }
.hm-tip::after{ content:""; position:absolute; right:13px; bottom:-5px; border:5px solid transparent; border-bottom:0; border-top-color:var(--hm-ink); }
.hm-days{ position:relative; height:22px; margin-top:4px; }
.hm-days span{ position:absolute; transform:translateX(-50%); font-size:14px; color:var(--hm-muted); line-height:22px; }
.hm-pf{ display:flex; flex-wrap:wrap; gap:var(--hm-s-1) var(--hm-s-4); margin-top:var(--hm-s-2); font-size:14px; color:var(--hm-muted); }
.hm-pf b{ color:var(--hm-ink); font-size:15px; }
.hm-dot{ display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--hm-rec); margin-right:6px; vertical-align:middle; }
.hm-rpt{ width:100%; border-collapse:collapse; font-size:15px; table-layout:fixed; }
.hm-rpt col.c1{ width:34%; }
.hm-rpt col.cn{ width:22%; }
.hm-rpt th, .hm-rpt td{ white-space:nowrap; letter-spacing:0; padding:var(--hm-s-2) var(--hm-s-1); text-align:right; }
.hm-rpt thead th{ font-size:14px; font-weight:500; color:var(--hm-muted); }
.hm-rpt th[scope=row], .hm-rpt thead th:first-child{ text-align:left; font-weight:500; color:var(--hm-text); }
.hm-rpt tbody tr + tr td, .hm-rpt tbody tr + tr th{ border-top:1px solid var(--hm-line); }
.hm-rpt td{ color:var(--hm-ink); }
.hm-rpt .sum th{ font-weight:700; color:var(--c-ink); }
.hm-rpt .sum td{ color:var(--c-ink); font-size:18px; }
.hm-scale{ position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:3px; height:12px; margin-top:var(--hm-s-2); }
.hm-seg{ border-radius:3px; }
.hm-seg.s1{ background:#60ba8d; } .hm-seg.s2{ background:#e0d06e; } .hm-seg.s3{ background:#f0a646; } .hm-seg.s4{ background:#e15955; }
.hm-mk{ position:absolute; top:-7px; width:4px; height:26px; margin-left:-2px; border-radius:2px; background:var(--hm-ink); box-shadow:0 0 0 2px var(--hm-surface); }
.hm-scl{ display:grid; grid-template-columns:repeat(4,1fr); margin-top:var(--hm-s-2); font-size:14px; color:var(--hm-muted); text-align:center; }
.hm-scl .on{ color:var(--c-ink); font-weight:700; }
.hm-kv{ display:flex; justify-content:space-between; margin-top:var(--hm-s-4); padding-top:var(--hm-s-3); border-top:1px solid var(--hm-line); font-size:15px; }
.hm-kv b{ color:var(--hm-ink); }
.hm-note{ margin:var(--hm-s-2) 0 0; font-size:14px; color:var(--hm-muted); }
.hm-tl{ list-style:none; margin:0; padding:0; display:grid; }
.hm-tl li{ display:grid; grid-template-columns:20px 1fr; column-gap:var(--hm-s-3); align-items:center; padding-bottom:var(--hm-s-3); position:relative; font-size:15px; color:var(--hm-muted); }
.hm-tl li::before{ grid-row:1 / span 2; content:""; width:12px; height:12px; border-radius:50%; border:2px solid #cdcbe1; background:var(--hm-surface); justify-self:center; z-index:1; }
.hm-tl time, .hm-tl li span{ grid-column:2; }
.hm-tl li:not(:last-child)::after{ content:""; position:absolute; left:9px; top:30px; bottom:-4px; width:2px; background:#dddceb; }
.hm-tl li.ok::before{ background:var(--hm-ref); border-color:var(--hm-ref); }
.hm-tl li.ok::after{ background:var(--hm-ref); }
.hm-tl li.ok span{ color:var(--hm-ink); }
.hm-tl li.now::before{ border-color:var(--hm-ref); box-shadow:0 0 0 5px rgba(115,90,204,.15); }
.hm-tl li.now span{ color:var(--c-ink); font-weight:700; }
.hm-tl time{ font-family:var(--hm-f-num); font-weight:600; font-size:14px; color:var(--hm-muted); }
.hm-tl li.now time{ font-family:var(--hm-f-body); color:var(--c-ink); }
@media (max-width:419px){
  .hm-fcard{ padding:var(--hm-s-4); }
  .hm-panel{ padding:var(--hm-s-3); }
  .hm-rpt th, .hm-rpt td{ padding:var(--hm-s-2) 4px; }
}

/* ===== 為什麼要記在 AIDR ===== */
.hm-why-grid{ display:grid; gap:var(--hm-s-6); margin-top:var(--hm-s-6); }
.hm-pile{ position:relative; min-height:372px; border-radius:var(--hm-r-m); background:#f5eee0; border:1px solid #e1d6c2; padding:var(--hm-s-4); }
.hm-pile .hm-cap{ font-size:15px; color:#5b4935; }
.hm-slip{ position:absolute; padding:10px 14px; border-radius:12px; font-size:14px; line-height:1.4; color:#453829; box-shadow:0 8px 16px -10px rgba(62,41,15,.5); }
.hm-slip b{ display:block; font-family:var(--hm-f-num); font-weight:900; font-size:17px; color:#402712; }
.hm-slip b.hm-slip-file{ font-family:var(--hm-f-body); }
.hm-slip.s1{ background:#fae8a2; left:14px; top:56px; rotate:-4deg; }
.hm-slip.s2{ background:var(--hm-surface); left:47%; top:50px; rotate:3deg; border-top:8px solid #2f3d42; }
.hm-slip.s3{ background:#c8f2c8; right:12px; top:136px; rotate:4deg; }
.hm-slip.s4{ background:#f3d5b9; left:20px; top:152px; rotate:2deg; }
.hm-slip.s5{ background:var(--hm-surface); left:16px; top:240px; rotate:-3deg; border-top:8px solid var(--hm-hi); }
.hm-slip.s6{ background:transparent; right:12px; top:290px; rotate:-2deg; border:1.5px dashed #ab9c8b; border-radius:40px; box-shadow:none; }
.hm-after .hm-cap{ font-size:16px; color:var(--hm-brand-ink); margin:0 0 var(--hm-s-4); }
.hm-frames{ display:grid; gap:var(--hm-s-5); overflow-x:clip; }
.hm-frame{ margin:0; display:grid; grid-template-columns:40% 1fr; gap:var(--hm-s-4); align-items:center; }
.hm-frame-img{ aspect-ratio:1/1.05; border-radius:var(--hm-r-s); background:url(/images/benefit-cinematic-storyboard.webp) no-repeat; background-size:400% auto; border:1px solid var(--hm-line); }
.hm-frame.f2 .hm-frame-img{ background-position:33.33% 30%; }
.hm-frame.f3 .hm-frame-img{ background-position:66.66% 30%; }
.hm-frame.f4 .hm-frame-img{ background-position:100% 30%; }
.hm-when{ display:inline-block; font-size:15px; color:var(--hm-brand-ink); background:var(--hm-mint); border-radius:999px; padding:0 12px; line-height:1.8; }
.hm-frame b{ display:block; margin-top:var(--hm-s-2); font-size:18px; color:var(--hm-ink); line-height:1.45; }
.hm-frame .hm-s{ display:block; font-size:15px; color:var(--hm-muted); line-height:1.6; }

/* ===== 誰適合用 ===== */
.hm-who{ background:var(--hm-surface); border-block:1px solid var(--hm-line); }
.hm-paths{ list-style:none; margin:var(--hm-s-6) 0 0; padding:0; display:grid; gap:var(--hm-s-3); }
.aidr-home main .hm-paths a{ display:grid; grid-template-columns:48px 1fr 24px; gap:var(--hm-s-4); align-items:center; padding:var(--hm-s-4) var(--hm-s-5);
  border-radius:var(--hm-r-m); border:1px solid var(--hm-line); text-decoration:none; min-height:96px; }
.aidr-home main .hm-paths a:hover{ border-color:var(--hm-brand); }
.hm-paths svg{ width:48px; height:48px; }
.hm-paths b{ display:block; font-size:19px; color:var(--hm-ink); line-height:1.4; }
.hm-paths span{ display:block; font-size:15px; color:var(--hm-muted); line-height:1.6; }
.hm-paths .hm-go{ font-weight:900; font-size:20px; color:var(--hm-brand-ink); }
.aidr-home main .hm-paths .main a{ background:var(--hm-cta); border-color:var(--hm-cta); }
.hm-paths .main b, .hm-paths .main .hm-go{ color:var(--hm-on-dark); }
.hm-paths .main span{ color:#cde5d9; }

/* ===== 健康指南 ===== */
.hm-topics{ display:flex; flex-wrap:wrap; gap:var(--hm-s-2); margin-top:var(--hm-s-5); }
.aidr-home main .hm-topics a{ display:inline-flex; align-items:center; gap:var(--hm-s-2); min-height:48px; padding:0 var(--hm-s-4); border-radius:999px;
  background:var(--hm-surface); border:1px solid var(--hm-line); text-decoration:none; font-weight:700; color:var(--hm-ink); }
.hm-topics i{ width:10px; height:10px; border-radius:50%; }
.hm-topics i.t-rec{ background:var(--hm-rec); } .hm-topics i.t-bp7{ background:var(--hm-bp7); }
.hm-topics i.t-risk{ background:var(--hm-risk); } .hm-topics i.t-ref{ background:var(--hm-ref); }
.hm-arts{ list-style:none; margin:var(--hm-s-5) 0 0; padding:0; border-top:1px solid var(--hm-line); }
.aidr-home main .hm-arts a{ display:grid; grid-template-columns:auto 1fr 20px; gap:var(--hm-s-2) var(--hm-s-4); align-items:center;
  padding:var(--hm-s-4) var(--hm-s-1); border-bottom:1px solid var(--hm-line); text-decoration:none; min-height:80px; }
.hm-k{ padding:2px 12px; border-radius:999px; align-self:start; margin-top:4px; }
.hm-arts b{ display:block; font-size:18px; color:var(--hm-ink); line-height:1.45; }
.hm-arts span{ display:block; font-size:15px; color:var(--hm-muted); line-height:1.6; }
.hm-arts .hm-k{ font-size:14px; }
.hm-arts .hm-go{ font-weight:900; color:var(--hm-brand-ink); }
.hm-k.k-bp{ background:var(--hm-rec-bg); color:var(--hm-rec-ink); } .hm-k.k-glu{ background:var(--hm-bp7-bg); color:var(--hm-bp7-ink); }
.hm-k.k-lip{ background:var(--hm-risk-bg); color:var(--hm-risk-ink); } .hm-k.k-visit{ background:var(--hm-ref-bg); color:var(--hm-ref-ink); }
.hm-more{ margin-top:var(--hm-s-2); }
.hm-more summary{ list-style:none; display:inline-flex; align-items:center; gap:var(--hm-s-2); min-height:48px; font-weight:700; color:var(--hm-brand-ink);
  cursor:pointer; text-decoration:underline; text-underline-offset:5px; }
.hm-more summary::-webkit-details-marker{ display:none; }
.hm-more .hm-arts{ margin-top:var(--hm-s-2); }

/* ===== 常見問題 ===== */
.hm-faq-list{ margin-top:var(--hm-s-5); border-top:1px solid var(--hm-line); }
.hm-faq-list details{ border-bottom:1px solid var(--hm-line); }
.hm-faq-list summary{ list-style:none; display:flex; justify-content:space-between; align-items:center; gap:var(--hm-s-4); min-height:64px;
  padding:var(--hm-s-3) var(--hm-s-1); font-size:18px; font-weight:700; color:var(--hm-ink); cursor:pointer; }
.hm-faq-list summary::-webkit-details-marker{ display:none; }
.hm-faq-list summary::after{ content:""; width:12px; height:12px; flex:none; border-right:2.5px solid var(--hm-brand); border-bottom:2.5px solid var(--hm-brand);
  rotate:45deg; translate:0 -3px; transition:rotate .25s; }
.hm-faq-list details[open] summary::after{ rotate:225deg; translate:0 3px; }
.hm-faq-list p{ margin:0; padding:0 var(--hm-s-1) var(--hm-s-5); font-size:17px; max-width:40em; }

/* ===== 結尾行動 ===== */
.hm-sec.hm-final{ padding-top:0; } /* 兩個 class：寬螢幕的 .hm-sec 上下留白不能蓋回來 */
.hm-box{ display:grid; border-radius:var(--hm-r-l); overflow:hidden; background:var(--hm-cta); color:#d6eae0; }
.hm-final-img{ min-height:220px; background:url(/images/benefit-cinematic-storyboard.webp) no-repeat 100% 30% / 400% auto; }
.hm-final-t{ padding:var(--hm-s-6) var(--hm-s-5); }
.aidr-home main .hm-final h2{ color:var(--hm-on-dark); }
.hm-final-t p{ margin:var(--hm-s-3) 0 var(--hm-s-5); font-size:18px; line-height:1.85; }

/* ===== 常駐登入（.aidrQuickLogin；source/router.php 看到這個 class 就不再注入後備元件） ===== */
.aidrQuickLogin{ position:fixed; left:var(--hm-s-3); right:var(--hm-s-3); bottom:max(var(--hm-s-3),env(safe-area-inset-bottom)); z-index:40;
  padding:var(--hm-s-2); border-radius:24px; background:rgba(251,254,253,.95); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  border:1px solid var(--hm-line); box-shadow:0 12px 32px -12px rgba(23,48,53,.45); }
.aidrQuickLogin .aidrQuickLogin__copy{ display:none; }
.aidrQuickLogin .aidrQuickLogin__actions{ display:grid; grid-template-columns:1fr 1fr; gap:var(--hm-s-2); }
.aidrQuickLogin .aidrQuickLogin__button{ display:flex; align-items:center; justify-content:center; min-height:50px; border-radius:999px;
  border:1.5px solid #b0cbc5; background:var(--hm-surface); color:var(--hm-brand-ink); font-weight:700; text-decoration:none; }
.aidrQuickLogin .aidrQuickLogin__button:hover{ border-color:var(--hm-brand); }

/* ===== 頁尾（共用 site-footer.css；這裡只補首頁獨有的版權列、捲動進度條、回到頂端） ===== */
.aidr-home .homeFooter{ padding-bottom:calc(26px + 86px); } /* 手機常駐登入列約 78px 高，頁尾底色延伸到它下面 */
.aidr-site-copyright{ display:flex; flex-direction:column; align-items:center; gap:4px; text-align:center; }
.aidr-site-copyright span{ display:block; line-height:1.7; }
.aidr-site-copyright .aidr-copy-mark{ font-size:14px; line-height:1.8; color:rgba(255,255,255,.92); }
.aidr-site-copyright .aidr-copy-legal{ font-size:14px; line-height:1.9; color:#fff; }
.aidr-site-copyright .aidr-copy-k{ font-weight:400; color:rgba(255,255,255,.6); }
.aidr-site-copyright .aidr-copy-org{ font-style:normal; color:#fff; }
.aidr-site-copyright .aidr-copy-sep{ font-style:normal; margin:0 .55em; color:rgba(255,255,255,.34); }
@media (max-width:560px){
  .aidr-site-copyright .aidr-copy-sep{ display:block; height:0; margin:2px 0; overflow:hidden; }
}
/* 圖層在常駐登入（40）之下：進度條末端的吉祥物經過登入鈕時由登入列蓋住，不擋字 */
.Scroll-Progress-Bar{ position:fixed; left:0; right:0; bottom:0; z-index:39; display:flex; align-items:center; height:6px; overflow:visible;
  background:rgba(220,239,235,.92); box-shadow:0 -1px 0 rgba(47,141,137,.08); pointer-events:none; }
.Scroll-Progress-Bar .bar{ position:relative; z-index:1; flex:none; width:0; height:6px; overflow:visible; border-radius:0 10px 5px 0;
  background:linear-gradient(90deg,#2f8d89 0%,#84bcd2 76%,#725ce0 100%); box-shadow:0 0 18px rgba(47,141,137,.28); }
.Scroll-Progress-Bar .bar::after{ content:""; position:absolute; inset:0 0 0 auto; width:min(120px,28vw); border-radius:inherit;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.42)); opacity:.72; }
.Scroll-Progress-Bar .enddot{ position:absolute; right:31px; bottom:4px; }
.aidrFlowCore{ position:relative; width:62px; height:58px; transform:translateX(50%); isolation:isolate; }
.aidrFlowCore::before{ content:""; position:absolute; right:32px; bottom:22px; z-index:0; width:112px; height:4px; border-radius:999px;
  background:linear-gradient(90deg,rgba(47,141,137,0),rgba(47,141,137,.72) 38%,rgba(132,188,210,.92) 72%,rgba(114,92,224,.48)); box-shadow:0 0 16px rgba(47,141,137,.24); }
.aidrFlowCore .aidrFlowCore__image{ position:absolute; left:50%; bottom:-1px; z-index:2; width:58px; height:auto; display:block; transform:translateX(-50%);
  filter:drop-shadow(0 12px 24px rgba(47,141,137,.26)); }
.aidrFlowCore__node{ position:absolute; z-index:1; width:7px; height:7px; border-radius:50%; background:#fff; box-shadow:0 0 0 5px rgba(47,141,137,.14),0 8px 18px rgba(31,75,74,.18); }
.aidrFlowCore__node--record{ left:-5px; bottom:15px; }
.aidrFlowCore__node--ai{ right:2px; bottom:35px; background:#ebe7fb; }
.aidrFlowCore__node--referral{ right:-10px; bottom:20px; background:#f7f3d9; }
@media (max-width:640px){
  .Scroll-Progress-Bar, .Scroll-Progress-Bar .bar{ height:4px; }
  .Scroll-Progress-Bar .enddot{ right:22px; bottom:3px; }
  .aidrFlowCore{ width:44px; height:40px; }
  .aidrFlowCore::before{ right:23px; bottom:16px; width:62px; height:3px; }
  .aidrFlowCore .aidrFlowCore__image{ width:42px; }
  .aidrFlowCore__node{ display:none; }
}
.hm-top{ position:fixed; right:var(--hm-s-3); bottom:calc(86px + var(--hm-s-2)); z-index:41; display:grid; place-items:center; width:48px; height:48px;
  border:1px solid var(--hm-line); border-radius:50%; background:var(--hm-surface); box-shadow:var(--hm-shadow); cursor:pointer;
  opacity:0; visibility:hidden; }
.hm-top.is-shown{ opacity:1; visibility:visible; }
.hm-top img{ width:24px; height:24px; }
.hm-top:focus-visible{ outline:3px solid var(--hm-brand); outline-offset:3px; }

/* ===== Logo 開場（.loadingArea；js/aidr-logo-motion.js）=====
   桌機（≥961px）：與 2026-10-26 之前完全相同（每個瀏覽階段播一次，規則在 JS）。
   手機（≤960px）B′：伺服器看到 cookie aidr_intro_seen=1 就在 <html> 加 .aidr-intro-seen，遮罩從不顯示；
   沒有這個 cookie、也沒開減少動態時，遮罩從第一個畫面就顯示（避免先看到首屏再被蓋住），JS 在首屏就緒時收掉（0.5～1.2 秒）。
   沒有 JS 時以 CSS 動畫在 1.2 秒開始淡出、1.5 秒完全消失；JS 一執行就加 .is-scripted 停掉這段動畫，之後顯示與收場只由 JS 決定。 */
.loadingArea{ position:fixed; left:0; top:0; z-index:99999; display:flex; align-items:center; justify-content:center; gap:clamp(22px,4vw,54px);
  width:100%; height:100vh; padding:0 32px; overflow:hidden; font-family:"Open Sans","Noto Sans TC",sans-serif; letter-spacing:.03em; line-height:1.5;
  background:linear-gradient(150deg,rgba(255,255,255,.96) 0%,rgba(232,246,240,.94) 30%,rgba(207,234,226,.88) 60%,rgba(178,219,206,.78) 100%),linear-gradient(#d4f0e6 0%,#b2dbce 100%);
  transition:opacity .22s ease-in-out,visibility .22s ease-in-out; }
.loadingArea::before{ content:""; position:absolute; inset:-18%; pointer-events:none; opacity:.9; transform:translate3d(-4%,-2%,0) rotate(-7deg);
  background:linear-gradient(118deg,rgba(255,255,255,0) 8%,rgba(255,255,255,.72) 22%,rgba(143,231,220,.24) 34%,rgba(255,255,255,0) 49%),linear-gradient(74deg,rgba(45,106,79,0) 14%,rgba(45,106,79,.14) 37%,rgba(78,196,222,.18) 54%,rgba(255,255,255,0) 72%);
  animation:aidrLoadingGradientDrift 5.2s ease-in-out infinite alternate; }
.loadingArea::after{ content:""; position:absolute; inset:0; pointer-events:none; opacity:.62;
  background:linear-gradient(rgba(255,255,255,.58) 0%,rgba(255,255,255,.08) 38%,rgba(255,255,255,.38) 100%); }
@keyframes aidrLoadingGradientDrift{ 100%{ transform:translate3d(5%,2%,0) rotate(-7deg); } }
.loadingArea .logo{ position:relative; z-index:1; width:min(420px,42vw); opacity:1; transition:opacity .2s ease-in-out; will-change:transform,opacity; }
.loadingArea .logo img, .loadingArea .logo object{ display:block; width:100%; }
.loadingArea .logo object{ height:auto; aspect-ratio:1023/756; }
.aidr-logo-motion-wordmark{ position:relative; z-index:1; max-width:min(640px,50vw); color:#202329; opacity:0; transform:translate3d(0,14px,0); will-change:transform,opacity; }
.aidr-logo-motion-kicker{ display:inline-flex; align-items:center; width:fit-content; margin-bottom:12px; padding:4px 12px 5px; border:1px solid rgba(0,128,128,.32);
  border-radius:999px; background:rgba(255,255,255,.42); color:#007d7d; font-size:18px; line-height:1; font-weight:600; letter-spacing:.08em; box-shadow:0 14px 40px rgba(0,128,128,.1); }
.aidr-logo-motion-line{ overflow:hidden; }
.aidr-logo-motion-title{ font-size:clamp(30px,2.35vw,44px); line-height:1.28; font-weight:700; letter-spacing:.02em; white-space:nowrap;
  text-shadow:0 12px 42px rgba(255,255,255,.55); will-change:transform,opacity; }
.aidr-logo-motion-subtitle{ margin-top:10px; color:rgba(32,35,41,.72); font-family:"Open Sans","Noto Sans TC",sans-serif; font-size:clamp(17px,1.24vw,23px);
  line-height:1.35; font-weight:500; letter-spacing:.03em; text-shadow:0 10px 36px rgba(255,255,255,.5); will-change:transform,opacity; }
.loadingArea.is-done{ opacity:0; pointer-events:none; visibility:hidden; }
.loadingArea .aidr-intro-skip{ display:none; }
@media (prefers-reduced-motion:reduce){
  .loadingArea::before{ animation:none; }
}
@media (max-width:960px){
  .loadingArea{ display:none; flex-direction:column; gap:14px; padding:0 24px; text-align:center; pointer-events:none; }
  .loadingArea .logo{ width:min(250px,calc(100vw - 36px)); }
  .loadingArea .aidr-logo-motion-wordmark{ display:none; }
  .aidr-logo-motion-kicker{ margin-left:auto; margin-right:auto; }
}
/* JS 執行前：CSS 決定第一個畫面要不要顯示；沒有 JS 時 1.2 秒起淡出。 */
@media (max-width:960px) and (prefers-reduced-motion:no-preference){
  .loadingArea{ display:flex; pointer-events:auto; animation:aidrIntroNoScript .3s ease-in 1.2s forwards; }
  .aidr-intro-seen .loadingArea{ display:none; }
}
/* JS 接手後（.is-scripted）：只由 JS 收場。中途切換「減少動態」也不由媒體查詢直接藏掉（會讓焦點掉回 <body>），
   而是 JS 的 cleanup() 先撤掉遮蔽，再解除隔離、依焦點交接條件處理焦點並移除遮罩。「略過」只在 JS 接手後出現（沒有 JS 時按了也沒作用）。 */
@media (max-width:960px){
  .loadingArea.is-scripted{ display:flex; pointer-events:auto; animation:none; }
  .loadingArea.is-scripted .aidr-intro-skip{ position:absolute; right:14px; bottom:max(22px,env(safe-area-inset-bottom)); z-index:2; display:inline-flex; align-items:center;
    min-height:48px; padding:8px 18px; border-radius:999px; border:1px solid rgba(31,82,66,.35); background:rgba(255,255,255,.7);
    color:#1F5242; font:700 15px/1 "Noto Sans TC",sans-serif; letter-spacing:.04em; cursor:pointer; }
}
@keyframes aidrIntroNoScript{ to{ opacity:0; visibility:hidden; pointer-events:none; } }

/* ===== 進場動態（只在 body.js-motion；減少動態時 home-motion.js 不加這個 class，全部直接是最終狀態） ===== */
.aidr-home.js-motion .hm-btn{ transition:transform .2s cubic-bezier(.22,1,.36,1),background-color .2s; }
.aidr-home.js-motion .hm-chip{ animation:hmChipIn .6s cubic-bezier(.22,1,.36,1) 3.1s both; }
@keyframes hmChipIn{ from{ opacity:0; translate:0 10px; } to{ opacity:1; translate:0 0; } }
.aidr-home.js-motion .hm-fcard .hm-bpchart .bar{ transform-box:fill-box; transform-origin:50% 50%; transform:scaleY(0); transition:transform .7s cubic-bezier(.22,1,.36,1); }
.aidr-home.js-motion .hm-fcard.in .hm-bpchart .bar{ transform:scaleY(1); }
.aidr-home.js-motion .hm-fcard .hm-tip{ opacity:0; translate:0 6px; transition:opacity .4s ease .75s,translate .4s cubic-bezier(.22,1,.36,1) .75s; }
.aidr-home.js-motion .hm-fcard.in .hm-tip{ opacity:1; translate:0 0; }
.aidr-home.js-motion .hm-fcard .hm-mk{ translate:var(--mk-from,0px) 0; transition:translate 1.1s cubic-bezier(.22,1,.36,1) .2s; }
.aidr-home.js-motion .hm-fcard.in .hm-mk{ translate:0 0; }
.aidr-home.js-motion .hm-fcard .hm-scl .on{ color:var(--hm-muted); font-weight:400; transition:color .3s ease 1.1s; }
.aidr-home.js-motion .hm-fcard.in .hm-scl .on{ color:var(--c-ink); font-weight:700; }
.aidr-home.js-motion .hm-fcard .hm-tl li{ opacity:.25; transition:opacity .45s ease; }
.aidr-home.js-motion .hm-fcard.in .hm-tl li{ opacity:1; }
.aidr-home.js-motion .hm-fcard.in .hm-tl li:nth-child(2){ transition-delay:.35s; }
.aidr-home.js-motion .hm-fcard.in .hm-tl li:nth-child(3){ transition-delay:.7s; }
.aidr-home.js-motion .hm-fcard.in .hm-tl li:nth-child(4){ transition-delay:1.05s; }
.aidr-home.js-motion .hm-fcard.in .hm-tl li:nth-child(5){ transition-delay:1.4s; }
.aidr-home.js-motion .hm-fcard .hm-rpt tbody tr{ opacity:0; transform:translateY(6px); transition:opacity .4s ease,transform .5s cubic-bezier(.22,1,.36,1); }
.aidr-home.js-motion .hm-fcard.in .hm-rpt tbody tr{ opacity:1; transform:none; }
.aidr-home.js-motion .hm-fcard.in .hm-rpt tbody tr:nth-child(2){ transition-delay:.15s; }
.aidr-home.js-motion .hm-fcard.in .hm-rpt tbody tr:nth-child(3){ transition-delay:.3s; }
/* 便利貼散落、三格依序滑入 */
.aidr-home.js-motion .hm-pile .hm-slip{ opacity:0; translate:0 -60px; transition:opacity .35s ease,translate .7s cubic-bezier(.34,1.3,.5,1); }
.aidr-home.js-motion .hm-pile.in .hm-slip{ opacity:1; translate:0 0; }
.aidr-home.js-motion .hm-pile.in .hm-slip.s2{ transition-delay:.12s; }
.aidr-home.js-motion .hm-pile.in .hm-slip.s3{ transition-delay:.24s; }
.aidr-home.js-motion .hm-pile.in .hm-slip.s4{ transition-delay:.36s; }
.aidr-home.js-motion .hm-pile.in .hm-slip.s5{ transition-delay:.48s; }
.aidr-home.js-motion .hm-pile.in .hm-slip.s6{ transition-delay:.6s; }
.aidr-home.js-motion .hm-after .hm-frame{ opacity:0; translate:24px 0; transition:opacity .5s ease,translate .6s cubic-bezier(.22,1,.36,1); }
.aidr-home.js-motion .hm-after.in .hm-frame{ opacity:1; translate:0 0; }
.aidr-home.js-motion .hm-after.in .hm-frame:nth-child(2){ transition-delay:.2s; }
.aidr-home.js-motion .hm-after.in .hm-frame:nth-child(3){ transition-delay:.4s; }
.aidr-home.js-motion .hm-paths a{ transition:border-color .2s,transform .2s cubic-bezier(.22,1,.36,1); }
.aidr-home.js-motion .hm-paths a:hover{ transform:translateY(-2px); }
.aidr-home.js-motion .hm-top{ transition:opacity .2s ease,visibility .2s ease; }
.aidr-home.js-motion .aidrFlowCore .aidrFlowCore__image{ animation:aidrFlowCoreFloat 3.4s ease-in-out infinite; }
.aidr-home.js-motion .aidrFlowCore__node{ animation:aidrFlowNodePulse 2.8s ease-in-out infinite; }
.aidr-home.js-motion .aidrFlowCore__node--ai{ animation-delay:.36s; }
.aidr-home.js-motion .aidrFlowCore__node--referral{ animation-delay:.72s; }
@keyframes aidrFlowCoreFloat{ 0%,100%{ transform:translateX(-50%) translateY(0) scale(1); } 50%{ transform:translateX(-50%) translateY(-6px) scale(1.025); } }
@keyframes aidrFlowNodePulse{ 0%,100%{ opacity:.45; transform:scale(.78); } 50%{ opacity:1; transform:scale(1); } }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .aidr-home.js-motion .hm-fcard{ transition:translate .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease,border-color .3s ease; }
  .aidr-home.js-motion .hm-fcard:hover{ translate:0 -4px; box-shadow:var(--hm-shadow); border-color:#b6d1cd; }
  .aidr-home.js-motion .hm-arts a{ transition:background-color .2s ease; }
  .aidr-home main .hm-arts a:hover{ background:var(--hm-mint); }
  .aidr-home.js-motion .hm-arts .hm-go{ transition:translate .2s ease; }
  .aidr-home.js-motion .hm-arts a:hover .hm-go{ translate:4px 0; }
}
@media (prefers-reduced-motion:reduce){
  :where(.aidr-home) *, :where(.aidr-home) *::before, :where(.aidr-home) *::after{ transition:none !important; }
}

/* ===== 寬螢幕 ===== */
@media (min-width:760px){
  .hm-wrap{ padding:0 var(--hm-s-6); }
  .hm-acts{ grid-auto-flow:column; justify-content:start; }
  .hm-fgrid{ grid-template-columns:1fr 1fr; column-gap:var(--hm-s-5); row-gap:var(--hm-s-5); }
  @supports (grid-template-rows:subgrid){
    .hm-fcard{ grid-row:span 4; grid-template-rows:subgrid; row-gap:var(--hm-s-2); }
  }
  .hm-fcard{ padding:var(--hm-s-6); }
  .hm-why-grid{ grid-template-columns:5fr 7fr; align-items:start; }
  .hm-frames{ grid-template-columns:repeat(3,1fr); }
  .hm-frame{ display:block; }
  .hm-frame-img{ aspect-ratio:1/1.1; margin-bottom:var(--hm-s-3); }
  .hm-paths{ grid-template-columns:repeat(3,1fr); }
  .aidr-home main .hm-paths a{ grid-template-columns:1fr; align-content:start; height:100%; gap:var(--hm-s-3); padding:var(--hm-s-5); }
  .hm-paths .hm-go{ justify-self:start; }
  .hm-arts{ display:grid; grid-template-columns:1fr 1fr; column-gap:var(--hm-s-6); }
  .hm-box{ grid-template-columns:1fr 1.1fr; align-items:stretch; }
  .hm-final-t{ padding:var(--hm-s-7); }
}
@media (min-width:1024px){
  .hm-sec{ padding:var(--hm-s-9) 0; }
  .hm-hero{ padding:var(--hm-s-6) 0 var(--hm-s-8); }
  .hm-hero-grid{ grid-template-columns:5fr 7fr; align-items:center; gap:var(--hm-s-7); }
  .hm-hero-txt{ order:-1; }
  .hm-chip{ display:flex; left:auto; right:var(--hm-s-4); bottom:var(--hm-s-4); }
  .aidrQuickLogin{ left:auto; right:clamp(16px,2.1vw,36px); bottom:var(--hm-s-6); width:196px; padding:var(--hm-s-4); border-radius:var(--hm-r-m); }
  .aidrQuickLogin .aidrQuickLogin__copy{ display:grid; justify-items:center; margin-bottom:var(--hm-s-3); line-height:1.4; }
  .aidrQuickLogin .aidrQuickLogin__copy span{ font-size:14px; color:var(--hm-muted); }
  .aidrQuickLogin .aidrQuickLogin__copy strong{ font-size:17px; color:var(--hm-ink); }
  .aidrQuickLogin .aidrQuickLogin__actions{ grid-template-columns:1fr; }
  .aidrQuickLogin .aidrQuickLogin__button{ min-height:48px; }
  .aidr-home .homeFooter{ padding-bottom:26px; }
  .hm-top{ right:calc(clamp(16px,2.1vw,36px) + 196px + var(--hm-s-3)); bottom:var(--hm-s-6); }
}
