/* 3-BASE */
body {
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  color: var(--color-text);
  background: var(--color-bg);
}
/* 標題用 balance：讓多行標題的每一行長度平均，避免最後一行只剩兩三個字的孤行。
   段落用 pretty：只調整最後幾行，避免結尾單獨掉一個詞。 */
h1,h2,h3,h4,h5,h6 {
  line-height: var(--lh-tight);
  font-weight: var(--fw-bold);
  text-wrap: balance;
  line-break: strict;            /* 中文標點不落在行首 */
}
p {
  text-wrap: pretty;
  line-break: strict;
}
h1 { font-size: var(--fs-3xl); }
h2 { font-size: var(--fs-2xl); }
h3 { font-size: var(--fs-xl); }
h4 { font-size: var(--fs-lg); }
p { line-height: var(--lh-base); }
a { color: var(--color-brand); transition: color var(--ease-base); }
a:hover { color: var(--color-brand-hover); }
:focus-visible { outline: 2px solid var(--color-brand); outline-offset: 2px; }
/* 頁首與頁尾是品牌紅底，紅色焦點框在上面等於看不見（對比 1:1），改用白框。 */
.site-header :focus-visible,
.site-footer :focus-visible { outline-color: #fff; }
