:root {
  --ivory: #f6f1e7;
  --paper: #fffdf8;
  --ink: #40382e;
  --muted: #786d5d;
  --gold: #b5914c;
  --gold-soft: #dfcfaa;
  --line: rgba(181, 145, 76, 0.28);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 10% 0%, rgba(223, 207, 170, .28), transparent 30rem),
    var(--ivory);
  font-family: "Noto Serif TC", "PingFang TC", serif;
  line-height: 1.9;
}

a { color: inherit; }

.site-header {
  width: min(1080px, calc(100% - 40px));
  min-height: 86px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
}

.brand img {
  display: block;
  width: 148px;
  height: auto;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 26px;
}

.language-switcher {
  display: flex;
  align-items: center;
  color: var(--gold-soft);
}

.language-switcher button {
  padding: 6px 8px;
  color: #8f826f;
  background: none;
  border: 0;
  border-bottom: 1px solid transparent;
  font: inherit;
  font-size: .86rem;
  cursor: pointer;
}

.language-switcher button[aria-pressed="true"] {
  color: #755d2e;
  border-bottom-color: var(--gold);
}

.language-switcher button:hover { color: var(--gold); }

.back-link,
.closing a {
  color: #755d2e;
  text-decoration: none;
  border-bottom: 1px solid var(--gold-soft);
  font-size: .92rem;
}

.back-link:hover,
.closing a:hover { color: var(--gold); }

main {
  width: min(820px, calc(100% - 40px));
  margin: 0 auto;
}

.hero {
  padding: 92px 0 54px;
  text-align: center;
}

.eyebrow {
  margin: 0 0 12px;
  color: var(--gold);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .24em;
}

h1 {
  margin: 0;
  font-family: "LXGW WenKai TC", "Noto Serif TC", serif;
  font-size: clamp(2.55rem, 7vw, 4.25rem);
  font-weight: 700;
  letter-spacing: .1em;
}

[lang="en"] { font-family: Georgia, "Times New Roman", serif; }

[lang="en"] h1 {
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: .03em;
}

[lang="en"] .policy-card h2 { letter-spacing: .01em; }

.intro {
  max-width: 630px;
  margin: 26px auto 0;
  color: var(--muted);
  font-size: 1.04rem;
}

.updated {
  margin: 18px 0 0;
  color: #938777;
  font-size: .86rem;
}

.policy-card {
  overflow: hidden;
  background: rgba(255, 253, 248, .94);
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: 0 22px 65px rgba(76, 60, 35, .08);
}

.policy-card > section {
  padding: 38px 46px;
  border-bottom: 1px solid var(--line);
}

.policy-card > section:last-child { border-bottom: 0; }

h2 {
  margin: 0 0 13px;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: .04em;
}

h2 span {
  display: inline-block;
  width: 38px;
  color: var(--gold);
  font-size: .72rem;
  letter-spacing: .08em;
  vertical-align: .12em;
}

.policy-card p {
  margin: 0;
  color: var(--muted);
}

.contact {
  text-align: center;
  background: linear-gradient(135deg, rgba(223, 207, 170, .18), rgba(255, 253, 248, .2));
}

.contact .eyebrow { margin-bottom: 4px; }
.contact h2 { margin-bottom: 10px; }

.contact a {
  display: inline-block;
  margin-top: 12px;
  color: #755d2e;
  font-weight: 600;
  text-decoration-color: var(--gold-soft);
  text-underline-offset: 5px;
}

.closing {
  padding: 68px 0 74px;
  text-align: center;
}

.closing p {
  margin: 0;
  color: var(--muted);
}

.closing strong {
  display: block;
  margin: 12px 0 22px;
  color: var(--gold);
  font-family: "LXGW WenKai TC", "Noto Serif TC", serif;
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: .14em;
}

footer {
  padding: 28px 20px 34px;
  color: #928777;
  text-align: center;
  border-top: 1px solid var(--line);
  font-size: .82rem;
}

@media (max-width: 640px) {
  .site-header {
    width: min(100% - 28px, 1080px);
    min-height: 72px;
  }

  .brand img { width: 122px; }
  .header-actions { gap: 10px; }
  .language-switcher button { padding: 5px 4px; font-size: .78rem; }
  .back-link { display: none; }

  main { width: min(100% - 24px, 820px); }
  .hero { padding: 66px 10px 40px; }
  .intro { font-size: .96rem; }

  .policy-card { border-radius: 18px; }
  .policy-card > section { padding: 30px 24px; }

  h2 span {
    display: block;
    width: auto;
    margin-bottom: 3px;
  }
}
