.kp-visual{max-width:100%;overflow:hidden;margin:clamp(28px,5vw,56px) 0;padding:clamp(20px,4vw,38px);border:1px solid #d9d2c8;border-radius:2px;background:linear-gradient(145deg,#fbfaf7 0%,#f2eee7 100%);color:#343735}
.kp-visual__eyebrow{display:block;margin:0 0 8px;color:#8a7055;font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.kp-visual h2{max-width:24ch;margin:0 0 8px;font:400 clamp(23px,3.6vw,36px)/1.35 Georgia,'Noto Serif JP',serif}
.kp-visual__intro{max-width:68ch;margin:0 0 24px;color:#626660;font-size:14px;line-height:1.8}
.kp-visual svg{display:block;width:100%;height:auto;max-width:100%;margin:0 0 22px;border-radius:2px;background:#eee9e0}
.kp-visual__track{fill:none;stroke:#a48b70;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.kp-visual__track--soft{stroke:#c9bba9;stroke-width:2;stroke-dasharray:7 9}
.kp-visual__node{fill:#faf8f3;stroke:#8a7055;stroke-width:2}
.kp-visual__node--accent{fill:#8a7055}
.kp-visual__number{fill:#fff;font:500 15px/1 Arial,sans-serif;text-anchor:middle;dominant-baseline:middle}
.kp-visual__label{fill:#343735;font:500 16px/1.4 'Noto Sans JP',sans-serif;text-anchor:middle}
.kp-visual__items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}
.kp-visual__items>*{min-width:0;padding:16px;border-top:1px solid #cfc4b5;background:rgba(255,255,255,.52);overflow-wrap:anywhere}
.kp-visual__items strong{display:block;margin-bottom:6px;color:#554737;font-size:14px}
.kp-visual__items span{display:block;color:#666a65;font-size:13px;line-height:1.7}
.kp-official-sources{margin:42px 0;padding:clamp(20px,4vw,34px);border:1px solid #d9d2c8;background:#f7f4ee}
.kp-official-sources h2{margin-top:0}
.kp-official-sources ol{display:grid;gap:14px;margin:20px 0 0;padding-left:22px}
.kp-official-sources li{padding-left:5px;overflow-wrap:anywhere}
.kp-official-sources a{display:inline-flex;min-height:44px;align-items:center;color:#5f4935;text-underline-offset:3px}
.kp-official-sources p{margin:2px 0 0;color:#666a65;font-size:13px;line-height:1.7}
@media(max-width:760px){.kp-visual__items{grid-template-columns:1fr}.kp-visual{padding:20px 16px}.kp-visual__label{font-size:14px}}
@media(max-width:390px){.kp-visual{margin:26px 0;padding:18px 12px}.kp-visual__items{grid-template-columns:1fr}.kp-visual svg{margin-inline:0}.kp-official-sources{padding:18px 14px}}
