.skip-link { position: absolute; left: 16px; top: -100px; z-index: 100; padding: 12px 18px; background: white; border: 2px solid var(--blue); border-radius: 8px; }
.skip-link:focus { top: 12px; }
.policy { max-width: 840px; padding-top: 52px; padding-bottom: 64px; }
.policy-header h1 { margin: 18px 0 14px; font-size: clamp(2.7rem, 7vw, 4.2rem); }
.policy-date { color: var(--muted); font-size: 0.95rem; margin-bottom: 26px; }
.policy p, .policy li { line-height: 1.75; }
.policy a { color: var(--blue-ink); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.policy a:focus-visible, .policy-contents a:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
.policy-summary { margin: 32px 0; padding: 28px 32px; border: 1px solid var(--line); border-radius: 20px; background: var(--cream-2); }
.policy h2 { font-family: var(--font-display); font-size: 1.7rem; font-weight: 600; line-height: 1.25; margin-bottom: 20px; }
.policy h3 { font-size: 1.18rem; margin: 28px 0 12px; }
.policy-summary h2 { margin-bottom: 12px; }
.policy ul { padding-left: 22px; margin: 0; }
.policy li + li { margin-top: 8px; }
.policy-contents { display: flex; gap: 12px 20px; flex-wrap: wrap; padding: 0 0 28px; border-bottom: 1px solid var(--line); font-size: 0.95rem; }
.policy section { margin-top: 42px; scroll-margin-top: 24px; }
.policy-domain { overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .policy { padding-top: 28px; }
  .policy-summary { padding: 22px; }
  .policy h2 { font-size: 1.45rem; }
}
@media print {
  .nav, .footer, .skip-link, .policy-contents { display: none; }
  body { background: white; color: black; font-size: 11pt; }
  .policy { max-width: none; padding: 0; }
  .policy-summary { break-inside: avoid; }
  .policy h2, .policy h3 { break-after: avoid; }
}
