.privacy-hero { padding-bottom: 66px; }
.privacy-hero h1 { margin-bottom: 16px; }
.privacy-hero .lead { max-width: 780px; }
.policy-date { display: inline-block; margin-top: 21px; padding: 8px 13px; border: 1px solid #ddd3f0; border-radius: 999px; background: white; color: #5a467e; font-size: .82rem; font-weight: 750; }
.policy-shell { padding: 54px 0 110px; }
.policy-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 50px; align-items: start; }
.policy-toc { position: sticky; top: 104px; max-height: calc(100vh - 125px); overflow-y: auto; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: white; }
.policy-toc summary { cursor: pointer; color: #30254a; font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.policy-toc nav { display: grid; gap: 2px; margin-top: 14px; }
.policy-toc a { display: block; padding: 7px 8px; border-radius: 8px; color: #675f76; font-size: .78rem; line-height: 1.4; }
.policy-toc a:hover { background: var(--lilac); color: var(--purple); }
.policy-article { min-width: 0; padding: 10px 42px 26px; border: 1px solid var(--line); border-radius: 24px; background: white; box-shadow: 0 14px 42px rgba(36,24,75,.04); }
.policy-intro { padding: 30px 0 28px; }
.policy-intro p { color: #5f5b6d; }
.policy-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 22px 0 0; }
.policy-summary div { padding: 16px 17px; border: 1px solid #ece5f5; border-radius: 13px; background: #faf7ff; color: #4e4165; font-size: .86rem; font-weight: 700; }
.policy-section { padding: 33px 0 24px; border-top: 1px solid var(--line); scroll-margin-top: 105px; }
.policy-section h2 { margin-bottom: 17px; font-size: clamp(1.45rem, 2.4vw, 1.85rem); letter-spacing: -.03em; }
.policy-section h3 { margin: 23px 0 9px; font-size: 1.04rem; letter-spacing: -.015em; }
.policy-section p, .policy-section li { color: #5f5b6d; font-size: .96rem; line-height: 1.75; }
.policy-section p { margin-bottom: 16px; }
.policy-section p:last-child, .policy-section ul:last-child { margin-bottom: 0; }
.policy-section ul { margin: 9px 0 19px; padding-left: 23px; }
.policy-section li + li { margin-top: 4px; }
.policy-section strong { color: #302848; }
.policy-section code { padding: 2px 5px; border-radius: 4px; background: #f1edf7; color: #43375a; font-size: .88em; overflow-wrap: anywhere; }
.policy-section a { color: var(--purple); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
@media (max-width: 920px) {
  .policy-layout { grid-template-columns: 1fr; gap: 22px; }
  .policy-toc { position: static; max-height: none; }
  .policy-toc nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .privacy-hero { padding-bottom: 40px; }
  .policy-shell { padding: 26px 0 76px; }
  .policy-article { padding: 0 23px 16px; }
  .policy-intro { padding: 27px 0 25px; }
  .policy-summary, .policy-toc nav { grid-template-columns: 1fr; }
  .policy-section { padding: 28px 0 19px; }
}
