:root{--fs-min:17px;--fs-ui:15px}@media(min-width:900px){:root{--fs-min:20px;--fs-ui:16px}}
/* v6 下層ページ（EBMIについて／研究活動 配下）— メインデザイン。長文本文の書式は prose.css（ALC記事準拠）に委譲。style.css → prose.css → sub.css の順に読み込む */
.ph{background:var(--navy);color:#fff;padding:40px 0 44px;position:relative;overflow:hidden}
.ph::before{content:"";position:absolute;right:-140px;top:-160px;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(180,150,70,.28),transparent 68%)}
.ph .wrap{position:relative}
.ph .crumb{font-size:max(14px,var(--fs-ui));color:var(--hero-sub);display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
/* 9/11 村山: パンくずのリンクは色＋下線（紺地なので薄い金）。現在地は通常色 */
.ph .crumb a{color:var(--gold-l);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.ph .crumb a:hover{color:#fff}
.ph .eyebrow{color:var(--gold-l)}
.ph h1{color:#fff;font-size:30px}
.ph .lead{color:var(--hero-sub);max-width:720px;font-size:max(17.5px,var(--fs-min));line-height:1.9;margin-top:18px}
.sub{padding:40px 0 72px}
.sub .wrap{display:grid;gap:40px}
.side{order:2}
.side .sn{position:static;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.side .sn b{display:block;font-size:max(14px,var(--fs-ui));letter-spacing:.1em;color:var(--gold-d);padding:12px 16px 6px}
.side .sn a{display:block;padding:12px 16px;font-size:max(15px,var(--fs-ui));font-weight:700;border-top:1px solid var(--line)}
.side .sn a:hover{background:var(--wg)}
.side .sn a.on{color:var(--gold-d);background:var(--cream);box-shadow:inset 3px 0 0 var(--gold)}
.side .sn a small{display:block;font-weight:400;font-size:max(14px,var(--fs-ui));color:var(--ink-2)}
.side .cv{margin-top:16px;background:var(--navy);color:#fff;border-radius:12px;padding:18px}
.side .cv b{display:block;font-size:max(15px,var(--fs-ui))}
.side .cv p{font-size:max(15px,var(--fs-ui));color:var(--hero-sub);margin-top:6px}
.side .cv .btn{margin-top:12px;width:100%}
.body .fig{margin:1.4em 0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.body .fig img{width:100%;margin:0;border-radius:0}
.body .fig figcaption{font-size:14px;color:var(--ink-2);padding:8px 12px;border-top:1px solid var(--line)}
.body .callout{margin:1.4em 0;background:var(--cream);border-left:4px solid var(--gold);border-radius:0 10px 10px 0;padding:16px 20px}
.body .callout b{display:block;font-size:1.2em;font-weight:700;color:var(--ink);letter-spacing:.04em;margin-bottom:6px} /* 10/2 村山: 「EBMIの3本柱」を見出しサイズに */
.body .callout p{margin:.4em 0 0}
.body .quote{margin:1.4em 0;border:1px solid var(--line);border-radius:12px;padding:28px 30px;background:#fff}
.body .quote .sig{text-align:right;margin-top:14px;font-weight:700}
.body .btnrow{display:flex;gap:14px;flex-wrap:wrap;margin-top:2em}
.body .btnrow a,.body .lab a.more,.body .person a{text-decoration:none}
.tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* 人物 */
.people{display:grid;gap:20px;margin:1.4em 0}
.person{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;display:grid;grid-template-columns:72px 1fr;gap:16px;align-items:start}
.person .av{width:72px;height:72px;border-radius:50%;background:var(--cream);border:1px solid var(--gold-l);display:grid;place-items:center;color:var(--gold-d);font-weight:700;font-size:20px;overflow:hidden}
.person .av img{width:100%;height:100%;object-fit:cover}
.person .role{font-size:max(14px,var(--fs-ui));font-weight:700;color:var(--gold-d);letter-spacing:.08em}
.person b.nm{display:block;font-size:18px;margin-top:2px}
.person .org{font-size:max(15px,var(--fs-ui));line-height:1.7;color:var(--ink-2)}
.person p{font-size:max(17px,var(--fs-min));margin:.7em 0 0;color:#444}
.person .tmp{vertical-align:middle}
.clist{display:grid;gap:10px;margin:1.2em 0}
.clist div{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 16px;font-size:17px;display:grid;gap:2px}
.clist div b{font-size:16px}
.clist div span{font-size:max(14px,var(--fs-ui));color:var(--ink-2)}
/* 加盟社 */
.lg{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:1.4em 0}
.lg div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px 16px 14px;display:grid;gap:10px;align-content:center;text-align:center}
.lg .lw{height:72px;display:grid;place-items:center}
.lg img{height:44px;width:auto;max-width:100%;object-fit:contain;margin:0 auto}
.lg span{font-size:max(14px,var(--fs-ui));color:var(--ink-2);line-height:1.4}
/* 分科会 */
.labs{display:grid;gap:20px;margin:1.4em 0}
.lab{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px 26px 28px;border-top:4px solid var(--gold)}
.lab .n{font-size:max(14px,var(--fs-ui));font-weight:700;color:var(--gold-d);letter-spacing:.1em}
.lab h3{margin:.3em 0 0}
.lab p{font-size:max(17px,var(--fs-min));color:#444;margin:.8em 0 0}
.lab a.more{display:inline-block;margin-top:12px;font-size:max(15px,var(--fs-ui));font-weight:700;color:var(--gold-d);border-bottom:1px solid currentColor}
.mem{margin-top:14px;font-size:max(15px,var(--fs-ui));color:var(--ink-2);line-height:1.7}
/* 記事一覧 */
.list{display:grid;gap:12px;margin:1.4em 0}
.li{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;transition:box-shadow var(--dur-hover),transform var(--dur-hover)}
.li:hover{box-shadow:0 6px 16px rgba(0,0,0,.08);transform:translateY(-1px)}
.li .d{font-size:max(14px,var(--fs-ui));color:var(--ink-2);font-variant-numeric:tabular-nums}
.li .k{display:inline-block;font-size:12px;font-weight:700;padding:1px 8px;border-radius:3px;background:var(--wg);color:var(--ink-2);margin-top:4px}
.li .k.pr{background:var(--cream);color:var(--gold-d)}
.li .k.rep{background:#e8f0e9;color:#2f7d4f}
.li .k.mem{background:#e9eef7;color:#2a4a8a}
.li .k.ev{background:#f3e9ef;color:#8a2a5a}
.li .t{font-size:17px;font-weight:700;line-height:1.6}
.li .t .tmp{vertical-align:middle}
.filt{display:flex;gap:8px;flex-wrap:wrap;margin:1.2em 0}
.filt button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 16px;font-size:max(15px,var(--fs-ui));cursor:pointer;color:var(--ink-2);font-family:inherit}
.filt button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
/* メディア */
.mgrid{display:grid;gap:14px;margin:1em 0 1.6em}
.mi{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.mi img{width:120px;height:68px;object-fit:cover;background:var(--wg)}
.mi .t{font-size:16px;font-weight:700;line-height:1.55;padding:10px 14px 10px 0}
.mi .t small{display:block;font-weight:400;font-size:max(14px,var(--fs-ui));color:var(--ink-2);margin-top:2px}
.mlogos{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.mlogos span{font-size:max(15px,var(--fs-ui));font-weight:700;border:1px solid var(--line);border-radius:999px;padding:5px 14px;background:#fff}
/* 出版 */
.bks{display:grid;gap:24px;margin:1.4em 0}
.bk{display:grid;grid-template-columns:110px minmax(0,1fr);gap:18px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}
.bk .bc{aspect-ratio:352/500;max-width:110px;width:100%;object-fit:cover;border-radius:4px;box-shadow:0 8px 20px rgba(0,0,0,.18);display:block}
.bk h3{margin-top:0}
.bk .meta{font-size:max(14px,var(--fs-ui));color:var(--ink-2);margin-top:6px}
.bk p{font-size:17px;margin:.7em 0 0}
.bk .btnrow{margin-top:18px}
.bk .btn{padding:10px 16px;font-size:max(15px,var(--fs-ui));white-space:normal;text-align:center}
@media (min-width:900px){
  .ph{padding:64px 0 60px}
  .ph h1{font-size:40px}
  .sub{padding:64px 0 112px}
  .sub .wrap{grid-template-columns:280px minmax(0,1fr);gap:64px}
  .side{order:0}
  .lg{grid-template-columns:repeat(3,1fr)}
  .lg .lw{height:96px}
  .people{grid-template-columns:1fr}
  .person{grid-template-columns:96px 1fr;padding:24px}
  .person .av{width:96px;height:96px;font-size:26px}
  .labs{grid-template-columns:1fr}
  .mgrid{grid-template-columns:repeat(2,1fr)}
  .bks{grid-template-columns:1fr}
  .bk{grid-template-columns:140px minmax(0,1fr);gap:24px;padding:24px}
  .bk .bc{max-width:140px}
}

/* 下層の手順ブロック（style.css .step を読みやすく） */
.body .steps{gap:16px;margin:1.4em 0}
.body .step b{font-size:17px}
.body .step small{font-size:15px;line-height:1.75;margin-top:2px}
.body .step .n{flex:0 0 40px;height:40px;font-size:max(14px,var(--fs-ui))}

.body h2,.body h3,.body [id]{scroll-margin-top:calc(var(--ut) + var(--hh) + 16px)}

/* ぶら下がり対策（9/9）: サイドナビ説明・人物カード・手順の小文字は balance */
.side .sn a small,.person p,.body .step small,.lab .mem,.li .t,.mi .t{text-wrap:balance}
.nb,span.nb{white-space:nowrap!important;text-wrap:nowrap!important}

/* 9/9 最小20px: 日付は1行、種別ピルは折り返し可 */
.li .d{white-space:nowrap}
@media (max-width:540px){ .li{grid-template-columns:1fr} }

.body h3 .cnt{font-weight:400;color:var(--ink-2);margin-left:8px}
/* 9/9 お知らせ一覧: 種別ピルを折らない */
.li{grid-template-columns:180px 1fr}
.li .k{white-space:nowrap}
@media (max-width:540px){ .li{grid-template-columns:1fr} }
/* 9/9 村山: 理事ページ 顔写真のトリミング修正（prose.css の img 規則が .av に効いて 94×156 に歪んでいた）＋プロフィールは左揃え */
.body .person{text-align:left}
.body .person .av{width:112px;height:112px;border-radius:14px;flex:none}
.body .person .av img{width:100%;height:100%;margin:0;border-radius:0;object-fit:cover;object-position:50% 50%;display:block}
.body .person>div{min-width:0}
.body .person .role,.body .person b.nm,.body .person .org{text-align:left}
.body .person p{text-align:left;text-wrap:pretty}
@media (max-width:899px){ .body .person{grid-template-columns:88px 1fr} .body .person .av{width:88px;height:88px} }
@media (min-width:900px){ .body .person{grid-template-columns:112px 1fr} }
/* 9/9 村山: 枠線ボタンの文字色は黒/紺（金は読みづらい）。prose.css の a{color:金} がボタンに漏れていた */
.body a.btn{text-decoration:none}
.body a.btn-line{color:var(--navy)}
.body a.btn-line:hover{color:#fff}
.body a.btn-gold{color:#fff}
/* 9/9 理事ページ SP: プロフィール本文は写真の右の狭い列でなくカード幅いっぱいに */
@media (max-width:899px){ .body .person>div{display:contents} .body .person .role,.body .person b.nm,.body .person .org{grid-column:2} .body .person .role{align-self:end} .body .person p{grid-column:1/-1;margin-top:.9em} .body .person{row-gap:2px} }

/* 9/11 X47: ダミーリンク注記 */
.body p.note-s{font-size:max(14px,var(--fs-ui));color:var(--ink-2);margin:-.4em 0 1.2em}
/* 9/11 X45 イベント情報: news/ の .li を流用（行は div。複数リンクを持つため） */
.li.ev{align-items:start}
.li.ev .d{white-space:normal;line-height:1.5}
.li.ev .d small{display:block;font-size:max(13px,calc(var(--fs-ui) - 2px));color:var(--ink-2)}
.li.ev .st{display:inline-block;font-size:12px;font-weight:700;padding:1px 8px;border-radius:3px;margin:4px 0 0 6px;white-space:nowrap}
.li.ev .st.open{background:var(--gold);color:#fff}
.li.ev .st.up{background:var(--cream);color:var(--gold-d)}
.li.ev .st.closed{background:#eee;color:#666}
.ev-closed{margin:8px 0 16px;padding:12px 16px;background:#f5f5f5;border-radius:8px;color:#555;font-size:max(15px,var(--fs-ui))}
.li.ev .m{font-size:max(14px,var(--fs-ui));color:var(--ink-2);margin-top:4px;line-height:1.6}
.li.ev .lk{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px}
.li.ev .lk a{font-size:max(15px,var(--fs-ui));font-weight:700;color:var(--navy);border-bottom:1px solid currentColor;text-decoration:none}
.li.ev .lk a.gold{color:var(--gold-d)}
.li.ev .lk a:hover{color:var(--gold-d)}
.li.ev .lk .tmp{margin-left:4px}
.body p.empty{background:#fff;border:1px dashed var(--line);border-radius:10px;padding:16px 18px;color:var(--ink-2);margin:1.4em 0}

/* 10/2 村山: 下層の小見出し（h3）は本文より少し大きく太字、語の途中で折らない */
.body > h3{font-size:1.2em;font-weight:700;line-height:1.5}
.body h2,.body h3{word-break:auto-phrase;text-wrap:wrap}
/* 10/2 村山: 見出しと前の段落の距離を広げる（見出し→本文の間隔はそのまま） */
.body > h2{margin-top:2.6em}
.body > h3{margin-top:2.2em}
.body > h2:first-child,.body > h3:first-child{margin-top:0} /* 10/2 村山: 部品（分科会カード等）の中の見出しには効かせない＝本文直下だけ */
/* 10/2 村山: サムネイルが無い記事は画像列なしの一覧表示 */
.mi.noimg{grid-template-columns:1fr}
.mi.noimg .t{padding:12px 16px}
/* 10/2 村山: 書籍カード直後の「その他の著書」ボタンは上のカードに寄せ、次のカードから離す */
.body div:has(> .bk) + .btnrow{margin-top:10px;margin-bottom:2.4em}
/* 10/2 村山: 404 のボタン列と検索ボックスの間隔 */
.body .btnrow + .searchbox{margin-top:36px}
/* 10/2 村山: 人物カードの下端＝紹介文（最後の段落）の下余白を 0 に */
.person p:last-child{margin-bottom:0}
/* 10/2 村山: 人物カード＝PC では subgrid の空行（行間 16px×4）が下端に積まれていた→行指定を外す */
@media (min-width:900px){ .body .person{grid-template-rows:auto;row-gap:0} }
