
.pv { padding-top: clamp(48px, 6vw, 88px); }
.pv-sum {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 2px solid var(--ink); border-left: 1px solid var(--sand); background: var(--ivory);
}
.pv-sum li { display: grid; align-content: start; gap: 10px; padding: 28px 28px 32px; border-right: 1px solid var(--sand); border-bottom: 1px solid var(--sand); }
.pv-sum svg { width: 44px; height: 44px; color: var(--green); margin-bottom: 8px; }
.pv-sum strong { font-size: clamp(19px, 1.5vw, 22px); font-weight: 700; line-height: 1.4; letter-spacing: -0.02em; }
.pv-sum p { color: var(--stone); font-size: var(--fs-small); }
@media (max-width: 1023px) { .pv-sum { grid-template-columns: 1fr; } .pv-sum li { grid-template-columns: 44px 1fr; column-gap: 16px; padding: 22px 20px; } .pv-sum svg { grid-row: span 2; margin: 0; } }
.pv-body { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); margin-top: clamp(64px, 8vw, 120px); }
.pv-toc { grid-column: 1 / span 3; align-self: start; position: sticky; top: calc(var(--header-h) + 32px); background: var(--ivory); }
.pv-toc__title { font-size: var(--fs-small); font-weight: 600; color: var(--green); padding-top: 12px; border-top: 1px solid currentColor; margin-bottom: 8px; }
.pv-toc li { border-bottom: 1px solid var(--sand); }
.pv-toc a { display: block; padding: 10px 0; font-size: var(--fs-small); color: var(--stone); text-decoration: none; line-height: 1.5; }
.pv-toc a:hover { color: var(--ink); text-decoration: underline; text-decoration-color: var(--olive); text-decoration-thickness: 2px; }
.pv-article { grid-column: 5 / span 7; background: var(--ivory); }
.pv-sec { scroll-margin-top: calc(var(--header-h) + 24px); padding: 36px 0 40px; border-top: 1px solid var(--ink); }
.pv-sec + .pv-sec { border-top-color: var(--sand); }
.pv-sec h2 { display: flex; align-items: baseline; gap: 16px; font-size: var(--fs-h3); font-weight: 700; line-height: 1.4; letter-spacing: -0.02em; margin-bottom: 16px; }
.pv-num { flex: none; width: 32px; font-size: 14px; font-weight: 700; color: var(--green); font-variant-numeric: tabular-nums; }
.pv-sec > p, .pv-sec > ul, .pv-sec > dl { margin-left: 48px; max-width: 40em; }
.pv-sec > p + p, .pv-sec > p + ul, .pv-sec > ul + p { margin-top: 14px; }
.pv-sec a:not(.text-link) { color: var(--green-deep); font-weight: 600; text-decoration-color: var(--olive); text-decoration-thickness: 2px; }
.pv-list li { position: relative; padding-left: 20px; }
.pv-list li + li { margin-top: 8px; }
.pv-list li::before { content: ""; position: absolute; left: 0; top: .8em; width: 8px; height: 2px; background: var(--olive); }
.pv-link { margin-top: 20px !important; }
.pv-ext div, .pv-contact div { display: grid; grid-template-columns: 112px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--sand); }
.pv-ext div:first-child, .pv-contact div:first-child { border-top: 1px solid var(--sand); }
.pv-ext dt, .pv-contact dt { font-size: var(--fs-small); font-weight: 600; color: var(--stone); padding-top: 2px; }
.pv-contact { margin-top: 20px; }
.pv-date { margin-top: 24px !important; font-size: var(--fs-small); color: var(--stone); }
@media (max-width: 1023px) {
  .pv-toc, .pv-article { grid-column: 1 / -1; }
  .pv-toc { position: static; margin-bottom: 48px; }
}
@media (max-width: 599px) {
  .pv-sec > p, .pv-sec > ul, .pv-sec > dl { margin-left: 0; }
  .pv-sec h2 { gap: 10px; }
  .pv-num { width: auto; }
  .pv-ext div, .pv-contact div { grid-template-columns: 1fr; gap: 4px; }
}
