/* ===== 色票（穩重藍灰、帶柔和漸層） ===== */
:root{
  --brand: #1f3b63;
  --accent: #3e6ea1;
  --accent-300:#6a9fd1;
  --bg: #ffffff;
  --bg-soft:#f8fafc;
  --text:#1f2937;
  --muted:#6b7280;
  --line:#e5e7eb;
}

/* ===== 基礎排版 ===== */
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);}
body{
  font: 400 17px/1.7 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
}

h1,h2,h3,h4{line-height:1.3;margin:1rem 0 .5rem;font-weight:600;}
p{margin:0 0 1rem;}

/* 只重設「不該有圓點」的區塊，保留內容本文的清單圓點 */
nav ul,.site-footer ul,.card ul,.post-list{list-style:none;margin:0;padding:0;}
/* 內文清單：圓點、縮排一致 */
.content ul{list-style:disc;margin:0 0 1rem 1.25rem;padding:0;}

/* ===== 容器與主內容留白 ===== */
.container{max-width:1080px;margin:0 auto;padding:0 24px;}
.content{padding:24px 0 40px;}

/* ===== 英雄區（漸層） ===== */
.hero{
  background: linear-gradient(180deg, var(--accent-300) 0%, var(--bg) 85%);
  padding: 68px 20px 56px;
  text-align:center;
  color:#fff;
}
.hero h1{font-size:42px;margin-bottom:.4em;color:#fff;}
.hero p{max-width:720px;margin:0 auto;color:#eaf2fb;font-size:18px;}

/* ===== 卡片格線 ===== */
.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:22px;
  margin-top:20px;
}
.card{
  background:var(--bg-soft);
  border:1px solid var(--line);
  border-radius:14px;
  padding:18px;
  box-shadow:0 3px 10px rgba(0,0,0,.06);
  transition:transform .15s ease, box-shadow .2s ease;
}
.card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.08);}
.card h3{color:var(--brand);margin-top:0;}
.card a{color:var(--accent);font-weight:600;text-decoration:none;}
.card a:hover{text-decoration:underline;}

/* ===== 輕量按鈕（線框，hover 上色） ===== */
.button{
  display:inline-block;
  padding:.55em 1.1em;
  border:1.5px solid var(--accent);
  color:var(--accent);
  background:transparent;
  border-radius:10px;
  font-weight:600;
  margin:.25em .4em .25em 0;
  transition: background .15s ease, color .15s ease, transform .05s ease;
}
.button:hover{background:linear-gradient(90deg,var(--accent) 0%,var(--accent-300) 100%);color:#fff;text-decoration:none;}

/* ===== Footer ===== */
.site-footer{border-top:1px solid var(--line);color:var(--muted);}
.site-footer .container{padding:14px 24px;font-size:14px;text-align:left;}
.site-footer a{color:var(--accent);}

/* ===== RWD ===== */
@media (max-width:768px){
  .container{padding:0 18px;}
  .hero{padding:48px 16px 36px;}
  .hero h1{font-size:34px;}
}
/* ===== Bottom safe area & spacing so buttons/footer never get covered ===== */
:root {
  /* 最小底部安全距，行動瀏覽器有工具列時會用到 */
  --safe-bottom: max(16px, env(safe-area-inset-bottom, 0px));
}

body {
  padding-bottom: var(--safe-bottom);
}

main.content {
  /* 給主內容更充足的底部留白，避免貼到螢幕邊或被工具列蓋住 */
  padding-bottom: calc(72px + var(--safe-bottom));
}

/* ===== Button row: 自動換行＋間距，不會互相擠或超出畫面 ===== */
.btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 12px 0 24px;
}

.btn-row .button {
  margin: 0; /* 交給 gap 控制間距 */
}

/* 卡片和底部之間留出固定距離，避免卡片陰影與底部元素擠在一起 */
.card-grid { margin-bottom: 16px; }

/* Footer 與頁面底部保持安全距 */
.site-footer .container {
  padding-bottom: calc(14px + var(--safe-bottom));
}
/* ===== Top Nav (clean, semi-transparent like v1) ===== */
.site-nav{
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.72);
  backdrop-filter: saturate(160%) blur(12px);
  -webkit-backdrop-filter: saturate(160%) blur(12px);
  border-bottom: 1px solid rgba(229,231,235,.7); /* --line */
}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding: 12px 0;
}
.brand{
  font-weight: 800; letter-spacing:.2px; color: inherit; text-decoration: none;
}
.nav-links{
  display:flex; gap: 18px; margin:0; padding:0; list-style:none;
}
.nav-links a{
  color: inherit; text-decoration:none; padding: 6px 2px; border-bottom:2px solid transparent;
}
.nav-links a:hover{ color: var(--accent); border-bottom-color: var(--accent); }
.nav-links a[aria-current="page"]{ color: var(--accent); border-bottom-color: var(--accent); }

/* Language toggle */
.nav-lang a{
  display:inline-block; padding:6px 10px; border-radius:8px;
  color: var(--accent); border:1px solid var(--accent); text-decoration:none;
}
.nav-lang a:hover{ background: linear-gradient(90deg,var(--accent) 0%, var(--accent-300) 100%); color:#fff; }

/* Mobile: links 换行或缩排，避免擠爆 */
@media (max-width: 820px){
  .nav-links{ gap:12px; font-size: 15px; }
}
@media (max-width: 640px){
  .nav-inner{ flex-wrap: wrap; row-gap: 8px; }
  .nav-links{ order:3; width:100%; justify-content:space-between; }
  .nav-lang{ order:2; margin-left:auto; }
}

/* === Brand palette override (append-only, do NOT delete above) === */
:root {
  --brand: #B6C6CF;   /* 主色（藍灰） */
  --accent: #D47854;  /* 強調（珊瑚橘） */
  --text: #47423F;    /* 文字深灰 */
  --bg: #EEEFEF;      /* 背景淺灰 */
  --muted: #A09D95;   /* 次要文字 */
}

/* 全站字色 / 背景：以新色取代 */
body {
  background-color: var(--bg);
  color: var(--text);
  font-family: "Noto Sans TC", "Forum", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Microsoft JhengHei", sans-serif;
}

/* 連結顏色以 accent 為主，hover 回 brand 作柔和反差 */
a { color: var(--accent); }
a:hover { color: var(--brand); }

/* 導覽列：維持半透明，但用品牌漸層鋪底 */
.site-nav {
  background: linear-gradient(to right, var(--brand), #cdd9de);
  color: var(--text);
}

/* 按鈕：以 accent 實心，hover 變 brand（會覆蓋先前的線框版） */
.button, button {
  background-color: var(--accent);
  color: #fff;
  border-radius: 6px;
  padding: 0.6em 1.2em;
  border: 1px solid transparent;
}
.button:hover, button:hover {
  background-color: var(--brand);
  color: #fff;
  text-decoration: none;
}
/* Blog list – softer meta & spacing */
.post-list { list-style: none; margin: 0; padding: 0; }
.post-list li {
  margin: .25rem 0 1rem;
  padding: .25rem 0 .75rem;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.post-list li:last-child { border-bottom: 0; }

.post-list a {
  color: var(--text);
  text-decoration: none;
  font-weight: 600;
}
.post-list a:hover { color: var(--accent); text-decoration: underline; }

/* 日期、分類、tag 等輔助文字 */
.post-list .meta,
.post-list small,
.post-list time {
  color: var(--muted);
  font-size: 0.925em;
}

/* 摘要行：自動截斷兩行（若有） */
.post-list .excerpt {
  color: var(--text);
  opacity: .9;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* Footer – softer tone */
.site-footer { color: var(--muted); }
.site-footer a {
  color: var(--muted);
  text-decoration: none;
  border-bottom: 1px dotted rgba(0,0,0,.2);
}
.site-footer a:hover {
  color: var(--accent);
  border-bottom-color: var(--accent);
  text-decoration: none;
}
/* Nav – smooth hover & current indicator */
.site-nav .nav-links a {
  transition: color .2s ease, border-color .2s ease;
  border-bottom: 2px solid transparent;
}
.site-nav .nav-links a:hover {
  color: var(--accent);
  border-bottom-color: var(--accent);
}
.site-nav .nav-links a[aria-current="page"] {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

/* 語言切換一致化 */
.nav-lang a {
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}

/* 可及性：鍵盤焦點清楚可見 */
a:focus-visible, .button:focus-visible, button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: 6px;
}

.site-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.6rem 2rem;
  background: linear-gradient(to right, var(--brand), #cdd9de);
}

.nav-links {
  display: flex;
  gap: 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav-links a {
  color: var(--text);
  text-decoration: none;
  font-weight: 500;
}

.nav-links a:hover {
  color: var(--accent);
}

.nav-lang {
  margin-left: auto;
}

.nav-lang a {
  border: 1px solid var(--accent);
  border-radius: 4px;
  padding: 0.25em 0.6em;
  font-size: 0.9em;
  color: var(--accent);
  text-decoration: none;
}

.nav-lang a:hover {
  background-color: var(--accent);
  color: white;
}

/* === Navigation alignment & bilingual fine-tuning === */

/* 導覽列主容器：保持水平對齊 */
.site-nav .nav-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* 品牌文字：稍微放大、加字距 */
.site-nav .brand {
  font-weight: 600;
  letter-spacing: 0.04em;
  font-size: 1.1rem;
  margin-right: 1rem;
  white-space: nowrap;
}

/* 導覽項目排列間距與字體設定 */
.site-nav .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-nav .nav-links a {
  text-decoration: none;
  color: var(--text);
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  transition: color .2s ease, border-color .2s ease;
  border-bottom: 2px solid transparent;
  padding-bottom: 0.2rem;
}

/* hover / active */
.site-nav .nav-links a:hover,
.site-nav .nav-links a[aria-current="page"] {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

/* 語言切換按鈕區 */
.nav-lang {
  display: flex;
  align-items: center;
  margin-left: auto;
}

.nav-lang a {
  display: inline-block;
  padding: 0.25em 0.6em;
  border: 1px solid var(--accent);
  border-radius: 4px;
  color: var(--accent);
  font-size: 0.9rem;
  font-weight: 500;
  text-decoration: none;
  transition: all .2s ease;
}

.nav-lang a:hover {
  background-color: var(--accent);
  color: #fff;
}

/* RWD：手機上讓導覽自動換行置中 */
@media (max-width: 768px) {
  .site-nav .nav-container {
    flex-direction: column;
    align-items: center;
  }
  .site-nav .nav-links {
    justify-content: center;
  }
  .nav-lang {
    margin: 0.5rem 0 0;
  }
}
/* === Global responsive side paddings === */
:root{
  /* 頁面左右安全留白（會隨寬度自適應） */
  --page-xpad: clamp(16px, 4vw, 28px);
  --page-max: 1080px;
}

.container{
  max-width: var(--page-max);
  margin: 0 auto;
  padding-inline: var(--page-xpad);
}

/* 導覽列：用 Grid 固定三欄 → 品牌左、連結中、語言右 */
.site-nav{ width: 100%; }
.site-nav .nav-container{
  max-width: var(--page-max);
  margin: 0 auto;
  padding-inline: var(--page-xpad);
  display: grid;
  grid-template-columns: 1fr auto 1fr; /* 左 中 右 */
  align-items: center;
  column-gap: 16px;
}

/* 三格對齊 */
.site-nav .brand{ grid-column: 1; justify-self: start; white-space: nowrap; }
.site-nav .nav-links{ grid-column: 2; justify-self: center; display:flex; gap:1.2rem; flex-wrap:wrap; list-style:none; margin:0; padding:0; }
.site-nav .nav-lang{ grid-column: 3; justify-self: end; }

/* 小螢幕時：把連結搬到第二行中間，語言仍在右上 */
@media (max-width: 840px){
  .site-nav .nav-container{
    grid-template-columns: 1fr auto; /* 上排：品牌 | 語言 */
    grid-auto-rows: auto;
    row-gap: 6px;
  }
  .site-nav .brand{ grid-column: 1; }
  .site-nav .nav-lang{ grid-column: 2; }
  .site-nav .nav-links{
    grid-column: 1 / -1;   /* 第二行置中 */
    justify-content: center;
  }
}

/* 讓主要內容底部不要被貼齊邊界（再加一點空氣感） */
main.content{ padding-inline: var(--page-xpad); }

/* ====== Navigation Bar Styling ====== */
.site-nav {
  background: linear-gradient(to right, var(--brand), #cdd9de);
  color: var(--text);
  padding: 0.6rem 1.5rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  position: sticky;
  top: 0;
  z-index: 1000;
}

.nav-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  margin: 0 auto;
}

/* 品牌名稱 */
.nav-brand .site-title {
  font-family: "Forum", "Noto Sans TC", sans-serif;
  font-size: 1.4rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--text);
  transition: color 0.2s ease;
}
.nav-brand .site-title:hover {
  color: var(--accent);
}

/* 導覽連結 */
.nav-links {
  list-style: none;
  display: flex;
  gap: 1.2rem;
  margin: 0;
  padding: 0;
}

.nav-links a {
  text-decoration: none;
  color: var(--text);
  font-weight: 500;
  transition: color 0.2s ease;
}

.nav-links a:hover {
  color: var(--accent);
}

/* 語言切換 */
.nav-lang {
  margin-left: auto;
}

.nav-lang a {
  text-decoration: none;
  color: var(--accent);
  font-weight: 600;
  padding: 0.4em 0.8em;
  border: 1px solid var(--accent);
  border-radius: 5px;
  transition: all 0.25s ease;
}

.nav-lang a:hover {
  background-color: var(--accent);
  color: white;
}

/* 響應式 */
@media (max-width: 768px) {
  .nav-container {
    flex-direction: column;
    align-items: flex-start;
  }
  .nav-links {
    flex-wrap: wrap;
    margin-top: 0.5rem;
  }
  .nav-lang {
    align-self: flex-end;
    margin-top: 0.5rem;
  }
}
/* ========= Brand Soft Theme – paste at the END of style.css ========= */

/* 1) 全站基調：更柔和的背景與舒適留白 */
:root {
  --brand: #B6C6CF;
  --brand-2: #cdd9de;  /* 輔色漸層尾端 */
  --accent: #D47854;
  --text: #47423F;
  --bg: #F5F6F7;       /* 比 #EEEFEF 再亮一點，看起來更清新 */
  --muted: #A09D95;
}

html { scroll-behavior: smooth; }
body {
  background:
    radial-gradient(80rem 50rem at -10% -10%, rgba(182,198,207,0.18), transparent 55%),
    radial-gradient(70rem 45rem at 110% -20%, rgba(212,120,84,0.08), transparent 60%),
    var(--bg);
  color: var(--text);
  line-height: 1.8;
}

/* 2) 基本文字層級與間距 */
h1 { font-size: clamp(1.8rem, 1.3rem + 2vw, 2.6rem); line-height: 1.25; margin: 0.6em 0 0.3em; }
h2 { font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem); margin: 1.2em 0 0.4em; }
h3 { font-size: clamp(1.15rem, 1rem + 0.6vw, 1.35rem); margin: 1em 0 0.4em; }
p  { margin: 0.75em 0; }

/* 3) 容器留白（避免內容貼邊） */
main, .page-content, .wrapper {
  max-width: 1000px;
  margin: 0 auto;
  padding: 1.2rem clamp(1rem, 3vw, 2rem);
}

/* 4) 導覽列質感：柔和漸層、陰影、細字重 */
.site-nav {
  background: linear-gradient(90deg, var(--brand), var(--brand-2));
  color: var(--text);
  padding: 0.7rem 1.2rem;
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
  position: sticky; top: 0; z-index: 1000;
}
.nav-container { max-width: 1100px; margin: 0 auto; display: flex; align-items: center; gap: 1rem; }
.nav-brand .site-title { font-weight: 650; letter-spacing: 0.2px; text-decoration: none; color: var(--text); }
.nav-links { list-style: none; display: flex; gap: clamp(0.6rem, 2vw, 1.2rem); margin: 0; padding: 0; }
.nav-links a { text-decoration: none; color: var(--text); opacity: 0.9; }
.nav-links a:hover { opacity: 1; color: var(--accent); }
.nav-lang { margin-left: auto; }
.nav-lang a {
  text-decoration: none; color: var(--accent); font-weight: 600;
  padding: 0.35em 0.8em; border: 1px solid var(--accent); border-radius: 999px;
  transition: background-color .25s ease, color .25s ease, transform .15s ease;
}
.nav-lang a:hover { background-color: var(--accent); color: #fff; transform: translateY(-1px); }

/* 5) 主按鈕：圓角膠囊、微浮起 */
button, .button, .btn {
  background-color: var(--accent); color: #fff; border: none; border-radius: 999px;
  padding: 0.65em 1.15em; font-weight: 600; text-decoration: none; display: inline-block;
  box-shadow: 0 8px 18px rgba(212,120,84,0.22);
  transition: transform .15s ease, box-shadow .2s ease, background-color .2s ease;
}
button:hover, .button:hover, .btn:hover {
  background-color: #c56b4b; transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(212,120,84,0.28);
}

/* 6) 卡片與網格：讓首頁三格更有形 */
.card-grid {
  display: grid; gap: clamp(0.9rem, 2.5vw, 1.3rem);
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  margin: 1.4rem 0 0.6rem;
}
.card {
  background: #fff; border: 1px solid rgba(0,0,0,0.04); border-radius: 16px;
  padding: clamp(1rem, 2.5vw, 1.4rem);
  box-shadow: 0 12px 28px rgba(20,42,63,0.06);
  transition: transform .2s ease, box-shadow .25s ease, border-color .25s ease;
  animation: fadeInUp .6s ease both;
}
.card:hover { transform: translateY(-2px); box-shadow: 0 16px 32px rgba(20,42,63,0.1); border-color: rgba(0,0,0,0.06); }
.card h3 { margin-top: 0.2rem; }

/* 7) 英文/中文標題區 – 英雄區塊（若首頁有 .hero） */
.hero {
  text-align: center;
  padding: clamp(3rem, 6vw, 5rem) clamp(1rem, 3vw, 2rem);
  background: linear-gradient(180deg, rgba(182,198,207,0.35), rgba(182,198,207,0.08));
  border-radius: 24px;
  box-shadow: 0 20px 40px rgba(20,42,63,0.06);
  margin: 0.6rem 0 1.4rem;
}

/* 8) 細節：列表點、分隔線、圖片圓角 */
ul { padding-left: 1.2rem; }
hr { border: none; height: 1px; background: linear-gradient(90deg, transparent, rgba(0,0,0,0.08), transparent); margin: 1.5rem 0; }
img { border-radius: 12px; }

/* 9) 進場微動畫（淡入上浮） */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* 10) 手機優化：內距與對齊 */
@media (max-width: 768px) {
  .nav-container { flex-wrap: wrap; row-gap: 0.4rem; }
  .nav-links { flex-wrap: wrap; }
  .nav-lang { margin-left: 0; }
}
