.policy-hero { display: grid; gap: 48px; grid-template-columns: minmax(0, 1.35fr) minmax(290px, .65fr); padding-block: 78px 58px; }
.policy-hero h1 { font-size: clamp(52px, 7vw, 88px); }
.policy-summary { color: var(--muted); font-size: 18px; line-height: 1.75; margin: 28px 0 0; }
.policy-facts { align-self: end; background: var(--product-soft); border-radius: 20px; overflow: hidden; }
.policy-fact { border-bottom: 1px solid color-mix(in srgb, var(--product) 18%, transparent); padding: 20px 23px; }
.policy-fact:last-child { border-bottom: 0; }
.policy-fact span { color: #526a66; display: block; font-size: 11px; font-weight: 800; letter-spacing: .08em; margin-bottom: 6px; text-transform: uppercase; }
.policy-fact strong { color: #10211f; font-size: 16px; }
.policy-layout { display: grid; gap: 60px; grid-template-columns: 210px minmax(0, 760px); justify-content: center; padding-block: 70px 96px; }
.toc { align-self: start; display: grid; gap: 4px; position: sticky; top: 104px; }
.toc strong { font-size: 12px; letter-spacing: .1em; margin-bottom: 10px; text-transform: uppercase; }
.toc a { border-left: 2px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.4; padding: 8px 0 8px 13px; text-decoration: none; }
.toc a:hover { border-left-color: var(--product); color: var(--ink); }
.policy section { border-top: 1px solid var(--line); padding-block: 34px; scroll-margin-top: 96px; }
.policy section:first-child { border-top: 0; padding-top: 0; }
.policy h2 { font-size: clamp(27px, 3.5vw, 38px); letter-spacing: -.04em; margin: 0 0 18px; }
.policy h3 { font-size: 18px; margin: 27px 0 10px; }
.policy p, .policy li { color: var(--muted); font-size: 16px; line-height: 1.8; }
.policy p { margin: 0 0 15px; }
.policy ul { margin: 0; padding-left: 22px; }
.policy li + li { margin-top: 8px; }
.policy strong { color: var(--ink); }
.notice { background: var(--product-soft); border-left: 4px solid var(--product); border-radius: 0 12px 12px 0; margin-top: 22px; padding: 18px 20px; }
.notice p { color: var(--ink); margin: 0; }
.contact { color: var(--accent); font-weight: 750; }
@media (max-width: 820px) { .policy-hero { grid-template-columns: 1fr; } .policy-layout { grid-template-columns: 1fr; } .toc { display: none; } }
