.policy-main { max-width: 1120px; padding-block: 72px 112px; }
.policy-intro { margin-bottom: 64px; }
.policy-intro h1 { font-size: var(--display-size); text-wrap: wrap; }
.policy-date { margin-top: 24px; font-size: var(--ui-size); color: var(--secondary); }
.policy-lead { max-width: 66ch; margin-top: 40px; font-size: var(--body-size); line-height: var(--body-leading); }
.policy-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2.4fr); gap: 80px; align-items: start; }
.policy-contents { position: sticky; top: calc(var(--header-height) + 40px); max-height: calc(100svh - var(--header-height) - 64px); overflow-y: auto; }
.policy-contents p { margin-bottom: 16px; font-size: var(--caption-size); color: var(--secondary); }
.policy-contents a { display: block; padding-block: 10px; font-size: var(--ui-size); line-height: 1.5; }
.policy-contents a:hover { text-decoration: underline; text-underline-offset: 4px; }
.policy-copy { min-width: 0; max-width: 66ch; }
.policy-copy section { scroll-margin-top: calc(var(--header-height) + 32px); }
.policy-copy section + section { margin-top: 56px; }
.policy-copy h2 { font-size: 1.5rem; line-height: 1.35; letter-spacing: -.01em; text-wrap: pretty; margin-bottom: 20px; }
.policy-copy p,.policy-copy address { font-size: 1.25rem; line-height: 1.65; font-style: normal; }
.policy-copy p + p,.policy-copy address + p { margin-top: 20px; }
.policy-lead a,.policy-copy a { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
.policy-lead a:hover,.policy-copy a:hover { color: var(--raspberry); }
.policy-footer { padding-block: 24px; }
.policy-footer > .shell { display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; }
.policy-footer .footer-bottom { margin-top: 0; }
@media(max-width:1023px) {
  .policy-layout { gap: 48px; grid-template-columns: minmax(0,1fr) minmax(0,2fr); }
}
@media(max-width:767px) {
  .policy-main { padding-block: 40px 72px; }
  .policy-intro { margin-bottom: 48px; }
  .policy-date { margin-top: 16px; }
  .policy-lead { margin-top: 32px; }
  .policy-layout { display: block; }
  .policy-contents { display: none; }
  .policy-copy section + section { margin-top: 40px; }
  .policy-copy h2 { font-size: 1.375rem; margin-bottom: 16px; }
  .policy-copy p,.policy-copy address { font-size: 1.125rem; }
  .policy-footer > .shell { flex-direction: column; align-items: start; gap: 16px; }
}
@media print {
  .site-header,.skip-link,.policy-contents,.policy-footer { display: none; }
  .policy-main { width: 100%; max-width: none; padding: 0; }
  .policy-layout { display: block; }
  .policy-copy { max-width: none; }
  .policy-copy h2 { break-after: avoid; }
  .policy-copy p { orphans: 3; widows: 3; }
}
