
.psg{--psg-green:#165b38;--psg-ink:#1f2d25;--psg-text:#3c4a42;--psg-line:#dfe5e0;--psg-pale:#eef4f0;--psg-soft:#e9eced;color:var(--psg-ink)}
.psg-section{margin-top:96px;scroll-margin-top:110px}
.psg-section:first-child{margin-top:0}
.psg-label{display:inline-flex;align-items:center;gap:10px;margin:0;color:var(--psg-green);font-size:13px;letter-spacing:.14em;line-height:1.4}
.psg-label::before{content:"";width:22px;height:2px;background:var(--psg-green)}
.psg-h2{margin:12px 0 0;font-size:clamp(24px,2.3vw,32px);line-height:1.45;letter-spacing:.04em;word-break:auto-phrase}
.psg-lead{max-width:880px;margin:20px 0 0;font-size:16px;line-height:2;color:var(--psg-text)}


.psg-catch{margin:0;font-size:clamp(28px,3.4vw,46px);line-height:1.45;letter-spacing:.05em;word-break:auto-phrase}
.psg-catch span{display:block}
.psg-intro .psg-lead{margin-top:28px}
.psg-figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:40px 0 0;padding:0;list-style:none}
.psg-figures li{display:flex;flex-direction:column;padding:22px 20px 20px;border-radius:12px;background:#fff;border:1px solid var(--psg-line)}
.psg-figures .psg-num{display:flex;align-items:baseline;gap:4px;margin:0;color:var(--psg-green);line-height:1}
.psg-figures .psg-num b{font-size:clamp(34px,3.4vw,46px);letter-spacing:.02em}
.psg-figures .psg-num small{font-size:15px;letter-spacing:.04em}
.psg-figures p:not(.psg-num){margin:12px 0 0;font-size:14px;line-height:1.75;color:var(--psg-text)}


.psg-themes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:32px 0 0;padding:0;list-style:none}
.psg-theme{display:flex;flex-direction:column;padding:28px 28px 24px;border-radius:12px;background:#fff;border:1px solid var(--psg-line)}
.psg-theme .psg-theme-no{margin:0;color:var(--psg-green);font-size:13px;letter-spacing:.16em}
.psg-theme h3{margin:10px 0 0;font-size:20px;line-height:1.5;word-break:auto-phrase}
.psg-theme p:not(.psg-theme-no){margin:10px 0 0;font-size:15px;line-height:1.9;color:var(--psg-text)}
.psg-theme .psg-icons{margin-top:auto;padding-top:18px}
.psg-icons{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.psg-icons a{display:block;border-radius:2px;transition:transform .2s ease}
.psg-icons a:hover,.psg-icons a:focus-visible{transform:translateY(-2px)}
.psg-icons img{display:block;width:48px;height:48px}


.psg-map-wrap{margin:32px 0 0;border-radius:12px;background:#fff;border:1px solid var(--psg-line);overflow:hidden}
.psg-map{width:100%;border-collapse:collapse;table-layout:fixed}
.psg-map caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.psg-map thead th{padding:14px 2px 12px;border-bottom:1px solid var(--psg-line);vertical-align:bottom}
.psg-map thead th:first-child{width:38%;padding-left:24px;text-align:left;font-size:13px;letter-spacing:.08em;color:var(--psg-text)}
.psg-map thead a{display:block;width:44px;margin:0 auto}
.psg-map thead img{display:block;width:44px;height:44px}
.psg-map tbody tr:nth-child(even){background:#f7f9f8}
.psg-map tbody th{padding:13px 12px 13px 24px;text-align:left;font-size:14px;line-height:1.6}
.psg-map tbody th small{display:block;margin-top:2px;color:var(--psg-green);font-size:12px;letter-spacing:.04em}
.psg-map td{padding:0;text-align:center}
.psg-map td.is-on a{display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--psg-green);vertical-align:middle;font-size:0;line-height:0;color:transparent;overflow:hidden}
.psg-map td.is-on a:hover,.psg-map td.is-on a:focus-visible{box-shadow:0 0 0 4px var(--psg-pale)}


.psg-strip{display:grid;grid-template-columns:repeat(9,minmax(0,88px));gap:10px;margin:28px 0 0;padding:0;list-style:none}
.psg-strip a{display:block;border-radius:2px;transition:transform .2s ease}
.psg-strip a:hover,.psg-strip a:focus-visible{transform:translateY(-3px)}
.psg-strip img{display:block;width:100%;height:auto;aspect-ratio:1}
.psg-goals{display:grid;gap:20px;margin:32px 0 0;padding:0;list-style:none}
.psg-goal{display:grid;grid-template-columns:132px minmax(0,1fr);gap:28px;align-items:start;padding:32px 34px;border-radius:12px;background:#fff;border:1px solid var(--psg-line);scroll-margin-top:110px}
.psg-goal-icon img{display:block;width:132px;height:132px}
.psg-goal h3{margin:0;font-size:21px;line-height:1.5;word-break:auto-phrase}
.psg-goal h3 small{display:block;margin-bottom:2px;color:var(--psg-green);font-size:13px;letter-spacing:.12em}
.psg-aim{margin:14px 0 0;padding:12px 16px;border-radius:8px;background:var(--psg-soft);font-size:14px;line-height:1.8;color:var(--psg-text)}
.psg-aim b{margin-right:10px;color:var(--psg-ink);font-size:13px;letter-spacing:.08em}
.psg-why{margin:16px 0 0;font-size:15px;line-height:1.95}
.psg-sub{margin:22px 0 0;font-size:14px;letter-spacing:.1em;color:var(--psg-green)}
.psg-acts{margin:8px 0 0;padding:0;list-style:none}
.psg-acts li{position:relative;margin:0;padding:9px 0 9px 22px;border-top:1px dashed var(--psg-line);font-size:15px;line-height:1.85}
.psg-acts li:first-child{border-top:0}
.psg-acts li::before{content:"";position:absolute;top:19px;left:2px;width:8px;height:8px;border-radius:50%;background:var(--psg-green)}
.psg-acts .psg-when{display:inline-block;margin-right:8px;padding:0 8px;border-radius:4px;background:var(--psg-pale);color:var(--psg-green);font-size:12px;font-weight:700;letter-spacing:.04em;line-height:1.9;white-space:nowrap}
.psg-target{margin:18px 0 0;padding:14px 16px;border-left:3px solid var(--psg-green);background:var(--psg-pale);border-radius:0 8px 8px 0}
.psg-target dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;margin:0}
.psg-target dt{color:var(--psg-green);font-size:13px;font-weight:700;letter-spacing:.06em;line-height:1.85;white-space:nowrap}
.psg-target dd{margin:0;font-size:14px;line-height:1.85;color:var(--psg-text)}
.psg-target-title{margin:0 0 4px;font-size:12px;letter-spacing:.12em;color:var(--psg-text)}
.psg-next{margin:16px 0 0;font-size:14px;line-height:1.85;color:var(--psg-text)}
.psg-next b{margin-right:8px;color:var(--psg-green);font-size:13px;letter-spacing:.08em}


.psg-together{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:32px 0 0;padding:0;list-style:none}
.psg-together li{padding:26px 24px;border-radius:12px;background:#fff;border:1px solid var(--psg-line)}
.psg-together svg{display:block;width:44px;height:44px;fill:none;stroke:var(--psg-green);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.psg-together h3{margin:14px 0 0;font-size:17px;line-height:1.55;word-break:auto-phrase}
.psg-together p{margin:8px 0 0;font-size:14px;line-height:1.85;color:var(--psg-text)}
.psg-together a{color:var(--psg-green);text-decoration:underline;text-underline-offset:3px}


.psg-timeline{position:relative;margin:32px 0 0;padding:0;list-style:none}
.psg-timeline::before{content:"";position:absolute;top:8px;bottom:8px;left:118px;width:2px;background:var(--psg-line)}
.psg-timeline>li{position:relative;display:grid;grid-template-columns:118px minmax(0,1fr);gap:0 34px;padding:0 0 26px}
.psg-timeline>li::before{content:"";position:absolute;top:8px;left:113px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--psg-green)}
.psg-timeline>li>time{color:var(--psg-green);font-size:15px;font-weight:700;letter-spacing:.04em;line-height:1.7;text-align:right;padding-right:10px}
.psg-timeline>li p{margin:0;font-size:15px;line-height:1.85}
.psg-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none}
.psg-chips a{display:inline-block;padding:1px 9px;border:1px solid var(--psg-green);border-radius:999px;color:var(--psg-green);font-size:12px;line-height:1.8;letter-spacing:.04em;text-decoration:none}
.psg-chips a:hover,.psg-chips a:focus-visible{background:var(--psg-green);color:#fff}


.psg-about{margin:0;padding:34px 40px;border-radius:15px;background:var(--psg-soft)}
.psg-about h2{margin:0;font-size:20px;line-height:1.5}
.psg-about p{margin:12px 0 0;font-size:15px;line-height:1.95;color:var(--psg-text);text-align:left}
.psg-about dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 0 0}
.psg-about dl div{padding:14px 12px;border-radius:10px;background:#fff;text-align:center}
.psg-about dt{font-size:12px;letter-spacing:.06em;color:var(--psg-text)}
.psg-about dd{margin:6px 0 0;color:var(--psg-green);font-size:24px;line-height:1.2}
.psg-about dd small{font-size:13px}
.psg-closing{max-width:880px;margin:56px 0 0;font-size:17px;line-height:2.05}
.psg-links{display:flex;flex-wrap:wrap;gap:14px 22px;margin:28px 0 0}

@media (max-width:1100px){
.psg-figures{grid-template-columns:repeat(2,minmax(0,1fr))}
.psg-together{grid-template-columns:1fr}
.psg-map thead th:first-child{width:34%}
.psg-map thead a,.psg-map thead img{width:36px;height:36px}
.psg-about dl{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:896px){.psg{padding-left:5%;padding-right:5%}}
@media (max-width:767px){
.psg-section{margin-top:64px}
.psg-lead,.psg-why{font-size:15px}
.psg-figures{gap:10px;margin-top:28px}
.psg-figures li{padding:16px 14px}
.psg-figures p:not(.psg-num){font-size:13px}
.psg-themes{grid-template-columns:1fr;gap:12px}
.psg-theme{padding:22px 20px 20px}
.psg-theme h3{font-size:18px}
.psg-icons img{width:42px;height:42px}

.psg-map-wrap{border:0;background:transparent;overflow:visible}
.psg-map,.psg-map tbody,.psg-map tr,.psg-map th,.psg-map td{display:block;width:auto}
.psg-map thead{display:none}
.psg-map tbody{display:grid;gap:10px}
.psg-map tbody tr,.psg-map tbody tr:nth-child(even){display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:14px 16px;border-radius:10px;background:#fff;border:1px solid var(--psg-line)}
.psg-map tbody th{flex:1 0 100%;padding:0 0 4px}
.psg-map td{display:none}
.psg-map td.is-on{display:inline-block}
.psg-map td.is-on a{width:auto;height:auto;padding:1px 9px;border:1px solid var(--psg-green);border-radius:999px;background:transparent;color:var(--psg-green);font-size:12px;line-height:1.8;text-decoration:none}
.psg-strip{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.psg-goal{grid-template-columns:1fr;gap:14px;padding:22px 18px}
.psg-goal-icon img{width:88px;height:88px}
.psg-goal h3{font-size:18px}
.psg-acts li{font-size:14px}
.psg-target dl{grid-template-columns:1fr;gap:0}
.psg-target dt{margin-top:6px}
.psg-target dt:first-of-type{margin-top:0}
.psg-timeline::before{left:7px}
.psg-timeline>li{grid-template-columns:1fr;gap:4px;padding:0 0 22px 30px}
.psg-timeline>li::before{left:2px}
.psg-timeline>li>time{text-align:left;padding-right:0;font-size:14px}
.psg-timeline>li p{font-size:14px}
.psg-about{padding:24px 18px}
.psg-about dl{gap:8px}
.psg-about dd{font-size:21px}
.psg-closing{font-size:16px}
}
