/* 来歴標準プロジェクト 共通スタイル
   来歴マーク デザイン規程 v0.4 のカラートークンに準拠
   琥珀 #E9A13B は図形専用。文字には #8A5410 を使うこと（白背景コントラスト2.2:1 / 6.3:1） */
:root{
  --ink:#14171D; --amber:#E9A13B; --amber-text:#8A5410; --amber-tint:#FDF4E6;
  --neutral:#6B7680; --line:#DFE3E7; --paper:#FFFFFF; --ink-inverse:#F5F6F7;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"Noto Sans JP",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);line-height:1.9;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:inherit}
.container{width:min(880px,92%);margin-inline:auto}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;z-index:100;background:#fff;padding:8px 14px;border-radius:8px}

/* 共通ヘッダー（コーポレート・ダーク） */
.site-head{background:#070b16;border-bottom:1px solid rgba(130,165,255,.16);position:sticky;top:0;z-index:50}
.site-head .in{width:min(1140px,92%);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.site-head a{text-decoration:none}
.brand{display:flex;align-items:center;gap:12px;color:#e9eefb}
.brand img{width:32px;height:32px;border-radius:8px}
.brand .t{font-weight:700;font-size:1.05rem}
.brand .tg{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.18em;color:#5f6d92}
.site-nav{display:flex;gap:22px;align-items:center}
.site-nav a{color:#94a2c6;font-size:.9rem}
.site-nav a:hover{color:#e9eefb}
.site-nav .cta{background:linear-gradient(115deg,#4da3ff,#38d4ff);color:#04101f;font-weight:700;padding:9px 18px;border-radius:10px}

/* パンくず */
.crumbs{border-bottom:1px solid var(--line);font-size:.8rem;color:var(--neutral)}
.crumbs .container{padding:12px 0}
.crumbs a{text-decoration:none;color:var(--neutral)}
.crumbs a:hover{color:var(--ink)}
.crumbs span[aria-current]{color:var(--ink)}

/* ヒーロー */
.hero{padding:84px 0 64px;border-bottom:1px solid var(--line)}
.hero .logo{width:min(300px,70vw);margin-bottom:34px}
.hero h1{font-size:clamp(1.7rem,4.2vw,2.6rem);font-weight:900;line-height:1.5;letter-spacing:.01em}
.hero .sub{margin-top:18px;color:var(--neutral);font-size:1.02rem}
.hero .meta{margin-top:26px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.chip{font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;border:1px solid var(--line);border-radius:999px;padding:5px 14px;color:var(--neutral)}
.chip.amber{background:var(--amber-tint);border-color:#f0dcb8;color:var(--amber-text)}
.hero .actions{margin-top:34px;display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-block;text-decoration:none;font-weight:700;font-size:.95rem;padding:13px 26px;border-radius:12px;transition:opacity .2s}
.btn.solid{background:var(--ink);color:#fff}
.btn.ghost{border:1.5px solid var(--ink);color:var(--ink)}
.btn:hover{opacity:.82}

/* 下層ページのヒーロー */
.page-head{padding:56px 0 40px;border-bottom:1px solid var(--line)}
.page-head h1{font-size:clamp(1.5rem,3.6vw,2.15rem);font-weight:900;line-height:1.55}
.page-head .sub{margin-top:16px;color:#3a3f47;max-width:44em}
.page-head .meta{margin-top:22px;display:flex;flex-wrap:wrap;gap:10px}

section{padding:72px 0;border-bottom:1px solid var(--line)}
.tag{font-family:var(--mono);font-size:.76rem;font-weight:700;letter-spacing:.14em;color:var(--amber-text)}
h2{font-size:clamp(1.3rem,2.8vw,1.7rem);font-weight:900;margin:10px 0 14px;line-height:1.6}
h3{font-size:1.05rem;font-weight:700;line-height:1.7}
.lead{color:#3a3f47;max-width:44em}

/* 本文（散文が続くページ用） */
.prose h2{margin-top:52px}
.prose h2:first-child{margin-top:0}
.prose h3{margin:34px 0 10px}
.prose h4{margin:24px 0 8px;font-size:.98rem;font-weight:700}
.prose p{margin:14px 0;color:#2c3138}
.prose ul,.prose ol{margin:14px 0 14px 1.4em;color:#2c3138}
.prose li{margin-bottom:8px;line-height:1.85}
.prose blockquote{margin:20px 0;padding:2px 0 2px 18px;border-left:3px solid var(--line);color:var(--neutral)}
.prose code{font-family:var(--mono);font-size:.88em;background:#f2f4f5;border-radius:5px;padding:2px 6px}
.prose pre{margin:18px 0;background:#f7f8f9;border:1px solid var(--line);border-radius:12px;padding:18px;overflow-x:auto;line-height:1.7}
.prose pre code{background:none;padding:0;font-size:.82rem}
.prose hr{border:0;border-top:1px solid var(--line);margin:44px 0}
.prose a{color:var(--amber-text)}
.prose strong{font-weight:700}

/* 3つの立場 */
.stance{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}
.stance .card{border:1px solid var(--line);border-radius:14px;padding:24px 22px}
.stance .n{font-family:var(--mono);font-size:.72rem;color:var(--neutral);letter-spacing:.1em}
.stance h3{font-size:1.02rem;font-weight:700;margin:8px 0 8px;line-height:1.6}
.stance p{font-size:.88rem;color:#3a3f47;line-height:1.85}

/* しくみ */
.axes{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:34px 0 10px}
.axes .ax{border:1px solid var(--line);border-radius:14px;padding:22px}
.axes .ax > b{display:block;font-size:1.02rem;margin-bottom:6px}
.axes .ax span{font-size:.86rem;color:#3a3f47;line-height:1.85;display:block}
.readbox{margin:30px 0;background:#f7f8f9;border:1px solid var(--line);border-radius:14px;padding:24px;text-align:center}
.readbox .code{font-family:var(--mono);font-weight:700;font-size:clamp(1.5rem,4vw,2.1rem);letter-spacing:.04em}
.readbox .code .b{color:var(--amber-text)}
.readbox p{font-size:.86rem;color:var(--neutral);margin-top:8px}

table{width:100%;border-collapse:collapse;margin:26px 0 8px;font-size:.9rem;line-height:1.75}
th,td{border:1px solid var(--line);padding:11px 14px;text-align:left;vertical-align:top}
th{background:#f7f8f9;font-weight:700}
thead th{white-space:nowrap}
td.k{font-family:var(--mono);font-weight:700;text-align:center;white-space:nowrap;width:3.4em}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
.scroll-x table{min-width:640px}

.note{margin:20px 0;padding:14px 18px;border-left:3px solid var(--amber);background:var(--amber-tint);border-radius:0 10px 10px 0;font-size:.88rem;line-height:1.85;color:#3a3f47}
.note b{color:var(--amber-text)}
.callout{margin:24px 0;border:1px solid var(--line);border-radius:14px;padding:22px}
.callout > b{display:block;margin-bottom:6px}
.callout p{font-size:.9rem;color:#3a3f47;margin:0}

.badges{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start;margin:28px 0 6px}
.badges figure{margin:0}
.badges img{height:44px;width:auto}
.badges figcaption{font-size:.78rem;color:var(--neutral);margin-top:8px}

/* フロー図 */
.flow-wrap{margin-top:30px;text-align:center}
.flow-wrap a{display:block;margin-inline:auto;border:1px solid var(--line);border-radius:14px;overflow:hidden;max-width:760px}
.flow-wrap img{display:block}
.flow-wrap p{font-size:.82rem;color:var(--neutral);margin-top:10px}

/* ダウンロード・カードリンク */
.dl{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px}
.dl a{display:block;text-decoration:none;border:1px solid var(--line);border-radius:14px;padding:22px;transition:border-color .2s}
.dl a:hover{border-color:var(--amber)}
.dl .t{font-weight:700;font-size:1rem;display:block}
.dl .d{font-size:.82rem;color:var(--neutral);margin-top:4px;display:block}
.dl .m{font-family:var(--mono);font-size:.72rem;color:var(--amber-text);margin-top:10px;display:block}
.license{margin-top:22px;font-size:.85rem;color:var(--neutral)}

/* 課題背景（WHY） */
.why{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px}
.why .card{border:1px solid var(--line);border-radius:14px;padding:24px 22px;background:var(--ink-inverse)}
.why .card h3{font-size:1.02rem;font-weight:700;margin-bottom:10px;line-height:1.6}
.why .card p{font-size:.88rem;color:#3a3f47;line-height:1.85}
.why .more{margin-top:14px;font-size:.85rem}
.why .more a{color:var(--amber-text);font-weight:700;text-decoration:none}
.why .more a:hover{text-decoration:underline}
#why .note{margin-top:26px}

/* ハブのページ一覧 */
.hub{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px}
.hub a{display:block;text-decoration:none;border:1px solid var(--line);border-radius:14px;padding:22px;transition:border-color .2s}
.hub a:hover{border-color:var(--amber)}
.hub .t{font-weight:700;font-size:1rem;display:block}
.hub .d{font-size:.85rem;color:#3a3f47;margin-top:6px;display:block;line-height:1.8}
.hub .who{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;color:var(--amber-text);display:block;margin-bottom:8px}

/* FAQ */
.faq{margin-top:30px}
.faq details{border:1px solid var(--line);border-radius:14px;margin-bottom:12px;overflow:hidden}
.faq summary{cursor:pointer;padding:18px 22px;font-weight:700;font-size:.98rem;line-height:1.7;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";font-family:var(--mono);color:var(--amber-text);margin-right:12px;font-size:.9rem}
.faq details[open] summary{border-bottom:1px solid var(--line);background:#f7f8f9}
.faq .a{padding:18px 22px 20px;font-size:.9rem;color:#2c3138;line-height:1.9}
.faq .a p{margin:0 0 12px}
.faq .a p:last-child{margin-bottom:0}
.faq .a ul{margin:10px 0 12px 1.3em}
.faq .a li{margin-bottom:6px}

/* 図版（罫線アスキーアートの置き換え）
   全角と罫線の送り幅が一致しないため、文字位置に依存しない構造で描く */
.diagram{margin:26px 0}
.diagram .d-box{border:1px solid var(--line);border-radius:14px;padding:18px 22px;background:#f7f8f9}
.diagram .d-box > b{display:block;font-size:.98rem;margin-bottom:6px}
.diagram .d-box > span{display:block;font-size:.86rem;color:#3a3f47;line-height:1.85}
.diagram .d-arrow{position:relative;text-align:center;font-size:.8rem;color:var(--amber-text);padding:10px 0 18px}
.diagram .d-arrow::before{content:"";display:block;width:1px;height:14px;background:var(--line);margin:0 auto 4px}
.diagram .d-arrow::after{content:"▼";display:block;color:var(--line);font-size:.7rem;line-height:1;margin-top:2px}

.readmap{margin:26px 0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.readmap .rm-code{margin:0;padding:20px 22px;background:#f7f8f9;border-bottom:1px solid var(--line);
  font-family:var(--mono);font-weight:700;font-size:clamp(1.1rem,3vw,1.4rem);letter-spacing:.04em}
.readmap .rm-notes{margin:0;padding:16px 22px;list-style:none}
.readmap .rm-notes li{display:flex;gap:14px;align-items:baseline;margin:0;padding:7px 0;font-size:.88rem;line-height:1.8}
.readmap .rm-notes li+li{border-top:1px solid var(--line)}
.readmap .rm-notes b{font-family:var(--mono);color:var(--amber-text);min-width:6.5em;flex:none}
.readmap .rm-notes span{color:#2c3138}

.branch{margin:26px 0;border:1px solid var(--line);border-radius:14px;padding:20px 24px;background:#f7f8f9}
.branch .b-q{margin:0 0 12px;font-weight:700;font-size:.96rem}
.branch ol,.branch ul{margin:0 0 0 1.3em;font-size:.9rem}
.branch li{margin:7px 0;line-height:1.85;color:#2c3138}
.branch ul ul,.branch ol ul{margin-top:6px;margin-bottom:6px}
.branch .b-r{font-family:var(--mono);font-weight:700;color:var(--amber-text)}
.branch small{color:var(--neutral);font-size:.84em}

/* 用語集 */
.terms dl{margin-top:26px}
.terms dt{font-weight:700;font-size:1rem;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.terms dt:first-of-type{border-top:0;padding-top:0;margin-top:0}
.terms dd{margin:8px 0 0;font-size:.92rem;color:#2c3138;line-height:1.9}
.terms .en{font-family:var(--mono);font-size:.74rem;color:var(--neutral);font-weight:400;margin-left:10px}

/* 目次 */
.toc{margin:30px 0;border:1px solid var(--line);border-radius:14px;padding:22px 26px;background:#f7f8f9}
.toc > b{display:block;font-size:.88rem;margin-bottom:10px}
.toc ol{margin:0 0 0 1.3em;font-size:.88rem}
.toc ul{margin:0;padding:0;list-style:none;font-size:.88rem}
.toc li{margin-bottom:6px;line-height:1.7}
.toc a{color:#2c3138}
.toc ul a{display:inline-block}

/* 次に読む */
.next{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:26px}
.next a{display:block;text-decoration:none;border:1px solid var(--line);border-radius:14px;padding:20px;transition:border-color .2s}
.next a:hover{border-color:var(--amber)}
.next .t{font-weight:700;font-size:.95rem;display:block}
.next .d{font-size:.82rem;color:var(--neutral);margin-top:5px;display:block;line-height:1.75}

/* 意見募集 */
/* 意見募集の論点（番号は規格本文と同じ順。宛先は各項目に付ける） */
ol.issues{margin-top:30px;list-style:none;counter-reset:iss}
ol.issues li{counter-increment:iss;position:relative;padding-left:44px;
  border-top:1px solid var(--line);padding-top:22px;margin-top:22px}
ol.issues li:first-child{border-top:0;padding-top:0;margin-top:0}
ol.issues li::before{content:counter(iss);position:absolute;left:0;top:20px;
  width:28px;height:28px;border-radius:50%;background:var(--ink);color:#fff;
  font-family:var(--mono);font-size:.8rem;font-weight:700;
  display:flex;align-items:center;justify-content:center}
ol.issues li:first-child::before{top:-2px}
ol.issues .who{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;
  color:var(--amber-text);display:block;margin-bottom:6px}
ol.issues b{display:block;font-size:.98rem;font-weight:700;line-height:1.7}
ol.issues .d{display:block;font-size:.86rem;color:#3a3f47;line-height:1.85;margin-top:6px}
ol.issues .d b{display:inline;font-size:inherit;color:var(--amber-text)}
.contact-box p b{color:var(--ink)}
.contact-box{margin-top:32px;background:#f7f8f9;border:1px solid var(--line);border-radius:14px;padding:26px;text-align:center}
.contact-box b{font-size:1.05rem}
.contact-box .mail{font-family:var(--mono);font-size:1.05rem;display:block;margin:10px 0 4px}
.contact-box p{font-size:.85rem;color:var(--neutral)}

/* ページフッタ帯＋共通フッター */
.credit{padding:44px 0;text-align:center;font-size:.86rem;color:var(--neutral)}
.credit .src{font-family:var(--mono);font-size:.8rem;display:block;margin-bottom:6px;color:var(--ink)}
.site-foot{background:#070b16;color:#5f6d92;padding:36px 0}
.site-foot .in{width:min(1140px,92%);margin-inline:auto;display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;align-items:center;font-size:.85rem}
.site-foot a{color:#94a2c6;text-decoration:none;margin-left:18px}
.site-foot a:hover{color:#e9eefb}

@media(max-width:760px){
  .stance,.axes,.dl,.hub,.next,.why{grid-template-columns:1fr}
  .site-nav a.hide-sm{display:none}
  section{padding:56px 0}
  .site-foot a{margin:0 14px 0 0}
}

/* 補助行（連絡先ボックス内の二次情報） */
.contact-box .sub2{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);
  font-size:.82rem;color:var(--neutral)}
.contact-box .sub2 a{color:var(--amber-text);font-weight:700}
