/* 政策詳細ページだけに適用。共通ヘッダー・リーフ入口は変更しない。 */
.policy-page:not(.leaflet-entry) .policy-cover{position:relative;isolation:isolate;margin:0;height:calc(100svh - 88px);min-height:520px;max-height:880px;overflow:hidden;background:linear-gradient(225deg,#a7c2d3 0%,#7295b0 32%,#36546e 64%,#19354d 100%);color:#fff}
.policy-cover-stage{position:relative;height:100%;max-width:1280px;margin:0 auto;padding:0 48px;isolation:isolate}
.policy-cover-person{position:absolute;z-index:-1;top:24px;right:4%;height:calc(100% - 48px);width:auto;max-width:none;object-fit:contain;pointer-events:none}
.policy-cover-copy{position:absolute;left:48px;top:50%;transform:translateY(-54%);width:62%}
body.policy-page .policy-cover-kicker{margin:0 0 22px;font-size:clamp(1.25rem,2.2vw,1.875rem);font-weight:600;line-height:1.6;letter-spacing:.08em;text-align:left;text-align-last:left}
.policy-cover-kicker>span{display:inline-block}
body.policy-page .policy-cover h1{position:relative;display:flex;align-items:flex-end;gap:8px;width:max-content;max-width:100%;margin:0;color:#fff;font:700 clamp(3.5rem,7vw,6rem)/1.05 'Hiragino Sans',sans-serif;letter-spacing:.02em}
.policy-cover-six{display:block;width:clamp(220px,22vw,320px);height:auto;filter:brightness(0) invert(1)}
.policy-cover-words{display:flex;flex-direction:column;gap:12px;padding-bottom:26px}
.policy-cover-words>span:first-child{font-size:.5em;letter-spacing:.08em}
.policy-cover-accessible{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
body.policy-page .policy-cover-message{margin:28px 0 0;font-size:1.25rem;font-weight:500;line-height:1.8;text-align:left;text-align-last:left;letter-spacing:.04em}
.policy-cover-message>span{display:inline-block}
.policy-cover-scroll{position:absolute;left:48px;bottom:32px;display:inline-flex;align-items:center;gap:24px;min-height:44px;color:#fff;text-decoration:none;font-size:1rem;border-bottom:1px solid #ffffff70}
.policy-cover-scroll svg{width:20px;height:20px}
.policy-cover-scroll:hover{color:#fff;background:#ffffff18}
.policy-cover-scroll:focus-visible,.policy-directory a:focus-visible{outline:2px solid currentColor;outline-offset:5px}
.policy-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:1280px;margin:0 auto;padding:40px 48px 56px;gap:0 40px;scroll-margin-top:90px}
.policy-directory a{display:flex;align-items:center;gap:18px;min-height:104px;padding:20px 0;border-bottom:1px solid #9cafbd;color:#263f56;text-decoration:none}
.policy-directory-number{flex:none;font:500 2.25rem/1 'Noir Outfit',sans-serif;letter-spacing:-.04em;color:#506d83}
.policy-directory-title{flex:1;font-size:1.0625rem;font-weight:600;line-height:1.6}
.policy-directory-title>span{display:inline-block}
.policy-directory svg{flex:none;width:20px;height:20px;transition:transform .2s}
.policy-directory a:hover{color:#a81627}
.policy-directory a:hover svg{transform:translateY(3px)}
.policy-page .page-body{max-width:1280px;padding-top:0}
.policy-page .policy-detail{column-gap:64px;padding:72px 0}
.policy-page .policy-detail .noir-policy-art{max-width:500px;align-self:center}
.policy-page .policy-initiatives{grid-column:1/-1;margin-top:12px}
.policy-initiative-section+.policy-initiative-section{margin-top:44px}
.policy-page .policy-initiative-section>h3{font:600 1rem/1.6 'Hiragino Sans',sans-serif;letter-spacing:.08em;color:#526a7c;margin:0 0 24px;padding-top:24px;border-top:1px solid #263f562a}
.policy-initiative-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 40px}
.policy-page .policy-initiative-group :is(h3,h4){font:600 1.25rem/1.65 'Hiragino Sans',sans-serif;color:#263f56;margin:0 0 18px;text-wrap:balance}
.policy-initiative-group ul{margin:0;padding-left:20px;list-style:disc}
.policy-page .policy-initiative-group li{font-size:1.125rem;line-height:1.9;margin:0 0 12px;padding-left:2px;color:#263f56}
.policy-initiative-group li::marker{color:#7993a5;font-size:.7em}
.policy-outcomes{display:grid;grid-template-columns:auto 1fr;gap:12px 24px;margin:32px 0 0;padding:20px 24px;background:#e7edf1;font-size:1rem;line-height:1.8}
.policy-outcomes dt{font-weight:600}
.policy-outcomes dd{margin:0}
.policy-page .policy-detail>.launch-evidence{grid-column:1/-1;max-width:none;margin:0;padding-top:24px;display:grid;grid-template-columns:1fr auto;column-gap:24px;align-items:center;border-top:1px solid #263f562a}
.policy-detail>.launch-evidence h4{margin:0;font-size:1rem}
.policy-detail>.launch-evidence p{margin:8px 0 0;grid-column:1}
.policy-detail>.launch-evidence a{grid-column:2;grid-row:1/3;min-height:44px;padding:8px 0;font-size:1rem}
.policy-approach{padding:64px 0 72px;border-top:1px solid #879eaf}
.policy-approach-heading{max-width:800px;margin:0 0 40px}
.policy-approach-heading>span{font-size:1rem;color:#526a7c;letter-spacing:.08em}
.policy-page .policy-approach h2{margin:20px 0 24px;font:600 clamp(1.75rem,3vw,2.5rem)/1.5 'Hiragino Sans',sans-serif;color:#263f56}
.policy-approach h2>span{display:inline-block}
.policy-page .policy-approach p{font-size:1.125rem;line-height:1.9}
.policy-page .policy-proposal-note{margin:32px 0 0;padding-top:24px;border-top:1px solid #263f562a;color:#526a7c}
@media(max-width:900px){
 .policy-cover-stage{padding:0 28px}.policy-cover-copy,.policy-cover-scroll{left:28px}
 .policy-cover-person{right:-7%}.policy-cover-copy{width:70%}
 .policy-directory{padding:28px 28px 40px;gap:0 24px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .policy-initiative-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 .policy-page:not(.leaflet-entry) .policy-cover{height:calc(100svh - 72px);min-height:540px;max-height:780px}
 .policy-cover-stage{padding:0 24px}.policy-cover-copy{left:24px;top:25%;transform:none;width:76%}
 .policy-cover-person{height:calc(100% - 48px);top:22px;right:-15%;max-width:none}
 body.policy-page .policy-cover-kicker{font-size:1.125rem;line-height:1.6;letter-spacing:.04em;width:10em;margin-bottom:20px}
 body.policy-page .policy-cover h1{gap:0;font-size:2.75rem}
 .policy-cover-six{width:clamp(132px,38vw,176px)}
 .policy-cover-words{gap:10px;padding-bottom:15px}
 body.policy-page .policy-cover-message{max-width:10em;font-size:1rem;line-height:1.9;margin-top:24px}
 .policy-cover-message>span{display:block}
 .policy-cover-scroll{left:24px;bottom:22px;font-size:.9375rem;gap:16px}
 .policy-directory{padding:24px 24px 32px;gap:0 20px}
 .policy-directory a{gap:10px;min-height:100px}
 .policy-directory-number{font-size:1.875rem}.policy-directory-title{font-size:1rem}.policy-directory svg{width:16px;height:16px}
 .policy-page .policy-detail{padding:44px 0}
 .policy-initiative-grid{grid-template-columns:minmax(0,1fr);gap:28px}
 .policy-page .policy-initiative-group :is(h3,h4){margin-bottom:12px}
 .policy-initiative-group li:last-child{margin-bottom:0}
 .policy-page .policy-detail>.launch-evidence{display:block}
 .policy-detail>.launch-evidence a{display:inline-block;margin-top:12px}
 .policy-outcomes{grid-template-columns:1fr;gap:8px;padding:20px}
 .policy-approach{padding:44px 0}
}
@media(max-height:740px) and (max-width:600px){
 .policy-page:not(.leaflet-entry) .policy-cover{min-height:480px}
 .policy-cover-copy{top:15%}
 .policy-cover-six{width:clamp(120px,34vw,145px)}
 .policy-cover-words{padding-bottom:55px}
 body.policy-page .policy-cover-kicker{margin-bottom:12px}
 body.policy-page .policy-cover-message{margin-top:16px}
}
@media(max-height:720px) and (min-width:601px){
 .policy-page:not(.leaflet-entry) .policy-cover{min-height:440px}.policy-cover-copy{transform:translateY(-58%)}
 .policy-cover-six{width:190px}body.policy-page .policy-cover h1{font-size:3.5rem}
 body.policy-page .policy-cover-message{margin-top:16px;font-size:1.125rem}
}
html:is(.large-text,.zoomed) body.policy-page .policy-cover{height:auto;min-height:0;max-height:none}
html:is(.large-text,.zoomed) .policy-cover-stage{min-height:600px;padding-top:60px;padding-bottom:120px}
html:is(.large-text,.zoomed) .policy-cover-copy{position:relative;left:auto;top:auto;transform:none;width:100%}
html:is(.large-text,.zoomed) .policy-cover-person{opacity:.2;right:0}
html:is(.large-text,.zoomed) .policy-cover-kicker{width:auto}
html:is(.large-text,.zoomed) .policy-cover h1{flex-wrap:wrap}
html:is(.large-text,.zoomed) .policy-cover-message{max-width:none}
html:is(.large-text,.zoomed) .policy-directory{grid-template-columns:1fr}
html:is(.large-text,.zoomed) .policy-initiative-grid{grid-template-columns:1fr}
@media(prefers-reduced-motion:reduce){.policy-directory svg{transition:none}}
