/* ============================================================
   AHOY 官網改版原型 — 極簡 SaaS 風（Stripe / Linear 取向）
   ============================================================ */
:root{
  --ink:#0f172a;        /* 標題深墨 */
  --body:#475569;       /* 內文 */
  --muted:#94a3b8;      /* 次要 */
  --accent:#4f6bff;     /* 唯一亮色 CTA */
  --accent-d:#3b54e0;
  --accent-soft:#eef1ff;
  --bg:#ffffff;
  --bg-soft:#f7f8fc;
  --border:#e6e9f2;
  --radius:16px;
  --shadow-sm:0 1px 2px rgba(15,23,42,.04), 0 1px 3px rgba(15,23,42,.06);
  --shadow-md:0 8px 24px rgba(15,23,42,.08);
  --shadow-lg:0 24px 60px rgba(79,107,255,.16);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Noto Sans TC","Inter","Montserrat",-apple-system,"Helvetica Neue",sans-serif;
  color:var(--body);background:var(--bg);line-height:1.7;-webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}

/* ---------- Header ---------- */
.nav{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.8);
  backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid transparent;
  transition:border-color .25s, box-shadow .25s;
}
.nav.scrolled{border-color:var(--border);box-shadow:var(--shadow-sm)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:66px}
.brand{font-family:"Montserrat";font-weight:700;font-size:24px;letter-spacing:.5px;color:var(--ink)}
.nav-links{display:flex;gap:30px;align-items:center}
.nav-links a{font-size:15px;color:var(--body);transition:color .2s}
.nav-links a:hover{color:var(--ink)}
.nav-links a.active{color:var(--accent);font-weight:600}
.nav-cta{display:flex;align-items:center;gap:10px}
/* header 右側聯絡按鈕（淡底膠囊 + 彩色圖示） */
.hbtn{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600;border-radius:30px;padding:9px 16px;text-decoration:none;white-space:nowrap;transition:background .2s}
.hbtn i{font-size:15px}
.hbtn-line{background:#e7f9ef;color:#05b34c}
.hbtn-line i{color:#06c755}
.hbtn-line:hover{background:#d6f4e3}
.hbtn-call{background:var(--accent-soft);color:var(--accent-d)}
.hbtn-call i{color:var(--accent)}
.hbtn-call:hover{background:#e2e7ff}
.nav-toggle{display:none;background:none;border:none;font-size:22px;color:var(--ink);cursor:pointer;line-height:1;padding:6px;margin-left:4px}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;border:none;cursor:pointer;
  font-size:15px;font-weight:600;border-radius:10px;padding:12px 22px;
  font-family:inherit;transition:transform .15s, box-shadow .2s, background .2s;
}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 6px 16px rgba(79,107,255,.32)}
.btn-primary:hover{background:var(--accent-d);transform:translateY(-1px);box-shadow:0 10px 22px rgba(79,107,255,.4)}
.btn-ghost{background:transparent;color:var(--ink);font-weight:600}
.btn-ghost:hover{color:var(--accent)}
.btn-outline{background:#fff;color:var(--accent);border:1.5px solid var(--border)}
.btn-outline:hover{border-color:var(--accent);background:var(--accent-soft)}
.btn-line{background:#06c755;color:#fff;box-shadow:0 6px 16px rgba(6,199,85,.3)}
.btn-line:hover{background:#05b34c;transform:translateY(-1px);box-shadow:0 10px 22px rgba(6,199,85,.4)}
.btn-on-band{background:var(--accent);color:#fff;box-shadow:0 8px 20px rgba(79,107,255,.32)}
.btn-on-band:hover{background:var(--accent-d);transform:translateY(-1px);box-shadow:0 12px 26px rgba(79,107,255,.4)}
.btn-lg{padding:15px 30px;font-size:16px;border-radius:12px}
.link-arrow{color:var(--accent);font-weight:600}
.link-arrow:hover{text-decoration:underline}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;padding:84px 0 70px;text-align:center}
/* 柔和漸層光暈背景 */
.hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(60% 50% at 50% 0%, #eef1ff 0%, rgba(238,241,255,0) 70%),
    radial-gradient(40% 40% at 85% 30%, #e9fbff 0%, rgba(233,251,255,0) 70%);
}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;background:var(--accent-soft);
  color:var(--accent-d);font-size:13px;font-weight:600;padding:6px 14px;border-radius:30px;margin-bottom:24px;
}
.hero h1{
  color:var(--ink);font-size:clamp(30px,5vw,52px);line-height:1.18;font-weight:800;
  letter-spacing:-.02em;margin:0 auto 18px;max-width:16em;
}
.hero h1 .grad{
  background:linear-gradient(90deg,var(--accent),#22b8c8);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-sub{font-size:clamp(16px,2vw,19px);color:var(--body);max-width:46ch;margin:0 auto 32px}
.hero-actions{display:flex;gap:18px;align-items:center;justify-content:center;flex-wrap:wrap}
.hero-note{margin-top:16px;font-size:13px;color:var(--muted)}

/* ---------- Call-flow diagram ---------- */
.flow{
  margin:54px auto 0;max-width:760px;background:#fff;border:1px solid var(--border);
  border-radius:20px;box-shadow:var(--shadow-lg);padding:34px 28px;
  display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:nowrap;
}
.flow-node{display:flex;flex-direction:column;align-items:center;gap:10px;flex:0 0 auto;width:128px}
.flow-ico{
  width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;
  font-size:26px;background:var(--bg-soft);border:1px solid var(--border);color:var(--ink);
}
.flow-node.cloud .flow-ico{background:linear-gradient(135deg,var(--accent),#22b8c8);color:#fff;border:none;box-shadow:0 10px 24px rgba(79,107,255,.35)}
.flow-label{font-size:13px;color:var(--body);font-weight:500;text-align:center;line-height:1.4}
.flow-devices{display:flex;gap:8px;font-size:20px;color:var(--ink)}
.flow-devices i{animation:ring 1.6s ease-in-out infinite}
.flow-devices i:nth-child(2){animation-delay:.2s}
.flow-devices i:nth-child(3){animation-delay:.4s}
.flow-link{flex:1;height:2px;background:var(--border);position:relative;min-width:36px;border-radius:2px}
.flow-link::after{
  content:"";position:absolute;top:50%;left:0;width:8px;height:8px;border-radius:50%;
  background:var(--accent);transform:translateY(-50%);box-shadow:0 0 0 4px rgba(79,107,255,.18);
  animation:travel 2.2s ease-in-out infinite;
}
.flow-link.l2::after{animation-delay:1.1s}
@keyframes travel{0%{left:0;opacity:0}10%{opacity:1}90%{opacity:1}100%{left:100%;opacity:0}}
@keyframes ring{0%,60%,100%{transform:rotate(0)}70%{transform:rotate(-12deg)}80%{transform:rotate(12deg)}90%{transform:rotate(-8deg)}}

/* ---------- Trust bar ---------- */
.trust{padding:30px 0 6px;text-align:center}
.trust p{font-size:13px;color:var(--muted);letter-spacing:.04em;margin-bottom:14px}
.trust-logos{display:flex;gap:38px;justify-content:center;flex-wrap:wrap;color:#64748b;font-weight:600;font-size:17px}
.trust-logos span{opacity:.75}

/* ---------- Section ---------- */
.section{padding:84px 0}
.section.soft{background:var(--bg-soft)}
.sec-head{text-align:center;max-width:620px;margin:0 auto 52px}
.sec-head .tag{color:var(--accent);font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase}
.sec-head h2{color:var(--ink);font-size:clamp(26px,3.4vw,38px);font-weight:800;letter-spacing:-.02em;margin:10px 0 12px;line-height:1.25}
.sec-head p{font-size:17px;color:var(--body)}

/* ---------- How it works ---------- */
.timeline{display:flex;list-style:none;margin:56px 0 0;padding:0}
.tl-step{flex:1;position:relative;text-align:center;padding:0 16px}
/* 連接序號圓圈的橫線（畫在圓圈後方，形成 ①──②──③ 的順序感） */
.tl-step:not(:last-child)::after{
  content:"";position:absolute;top:23px;left:50%;width:100%;height:2px;
  background:var(--border);z-index:0;
}
.tl-num{
  position:relative;z-index:1;width:46px;height:46px;border-radius:50%;
  background:var(--accent);color:#fff;font-weight:700;font-size:17px;
  display:flex;align-items:center;justify-content:center;margin:0 auto 26px;
  box-shadow:0 4px 12px rgba(79,107,255,.35);
}
.tl-icon{
  width:62px;height:62px;border-radius:18px;background:var(--accent-soft);color:var(--accent-d);
  display:flex;align-items:center;justify-content:center;font-size:27px;margin:0 auto 16px;
}
.tl-step h3{color:var(--ink);font-size:19px;margin-bottom:10px}
.tl-step p{font-size:15px;color:var(--body);margin:0 auto;max-width:30ch}

/* ---------- Features ---------- */
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.feature{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius);
  padding:30px 26px;box-shadow:var(--shadow-sm);transition:transform .2s, box-shadow .2s;
}
.feature:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.feature .f-ico{
  width:52px;height:52px;border-radius:14px;background:var(--accent-soft);color:var(--accent-d);
  display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:16px;
}
.feature h3{color:var(--ink);font-size:18px;margin-bottom:8px}
.feature p{font-size:15px;margin:0}
.feature-copy-line{display:block}

/* ---------- Showcase（圖文交錯） ---------- */
.showcase{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.showcase + .showcase{margin-top:88px}
.showcase.reverse .sc-media{order:2}
.sc-media{display:flex;justify-content:center}
.sc-media img{max-width:268px;width:100%;border-radius:24px;box-shadow:var(--shadow-lg)}
.sc-text h2{color:var(--ink);font-size:clamp(24px,3vw,32px);font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
.sc-list{list-style:none;margin-top:16px}
.sc-list li{position:relative;padding-left:30px;margin-bottom:13px;font-size:16px;color:var(--body)}
.sc-list li::before{
  content:"\f00c";font-family:"Font Awesome 5 Free";font-weight:900;
  position:absolute;left:0;top:4px;color:var(--accent);font-size:13px;
}
.sc-text .btn{margin-top:22px}

/* ---------- Pricing ---------- */
.pricing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:stretch}
.price{
  position:relative;background:#fff;border:1px solid var(--border);border-radius:var(--radius);
  padding:32px 24px;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);
}
.price.featured{border-color:var(--accent);box-shadow:var(--shadow-lg)}
.p-badge{
  position:absolute;top:-12px;left:50%;transform:translateX(-50%);white-space:nowrap;
  background:var(--accent);color:#fff;font-size:12px;font-weight:700;padding:5px 16px;border-radius:30px;
}
.p-badge.promo{background:#f97316}
.price h3{color:var(--ink);font-size:22px;margin-bottom:2px}
.p-sub{color:var(--muted);font-size:14px;margin-bottom:18px}
.p-amt{font-size:42px;font-weight:800;color:var(--ink);line-height:1}
.p-amt sup{font-size:17px;font-weight:600;margin-right:3px;vertical-align:super}
.p-amt small{display:block;font-size:13px;color:var(--muted);font-weight:400;margin-top:8px}
.p-note{font-size:12px;color:var(--muted);margin-top:10px;display:inline-flex;align-items:center;gap:5px}
.p-note::before{content:"\f017";font-family:"Font Awesome 5 Free";font-weight:400;font-size:11px}
.price ul{list-style:none;margin:18px 0 20px;flex:1}
.price li{position:relative;padding-left:24px;margin-bottom:11px;font-size:14px;color:var(--body)}
.price li::before{
  content:"\f00c";font-family:"Font Awesome 5 Free";font-weight:900;color:var(--accent);
  position:absolute;left:0;top:3px;font-size:12px;
}
.price .btn{width:100%;justify-content:center}
.plan-notes{max-width:720px;margin:34px auto 0;font-size:14px;color:var(--body)}
.plan-notes-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.plan-notes-list li{position:relative;padding-left:22px;line-height:1.65}
.plan-notes-list li::before{content:"\f00c";font-family:"Font Awesome 5 Free";font-weight:900;position:absolute;left:0;top:5px;color:var(--accent);font-size:12px}
.plan-notes-list .hot{color:#b45309;font-weight:600}
.plan-annotations{margin-top:18px;padding-top:16px;border-top:1px solid var(--border);color:var(--body);line-height:1.65}
.plan-annotations p{margin:0}
.plan-annotations p + p{margin-top:8px}
.plan-annotations .tiny{color:#64748b;font-size:13px}

/* ---------- Rate table ---------- */
.rate-wrap{max-width:620px;margin:0 auto}
.rate-title{text-align:center;color:var(--ink);font-size:20px;font-weight:700;margin:34px 0 14px}
.rate{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.rate th{background:var(--bg-soft);color:var(--ink);text-align:left;padding:14px 18px;font-weight:600}
.rate td{padding:14px 18px;border-top:1px solid var(--border)}
.rate-note{text-align:center;color:var(--muted);font-size:14px;margin-top:14px}

/* ---------- CTA band ---------- */
.cta-band{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,#eef1ff 0%,#e6ecff 100%);
  border:1px solid #dfe5fb;
  border-radius:28px;padding:66px 40px;text-align:center;color:var(--ink);
  box-shadow:0 24px 50px -30px rgba(79,107,255,.45);
}
.cta-band::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 100% at 100% 0%, rgba(79,107,255,.12) 0%, transparent 55%);
}
.cta-band > *{position:relative}
.cta-band h2{font-size:clamp(24px,3vw,34px);font-weight:800;margin-bottom:8px;color:var(--ink)}
.cta-band p{color:var(--body);margin-bottom:24px}
#download{padding-top:32px}
.cta-band .cta-or{font-size:14px;color:var(--muted);margin:22px 0 14px}
.store-badges{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.store-badges img{height:54px;width:auto}

/* ============================================================
   內頁共用元件（about / faqs / 功能頁 / blog 等沿用）
   ============================================================ */
/* 內頁標題 hero */
.subhero{
  background:linear-gradient(180deg,#eef1ff 0%,#fff 100%);
  padding:80px 20px 64px;text-align:center;
}
.subhero h1{color:var(--ink);font-size:clamp(28px,4vw,40px);font-weight:800;letter-spacing:-.02em;line-height:1.3;margin-bottom:16px}
.subhero p{color:var(--body);font-size:clamp(15px,2vw,18px);max-width:50ch;margin:0 auto}
.subhero .eyebrow{margin-bottom:20px}

/* 置中文字段落 */
.prose{max-width:760px;margin:0 auto;text-align:center}
.prose p{font-size:16px;margin-bottom:16px}
.center{text-align:center}
.mt-28{margin-top:28px}

/* 大圖 / 示意圖 */
.banner-img{max-width:880px;width:100%;margin:34px auto 0;border-radius:18px;box-shadow:var(--shadow-md);display:block}
.media-img{max-width:760px;width:100%;margin:32px auto 0;border-radius:16px;box-shadow:var(--shadow-md);display:block}

/* 問題 / 重點卡（無圖示，純標題+敘述） */
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px}
.info-grid.four{grid-template-columns:repeat(4,1fr)}
.info-grid.contact-qr-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:560px;margin:36px auto 0}
.info-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:30px 26px;box-shadow:var(--shadow-sm)}
.info-card h4{color:var(--ink);font-size:18px;margin-bottom:10px}
.info-card p{font-size:15px;color:var(--body);margin:0}
.qr-code{position:relative;width:180px;max-width:100%;margin:0 auto 12px}
.qr-code img{display:block;width:100%;border-radius:10px}
.qr-brand{position:absolute;top:50%;left:50%;width:32px;height:32px;transform:translate(-50%,-50%);display:grid;place-items:center;border-radius:50%;background:#fff;color:#1877f2;font-size:20px;line-height:1;box-shadow:0 1px 3px rgba(15,23,42,.2);pointer-events:none}

/* pill 標籤列 */
.tag-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:24px 0}
.tag-row span{background:var(--accent-soft);color:var(--accent-d);border-radius:30px;padding:8px 20px;font-size:15px;font-weight:600}

/* 範例圖（含小標） */
.example-block{margin-top:38px;text-align:center}
.example-block h3{color:var(--accent);font-size:20px;margin-bottom:14px}
.example-block img{max-width:760px;width:100%;margin:0 auto;border-radius:14px;box-shadow:var(--shadow-md)}

/* 勾選清單 */
.check-list{list-style:none;margin:0;padding:0}
.check-list li{position:relative;padding-left:30px;margin-bottom:13px;font-size:16px;color:var(--body)}
.check-list li::before{content:"\f00c";font-family:"Font Awesome 5 Free";font-weight:900;position:absolute;left:0;top:4px;color:var(--accent);font-size:13px}
.check-list ul{list-style:none;margin:10px 0 0;padding-left:0}

/* 產品卡 */
.product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;max-width:840px;margin:44px auto 0}
.product-grid.product-grid-single{grid-template-columns:minmax(0,420px);justify-content:center}
.product-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:34px 28px;text-align:center;box-shadow:var(--shadow-sm)}
.product-card .product-img{height:220px;display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.product-card .product-img img{max-height:220px;width:auto}
.product-card h3{color:var(--ink);font-size:22px;margin-bottom:12px}
.product-card .lead{color:var(--accent);font-weight:600;margin-bottom:10px}
.product-card p{font-size:15px;margin-bottom:20px;color:var(--body)}

/* FAQ 手風琴（原生 details/summary） */
.faq-wrap{max-width:820px;margin:0 auto}
.faq-cat{color:var(--accent);font-size:22px;font-weight:700;margin:38px 0 16px;padding-bottom:8px;border-bottom:2px solid var(--border)}
.faq-cat:first-child{margin-top:8px}
.faq{border:1px solid var(--border);border-radius:12px;margin-bottom:10px;overflow:hidden;background:#fff;transition:box-shadow .2s}
.faq[open]{box-shadow:var(--shadow-sm)}
.faq summary{list-style:none;cursor:pointer;padding:16px 48px 16px 20px;position:relative;font-size:16px;font-weight:600;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"\f067";font-family:"Font Awesome 5 Free";font-weight:900;position:absolute;right:18px;top:50%;transform:translateY(-50%);color:var(--accent);font-size:14px}
.faq[open] summary::after{content:"\f068"}
.faq summary:hover{background:var(--bg-soft)}
.faq .faq-body{padding:0 20px 18px;color:var(--body);font-size:15px;line-height:1.85}

/* ---------- 部落格 ---------- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:40px}
.blog-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:28px 26px;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;text-decoration:none}
.blog-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.blog-card h3{color:var(--ink);font-size:18px;margin-bottom:12px;line-height:1.5}
.blog-card p{color:var(--body);font-size:15px;margin:0 0 16px;flex:1}
.blog-card .read-more{color:var(--accent);font-weight:600;font-size:15px}

/* ---------- 文章內頁 ---------- */
.post-article{max-width:760px;margin:0 auto}
.post-article h1{color:var(--ink);font-size:clamp(26px,3.4vw,34px);margin-bottom:28px;line-height:1.4;text-align:center;font-weight:800;letter-spacing:-.02em}
.post-article h2{color:var(--accent);font-size:23px;margin:32px 0 14px}
.post-article h3{color:var(--ink);font-size:19px;margin:24px 0 12px}
.post-article h4{color:var(--ink);font-size:17px;margin:20px 0 10px}
.post-article p{margin:0 0 16px;font-size:16px}
.post-article ul,.post-article ol{margin:0 0 16px 22px}
.post-article li{margin-bottom:8px;font-size:16px}
.post-article blockquote{border-left:4px solid var(--accent);background:var(--bg-soft);margin:0 0 16px;padding:12px 18px;color:var(--ink);border-radius:0 8px 8px 0}
.post-article img{max-width:340px;display:block;margin:24px auto;border-radius:12px;box-shadow:var(--shadow-md)}
.post-article a{color:var(--accent);text-decoration:underline;word-break:break-all}
.post-back{display:inline-block;margin-bottom:24px;color:var(--accent);font-weight:600}

/* ---------- 相容類別（沿用功能頁既有 body 結構，套 SaaS 樣式） ---------- */
.container{max-width:1120px;margin:0 auto;padding:0 24px}
.page-section{padding:72px 0}
.page-section.alt{background:var(--bg-soft)}
.section-title{text-align:center;color:var(--ink);font-size:clamp(24px,3.2vw,34px);font-weight:800;letter-spacing:-.02em;line-height:1.3;margin-bottom:12px}
.section-lead{text-align:center;color:var(--body);font-size:17px;margin:0 auto 6px;max-width:48ch}
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px}
.step-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:30px 26px;text-align:center;box-shadow:var(--shadow-sm)}
.step-card .step-num{width:46px;height:46px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:17px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;box-shadow:0 4px 12px rgba(79,107,255,.35)}
.step-card h4{color:var(--ink);font-size:18px;margin-bottom:8px}
.step-card p{font-size:15px;color:var(--body);margin:0}
.split{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;margin-top:40px}
.split.reverse .split-media{order:2}
.split-media{display:flex;justify-content:center}
.split-media img{max-width:280px;width:100%;border-radius:18px;box-shadow:var(--shadow-md)}
.split-text{flex:1}
.rate-wrap{max-width:620px;margin:0 auto}
.rate-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.rate-table th{background:var(--bg-soft);color:var(--ink);text-align:left;padding:14px 18px;font-weight:600}
.rate-table td{padding:14px 18px;border-top:1px solid var(--border)}
.rate-note{text-align:center;color:var(--muted);font-size:14px;margin-top:14px}
@media(max-width:860px){
  .steps-grid{grid-template-columns:1fr}
  .split,.split.reverse{grid-template-columns:1fr;gap:28px}
  .split.reverse .split-media{order:0}
}

/* ---------- 左側常駐聯絡按鈕（class 用 contactbar 前綴，避免與 Font Awesome 的 .fab 撞名） ---------- */
.contactbar{
  position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:60;
  display:flex;flex-direction:column;gap:12px;
}
.contactbar-btn{
  display:flex;align-items:center;gap:9px;padding:12px 18px 12px 15px;
  border-radius:0 30px 30px 0;color:#fff;font-size:14px;font-weight:600;
  box-shadow:0 6px 18px rgba(15,23,42,.20);white-space:nowrap;
  transition:transform .2s, box-shadow .2s;
}
.contactbar-btn i{font-size:19px;line-height:1}
.contactbar-btn:hover{transform:translateX(5px);box-shadow:0 12px 26px rgba(15,23,42,.30)}
.contactbar-line{background:#06c755}
.contactbar-webcall{background:var(--accent)}
/* 桌機隱藏左側 fixed bar（改由 header 右側按鈕呈現）；手機才顯示 */
@media(min-width:861px){.contactbar{display:none}}
@media(max-width:860px){
  .contactbar{top:auto;bottom:24px;transform:none;gap:10px}
  .contactbar-btn{width:50px;height:50px;padding:0;justify-content:center;border-radius:0 25px 25px 0}
  .contactbar-btn span{display:none}
  .contactbar-btn i{font-size:21px}
}

/* ---------- Scroll reveal（漸進增強：無 JS 時內容仍可見） ---------- */
.reveal{transition:opacity .6s ease, transform .6s ease}
.js .reveal{opacity:0;transform:translateY(18px)}
.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none}
}

/* ---------- Footer ---------- */
.foot{border-top:1px solid var(--border);padding:30px 0;text-align:center;color:var(--muted);font-size:14px}
.site-foot{border-top:1px solid var(--border);background:var(--bg-soft);margin-top:0}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px;padding:54px 24px 36px}
.foot-brand .brand{margin-bottom:12px}
.foot-brand p{font-size:14px;color:var(--body);max-width:30ch}
.foot-col h4{font-size:14px;color:var(--ink);margin-bottom:14px;font-weight:700}
.foot-col a{display:block;font-size:14px;color:var(--body);margin-bottom:10px;transition:color .2s}
.foot-col a:hover{color:var(--accent)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;
  padding:20px 24px;border-top:1px solid var(--border);font-size:13px;color:var(--muted)}
.foot-bottom a{color:var(--muted)}
.foot-bottom a:hover{color:var(--accent)}
@media(max-width:760px){
  .foot-grid{grid-template-columns:1fr 1fr;gap:28px;padding:40px 24px 28px}
  .foot-brand{grid-column:1 / -1}
}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .features-grid{grid-template-columns:repeat(2,1fr)}
  .pricing-grid{grid-template-columns:repeat(2,1fr)}
  .info-grid,.info-grid.four{grid-template-columns:repeat(2,1fr)}
  .blog-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:860px){
  .nav-toggle{display:block}
  .nav-cta{display:none}
  .nav-links{
    display:none;position:absolute;top:66px;left:0;right:0;margin:0;transform:none;
    flex-direction:column;align-items:stretch;gap:0;
    background:#fff;border-top:1px solid var(--border);box-shadow:var(--shadow-md);
  }
  .nav.nav-open .nav-links{display:flex}
  .nav-links a{padding:15px 24px;border-bottom:1px solid var(--border);font-size:16px}
  .nav-links a.active{background:var(--accent-soft)}
  .timeline{flex-direction:column;gap:36px;max-width:340px;margin:50px auto 0}
  .timeline .tl-step{padding:0}
  .timeline .tl-step:not(:last-child)::after{display:none}
  .features-grid,.pricing-grid{grid-template-columns:1fr}
  .info-grid,.info-grid.four,.product-grid,.blog-grid{grid-template-columns:1fr}
  .info-grid.contact-qr-grid{grid-template-columns:1fr;max-width:280px;gap:18px}
  .showcase,.showcase.reverse{grid-template-columns:1fr;gap:30px}
  .showcase.reverse .sc-media{order:0}
  .flow{flex-direction:column;gap:14px;padding:28px 20px}
  .flow-link{width:2px;height:30px;min-width:0;flex:0 0 auto}
  @keyframes travel{0%{top:0;left:50%;opacity:0}10%{opacity:1}90%{opacity:1}100%{top:100%;left:50%;opacity:0}}
  .flow-link::after{left:50%;transform:translate(-50%,-50%)}
  .flow-node{width:auto}
}
