.policy-section { padding: 100px max(5vw, 26px) 130px; background: #fff; }
.policy-section > * { width: min(100%, 960px); margin-left: auto; margin-right: auto; }
.policy-intro { margin-bottom: 65px; padding: 30px 34px; color: var(--ink-soft); background: var(--blue-mist); border-radius: 28px 6px 28px 6px; }
.policy-intro p { margin-bottom: 0; }
.policy-date { margin-top: 12px; font-size: 12px; }
.policy-body { border-top: 1px solid var(--line); }
.policy-body article { display: grid; grid-template-columns: 68px 1fr; gap: 22px; padding: 45px 2px; border-bottom: 1px solid var(--line); }
.policy-body article > span { padding-top: 8px; color: var(--blue); font: 700 12px/1 "Avenir Next", sans-serif; letter-spacing: .12em; }
.policy-body h2 { margin-bottom: 15px; font-size: 21px; }
.policy-body p, .policy-body li { color: var(--ink-soft); font-size: 14px; }
.policy-body ul { padding-left: 1.3em; }
.policy-body dl { margin-top: 26px; }
.policy-body dl > div { display: grid; grid-template-columns: 130px 1fr; padding: 12px 0; border-bottom: 1px solid var(--line); }
.policy-body dt { color: var(--ink-soft); font-size: 12px; }
.policy-body dd { margin: 0; font-size: 14px; }
.policy-body dd a { color: var(--blue-deep); border-bottom: 1px solid var(--blue); }
@media (max-width: 540px) {
  .policy-section { padding: 75px 22px 95px; }
  .policy-intro { padding: 24px 20px; }
  .policy-body article { grid-template-columns: 38px 1fr; gap: 12px; padding: 35px 0; }
  .policy-body h2 { font-size: 19px; }
  .policy-body dl > div { grid-template-columns: 90px 1fr; }
}
