/* ============================================================
   財團法人牙周病防治學術基金會 官方網站樣式
   這份 CSS 會被四個 HTML 頁面共用（index.html + pages/ 底下三個頁面）
   ============================================================ */

/* :root 是一個特殊選擇器，代表整份文件的最頂層（<html> 元素）。
   在這裡定義的 --變數名稱 稱為「CSS 自訂屬性（CSS Custom Properties）」，
   之後可以用 var(--變數名稱) 在任何地方重複使用，
   好處是以後要改主題色，只要改這裡一個地方，全站顏色就會一起更新。 */
:root {
  --green-primary: #2f8f5e;   /* 主要綠色，用在按鈕、連結、標題等強調處 */
  --green-dark: #1f6b45;      /* 較深的綠色，用在文字、footer 底色 */
  --green-light: #eaf6ef;     /* 很淺的綠色，用在區塊底色 */
  --green-accent: #7fc9a3;    /* 點綴色，用在底線、hover 效果 */
  --text-main: #2b2b2b;       /* 一般內文文字顏色（接近黑但不是純黑，閱讀較舒服） */
  --text-muted: #5c6b64;      /* 次要文字顏色，例如說明文字、標語 */
  --bg-main: #fbfdfc;         /* 整站的底色，接近白色但帶一點點綠 */
  --border-soft: #dcece3;     /* 淺色邊框，用在卡片、分隔線 */
  --max-width: 1080px;        /* 內容區塊的最大寬度，避免螢幕太寬時文字被拉得很長不好讀 */
}

/* 通用重置：瀏覽器預設會把 padding、border 另外加到元素寬度之外，
   設定 box-sizing: border-box 後，寬度計算會包含 padding 和 border，比較好抓版面尺寸 */
* {
  box-sizing: border-box;
}

/* 讓點擊錨點連結（例如 #section）時會平滑捲動，而不是瞬間跳過去 */
html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  /* 字型優先順序：先試思源黑體(繁體)，找不到再試蘋方/微軟正黑體，最後才用系統預設字型 */
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;
  color: var(--text-main);
  background: var(--bg-main);
  line-height: 1.8; /* 行高 1.8 倍字級大小，中文閱讀建議行距寬一點比較舒服 */
}

img {
  max-width: 100%; /* 圖片絕不超過容器寬度，避免圖片把版面撐壞（RWD 基本技巧） */
  display: block;
}

a {
  color: var(--green-dark);
  text-decoration: none; /* 先移除底線，需要底線效果時在個別規則另外加 */
}

a:hover {
  text-decoration: underline;
}

/* .container 是常見的排版技巧：把內容限制在 --max-width 以內，
   並用 margin: 0 auto 讓它在螢幕置中，左右各留一點 padding 避免貼齊邊緣 */
.container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 20px;
}

/* ============================================================
   頁首 / 導覽列 (Header / Nav)
   ============================================================ */

.site-header {
  background: #fff;
  border-bottom: 1px solid var(--border-soft);
  /* sticky：捲動頁面時，頁首會黏在螢幕最上方，不會被捲走 */
  position: sticky;
  top: 0;
  z-index: 10; /* 數字越大，疊在越上層，確保頁首蓋在其他內容之上 */
}

.nav-bar {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 12px 20px;
  /* flex 排版：讓 Logo 區塊和選單並排、置中對齊，並自動分散到左右兩側 */
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px; /* 子元素之間的間距，取代早期用 margin 手動留白的作法 */
}

.brand img {
  width: 44px;
  height: 44px;
}

.brand-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--green-dark);
  line-height: 1.3;
}

.nav-links {
  display: flex;
  gap: 28px;
  list-style: none; /* 移除 <ul> 預設的項目符號（圓點） */
  margin: 0;
  padding: 0;
}

.nav-links a {
  color: var(--text-main);
  font-weight: 500;
  padding: 6px 2px;
  border-bottom: 2px solid transparent; /* 先預留底線空間，hover 時才「換顏色」，避免版面跳動 */
}

/* :hover 是滑鼠移上去時的樣式；
   [aria-current="page"] 是屬性選擇器，對應 HTML 裡 aria-current="page" 的連結，
   也就是「目前所在頁面」那個連結，讓使用者知道自己在哪一頁 */
.nav-links a:hover,
.nav-links a[aria-current="page"] {
  color: var(--green-dark);
  border-bottom-color: var(--green-accent);
  text-decoration: none;
}

/* 漢堡選單按鈕：預設隱藏，只有在小螢幕（見下方 @media）才會顯示 */
.nav-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
}

.nav-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--green-dark);
  margin: 5px 0;
}

/* ============================================================
   Hero 區塊（首頁最上方的主視覺）
   ============================================================ */

.hero {
  /* 從上到下由淺綠漸層到網站底色，製造柔和的視覺效果 */
  background: linear-gradient(180deg, var(--green-light) 0%, var(--bg-main) 100%);
  padding: 56px 0 40px;
  text-align: center;
}

.hero img.hero-logo {
  width: 96px;
  height: 96px;
  margin: 0 auto 20px;
}

.hero h1 {
  font-size: 1.9rem;
  color: var(--green-dark);
  margin: 0 0 8px;
}

.hero p.tagline {
  color: var(--text-muted);
  margin: 0;
}

/* ============================================================
   一般內容區塊
   ============================================================ */

.section {
  padding: 48px 0;
}

.section h2 {
  color: var(--green-dark);
  font-size: 1.5rem;
  border-left: 5px solid var(--green-accent); /* 標題左邊的色塊，常見的視覺強調手法 */
  padding-left: 12px;
  margin-bottom: 20px;
}

.section h3 {
  color: var(--green-primary);
  font-size: 1.15rem;
  margin-top: 32px;
}

/* .prose 用在大段文字內容（例如籌備緣起、條文），
   統一段落間距、清單縮排，讓長文章讀起來比較舒服 */
.prose p {
  margin: 0 0 16px;
  color: var(--text-main);
}

.prose ol,
.prose ul {
  padding-left: 1.5em;
}

.prose li {
  margin-bottom: 6px;
}

/* ============================================================
   影片嵌入（衛教訊息頁面的 YouTube 影片）
   ============================================================ */

.video-wrapper {
  /* aspect-ratio 是現代 CSS 屬性，直接指定寬高比例（16:9 是常見的影片比例），
     瀏覽器會自動算出高度，不需要再用早期常見的「padding-bottom 百分比」技巧 */
  aspect-ratio: 16 / 9;
  max-width: 100%;
  margin: 24px 0;
  border-radius: 12px;
  overflow: hidden; /* 讓 iframe 的直角被外層的圓角邊框裁切掉 */
  box-shadow: 0 8px 20px rgba(47, 143, 94, 0.12);
}

.video-wrapper iframe {
  /* iframe 會填滿 .video-wrapper 的整個範圍（寬高皆 100%），
     實際比例則由外層的 aspect-ratio 決定 */
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* ============================================================
   首頁的三張導覽卡片
   ============================================================ */

.card-grid {
  display: grid;
  /* auto-fit + minmax：這是響應式排版常用技巧。
     每張卡片最少 220px、最多平分剩餘空間；螢幕變窄時會自動換行、減少每列卡片數，
     不需要另外寫 @media 就能達到基本的 RWD 效果 */
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
  margin-top: 24px;
}

.card {
  background: #fff;
  border: 1px solid var(--border-soft);
  border-radius: 12px;
  padding: 24px;
  /* transition：讓 hover 時的陰影和位移變化「平滑過渡」，而不是瞬間跳變 */
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.card:hover {
  box-shadow: 0 8px 20px rgba(47, 143, 94, 0.12);
  transform: translateY(-2px); /* 滑鼠移上去時卡片微微上浮，增加互動感 */
}

.card h3 {
  margin-top: 0;
  color: var(--green-dark);
}

.card a.card-link {
  display: inline-block;
  margin-top: 10px;
  font-weight: 600;
}

/* ============================================================
   佔位頁面樣式（衛教訊息 / 學會活動尚未提供內容時使用）
   ============================================================ */

.placeholder {
  text-align: center;
  padding: 64px 20px;
  color: var(--text-muted);
  border: 1px dashed var(--border-soft); /* 虛線邊框，視覺上提示「這是暫時內容」 */
  border-radius: 12px;
  background: var(--green-light);
}

/* ============================================================
   頁尾（Footer）
   ============================================================ */

.site-footer {
  background: var(--green-dark);
  color: #eafaf1;
  margin-top: 48px;
}

.footer-inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 28px 20px;
  display: flex;
  flex-wrap: wrap; /* 螢幕太窄時，FB 連結和版權文字會自動換行，而不是被擠壓變形 */
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.footer-inner a {
  color: #eafaf1;
  font-weight: 600;
}

.footer-inner .copyright {
  font-size: 0.85rem;
  color: #cdeada;
}

/* ============================================================
   響應式設計 (Responsive / RWD)
   @media (max-width: 720px) 代表「當螢幕寬度 720px 以下時，套用以下樣式」，
   也就是手機、小平板會看到的版面
   ============================================================ */

@media (max-width: 720px) {
  .nav-links {
    /* 手機版把選單改成從頁首下方「掉下來」的整排選單，預設是隱藏的 */
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    flex-direction: column;
    gap: 0;
    border-bottom: 1px solid var(--border-soft);
    display: none;
  }

  /* .open 這個 class 是由 src/main.ts 用 JavaScript 動態加上/移除的，
     加上 .open 才會讓上面的選單變成 display: flex（顯示出來） */
  .nav-links.open {
    display: flex;
  }

  .nav-links li {
    border-top: 1px solid var(--border-soft);
  }

  .nav-links a {
    display: block;
    padding: 14px 20px;
  }

  .nav-toggle {
    display: block; /* 手機版才顯示漢堡選單按鈕 */
  }
}
