/* ==========================================================================
   front：トップページ専用レイアウト
   セクションは「左レール（通し番号＋英字ラベル）＋右本文」の学術誌グリッド。
   ========================================================================== */

/* --- セクション共通 --------------------------------------------------------- */
.sec{padding:var(--s8) 0;border-bottom:1px solid var(--line)}
@media (min-width:768px){ .sec{padding:var(--s9) 0} }
.sec--paper{background:var(--paper-2)}
.sec--white{background:var(--white)}
.sec--dark{background:var(--ink);color:#D3DEE2;border-bottom-color:rgba(255,255,255,.1)}
.sec--tint{background:var(--teal-l)}

.sec__inner{display:grid;gap:var(--s5)}
@media (min-width:1024px){
	.sec__inner{grid-template-columns:var(--rail) 1fr;gap:var(--s7)}
}
.sec__rail{display:flex;align-items:baseline;gap:12px}
@media (min-width:1024px){
	.sec__rail{position:sticky;top:calc(var(--hdr-h) + 32px);align-self:start;
		display:block;padding-top:6px;border-top:2px solid var(--teal)}
}
.sec__num{font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.1em;color:var(--teal)}
.sec__en{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.18em;color:var(--ink-3);text-transform:uppercase}
@media (min-width:1024px){
	.sec__num{display:block;font-size:13px;margin-bottom:6px}
	.sec__en{display:block;line-height:1.8}
}
.sec--dark .sec__rail{border-top-color:#3E8C82}
.sec--dark .sec__num{color:#57B3A6}
.sec--dark .sec__en{color:#8AA3AC}

.sec__title{font-family:var(--f-serif);font-size:21px;font-weight:600;line-height:1.62;letter-spacing:.01em}
@media (min-width:768px){ .sec__title{font-size:32px;line-height:1.55;letter-spacing:.02em} }

/* 日本語の禁則処理を厳格に。
   既定（line-break:auto）だと長音符「ー」や小書き仮名が行頭に落ちて、
   スマホで「…アカデミ／ー」のような不格好な折り返しになる。 */
.hero h1,.sec__title,.creed p,.ruled__t,.dtable__k,.syllabus b,.pubs__ttl b,.vision__verbs b,.hero__strip b{
	line-break:strict;
	overflow-wrap:break-word;
}
.sec--dark .sec__title{color:#fff}
.sec__title+.sec__lead{margin-top:var(--s4)}
.sec__lead{font-size:14.5px;line-height:2.1;color:var(--ink-2);max-width:70ch}
@media (min-width:768px){ .sec__lead{font-size:16px} }
.sec--dark .sec__lead{color:#AFC2C8}
.sec__body>*+*{margin-top:var(--s5)}

/* --- ヒーロー -------------------------------------------------------------- */
.hero{
	position:relative;overflow:hidden;background:var(--paper);
	border-bottom:1px solid var(--line);
}
.hero::before{
	content:"";position:absolute;inset:0;pointer-events:none;
	background-image:linear-gradient(rgba(13,33,48,.045) 1px,transparent 1px),
					 linear-gradient(90deg,rgba(13,33,48,.045) 1px,transparent 1px);
	background-size:34px 34px;
	-webkit-mask-image:radial-gradient(120% 80% at 70% 20%,#000 0%,transparent 75%);
	mask-image:radial-gradient(120% 80% at 70% 20%,#000 0%,transparent 75%);
}
.hero__inner{position:relative;display:grid;gap:var(--s7);padding:var(--s7) 0 var(--s6)}
@media (min-width:768px){ .hero__inner{padding:var(--s8) 0 var(--s7)} }
@media (min-width:1024px){
	/* テキストと図版の間に空白の帯ができないよう、列の比率・間隔・本文幅・図版サイズを揃える。
	   （テキストが早く折り返して右に余白が残る → 図版との距離が開いて見えるのを防ぐ） */
	.hero__inner{grid-template-columns:1.15fr .85fr;align-items:center;gap:var(--s7);padding:var(--s8) 0 var(--s7)}
}
.hero__label{margin-bottom:var(--s5)}
.hero h1{
	font-family:var(--f-serif);font-weight:600;letter-spacing:.02em;
	font-size:29px;line-height:1.6;
}
@media (min-width:768px){ .hero h1{font-size:42px;line-height:1.55} }
/* 「医療の未来を考える」が1行に収まる範囲で、できるだけ大きく */
@media (min-width:1024px){ .hero h1{font-size:clamp(38px,3.9vw,52px)} }
/* スマホのみ3行に分ける（末尾に「る。」だけ残るのを防ぐ） */
.br-sp{display:inline}
@media (min-width:768px){ .br-sp{display:none} }
.hero h1 .em{
	background:linear-gradient(transparent 68%,rgba(14,110,99,.18) 68%);
}
.hero__lead{margin-top:var(--s5);font-size:14.5px;line-height:2.15;color:var(--ink-2)}
/* 日本語は1文字＝1em。ch指定だと想定の半分の幅で折り返してしまうので em で指定する */
@media (min-width:768px){ .hero__lead{font-size:16px;margin-top:var(--s6);max-width:38em} }
.hero__acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--s6)}
.hero__acts .btn{flex:1 1 auto;min-width:220px}
@media (min-width:768px){ .hero__acts .btn{flex:0 0 auto} }

/* ヒーロー図版：医療産業の対象領域マップ */
.hero__fig{position:relative;margin-inline:auto;width:100%;max-width:420px}
@media (min-width:1024px){ .hero__fig{max-width:520px;margin-inline:0;justify-self:end} }
.hero__fig svg{width:100%;height:auto;overflow:visible}
.fig-ring{fill:none;stroke:var(--line-2);stroke-width:1}
.fig-ring--dash{stroke-dasharray:2 6;stroke:var(--line-2)}
.fig-line{stroke:var(--line-2);stroke-width:1}
.fig-core{fill:var(--ink)}
.fig-core-t{fill:#fff;font-family:var(--f-serif);font-size:13px;font-weight:600;text-anchor:middle;letter-spacing:.04em}
.fig-node{fill:var(--white);stroke:var(--teal);stroke-width:1}
.fig-node-t{fill:var(--ink);font-family:var(--f-sans);font-size:12px;font-weight:700;text-anchor:middle;letter-spacing:.02em}
.fig-cap{fill:var(--ink-3);font-family:var(--f-mono);font-size:9.5px;letter-spacing:.14em;text-anchor:middle}

/* ヒーロー下：ミッション帯 */
.hero__strip{position:relative;border-top:1px solid var(--line);background:rgba(255,255,255,.6)}
.hero__strip ul{display:grid;grid-template-columns:repeat(2,1fr)}
@media (min-width:768px){ .hero__strip ul{grid-template-columns:repeat(5,1fr)} }
.hero__strip li{padding:18px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.hero__strip li:nth-child(2n){border-right:0}
@media (min-width:768px){
	.hero__strip li{border-bottom:0;padding:22px 18px}
	.hero__strip li:nth-child(2n){border-right:1px solid var(--line)}
	.hero__strip li:last-child{border-right:0}
}
.hero__strip li:last-child{border-bottom:0}
.hero__strip i{display:block;font-family:var(--f-mono);font-style:normal;font-size:10px;letter-spacing:.14em;color:var(--teal);margin-bottom:6px}
.hero__strip b{font-family:var(--f-serif);font-size:14px;font-weight:600;line-height:1.6}
@media (min-width:768px){ .hero__strip b{font-size:15px} }

/* --- 罫線リスト（理念・ミッション等）----------------------------------------- */
.ruled{border-top:1px solid var(--line-2)}
.ruled li{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:18px 2px;border-bottom:1px solid var(--line)}
@media (min-width:768px){ .ruled li{grid-template-columns:56px 1fr;gap:22px;padding:22px 2px} }
.ruled__n{font-family:var(--f-mono);font-size:11.5px;font-weight:600;letter-spacing:.08em;color:var(--teal);padding-top:5px}
.ruled__t{font-family:var(--f-serif);font-size:16px;font-weight:600;line-height:1.65}
@media (min-width:768px){ .ruled__t{font-size:18px} }
.ruled__d{margin-top:7px;font-size:13.5px;line-height:2;color:var(--ink-2)}
@media (min-width:768px){ .ruled__d{font-size:14.5px} }
.sec--dark .ruled{border-top-color:rgba(255,255,255,.28)}
.sec--dark .ruled li{border-bottom-color:rgba(255,255,255,.14)}
.sec--dark .ruled__n{color:#57B3A6}
.sec--dark .ruled__t{color:#fff}
.sec--dark .ruled__d{color:#A9BDC4}

/* --- 引用ブロック（理念の一文）---------------------------------------------- */
.creed{
	border-left:3px solid var(--teal);background:var(--white);
	padding:22px 20px;
}
@media (min-width:768px){ .creed{padding:28px 30px} }
.creed p{font-family:var(--f-serif);font-size:17px;font-weight:600;line-height:1.85;letter-spacing:.02em}
@media (min-width:768px){ .creed p{font-size:21px} }
.creed small{display:block;margin-top:12px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;color:var(--ink-3)}

/* --- 定義表（MEDIX50 掲載内容／評価方法）------------------------------------- */
.dtable{border:1px solid var(--line-2);background:var(--white)}
.dtable__row{display:grid;border-bottom:1px solid var(--line)}
@media (min-width:768px){ .dtable__row{grid-template-columns:230px 1fr} }
.dtable__row:last-child{border-bottom:0}
.dtable__k{
	padding:14px 16px;background:var(--paper-2);border-bottom:1px solid var(--line);
	font-family:var(--f-serif);font-size:14.5px;font-weight:600;line-height:1.6;
	display:flex;align-items:center;gap:10px;
}
@media (min-width:768px){ .dtable__k{border-bottom:0;border-right:1px solid var(--line);padding:16px 18px} }
.dtable__k .no{font-family:var(--f-mono);font-size:10.5px;font-weight:500;color:var(--teal);flex:none}
.dtable__v{padding:14px 16px;font-size:13.5px;line-height:1.95;color:var(--ink-2)}
@media (min-width:768px){ .dtable__v{padding:16px 18px;font-size:14.5px} }
.sec--dark .dtable{border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.03)}
.sec--dark .dtable__row{border-bottom-color:rgba(255,255,255,.14)}
.sec--dark .dtable__k{background:rgba(255,255,255,.05);color:#fff;border-right-color:rgba(255,255,255,.14);border-bottom-color:rgba(255,255,255,.14)}
.sec--dark .dtable__k .no{color:#57B3A6}
.sec--dark .dtable__v{color:#A9BDC4}

/* --- 準備中バッジ ---------------------------------------------------------- */
.badge{
	display:inline-flex;align-items:center;gap:7px;
	font-family:var(--f-mono);font-size:10px;font-weight:500;letter-spacing:.12em;
	padding:5px 10px;border:1px solid var(--line-2);color:var(--ink-3);line-height:1;
}
.badge--prep{border-color:var(--crimson);color:var(--crimson)}
.sec--dark .badge{border-color:rgba(255,255,255,.3);color:#9FB6BD}
.sec--dark .badge--prep{border-color:#D08A86;color:#E6A9A5}

/* --- 学べる内容グリッド（アカデミー）---------------------------------------- */
.syllabus{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line-2);border-left:1px solid var(--line-2)}
@media (min-width:768px){ .syllabus{grid-template-columns:repeat(4,1fr)} }
.syllabus li{border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);padding:16px 14px;background:var(--white)}
.syllabus i{display:block;font-family:var(--f-mono);font-style:normal;font-size:10px;letter-spacing:.12em;color:var(--teal);margin-bottom:8px}
.syllabus b{display:block;font-family:var(--f-serif);font-size:14.5px;font-weight:600;line-height:1.6}
.syllabus span{display:block;margin-top:6px;font-size:12px;line-height:1.85;color:var(--ink-3)}

/* --- 注意書き（免責の小箱）-------------------------------------------------- */
.notice{border:1px solid var(--line-2);background:var(--white);padding:18px 18px}
@media (min-width:768px){ .notice{padding:22px 24px} }
.notice__h{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--crimson);margin-bottom:10px}
.notice__h::before{content:"!";display:grid;place-items:center;width:18px;height:18px;flex:none;
	border:1px solid var(--crimson);font-family:var(--f-mono);font-size:11px;line-height:1}
.notice p{font-size:12.5px;line-height:2;color:var(--ink-2)}
.notice p+p{margin-top:8px}

/* --- 研究・発信コンテンツの一覧 --------------------------------------------- */
.pubs{border-top:1px solid var(--line-2)}
.pubs li{border-bottom:1px solid var(--line);background:var(--white);transition:background .2s ease}
.pubs li:hover{background:var(--teal-l)}
/* まだページが無い項目：リンクにしない（押しても何も起きない状態を作らない） */
.pubs--soon:hover{background:var(--white)}
.pubs--soon .in{cursor:default}
.pubs--soon .pubs__ttl b{color:var(--ink-2)}
.pubs--soon .badge{margin-left:8px;vertical-align:2px}
.pubs .in{display:grid;gap:8px;padding:20px 16px}
@media (min-width:768px){ .pubs .in{grid-template-columns:210px 1fr;gap:24px;padding:24px 20px;align-items:start} }
.pubs__ttl{display:flex;flex-direction:column;gap:6px}
.pubs__ttl i{font-family:var(--f-mono);font-style:normal;font-size:10px;letter-spacing:.14em;color:var(--teal)}
.pubs__ttl b{font-family:var(--f-serif);font-size:17px;font-weight:600;line-height:1.5}
.pubs .in>span:last-child{display:block}
.pubs__d{display:block;font-size:13.5px;line-height:2;color:var(--ink-2)}
.pubs__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pubs__tags span{font-size:11px;letter-spacing:.04em;color:var(--ink-3);border:1px solid var(--line);padding:3px 8px;background:var(--paper)}

/* --- JMEI Daily ------------------------------------------------------------
   最新1本を大きく、それ以降を罫線リストで。本数が増えていくので情報密度を優先する。 */
.daily-lead{border-top:1px solid var(--line-2);border-bottom:1px solid var(--line)}
.daily-lead__in{display:grid;gap:16px;padding:22px 2px;align-items:start}
@media (min-width:768px){
	.daily-lead__in{grid-template-columns:1fr 260px;gap:32px;padding:26px 2px}
	.daily-lead__in--noimg{grid-template-columns:1fr}
}
.daily-lead__txt{display:block}
.daily-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px}
.daily-meta time{font-family:var(--f-mono);font-size:12px;letter-spacing:.04em;color:var(--ink-3)}
.daily-meta .cat{font-size:11px;letter-spacing:.08em;color:var(--teal);border:1px solid var(--teal);padding:2px 8px;line-height:1.7}
.daily-meta .new{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;color:#fff;background:var(--teal);padding:3px 8px;line-height:1.4}
.daily-lead__ttl{
	display:block;font-family:var(--f-serif);font-size:19px;font-weight:600;line-height:1.6;letter-spacing:.01em;
	line-break:strict;transition:color .18s ease;
}
@media (min-width:768px){ .daily-lead__ttl{font-size:23px} }
.daily-lead__ex{display:block;margin-top:10px;font-size:13.5px;line-height:2;color:var(--ink-2)}
@media (min-width:768px){ .daily-lead__ex{font-size:14px} }
.daily-more{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-size:12.5px;font-weight:700;letter-spacing:.04em;color:var(--teal)}
.daily-more::after{content:"→";font-family:var(--f-mono);font-weight:400;transition:transform .2s ease}
.daily-lead__in:hover .daily-lead__ttl{color:var(--teal)}
.daily-lead__in:hover .daily-more::after{transform:translateX(4px)}
.daily-lead__img{display:block}
.daily-lead__img img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line)}

.daily-list li{border-bottom:1px solid var(--line)}
.daily-list a{display:grid;gap:5px;padding:15px 2px}
@media (min-width:768px){ .daily-list a{grid-template-columns:104px 128px 1fr;gap:20px;align-items:baseline;padding:16px 2px} }
.daily-list time{font-family:var(--f-mono);font-size:12px;letter-spacing:.04em;color:var(--ink-3)}
.daily-list .cat{font-size:11px;letter-spacing:.08em;color:var(--teal);border:1px solid var(--line-2);padding:2px 8px;justify-self:start;line-height:1.7}
.daily-list .t{font-size:14.5px;line-height:1.8;line-break:strict}
.daily-list a:hover .t{color:var(--teal)}
.daily-list a:hover .cat{border-color:var(--teal)}

/* --- お知らせ一覧 ---------------------------------------------------------- */
.newslist{border-top:1px solid var(--line-2)}
.newslist li{border-bottom:1px solid var(--line)}
.newslist a,.newslist .row{display:grid;gap:6px;padding:16px 2px}
@media (min-width:768px){ .newslist a,.newslist .row{grid-template-columns:110px 130px 1fr;gap:20px;align-items:baseline;padding:18px 2px} }
.newslist time{font-family:var(--f-mono);font-size:12px;color:var(--ink-3);letter-spacing:.04em}
.newslist .cat{font-size:11px;letter-spacing:.08em;color:var(--teal);border:1px solid var(--teal);padding:2px 8px;justify-self:start;line-height:1.7}
.newslist .t{font-size:14.5px;line-height:1.8}
.newslist a:hover .t{color:var(--teal)}
.empty{border:1px dashed var(--line-2);padding:28px 20px;text-align:center;color:var(--ink-3);font-size:13.5px}

/* --- 会員サービス（準備中）-------------------------------------------------- */
.member{display:grid;gap:var(--s5)}
@media (min-width:768px){ .member{grid-template-columns:repeat(2,1fr);gap:var(--s6)} }
.member__list{border-top:1px solid var(--line-2)}
.member__list li{display:flex;align-items:baseline;gap:12px;padding:13px 2px;border-bottom:1px solid var(--line);font-size:14px}
.member__list li::before{content:"—";font-family:var(--f-mono);color:var(--teal);flex:none}

/* --- ビジョン帯 ------------------------------------------------------------ */
.vision__verbs{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--teal);border-left:1px solid var(--teal)}
@media (min-width:768px){ .vision__verbs{grid-template-columns:repeat(4,1fr)} }
.vision__verbs li{border-right:1px solid var(--teal);border-bottom:1px solid var(--teal);padding:22px 14px;text-align:center;background:var(--white)}
.vision__verbs i{display:block;font-family:var(--f-mono);font-style:normal;font-size:10px;letter-spacing:.14em;color:var(--teal);margin-bottom:9px}
.vision__verbs b{font-family:var(--f-serif);font-size:19px;font-weight:600;letter-spacing:.04em}
@media (min-width:768px){ .vision__verbs b{font-size:22px} }

/* --- お問い合わせ ---------------------------------------------------------- */
.contact__grid{display:grid;gap:var(--s6)}
@media (min-width:1024px){ .contact__grid{grid-template-columns:.8fr 1.2fr;gap:var(--s8)} }
.contact__info dl{border-top:1px solid var(--line-2)}
.contact__info div{padding:14px 2px;border-bottom:1px solid var(--line)}
.contact__info dt{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;color:var(--teal);margin-bottom:5px}
.contact__info dd{font-size:14px;line-height:1.9}

/* --- 免責帯 ---------------------------------------------------------------- */
.disclaimer{background:var(--paper-2);border-bottom:1px solid var(--line)}
.disclaimer__in{padding:var(--s7) 0}
.disclaimer h2{font-family:var(--f-serif);font-size:16px;font-weight:600;margin-bottom:14px;display:flex;align-items:center;gap:10px}
.disclaimer h2::before{content:"";width:20px;height:1px;background:var(--crimson)}
.disclaimer p{font-size:12.5px;line-height:2.05;color:var(--ink-2)}
.disclaimer p+p{margin-top:10px}
