/* 里隼官網共用樣式：部落格與內頁使用（首頁目前仍是 index.html 內嵌樣式，改版時再合併） */
:root{
  --ink:#171A20;
  --ink-2:#5A6270;
  --paper:#FFFFFF;
  --paper-2:#F6F7F9;
  --hairline:#E5E7EB;
  --blue:#1657E0;
  --green:#06C755;
  font-size:16px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{
  font-family:"Noto Sans TC",-apple-system,"PingFang TC","Microsoft JhengHei",sans-serif;
  background:var(--paper);color:var(--ink);line-height:1.85;
  -webkit-font-smoothing:antialiased;
}
.num{font-family:Inter,"Noto Sans TC",sans-serif;font-variant-numeric:tabular-nums}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{max-width:1080px;margin:0 auto;padding:0 24px}
.kicker{
  display:block;font-family:Inter,"Noto Sans TC",sans-serif;font-size:.8rem;font-weight:700;
  letter-spacing:.18em;color:var(--blue);margin-bottom:14px;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:14px 30px;font-weight:700;font-size:.95rem;cursor:pointer;
  border:1px solid var(--ink);border-radius:4px;background:var(--ink);color:#fff;
  transition:background .18s,border-color .18s,color .18s;white-space:nowrap;
}
.btn:hover{background:#000}
.btn-line{background:var(--green);border-color:var(--green)}
.btn-line:hover{background:#05B14C;border-color:#05B14C}
.btn-outline{background:transparent;color:var(--ink)}
.btn-outline:hover{background:var(--paper-2)}
.btn-sm{padding:9px 20px;font-size:.88rem}
.line-ic{width:19px;height:19px;fill:currentColor;flex:none}

/* ---------- Nav ---------- */
.site-nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--hairline);
}
.nav-inner{max-width:1080px;margin:0 auto;padding:0 24px;height:66px;display:flex;align-items:center;justify-content:space-between}
.logo{line-height:1.25;display:flex;align-items:center;gap:10px}
.logo img{width:36px;height:36px;object-fit:contain}
.logo b{font-size:1.15rem;font-weight:900;letter-spacing:.12em}
.logo small{display:block;font-family:Inter,sans-serif;font-size:.58rem;font-weight:700;letter-spacing:.3em;color:var(--ink-2)}
.nav-links{display:flex;gap:32px;align-items:center;font-size:.92rem;font-weight:500}
.nav-links a:not(.btn){color:var(--ink-2);transition:color .18s;padding:4px 0;border-bottom:2px solid transparent}
.nav-links a:not(.btn):hover,.nav-links a.active{color:var(--ink);border-bottom-color:var(--ink)}
.nav-toggle{display:none;background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--ink)}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);padding:30px 0}
.footer-inner{max-width:1080px;margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.footer-inner p{font-size:.82rem;color:#8A91A0}
.footer-links{display:flex;gap:22px;font-size:.82rem;color:#A6ADBB}
.footer-links a:hover{color:#fff}
.footer-legal{max-width:1080px;margin:14px auto 0;padding:0 24px 88px;font-size:.74rem;line-height:1.7;color:#8A91A0}
.footer-legal a{color:#A6ADBB;text-decoration:underline;text-underline-offset:3px}
.footer-legal a:hover{color:#fff}

/* ---------- Floating LINE ---------- */
.fab-line{
  position:fixed;right:20px;bottom:20px;z-index:99;
  display:flex;align-items:center;gap:9px;
  background:var(--green);color:#fff;font-weight:700;font-size:.92rem;
  padding:13px 22px;border-radius:999px;
  box-shadow:0 6px 22px rgba(6,199,85,.4);
  transition:transform .2s,box-shadow .2s;
}
.fab-line:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(6,199,85,.5)}
.fab-line svg{width:21px;height:21px;fill:#fff}

/* ---------- Page head（文章列表、404） ---------- */
.page-head{padding:150px 0 48px;border-bottom:1px solid var(--hairline)}
.page-head h1{font-size:clamp(2rem,4.6vw,2.8rem);font-weight:900;line-height:1.35}
.page-head p{color:var(--ink-2);margin-top:14px;max-width:620px}

/* ---------- 文章列表 ---------- */
.post-list{padding-top:24px;padding-bottom:104px}
.post-item{display:block;padding:34px 0;border-bottom:1px solid var(--hairline)}
.post-item .cat{font-size:.8rem;font-weight:700;letter-spacing:.08em;color:var(--blue)}
.post-item h2{font-size:clamp(1.25rem,2.4vw,1.55rem);font-weight:900;line-height:1.5;margin:6px 0 10px;transition:color .18s}
.post-item:hover h2{color:var(--blue)}
.post-item p{color:var(--ink-2);font-size:.95rem;max-width:760px}
.post-item .meta{font-size:.82rem;color:var(--ink-2);margin-top:12px}
.empty{padding:72px 0 120px;color:var(--ink-2)}
.post-item.has-cover{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:36px;align-items:center}
.post-item .thumb img{width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover;border-radius:6px;border:1px solid var(--hairline)}
.related .post-item.has-cover{grid-template-columns:minmax(0,1fr) 180px;gap:24px}
.post-cover{margin-top:32px}
.post-cover img{width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover;border-radius:8px;border:1px solid var(--hairline)}

/* ---------- 單篇文章 ---------- */
.post-wrap{max-width:760px;margin:0 auto;padding:0 24px}
.crumbs{padding-top:110px;font-size:.84rem;color:var(--ink-2)}
.crumbs a{border-bottom:1px solid var(--hairline)}
.crumbs a:hover{color:var(--blue);border-color:var(--blue)}
.post-head{padding:28px 0 32px;border-bottom:1px solid var(--hairline)}
.post-head h1{font-size:clamp(1.8rem,4.2vw,2.5rem);font-weight:900;line-height:1.45;letter-spacing:.01em}
.post-head .lede{color:var(--ink-2);font-size:1.06rem;margin-top:16px}
.post-head .meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:22px;font-size:.86rem;color:var(--ink-2)}
.post-head .meta img{width:32px;height:32px;border-radius:50%;object-fit:cover}
.post-head .meta b{color:var(--ink);font-weight:700}

.toc{margin:32px 0 0;padding:22px 26px;background:var(--paper-2);border-radius:6px}
.toc b{display:block;font-size:.85rem;letter-spacing:.08em;margin-bottom:8px}
.toc ol{padding-left:1.3em;font-size:.93rem;color:var(--ink-2)}
.toc li{margin:4px 0}
.toc a:hover{color:var(--blue)}

.prose{padding:12px 0 8px;font-size:1.06rem;line-height:1.95}
.prose > *{margin-top:1.15em}
.prose h2{font-size:1.5rem;font-weight:900;line-height:1.5;margin-top:2.2em;padding-top:.2em}
.prose h3{font-size:1.2rem;font-weight:700;line-height:1.55;margin-top:1.8em}
.prose h4{font-size:1.05rem;font-weight:700;margin-top:1.5em}
.prose a{color:var(--blue);border-bottom:1px solid rgba(22,87,224,.35)}
.prose a:hover{border-bottom-color:var(--blue)}
.prose strong{font-weight:700}
.prose ul,.prose ol{padding-left:1.4em}
.prose li{margin:.35em 0}
.prose li > ul,.prose li > ol{margin-top:.3em}
.prose blockquote{border-left:4px solid var(--blue);background:var(--paper-2);padding:14px 20px;color:var(--ink);border-radius:0 6px 6px 0}
.prose blockquote > * + *{margin-top:.6em}
.prose img{border-radius:6px;border:1px solid var(--hairline);margin:0 auto}
.prose figure figcaption,.prose .caption{font-size:.85rem;color:var(--ink-2);text-align:center;margin-top:8px}
.prose hr{border:none;border-top:1px solid var(--hairline);margin:2.4em 0}
.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:var(--paper-2);padding:2px 6px;border-radius:4px}
.prose pre{background:#0F1218;color:#E6E8EC;padding:18px 20px;border-radius:6px;overflow-x:auto;font-size:.88rem;line-height:1.7}
.prose pre code{background:none;padding:0;color:inherit}
.table-wrap{overflow-x:auto}
.prose table{width:100%;border-collapse:collapse;font-size:.95rem;line-height:1.7}
.prose th,.prose td{border:1px solid var(--hairline);padding:10px 14px;text-align:left;vertical-align:top}
.prose th{background:var(--paper-2);font-weight:700}
.prose th:first-child,.prose td:first-child{min-width:5.5em}

.author{display:grid;grid-template-columns:72px 1fr;gap:20px;align-items:start;margin-top:56px;padding:28px;border:1px solid var(--hairline);border-radius:8px}
.author img{width:72px;height:72px;border-radius:50%;object-fit:cover}
.author .name{font-weight:900;font-size:1.05rem}
.author .role{font-size:.85rem;color:var(--blue);font-weight:700;margin-bottom:6px}
.author p{font-size:.92rem;color:var(--ink-2);line-height:1.8}
.author .links{display:flex;gap:16px;margin-top:10px;font-family:Inter,sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.05em}
.author .links a{color:var(--ink-2);border-bottom:1px solid var(--hairline)}
.author .links a:hover{color:var(--blue);border-color:var(--blue)}

.cta{margin-top:28px;padding:34px 32px;background:var(--ink);color:#fff;border-radius:8px}
.cta h2{font-size:1.35rem;font-weight:900;line-height:1.5}
.cta p{color:#A6ADBB;font-size:.95rem;margin:10px 0 22px}
.cta .btns{display:flex;gap:12px;flex-wrap:wrap}
.cta .btn-outline{color:#fff;border-color:rgba(255,255,255,.4)}
.cta .btn-outline:hover{background:rgba(255,255,255,.08)}

.related{margin:64px 0 104px}
.related > b{display:block;font-size:.85rem;letter-spacing:.12em;color:var(--ink-2);margin-bottom:6px}
.related .post-item{padding:22px 0}
.related .post-item h2{font-size:1.12rem}

/* ---------- 404 ---------- */
.notfound{padding-bottom:120px}
.notfound .btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}

/* ---------- RWD ---------- */
@media (max-width:640px){
  .nav-links{
    position:fixed;top:66px;left:0;right:0;flex-direction:column;gap:0;align-items:stretch;
    background:#fff;border-bottom:1px solid var(--hairline);
    max-height:0;overflow:hidden;transition:max-height .3s;
  }
  .nav-links.open{max-height:420px}
  .nav-links a:not(.btn){padding:15px 24px;border-top:1px solid var(--hairline);border-bottom:none}
  .nav-links .btn{margin:14px 24px}
  .nav-toggle{display:block}
  .page-head{padding:120px 0 36px}
  .crumbs{padding-top:96px}
  .post-item.has-cover,.related .post-item.has-cover{grid-template-columns:1fr;gap:16px}
  .post-item .thumb{order:-1}
  .prose{font-size:1.02rem}
  .author{grid-template-columns:1fr;padding:22px}
  .cta{padding:28px 22px}
  .fab-line span{display:none}
  .fab-line{padding:14px}
}
