/* Tabbie 官網 —— 色票與 app DesignTokens 同步（淺色 + 濃縮咖啡深色） */
:root{
  --paper:#F8F3EB; --wash:#F2D9C4; --ink:#2A2218; --muted:#9A8E7C; --faint:#A09484;
  --terra:#C25E3C; --pos:#5A8268; --earth:#8A6E52; --sky:#6E8CA8; --honey:#C49A52;
  --card:rgba(255,255,255,.55); --raised:rgba(255,255,255,.82); --control:rgba(255,255,255,.7);
  --stroke:rgba(42,34,24,.10); --shadow:rgba(42,34,24,.08);
  --serif:Georgia,"Songti TC","Noto Serif TC",serif;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang TC","Helvetica Neue",sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,monospace;
}
/* 官網鎖淺色（使用者定案）：不跟系統深色。app 內的深色模式不受影響。 */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans);
     line-height:1.75; font-size:16px; -webkit-font-smoothing:antialiased;}
a{color:var(--terra); text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1020px; margin:0 auto; padding:0 22px}

/* ── header ── */
header{position:sticky; top:0; z-index:50; backdrop-filter:blur(14px);
       background:color-mix(in srgb, var(--paper) 82%, transparent);
       border-bottom:.5px solid var(--stroke);}
.nav{display:flex; align-items:center; gap:20px; padding:13px 22px; max-width:1020px; margin:0 auto;}
.brand{font-family:var(--serif); font-size:21px; color:var(--ink);}
.brand:hover{text-decoration:none}
.brand b{color:var(--terra); font-weight:500}
.brand span{font-weight:500}
.nav .links{margin-left:auto; display:flex; gap:18px; align-items:center; font-size:14px;}
.nav .links a{color:var(--muted)}
.nav .links a:hover{color:var(--terra); text-decoration:none}
.lang{border:.5px solid var(--stroke); border-radius:999px; padding:4px 12px; background:var(--control); color:var(--ink)!important; font-size:13px;}

/* ── hero ── */
.hero{position:relative; overflow:hidden; padding:72px 0 40px;}
.hero::before{content:""; position:absolute; inset:0 0 auto; height:420px; pointer-events:none;
  background:linear-gradient(to bottom, var(--wash), transparent);}
.hero .wrap{position:relative; display:flex; gap:48px; align-items:center; flex-wrap:wrap;}
.hero-copy{flex:1 1 380px; max-width:520px;}
.hero h1{font-family:var(--serif); font-weight:500; font-size:clamp(30px,4.6vw,44px);
         line-height:1.3; margin:0 0 16px; text-wrap:balance;}
.hero h1 em{font-style:normal; color:var(--terra);}
.hero p.lede{font-size:17px; color:var(--muted); margin:0 0 26px; max-width:30em;}
.cta-row{display:flex; gap:14px; align-items:center; flex-wrap:wrap;}
.cta{display:inline-block; background:var(--terra); color:#fff; font-weight:600; font-size:15px;
     padding:12px 26px; border-radius:999px; box-shadow:0 6px 18px color-mix(in srgb, var(--terra) 35%, transparent);}
.cta:hover{text-decoration:none; filter:brightness(1.06);}
.cta-note{font-size:13px; color:var(--faint);}
.hero-phone{flex:0 1 300px; margin:0 auto;}

/* ── 區塊 ── */
section{padding:64px 0 8px;}
.eyebrow{font-size:12px; letter-spacing:.2em; color:var(--terra); font-weight:600; margin:0 0 8px;}
h2{font-family:var(--serif); font-weight:500; font-size:clamp(24px,3.4vw,32px); margin:0 0 12px; text-wrap:balance;}
.feature{display:flex; gap:52px; align-items:center; flex-wrap:wrap;}
.feature.flip{flex-direction:row-reverse;}
.feature .copy{flex:1 1 360px; max-width:480px;}
.feature .copy p{color:var(--muted); margin:0 0 14px;}
.feature ul{margin:0; padding:0; list-style:none;}
.feature li{padding:7px 0 7px 26px; position:relative; font-size:15px;}
.feature li::before{content:""; position:absolute; left:2px; top:15px; width:12px; height:7px;
  border-left:2.2px solid var(--pos); border-bottom:2.2px solid var(--pos); transform:rotate(-48deg);}
.feature .shot{flex:0 1 280px; margin:0 auto;}

/* ── 假手機（佔位，之後換真截圖）── */
.phone{width:272px; border-radius:38px; padding:9px; background:#3a3128;
       box-shadow:0 22px 44px var(--shadow); margin:0 auto;}
.screen{border-radius:30px; overflow:hidden; position:relative; background:var(--paper);
        font-size:12px; height:520px; border:.5px solid var(--stroke);}
.screen .swash{position:absolute; inset:0 0 auto; height:170px; pointer-events:none;
  background:linear-gradient(to bottom, var(--wash), transparent);}
.screen .in{position:relative; padding:26px 15px 0; height:100%;}
img.shot-img{width:272px; border-radius:38px; box-shadow:0 22px 44px var(--shadow); display:block; margin:0 auto;}

/* 假手機內部零件 */
.p-eyebrow{font-size:9.5px; letter-spacing:.14em; color:var(--muted);}
.p-hero{font-family:var(--serif); font-weight:500; font-size:29px; margin:2px 0;}
.p-sub{font-size:10px; color:var(--pos); margin-bottom:12px;}
.p-card{background:var(--card); border:.5px solid var(--stroke); border-radius:15px;
        box-shadow:0 3px 9px var(--shadow); padding:11px 12px; margin-bottom:11px;}
.p-row{display:flex; align-items:center; gap:8px; padding:7px 0; border-bottom:.5px solid var(--stroke);}
.p-row:last-child{border-bottom:none;}
.p-dot{width:23px; height:23px; border-radius:50%; flex:none; display:flex; align-items:center; justify-content:center;
       font-size:10px; color:var(--ink); opacity:.9;}
.p-main{flex:1; min-width:0; line-height:1.35;}
.p-title{font-size:11.5px;}
.p-cap{font-size:9px; color:var(--muted);}
.p-amt{font-family:var(--mono); font-size:11px; margin-left:auto;}
.neg{color:var(--terra)} .posi{color:var(--pos)}
.p-label{font-size:10px; font-weight:600; letter-spacing:.06em; color:var(--earth); margin:10px 2px 5px;}
.p-chiprow{display:flex; gap:6px; flex-wrap:wrap;}
.p-chip{background:var(--control); border:.5px solid var(--stroke); border-radius:11px;
        padding:4px 9px; font-size:9.5px;}
.p-chip .m{font-family:var(--mono); color:var(--muted);}
.p-keypad{display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-top:10px;}
.p-key{background:var(--control); border:.5px solid var(--stroke); border-radius:11px; text-align:center;
       padding:11px 0; font-size:15px; font-weight:500;}
.p-key.op{color:var(--terra); background:color-mix(in srgb, var(--wash) 55%, transparent);}
.p-key.eq{grid-column:span 2; color:#fff; background:var(--terra); border:none;}
.p-bar{height:6px; border-radius:4px; background:var(--stroke); overflow:hidden; margin:6px 0 3px;}
.p-bar i{display:block; height:100%; border-radius:4px; background:var(--terra); }
.p-donut{width:120px; height:120px; border-radius:50%; margin:8px auto;
  background:conic-gradient(var(--honey) 0 46%, var(--pos) 46% 68%, var(--terra) 68% 86%, var(--sky) 86% 96%, var(--earth) 96% 100%);
  position:relative;}
.p-donut::after{content:""; position:absolute; inset:24%; border-radius:50%; background:var(--paper);}
.p-donut b{position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-weight:500; font-size:15px; z-index:1;}
.p-cal{display:grid; grid-template-columns:repeat(7,1fr); gap:3px; margin-top:8px;}
.p-day{aspect-ratio:.9; border-radius:7px; background:var(--card); border:.5px solid var(--stroke);
  font-size:8px; padding:2px 0 0 4px; color:var(--muted);}
.p-day small{display:block; font-size:6.5px; font-family:var(--mono);}
.p-day.hot{background:color-mix(in srgb, var(--terra) 14%, transparent);}
.p-stamp{display:inline-block; transform:rotate(-8deg); border:1.6px solid var(--terra); color:var(--terra);
  border-radius:5px; font-size:9px; font-weight:600; letter-spacing:.2em; padding:2px 7px;}
.p-ticket{border:1.2px dashed var(--stroke); border-radius:12px; padding:9px 11px; margin-bottom:9px;
  background:var(--card);}
.p-ticket .codes{display:flex; align-items:center; gap:8px; font-family:var(--mono); font-size:15px; font-weight:600;}
.p-ticket .arc{flex:1; border-top:1.4px dashed var(--terra); position:relative; top:-3px;}
.p-avatars{display:flex; margin:6px 0;}
.p-ava{width:26px; height:26px; border-radius:50%; border:2px solid var(--paper); margin-left:-6px;
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:10px; font-weight:600;}
.p-ava:first-child{margin-left:0}

/* ── 功能格 ── */
.grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(225px,1fr)); gap:16px; margin-top:26px;}
.cell{background:var(--card); border:.5px solid var(--stroke); border-radius:18px; padding:20px;
      box-shadow:0 4px 12px var(--shadow);}
.cell .ic{width:38px; height:38px; border-radius:11px; display:flex; align-items:center; justify-content:center;
  margin-bottom:12px; font-size:17px; color:#fff;}
.cell h3{font-size:16px; margin:0 0 6px; font-weight:600;}
.cell p{font-size:13.5px; color:var(--muted); margin:0;}

/* ── 定價 ── */
.plans{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px; margin-top:26px; align-items:stretch;}
.plan{background:var(--raised); border:.5px solid var(--stroke); border-radius:22px; padding:28px;
      box-shadow:0 8px 24px var(--shadow); display:flex; flex-direction:column;}
.plan.pro{border:1.5px solid var(--terra);}
.plan .tier{font-size:13px; letter-spacing:.12em; color:var(--muted); font-weight:600;}
.plan .price{font-family:var(--serif); font-weight:500; font-size:34px; margin:8px 0 2px;}
.plan .price small{font-size:14px; color:var(--muted); font-family:var(--sans);}
.plan .per{font-size:13px; color:var(--faint); margin-bottom:14px;}
.plan ul{margin:0 0 8px; padding:0; list-style:none; font-size:14.5px;}
.plan li{display:flex; align-items:center; gap:11px; padding:7px 0;}
.plan .trial{margin-top:auto; font-size:13px; color:var(--pos); font-weight:600;}

/* ── FAQ ── */
.faq{max-width:720px;}
details{border-bottom:.5px solid var(--stroke); padding:4px 0;}
summary{cursor:pointer; font-weight:600; font-size:15.5px; padding:14px 0; list-style:none; position:relative; padding-right:28px;}
summary::-webkit-details-marker{display:none}
summary::after{content:"+"; position:absolute; right:4px; top:12px; color:var(--terra); font-size:19px; font-weight:400;}
details[open] summary::after{content:"−";}
details p{margin:0 0 16px; color:var(--muted); font-size:14.5px;}

/* ── footer ── */
footer{margin-top:80px; border-top:.5px solid var(--stroke); padding:34px 0 48px;
  background:color-mix(in srgb, var(--wash) 26%, var(--paper));}
footer .wrap{display:flex; gap:22px; align-items:center; flex-wrap:wrap; font-size:13.5px; color:var(--muted);}
footer a{color:var(--muted)}
footer a:hover{color:var(--terra)}
footer .cr{margin-left:auto;}

@media (max-width:720px){
  .hero{padding-top:44px}
  section{padding-top:48px}
  .feature{gap:30px}
  footer .cr{margin-left:0}
}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }

/* ── 數字帶 ── */
.stats{display:flex; flex-wrap:wrap; gap:10px 44px; justify-content:center; padding:34px 22px 10px;}
.stat{text-align:center;}
.stat b{display:block; font-family:var(--serif); font-weight:500; font-size:34px; color:var(--terra); line-height:1.2;}
.stat span{font-size:13px; color:var(--muted);}

/* ── Tabbie 的一天（收據時間軸）── */
.day-receipt{max-width:430px; margin:30px auto 0; background:var(--raised); border:.5px solid var(--stroke);
  box-shadow:0 14px 34px var(--shadow); padding:26px 26px 30px; position:relative;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 9px),97.5% 100%,95% calc(100% - 9px),92.5% 100%,90% calc(100% - 9px),87.5% 100%,85% calc(100% - 9px),82.5% 100%,80% calc(100% - 9px),77.5% 100%,75% calc(100% - 9px),72.5% 100%,70% calc(100% - 9px),67.5% 100%,65% calc(100% - 9px),62.5% 100%,60% calc(100% - 9px),57.5% 100%,55% calc(100% - 9px),52.5% 100%,50% calc(100% - 9px),47.5% 100%,45% calc(100% - 9px),42.5% 100%,40% calc(100% - 9px),37.5% 100%,35% calc(100% - 9px),32.5% 100%,30% calc(100% - 9px),27.5% 100%,25% calc(100% - 9px),22.5% 100%,20% calc(100% - 9px),17.5% 100%,15% calc(100% - 9px),12.5% 100%,10% calc(100% - 9px),7.5% 100%,5% calc(100% - 9px),2.5% 100%,0 calc(100% - 9px));}
.day-receipt .rhead{text-align:center; font-family:var(--mono); font-size:12px; letter-spacing:.18em;
  color:var(--muted); border-bottom:1.4px dashed var(--stroke); padding-bottom:12px; margin-bottom:6px;}
.day-item{display:flex; gap:14px; padding:13px 0; border-bottom:1px dashed var(--stroke); align-items:baseline;}
.day-item:last-of-type{border-bottom:1.4px dashed var(--stroke);}
.day-item time{font-family:var(--mono); font-size:12.5px; color:var(--terra); flex:none; width:44px;}
.day-item .what{flex:1; font-size:14.5px; line-height:1.55;}
.day-item .what small{display:block; font-size:12px; color:var(--muted);}
.day-item .amt{font-family:var(--mono); font-size:13px; color:var(--ink); flex:none;}
.day-total{display:flex; justify-content:space-between; padding-top:14px; font-size:13.5px; color:var(--muted);}
.day-total b{font-family:var(--serif); color:var(--ink); font-weight:500;}

/* ── 三步上手 ── */
.steps{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; margin-top:28px; counter-reset:step;}
.step{background:var(--card); border:.5px solid var(--stroke); border-radius:18px; padding:24px 22px;
  box-shadow:0 4px 12px var(--shadow); position:relative;}
.step::before{counter-increment:step; content:counter(step);
  font-family:var(--serif); font-size:30px; color:var(--terra); display:block; margin-bottom:8px;}
.step h3{font-size:16.5px; margin:0 0 6px; font-weight:600;}
.step p{font-size:13.5px; color:var(--muted); margin:0;}

/* ── 隱私信任 ── */
.trust{background:color-mix(in srgb, var(--wash) 32%, var(--paper)); border-block:.5px solid var(--stroke);
  padding:64px 0; margin-top:64px;}
.trust .grid{margin-top:22px;}
.trust .cell{background:var(--raised);}

/* ── CTA 帶 ── */
.cta-band{text-align:center; padding:64px 22px 8px;}
.cta-band h2{margin-bottom:8px;}
.cta-band p{color:var(--muted); margin:0 0 22px;}

/* ── 畫面一覽 ── */
.gallery{display:flex; gap:22px; overflow-x:auto; padding:26px 4px 18px; scroll-snap-type:x mandatory;}
.g-item{flex:none; scroll-snap-align:center; text-align:center; margin:0;}
.g-item .phone{width:232px; border-radius:34px;}
.g-item .screen{height:452px; font-size:11px;}
.g-item figcaption{font-size:13px; color:var(--muted); margin-top:12px;}

/* ── 免費 vs Premium 對比表 ── */
.cmp{width:100%; border-collapse:collapse; margin-top:30px; font-size:14.5px;
  background:var(--card); border:.5px solid var(--stroke); border-radius:18px; overflow:hidden;
  box-shadow:0 4px 12px var(--shadow);}
.cmp th,.cmp td{padding:12px 16px; border-top:.5px solid var(--stroke); text-align:center;}
.cmp th{font-size:13px; letter-spacing:.08em; color:var(--muted); border-top:none;}
.cmp th:first-child,.cmp td:first-child{text-align:left;}
.cmp td:first-child{color:var(--ink);}
.cmp .y{color:var(--pos); font-weight:600;}
.cmp .n{color:var(--faint);}
.cmp .pro-col{color:var(--terra); font-weight:600;}
.cmpbox{overflow-x:auto;}

/* ── 開發者的話 ── */
.dev-note{max-width:620px; margin:64px auto 0; padding:30px 34px; background:var(--card);
  border:.5px solid var(--stroke); border-radius:20px; box-shadow:0 6px 16px var(--shadow);}
.dev-note p{color:var(--muted); font-size:15px; margin:0 0 12px;}
.dev-note .sig{font-family:var(--serif); font-size:17px; color:var(--ink); margin:0;}


/* ── nav 下載鈕 ── */
.dl{display:inline-flex; align-items:center; gap:6px; background:var(--terra); color:#fff!important;
  font-size:13px; font-weight:600; padding:6px 14px; border-radius:999px;}
.dl:hover{text-decoration:none; filter:brightness(1.07);}
.dl svg{width:12px; height:14px; fill:#fff; display:block; margin-top:-1px;}

/* ── 淡圓底字符 icon（同 app 分類圖示語言）── */
.fi{width:27px; height:27px; border-radius:50%; flex:none; font-style:normal;
  display:inline-flex; align-items:center; justify-content:center; font-size:13px;
  background:color-mix(in srgb, var(--c) 16%, transparent); color:var(--c);}
.cmp .fi{width:22px; height:22px; font-size:11px; margin-right:9px; vertical-align:-6px;}
.cmp td:first-child{white-space:nowrap;}
@media (max-width:720px){ .cmp td:first-child{white-space:normal;} }
