/* 공개 서비스 지침의 네 원칙과 탐색(SSOT 0·4·11·21절). */
.class-policy { max-inline-size: 58rem; margin-inline: auto; }
.class-policy > .sonub-page { display: grid; gap: var(--wa-space-l); }
.class-policy .sonub-page-header { margin: 0; }
.policy-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wa-space-s); }
.policy-nav a { display: flex; align-items: center; gap: var(--wa-space-s); min-block-size: 2.75rem; padding: var(--wa-space-m); border: 1px solid var(--sonub-border); border-radius: var(--wa-border-radius-m); background: var(--sonub-surface); font-size: var(--wa-font-size-s); text-decoration: none; }
.policy-nav a > .fa-solid { flex: none; color: var(--sonub-accent-ink); }
.policy-nav a:hover { background: var(--sonub-accent-soft); }
.policy-section { display: grid; gap: var(--wa-space-m); min-inline-size: 0; padding: var(--wa-space-l); border: 1px solid var(--sonub-border); border-radius: var(--sonub-radius-panel); background: var(--sonub-surface); box-shadow: var(--sonub-shadow-card); }
.policy-section h2 { display: flex; align-items: start; gap: var(--wa-space-s); margin: 0; font-size: var(--wa-font-size-l); line-height: 1.7; }
.policy-section h2 > .fa-solid { flex: none; margin-block-start: var(--wa-space-xs); color: var(--sonub-accent-ink); }
.policy-section p { margin: 0; line-height: 1.9; }
@media (max-width: 40rem) {
    .policy-nav { grid-template-columns: minmax(0, 1fr); }
    .policy-section { padding: var(--wa-space-m); }
}

/* 원칙별 탐색은 한 줄로 유지하고 긴 문장은 읽기 폭을 제한한다. */
.policy-nav { position: sticky; inset-block-start: calc(var(--bar-height) + var(--wa-space-s)); z-index: 5; display: flex; flex-wrap: nowrap; overflow: auto; padding: var(--wa-space-s); border: 1px solid var(--sonub-border); border-radius: var(--wa-border-radius-m); background: var(--sonub-surface); box-shadow: var(--sonub-shadow-card); }
.policy-nav a { flex: none; padding: var(--wa-space-s) var(--wa-space-m); border: 0; white-space: nowrap; }
.policy-section p { max-inline-size: 70ch; }
.class-policy > .sonub-page > section[id] { scroll-margin-block-start: calc(var(--bar-height) + 8rem); }
.policy-section:target { border-color: var(--sonub-accent); }
@media (max-width: 40rem) {
    .policy-nav { inset-block-start: 9rem; }
    .class-policy > .sonub-page > section[id] { scroll-margin-block-start: 14rem; }
}
.site-content .policy-nav { inset-block-start: 5rem; }
.site-content .class-policy > .sonub-page > section[id] { scroll-margin-block-start: 11rem; }
