:root {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans TC", sans-serif;
  color: #26342f;
  background: #f8f7f1;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; }
a { color: #37634e; text-underline-offset: 3px; }
a:hover { color: #1f4b38; }
a:focus-visible { outline: 3px solid #d6a960; outline-offset: 4px; border-radius: 2px; }

.page-shell { width: min(100% - 48px, 1180px); margin: 0 auto; }
.site-header { min-height: 88px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #e2e5dc; }
.brand { display: inline-flex; align-items: center; gap: 12px; color: #263b32; font-size: 19px; font-weight: 740; letter-spacing: -.025em; text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; background: #3b654d; color: #fff; font-family: Georgia, serif; font-size: 23px; line-height: 1; }
.header-label { color: #6a786f; font-size: 13px; letter-spacing: .12em; }

.hero { padding: 84px 0 72px; max-width: 800px; }
.eyebrow { margin: 0 0 22px; color: #568269; font-size: 13px; font-weight: 700; letter-spacing: .22em; }
h1 { margin: 0; font-family: Georgia, "Noto Serif TC", serif; font-size: clamp(42px, 6vw, 72px); font-weight: 500; letter-spacing: -.055em; line-height: 1.2; }
.lead { margin: 29px 0 0; color: #53625a; font-size: clamp(17px, 2vw, 19px); line-height: 1.95; }
.updated { margin: 24px 0 0; color: #86928a; font-size: 13px; }

.content-grid { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: clamp(48px, 8vw, 112px); border-top: 1px solid #e2e5dc; padding: 44px 0 100px; }
.table-of-contents { position: sticky; top: 28px; align-self: start; display: flex; flex-direction: column; gap: 15px; font-size: 13px; }
.table-of-contents p { margin: 0 0 8px; color: #9aa69c; font-size: 12px; font-weight: 700; letter-spacing: .12em; }
.table-of-contents a { color: #64746a; text-decoration: none; }
.table-of-contents a:hover { color: #315c43; text-decoration: underline; }
.policy-content { max-width: 750px; }
.policy-section { position: relative; padding: 9px 0 38px; margin-bottom: 34px; border-bottom: 1px solid #e2e5dc; scroll-margin-top: 32px; }
.policy-section:last-child { margin-bottom: 0; border: 0; }
.section-number { color: #7d9f89; font-size: 12px; font-weight: 700; letter-spacing: .14em; }
h2 { margin: 10px 0 19px; font-family: Georgia, "Noto Serif TC", serif; font-size: clamp(26px, 3vw, 33px); font-weight: 500; letter-spacing: -.025em; }
h3 { margin: 0 0 8px; color: #314c3c; font-size: 15px; font-weight: 700; }
.policy-section p { margin: 0 0 17px; color: #53625a; font-size: 15px; line-height: 1.95; }
.policy-section p:last-child { margin-bottom: 0; }
.permission-list { display: grid; gap: 13px; }
.permission-list > div { padding: 19px 22px; border: 1px solid #e1e7dd; border-radius: 14px; background: #fffefa; }
.permission-list p { margin: 0; }
code { padding: 2px 5px; border-radius: 4px; background: #eaf0e8; color: #356148; font-size: .9em; overflow-wrap: anywhere; }
.limited-use { padding: 19px 22px; border-left: 3px solid #8eac91; background: #f0f3ea; border-radius: 0 10px 10px 0; }
.contact-placeholder { display: inline-block; padding: 13px 18px; border: 1px dashed #b88d4e; border-radius: 8px; background: #fff9ed; color: #8a602d !important; font-weight: 600; }
.site-footer { display: flex; justify-content: space-between; gap: 16px; padding: 23px 0 38px; border-top: 1px solid #e2e5dc; color: #8a968d; font-size: 13px; }
.site-footer a { color: #5e7866; text-decoration: none; }

@media (max-width: 740px) {
  .page-shell { width: min(100% - 36px, 580px); }
  .site-header { min-height: 72px; }
  .hero { padding: 68px 0 56px; }
  .content-grid { display: block; padding: 27px 0 60px; }
  .table-of-contents { position: static; flex-direction: row; flex-wrap: wrap; gap: 10px 18px; padding-bottom: 28px; margin-bottom: 20px; border-bottom: 1px solid #e2e5dc; }
  .table-of-contents p { flex-basis: 100%; }
  .policy-section { margin-bottom: 26px; padding-bottom: 31px; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media print {
  :root { background: white; }
  .page-shell { width: 100%; }
  .site-header { min-height: 50px; }
  .hero { padding: 35px 0; }
  .content-grid { display: block; padding-top: 24px; }
  .table-of-contents, .site-footer a { display: none; }
  .policy-section { break-inside: avoid; }
}
