.policy-hero { padding: clamp(138px, 13vw, 180px) 0 54px; background: var(--sage); }
.policy-hero h1 { max-width: 900px; overflow-wrap: anywhere; }
.policy-hero p { max-width: 700px; margin-bottom: 0; }
.policy-review { margin-top: 28px; padding: 20px 24px; border-left: 4px solid var(--terracotta); background: var(--paper); border-radius: 0 var(--radius) var(--radius) 0; max-width: 850px; }
.policy-review p { margin: 8px 0 0; }
.policy-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.policy-contents { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.policy-contents h2 { font: 700 16px/1.5 var(--font-body); letter-spacing: normal; margin-bottom: 12px; }
.policy-contents a { display: block; padding: 10px 0; min-height: 44px; text-decoration: none; line-height: 1.4; }
.policy-contents a:hover { text-decoration: underline; }
.policy-copy { min-width: 0; max-width: 850px; overflow-wrap: anywhere; }
.policy-copy section { padding: 0 0 32px; margin-bottom: 32px; border-bottom: 1px solid var(--line); scroll-margin-top: 28px; }
.policy-copy h2 { font-size: clamp(27px, 3vw, 34px); margin-bottom: 18px; }
.policy-copy h3 { margin-top: 24px; }
.policy-copy p { max-width: 75ch; }
.policy-copy ul { list-style: disc; padding-left: 22px; margin-bottom: 20px; }
.policy-copy li + li { margin-top: 8px; }
.policy-marker { color: var(--forest); background: var(--sage); padding: 14px 18px; border-radius: 6px; }
.policy-register { margin: 24px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.policy-register div { padding: 16px 20px; background: var(--paper); border-bottom: 1px solid var(--line); }
.policy-register dt { font-size: 13px; font-weight: 700; color: var(--muted); }
.policy-register dd { margin: 4px 0 0; }
.policy-footnote { font-size: 14px; color: var(--muted); }
@media (max-width: 900px) { .policy-layout { grid-template-columns: 1fr; } .policy-contents ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 20px; } }
@media (max-width: 540px) { .policy-contents ul, .policy-register { grid-template-columns: 1fr; } .policy-review { padding: 18px; } }
