header .logo { text-decoration: none; }
.policy-page { width: calc(100% - 48px); max-width: 800px; margin: 0 auto; padding: calc(var(--header-height, 96px) + 48px) 0 100px; overflow-wrap: anywhere; }
.policy-page h1 { font-size: clamp(26px, 3.5vw, 40.6px); font-weight: 600; letter-spacing: -.045em; text-align: center; }
.policy-date { margin: 18px 0 56px; color: var(--mut); font-size: .82rem; text-align: center; }
.policy-page section + section { margin-top: 40px; padding-top: 32px; }
.policy-page h2 { margin-bottom: 16px; font-size: 22px; font-weight: 600; letter-spacing: -.035em; }
.policy-page section p { font-size: .94rem; line-height: 1.9; }
.policy-page p + p { margin-top: 14px; }
.policy-page a { color: var(--gd); text-underline-offset: 4px; }
@media (max-width: 560px) {
  .policy-page { width: calc(100% - 36px); padding-top: calc(var(--header-height, 64px) + 40px); padding-bottom: 64px; }
  .policy-page h2 { font-size: 20px; }
  .policy-date { margin-bottom: 40px; }
}
@media print { .policy-page { width: 100%; max-width: none; padding: 0; } .policy-page h2 { break-after: avoid; } }
.policy-table { width: 100%; margin: 20px 0; border-collapse: collapse; font-size: .88rem; line-height: 1.7; }
.policy-table caption { padding-bottom: 8px; font-weight: 600; text-align: left; }
.policy-table th, .policy-table td { padding: 11px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.policy-table th { width: 8.5em; background: var(--soft); font-weight: 550; }
@media (max-width: 560px) { .policy-table { font-size: .82rem; } .policy-table th, .policy-table td { padding: 10px 8px; } .policy-table th { width: 6.5em; } }
