.pp-sec { padding: 40px 48px 200px; max-width: 1320px; margin: 0 auto; }
.pp-grid { display: grid; grid-template-columns: 260px 1fr; gap: 80px; align-items: start; }
.pp-toc { position: sticky; top: 120px; }
.pp-toc .mono { color: var(--orange); margin-bottom: 20px; display: block; }
.pp-toc ol { list-style: none; padding: 0; counter-reset: toc; }
.pp-toc ol li { counter-increment: toc; padding: 10px 0; border-bottom: 1px solid var(--mist); font-family: "Noto Serif JP", serif; font-size: 14px; display: flex; gap: 12px; align-items: baseline; }
.pp-toc ol li::before { content: counter(toc, decimal-leading-zero); font-family: "Inter", sans-serif; font-size: 11px; color: var(--stone); letter-spacing: 0.1em; }
.pp-toc ol li a { transition: color .3s var(--ease); }
.pp-toc ol li a:hover { color: var(--orange); }

.pp-body section { padding: 48px 0 48px; border-bottom: 1px solid var(--mist); scroll-margin-top: 100px; }
.pp-body section:first-child { padding-top: 0; }
.pp-body h2 { font-size: clamp(22px, 2.4vw, 30px); margin-bottom: 20px; display: flex; align-items: baseline; gap: 18px; }
.pp-body h2 .num { font-family: "Cormorant Garamond", serif; font-style: italic; color: var(--orange); font-size: 28px; line-height: 1; }
.pp-body p, .pp-body li { font-size: 15px; line-height: 2.1; color: #2f2f33; }
.pp-body ul { padding-left: 20px; margin: 12px 0; }
.pp-body ul li { padding: 4px 0; }
.pp-update { margin-top: 80px; padding: 24px; background: var(--off-2); font-family: "Inter", sans-serif; font-size: 12px; letter-spacing: 0.1em; color: var(--stone); }
@media (max-width: 900px) {
  .pp-sec { padding: 40px 24px 100px; }
  .pp-grid { grid-template-columns: 1fr; gap: 32px; }
  .pp-toc { position: static; }
}
