.terms-policy { max-width:800px; margin:0 auto; padding:40px 24px 64px; line-height:1.75; overflow-wrap:anywhere }
.terms-policy .policy-navigation { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:40px }
.terms-policy .language-button { border:1px solid #d8d1e9; border-radius:999px; background:#fffdf9; color:#5144ba; min-width:52px; min-height:44px; padding:8px 12px }
.terms-policy .language-button:hover { background:#efecff }
.terms-policy h1 { font-size:clamp(2rem,6vw,3rem); line-height:1.2 }
.terms-policy h2 { font-size:1.3rem; margin-top:32px; line-height:1.4; scroll-margin-top:24px }
.terms-policy .policy-date { color:#5b5770 }
.terms-policy a { color:#5144ba; text-decoration:underline; text-underline-offset:3px }
.terms-policy a:focus-visible, .terms-policy button:focus-visible { outline:3px solid #6353d4; outline-offset:4px }
.terms-policy aside { background:#efecff; border-left:3px solid #6353d4; border-radius:4px 12px 12px 4px; padding:16px 20px; margin:24px 0 }
.terms-policy .policy-contents { display:flex; flex-wrap:wrap; gap:4px 20px; border-bottom:1px solid var(--line); padding-bottom:20px }
.terms-policy .policy-contents a { display:inline-flex; align-items:center; min-height:44px }
.terms-policy ul { padding-left:22px }
.terms-policy li + li { margin-top:12px }
.terms-policy footer { border-top:1px solid var(--line); padding:24px 0 0; margin-top:40px; display:flex; flex-wrap:wrap; gap:16px; font-size:inherit }
@media (max-width:480px) { .terms-policy { padding:24px 18px 48px } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto } }
