/* 黒HPの本文。リーフ入口には読み込まず、採用済みの構図を保つ。 */
/* リーフレットの本人直筆をそのまま白く表示し、その下へ山並みを置く。 */
.black .noir-resolution{position:relative;width:min(680px,calc(100% - 64px));margin:40px auto 0}
.black .noir-resolution img{display:block;width:100%;height:auto;filter:brightness(0) invert(1)}
.black .noir-resolution>span{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.black .noir-resolution+.noir-landscape-band{height:160px;margin:12px auto 24px}
@media(max-width:760px){
 .black .noir-resolution{width:calc(100% - 48px);max-width:540px;margin-top:32px}
 .black .noir-resolution+.noir-landscape-band{height:110px;margin:12px auto 20px}
}
html:is(.large-text,.zoomed) .black .noir-resolution img{display:none}
html:is(.large-text,.zoomed) .black .noir-resolution>span{position:static;display:block;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;font-size:1.5rem;font-weight:650;line-height:1.8;text-align:center;color:#fff}
/* リーフ入口と同じ大きな6・青白・赤い線を、本ページの政策入口にも使う。 */
.launch-actions{background:#f3f5f6;color:#263f56;padding-top:64px;scroll-margin-top:76px}
.launch-six-intro{margin-bottom:64px}
.launch-six-lockup{display:grid;grid-template-columns:clamp(170px,28vw,420px) auto;align-items:end;gap:0;width:max-content;max-width:100%;margin:0 auto}
.launch-six-brush{display:block;width:100%;height:auto}
.launch-six-words{padding-bottom:64px}
.launch-six-words>p{font-size:1.25rem;font-weight:600;line-height:1.7;margin:0;text-align:left;text-align-last:left}
.launch-six-words>p>span{display:inline-block}
.launch-six-words h2{font-size:clamp(2rem,6vw,5rem);line-height:1.25;letter-spacing:.02em;margin:16px 0 0}
.launch-six-words h2:after{content:'';display:block;width:64px;height:5px;background:#c8141e;margin-top:28px}
.launch-six-accessible{display:none}
.launch-six-invitation{font-size:1.125rem;line-height:1.9;margin:24px 0 0;text-align:center;text-align-last:center}
.launch-six-invitation>span{display:inline-block}
.launch-grid{gap:40px}
.launch-action{border-top:1px solid #879eaf;padding-top:28px}
.launch-action .launch-action-link{display:grid;grid-template-columns:76px minmax(0,1fr);grid-template-rows:minmax(106px,auto) auto;gap:20px 16px;padding:0;color:inherit;text-decoration:none}
.launch-action-number{font-family:'Noir Outfit',sans-serif;font-size:4rem;font-weight:500;line-height:1;letter-spacing:-.045em;color:#3a536c}
.launch-action .launch-art{grid-column:1/-1;height:auto;aspect-ratio:1.8;margin:0 0 20px;display:grid;place-items:center}
.launch-art img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .35s ease}
.launch-action h3{font-size:1.375rem;line-height:1.6;margin:0;align-self:start;text-wrap:balance}
.launch-action h3 .launch-title-lead{display:block}
.launch-action h3 svg{display:inline-block;width:.7em;height:.7em;margin-left:10px;vertical-align:baseline}
.launch-action p{margin:0}
.launch-action-link:is(:hover,:focus-visible) h3{color:#8c2430;text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}
.launch-action-link:hover img{transform:translateY(-5px)}
.launch-action-link:focus-visible{outline:2px solid #8c2430;outline-offset:8px}
.black .tail-profile{grid-template-columns:1.15fr 1fr;gap:7%;padding-bottom:80px}
.black .tail-profile figure{aspect-ratio:4/3;border-radius:0;clip-path:polygon(0 0,calc(100% - 36px) 0,100% 36px,100% 100%,24px 100%,0 calc(100% - 24px))}
.black .tail-profile img{object-position:center;filter:none}
.black .noir-person-heading{display:block}
.black .tail-profile h2{font-family:'Helvetica Neue',Arial,'Hiragino Sans','Hiragino Kaku Gothic ProN',sans-serif;font-weight:650;font-size:clamp(2rem,3.1vw,3rem);line-height:1.5;letter-spacing:.025em;margin:20px 0 24px}
.black .tail-profile h2>span{display:block;font-family:inherit;font-weight:500;font-size:.6em;margin-top:8px;letter-spacing:.08em}
.black .tail-profile p{font-size:1.125rem;line-height:1.9}
.black .tail-profile .tail-link{margin-top:24px;font-size:1.125rem}
.black .tail-activities h2,.black .tail-links h2{font-family:'Helvetica Neue',Arial,'Hiragino Sans','Hiragino Kaku Gothic ProN',sans-serif;font-weight:650}
.launch-follow{display:grid;grid-template-columns:1.15fr 1fr;gap:72px;align-items:center;background:radial-gradient(ellipse at 100% 100%,#34382d,#10120f 72%)}
.launch-follow h2>span{display:inline-block}
.launch-follow p{font-size:1.125rem;line-height:1.9;max-width:32em}
.launch-follow .welcome-social{width:100%;max-width:460px;justify-self:end}
.launch-follow .welcome-social nav{margin:0;gap:12px}
.launch-follow .welcome-social nav>a{padding:0;border:0;width:auto;font-size:1rem;color:#fff}
.launch-follow .welcome-pending{font-size:1rem}
.launch-follow .welcome-icon{width:64px;height:64px;margin-bottom:8px}
.launch-follow .welcome-social a .welcome-icon svg{width:32px;height:32px}
.launch-follow .welcome-pending .welcome-icon svg{width:38px;height:38px}
.black-document .noir-assembly-stage{max-width:960px;margin:40px auto 0}
.black-document .noir-assembly-stage img{aspect-ratio:3/2;height:auto;object-fit:contain;border-radius:0;clip-path:polygon(0 0,calc(100% - 36px) 0,100% 36px,100% 100%,24px 100%,0 calc(100% - 24px))}
.black-document .noir-assembly-stage figcaption{font-size:1rem}
.black-document .photo-story img{border-radius:0;clip-path:polygon(0 0,calc(100% - 28px) 0,100% 28px,100% 100%,20px 100%,0 calc(100% - 20px))}
@media(min-width:761px) and (max-height:760px){
 :root:not(.large-text):not(.zoomed) .black .noir-cover{min-height:0}
 :root:not(.large-text):not(.zoomed) .black h1.noir-title{top:max(90px,15svh)}
 :root:not(.large-text):not(.zoomed) .black .noir-promise{font-size:clamp(2rem,6svh,3.25rem)}
 :root:not(.large-text):not(.zoomed) .black .noir-preface{font-size:clamp(1.125rem,3svh,1.5rem)}
 :root:not(.large-text):not(.zoomed) .black .noir-action{font-size:clamp(4rem,14svh,6.5rem);bottom:76px;left:var(--edge)}
 :root:not(.large-text):not(.zoomed) .black .noir-caption{left:var(--edge)}
}
@media(max-width:1100px){
 .launch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .launch-follow{grid-template-columns:1fr;gap:40px}
 .launch-follow .welcome-social{justify-self:start}
}
@media(max-width:760px){
 .launch-six-intro{margin-bottom:40px}
 .launch-six-lockup{grid-template-columns:clamp(145px,44vw,260px) minmax(0,1fr);width:100%;max-width:540px}
 .launch-six-words{padding-bottom:32px}
 .launch-six-words>p{font-size:1rem}
 .launch-six-words h2{font-size:clamp(1.75rem,7.3vw,2.5rem);margin-top:10px}
 .launch-six-words h2:after{width:32px;height:3px;margin-top:18px}
 .launch-six-invitation{font-size:1rem;margin-top:16px}
 .launch-grid{grid-template-columns:1fr;gap:40px}
 .launch-actions{padding:48px 24px 64px}
 .launch-action .launch-action-link{grid-template-columns:64px minmax(0,1fr);grid-template-rows:auto auto;gap:24px 16px}
 .launch-action-number{font-size:3.5rem}
 .launch-action .launch-art{aspect-ratio:1.8;max-height:300px}
 .launch-action h3{font-size:1.375rem}
 .black .tail-profile{display:block;padding-bottom:48px}
 .black .tail-profile figure{margin-bottom:32px;clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,16px 100%,0 calc(100% - 16px))}
 .black .tail-profile h2{margin:14px 0 20px}
 .launch-follow{gap:32px}
 .launch-follow .welcome-social nav{gap:8px}
 .launch-follow .welcome-social nav>a,.launch-follow .welcome-pending{font-size:.875rem}
 .launch-follow .welcome-icon{width:48px;height:48px}
 .launch-follow .welcome-social a .welcome-icon svg{width:28px;height:28px}
 .launch-follow .welcome-pending .welcome-icon svg{width:32px;height:32px}
 .black-document .noir-assembly-stage{margin-top:28px}
}
html.large-text .launch-grid,html.zoomed .launch-grid{grid-template-columns:1fr}
html.large-text .launch-art,html.zoomed .launch-art{max-height:320px}
html:is(.large-text,.zoomed) .launch-action .launch-action-link{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:20px}
html:is(.large-text,.zoomed) .launch-action-number{font-size:3.5rem}
html:is(.large-text,.zoomed) .launch-action .launch-art{grid-column:1}
html.large-text .launch-follow,html.zoomed .launch-follow{grid-template-columns:1fr;gap:40px}
html.large-text .launch-follow .welcome-social,html.zoomed .launch-follow .welcome-social{justify-self:start;max-width:600px}
html.large-text .launch-follow .welcome-social nav,html.zoomed .launch-follow .welcome-social nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
:root:is(.large-text,.zoomed) .launch-six-lockup{display:block;width:max-content;max-width:100%}
:root:is(.large-text,.zoomed) .launch-six-brush{display:none}
:root:is(.large-text,.zoomed) .launch-six-accessible{display:inline}
:root:is(.large-text,.zoomed) .launch-six-words{padding-bottom:0}
.launch-follow{grid-template-columns:minmax(0,1fr);justify-items:center;gap:clamp(32px,4vw,40px);text-align:center;scroll-margin-top:80px}
.launch-follow :is(h2,p){max-width:none;text-align:center;text-align-last:center;text-wrap:balance}
.launch-follow .welcome-social,:root:is(.large-text,.zoomed) .launch-follow .welcome-social{justify-self:center}
.launch-follow .follow-unit{display:inline-block}
@media(prefers-reduced-motion:reduce){.launch-art img{transition:none}}

/* 筆文字の余白も含めて、下のコピーと見た目の左右端を揃える。 */
.black h1.noir-title{font-weight:600}
:root:not(.large-text):not(.zoomed) .black .noir-action{font-size:4.665rem;left:calc(var(--edge) - .23rem);bottom:82px}
/* 外周リングの6pxまで含め、左右の余白を揃える。 */
:root:not(.large-text):not(.zoomed) .black .noir-pha{left:auto;right:calc(var(--edge) + 6px)}
@media(min-width:761px){
 :root:not(.large-text):not(.zoomed) .black .noir-action{font-size:6.218rem;left:calc(var(--edge) - .307rem)}
 :root:not(.large-text):not(.zoomed) .black h1.noir-title{top:24%}
 :root:not(.large-text):not(.zoomed) .black .noir-portrait img{mask-image:linear-gradient(90deg,transparent,#000 8%),linear-gradient(180deg,transparent,#000 8%,#000 72%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%),linear-gradient(180deg,transparent,#000 8%,#000 72%,transparent 100%)}
 :root:not(.large-text):not(.zoomed) .black .noir-portrait:after{background:linear-gradient(90deg,#10120f 0%,#10120fa8 16%,#10120f40 34%,transparent 57%),linear-gradient(0deg,#10120f 0%,#10120f6b 10%,transparent 32%),linear-gradient(180deg,#10120f90,transparent 23%)}
}
@media(min-width:761px) and (max-height:760px){
 :root:not(.large-text):not(.zoomed) .black .noir-action{bottom:72px}
 :root:not(.large-text):not(.zoomed) .black h1.noir-title{top:calc(max(90px,15svh) + clamp(12px,10svh - 40px,32px))}
}
@media(max-width:600px){
 :root:not(.large-text):not(.zoomed) .black .noir-cover{--hero-caption-size:clamp(1.1rem,4.65vw,1.25rem);--hero-badge-size:clamp(70px,18vw,78px)}
 :root:not(.large-text):not(.zoomed) .black h1.noir-title{top:clamp(124px,18svh,158px);gap:14px}
 :root:not(.large-text):not(.zoomed) .black .noir-promise{font-size:2.375rem;letter-spacing:.055em;padding-top:28px}
 :root:not(.large-text):not(.zoomed) .black .noir-preface{font-size:1.5rem;letter-spacing:.1em}
 :root:not(.large-text):not(.zoomed) .black .noir-action{font-size:calc(var(--hero-caption-size)*3.965);left:calc(24px - var(--hero-caption-size)*.19);bottom:66px}
 :root:not(.large-text):not(.zoomed) .black .noir-caption{left:24px;right:auto;bottom:24px}
 :root:not(.large-text):not(.zoomed) .black .noir-caption p{font-size:var(--hero-caption-size);line-height:1.5;letter-spacing:.01em;font-weight:500}
 :root:not(.large-text):not(.zoomed) .black .noir-pha{bottom:24px;width:var(--hero-badge-size);height:var(--hero-badge-size)}
}
@media(max-width:360px){
 :root:not(.large-text):not(.zoomed) .black .noir-cover{--hero-caption-size:1rem;--hero-badge-size:64px}
 :root:not(.large-text):not(.zoomed) .black h1.noir-title{top:116px;gap:12px}
 :root:not(.large-text):not(.zoomed) .black .noir-promise{font-size:2.125rem;padding-top:24px}
 :root:not(.large-text):not(.zoomed) .black .noir-preface{font-size:1.375rem}
}
@media(max-width:600px) and (max-height:600px){
 :root:not(.large-text):not(.zoomed) .black h1.noir-title{top:104px}
 :root:not(.large-text):not(.zoomed) .black .noir-promise{font-size:2.125rem;padding-top:24px}
}
@media(min-width:601px) and (max-width:760px) and (max-height:500px){
 :root:not(.large-text):not(.zoomed) .black .noir-action{font-size:4.145rem;left:calc(26% - .204rem);bottom:62px}
}
@media(min-width:601px) and (max-width:760px) and (max-height:650px){
 :root:not(.large-text):not(.zoomed) .black .noir-promise{font-size:2.2rem}
}

/* ボタンの外周だけが巡る。ロゴの文字は静止させ、既存の動き停止設定に従う。 */
.black .noir-pha{display:block;border-radius:50%;transition:transform .25s ease,box-shadow .25s ease}
.black .noir-pha:before,.black .noir-pha:after{content:'';position:absolute;inset:-6px;border-radius:inherit;pointer-events:none}
.black .noir-pha:before{background:conic-gradient(transparent 65%,#f4f52d20 78%,#f4f52dcc 98%,transparent);mask:radial-gradient(farthest-side,transparent calc(100% - 1.5px),#000 calc(100% - 1.5px));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 1.5px),#000 calc(100% - 1.5px));animation:noir-pha-orbit 12s linear infinite}
.black .noir-pha:after{border:1px solid #f4f52d30}
.black .noir-pha:is(:hover,:focus-visible){transform:translateY(-3px) scale(1.04);box-shadow:0 4px 30px #f4f52d35}
.black .noir-pha:focus-visible{outline:2px solid #fff;outline-offset:10px}
.black .noir-pha:active{transform:scale(.97)}
.black.noir-page-hidden .noir-pha:before{animation-play-state:paused}
.black.noir-motion-off .noir-pha:is(:hover,:focus-visible,:active){transform:none}
@keyframes noir-pha-orbit{to{transform:rotate(1turn)}}
@media(prefers-reduced-motion:reduce){.black .noir-pha:is(:hover,:focus-visible,:active){transform:none}}

/* 黒帯は透過度0%→100%の一枚。背景は写真上端8pxを同じ横位置で上へ延長する。 */
:root:not(.large-text):not(.zoomed) .black .noir-portrait{--noir-photo-top:max(86px,calc((100svh - 60vw)/2));--noir-photo-width:min(90%,calc(150svh - 129px));--noir-photo-left:auto;--noir-photo-right:0;--noir-top-shade:linear-gradient(180deg,#10120f 0%,#10120f00 100%) 0 0/100% clamp(160px,24svh,220px) no-repeat}
:root:not(.large-text):not(.zoomed) .black .noir-portrait img{top:var(--noir-photo-top);width:var(--noir-photo-width);left:var(--noir-photo-left);right:var(--noir-photo-right)}
:root:not(.large-text):not(.zoomed) .black .noir-portrait:before{content:'';position:absolute;inset:0 var(--noir-photo-right) auto var(--noir-photo-left);width:var(--noir-photo-width);height:calc(var(--noir-photo-top) + clamp(24px,6vw,64px));background:url('/facades/assets/black-warm-listener-v3.webp') center top/100% 12800% no-repeat;mask-image:linear-gradient(90deg,transparent,#000 8%),linear-gradient(180deg,#000 var(--noir-photo-top),transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%),linear-gradient(180deg,#000 var(--noir-photo-top),transparent 100%);mask-composite:intersect;-webkit-mask-composite:source-in}
:root:not(.large-text):not(.zoomed) .black .noir-portrait:after{background:linear-gradient(90deg,#10120f 0%,#10120fa8 16%,#10120f40 34%,transparent 57%),linear-gradient(0deg,#10120f 0%,#10120f6b 10%,transparent 32%),var(--noir-top-shade)}
@media(max-width:600px){
 :root:not(.large-text):not(.zoomed) .black .noir-portrait{--noir-photo-top:clamp(108px,calc(38svh - 135px),190px);--noir-photo-width:160%;--noir-photo-left:-47.5%;--noir-photo-right:auto}
 :root:not(.large-text):not(.zoomed) .black .noir-portrait:before{mask-image:linear-gradient(180deg,#000 var(--noir-photo-top),transparent 100%);-webkit-mask-image:linear-gradient(180deg,#000 var(--noir-photo-top),transparent 100%)}
 :root:not(.large-text):not(.zoomed) .black .noir-portrait:after{background:linear-gradient(90deg,#10120f7a,transparent 44%),linear-gradient(0deg,#10120f 0%,#10120fe8 14%,transparent 34%),var(--noir-top-shade)}
}

/* 詳細でも01〜06を主役にし、見出し→対話の絵→本文へつなぐ。 */
.black-document .policy-detail{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(0,1.1fr);gap:32px 56px;padding:64px 0;align-items:start;border-top:1px solid #879eaf;color:#263f56}
.black-document .policy-detail-heading{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:28px}
.black-document .policy-detail .number{position:static;color:#3a536c;font:500 clamp(6rem,11vw,9rem)/.9 'Noir Outfit',sans-serif;letter-spacing:-.06em}
.black-document .policy-detail h2{font-family:'Helvetica Neue',Arial,'Hiragino Sans','Hiragino Kaku Gothic ProN',sans-serif;font-weight:700;font-size:clamp(1.75rem,3vw,2.75rem);line-height:1.5;margin:0;letter-spacing:.01em;text-wrap:balance}
.policy-number-accessible{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
.black-document .noir-policy-art{position:static;inset:auto;grid-column:1;grid-row:2;width:100%;margin:0}
.black-document .noir-policy-art img{display:block;width:100%;height:auto}
.black-document .policy-detail-body{grid-column:2;grid-row:2}
.black-document .policy-detail .policy-full-text p:first-child{margin-top:0}
.black-document .policy-detail .launch-evidence{border-top-color:#879eaf}
@media(max-width:760px){
 .black-document .policy-detail{grid-template-columns:minmax(0,1fr);gap:24px;padding:40px 0}
 .black-document .policy-detail-heading{gap:16px;align-items:start}
 .black-document .policy-detail .number{font-size:5.5rem}
 .black-document .policy-detail h2{font-size:1.625rem;line-height:1.5}
 .black-document .noir-policy-art{grid-column:1;grid-row:2;max-width:520px;margin:0 auto}
 .black-document .policy-detail-body{grid-column:1;grid-row:3}
}
html.large-text .black-document .policy-detail{grid-template-columns:minmax(0,1fr)}
html.large-text .black-document .policy-detail-heading{grid-template-columns:minmax(0,1fr);gap:20px}
html.large-text .black-document .noir-policy-art{grid-column:1;grid-row:2;max-width:520px;margin:0 auto}
html.large-text .black-document .policy-detail-body{grid-column:1;grid-row:3}
/* コピーの行ボックスと、ボタン外周リングの下端を同じ基準に。 */
:root:not(.large-text):not(.zoomed) .black .noir-cover{--hero-bottom:32px}
:root:not(.large-text):not(.zoomed) .black .noir-caption{bottom:var(--hero-bottom)}
:root:not(.large-text):not(.zoomed) .black .noir-caption p{margin:0;line-height:1}
:root:not(.large-text):not(.zoomed) .black .noir-pha{bottom:calc(var(--hero-bottom) + 6px)}
@media(max-width:760px){:root:not(.large-text):not(.zoomed) .black .noir-cover{--hero-bottom:24px}}

body.policy-page:not(.leaflet-entry) main{background:#f3f5f6;color:#263f56}
.policy-page:not(.leaflet-entry) .noir-policy-index a>span:first-child{font:500 2rem/1 'Noir Outfit',sans-serif;color:#3a536c}

.policy-page.black-document main .policy-detail .number,.policy-page.black-document main .noir-policy-index a>span:first-child{color:#3a536c}

.policy-heading-word{display:inline-block;max-width:100%}
