/* ==================== 全站基礎與共用元件 ==================== */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--color-ink); background: var(--color-paper); font: var(--font-body)/var(--line-body) "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif; }
body.modal-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.section { padding: var(--section-space) max(var(--page-gutter), calc((100% - var(--content-width)) / 2)); }
.section-heading { max-width: 820px; margin: 0 auto 60px; text-align: center; }
.section-heading .eyebrow, .eyebrow { margin: 0; color: var(--color-gold); font-size: var(--font-small); font-weight: 900; letter-spacing: .2em; }
.section-heading h2 { margin: 12px 0 18px; color: var(--color-red-dark); font: 900 var(--font-h2)/1.25 "Noto Serif TC", serif; }
.section-heading > p:last-child { margin: 0; }
.section-note { margin: 26px 0 0; color: var(--color-muted); font-size: var(--font-small); text-align: center; }
.button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; padding: 0 22px; border: 1px solid transparent; border-radius: var(--radius-button); font-size: 15px; font-weight: 900; }
.button.primary { color: var(--color-white); background: var(--color-red); box-shadow: 0 10px 25px rgba(152, 37, 43, .25); }
.button.secondary { color: var(--color-red); background: rgba(255,255,255,.82); border-color: rgba(152,37,43,.25); }
.button:hover { transform: translateY(-2px); }
.button:focus-visible, a:focus-visible, button:focus-visible { outline: 3px solid #e4ad45; outline-offset: 3px; }
[hidden] { display: none !important; }
