@charset "utf-8";
/* 創業者メッセージ（founder.html）
   Codex のデザイン画 sub-founder.png（幅724）を 1024 に換算した数値で書く */

/* ページタイトルの帯（このページは左寄せ。英字の前に金の線） */

/* 写真とメッセージの帯 */
.fd-top { position: relative; overflow: hidden; margin-top: calc(18 * var(--u)); background: linear-gradient(90deg, rgba(240,246,252,.75), rgba(240,246,252,.2) 60%), url(../../images/renewal/band-bg.jpg) center / cover no-repeat, #EAF2FB; }
.fd-top-in { position: relative; width: calc(1024 * var(--u)); height: calc(411 * var(--u)); margin: 0 auto; }
.fd-top-text { position: relative; z-index: 1; padding: calc(52 * var(--u)) 0 0 calc(87 * var(--u)); }
.fd-top-catch { font-family: var(--serif); font-weight: 700; font-size: calc(38 * var(--u)); line-height: calc(57.5 * var(--u)); letter-spacing: .04em; color: var(--navy); font-feature-settings: "palt"; }
.fd-top-catch::after { content: ""; display: block; width: calc(120 * var(--u)); height: calc(2 * var(--u)); margin-top: calc(20 * var(--u)); background: linear-gradient(90deg, var(--gold-1), var(--gold-2) 70%, rgba(165,132,76,.3)); }
.fd-top-name { display: flex; align-items: baseline; gap: calc(16 * var(--u)); margin-top: calc(18 * var(--u)); color: var(--navy); }
.fd-top-name span { font-size: calc(15.5 * var(--u)); letter-spacing: .08em; font-weight: 500; color: #273246; }
.fd-top-name b { font-family: var(--serif); font-weight: 700; font-size: calc(32 * var(--u)); letter-spacing: .14em; }
.fd-top-photo { position: absolute; right: 0; bottom: 0; width: auto; height: calc(411 * var(--u)); }

/* メッセージ本文 */
.fd-msg { padding-top: calc(48 * var(--u)); }
.fd-in { width: calc(1024 * var(--u)); margin: 0 auto; padding: 0 calc(80 * var(--u)) 0 calc(87 * var(--u)); }
.fd-text p { font-size: calc(19.5 * var(--u)); line-height: calc(40 * var(--u)); letter-spacing: .08em; color: #1F2A3D; font-weight: 500; }
.fd-text p + p { margin-top: calc(20 * var(--u)); }

/* 仮説の引用（青い帯＋金のかぎかっこ） */
.fd-quote { position: relative; display: flex; align-items: center; justify-content: center; width: calc(926 * var(--u)); min-height: calc(152 * var(--u)); margin: calc(36 * var(--u)) auto calc(40 * var(--u)); padding: calc(20 * var(--u)) calc(70 * var(--u)); background: url(../../images/renewal/research-fiber.png) calc(-90 * var(--u)) 55% / calc(330 * var(--u)) auto no-repeat, url(../../images/renewal/research-fiber.png) calc(100% + 110 * var(--u)) 40% / calc(300 * var(--u)) auto no-repeat, linear-gradient(90deg, #E6F0FA, #F4F8FD 50%, #E6F0FA); box-shadow: 0 calc(4 * var(--u)) calc(18 * var(--u)) rgba(62,101,154,.08); }
.fd-quote p { font-family: var(--serif); font-weight: 700; font-style: italic; font-size: calc(28.5 * var(--u)); line-height: calc(52 * var(--u)); letter-spacing: .02em; color: var(--navy); text-align: center; font-feature-settings: "palt"; }
.fd-quote::before, .fd-quote::after { content: ""; position: absolute; width: calc(20 * var(--u)); height: calc(34 * var(--u)); border: calc(2.5 * var(--u)) solid var(--gold-1); }
.fd-quote::before { left: calc(66 * var(--u)); top: calc(22 * var(--u)); border-right: 0; border-bottom: 0; transform: skewX(-10deg); }
.fd-quote::after { right: calc(66 * var(--u)); bottom: calc(26 * var(--u)); border-left: 0; border-top: 0; transform: skewX(-10deg); }

/* 「私にとって、〜」の一文 */
.fd-statement { display: flex; align-items: center; gap: calc(22 * var(--u)); margin: calc(36 * var(--u)) 0 calc(24 * var(--u)) calc(-14 * var(--u)); font-family: var(--serif); font-weight: 700; font-size: calc(25 * var(--u)); line-height: 1.5; letter-spacing: .02em; color: var(--navy); font-feature-settings: "palt"; }
.fd-statement::before { content: ""; flex: none; width: calc(46 * var(--u)); height: calc(2 * var(--u)); background: var(--gold-1); }

/* 注記 */
.fd-note { display: flex; align-items: center; justify-content: center; min-height: calc(58 * var(--u)); margin: calc(36 * var(--u)) 0 0 calc(-6 * var(--u)); padding: calc(8 * var(--u)) calc(20 * var(--u)); border: 1px solid #EDB5C4; border-radius: calc(8 * var(--u)); background: linear-gradient(180deg, #FFF5F8, #FDECF1); font-size: calc(19 * var(--u)); letter-spacing: .06em; color: #C0395F; font-weight: 500; text-align: center; }

/* 経歴 */
.fd-career { padding: calc(88 * var(--u)) 0 calc(64 * var(--u)); }
.fd-career-in { width: calc(1024 * var(--u)); margin: 0 auto; padding: 0 calc(52 * var(--u)) 0 calc(58 * var(--u)); }
.fd-h2 { display: flex; align-items: center; gap: calc(28 * var(--u)); font-family: var(--serif); font-weight: 700; font-size: calc(54 * var(--u)); line-height: 1.3; letter-spacing: .06em; color: var(--navy); }
.fd-h2::after { content: ""; flex: 1; height: calc(1.5 * var(--u)); background: linear-gradient(90deg, var(--gold-1), #D9BE86 70%, rgba(207,175,114,.6)); }
.fd-h3 { display: flex; align-items: center; gap: calc(20 * var(--u)); margin-top: calc(30 * var(--u)); font-family: var(--serif); font-weight: 700; font-size: calc(27 * var(--u)); line-height: 1.4; letter-spacing: .1em; color: var(--navy); }
.fd-h3::before { content: ""; width: calc(4 * var(--u)); height: calc(27 * var(--u)); background: var(--navy); }
.fd-h2 + .fd-h3 { margin-top: calc(22 * var(--u)); }
.fd-table { width: 100%; margin-top: calc(14 * var(--u)); border-collapse: collapse; border: 1px solid #CFDDEC; font-size: calc(17 * var(--u)); line-height: 1.45; letter-spacing: .06em; color: #1F2A3D; }
.fd-table tr:nth-child(even) { background: #EAF2FB; }
.fd-table tr:nth-child(odd) { background: #fff; }
.fd-table th, .fd-table td { height: calc(40.5 * var(--u)); padding: calc(4 * var(--u)) calc(16 * var(--u)); vertical-align: middle; }
.fd-table th { width: calc(192 * var(--u)); border-right: 1px solid #CFDDEC; background: rgba(214,230,245,.35); font-weight: 500; text-align: center; }
.fd-table td { padding-left: calc(46 * var(--u)); font-weight: 500; }
/* 資格・所属の表は見出しを字間広めの太字に */
.fd-table:last-child th { font-weight: 700; letter-spacing: .3em; color: var(--navy); }

/* 英語 */
.fd.is-en .fd-top-catch { width: calc(520 * var(--u)); font-size: calc(30 * var(--u)); line-height: calc(46 * var(--u)); letter-spacing: 0; }
.fd.is-en .fd-top-name b { letter-spacing: .02em; font-size: calc(28 * var(--u)); }
.fd.is-en .fd-text p, .fd.is-en .fd-table { letter-spacing: .01em; }
.fd.is-en .fd-quote p { font-size: calc(24 * var(--u)); line-height: calc(40 * var(--u)); }
.fd.is-en .fd-table th { letter-spacing: .02em; }
.fd.is-en .fd-h3 { letter-spacing: .03em; }

/* ========== スマホ ========== */
@media (max-width: 1023px) {

	.fd-top { margin-top: 10px; }
	.fd-top-in { width: auto; max-width: 560px; height: 172px; }
	.fd-top-text { padding: 16px 0 0 18px; }
	.fd-top-catch { font-size: 16.5px; line-height: 1.55; letter-spacing: .02em; }
	.fd-top-catch::after { width: 54px; height: 1.5px; margin-top: 8px; }
	.fd-top-name { gap: 8px; margin-top: 6px; }
	.fd-top-name span { font-size: 10.5px; letter-spacing: .04em; }
	.fd-top-name b { font-size: 18px; letter-spacing: .1em; }
	.fd-top-photo { height: 172px; right: -8px; }

	.fd-msg { padding-top: 16px; }
	.fd-in { width: auto; max-width: 560px; padding: 0 18px; }
	.fd-text p { font-size: 14px; line-height: 1.8; letter-spacing: .02em; }
	.fd-text p + p { margin-top: 8px; }
	.fd-quote { width: auto; max-width: 560px; min-height: 0; margin: 16px 6px 14px; padding: 16px 30px 16px 34px; transform: none; background-size: 150px auto, 140px auto, auto; background-position: -50px 55%, calc(100% + 60px) 40%, 0 0; }
	.fd-quote br { display: none; }
	.fd-quote p { font-size: 16px; line-height: 1.65; text-align: left; }
	.fd-quote::before { left: 16px; top: 14px; width: 10px; height: 18px; border-width: 1.5px; }
	.fd-quote::after { right: 16px; bottom: 14px; width: 10px; height: 18px; border-width: 1.5px; }
	.fd-statement { gap: 10px; margin: 10px 0 8px -4px; font-size: 15px; letter-spacing: 0; }
	.fd-statement::before { width: 22px; height: 1.5px; }
	.fd-note { min-height: 36px; margin: 14px 0 0; padding: 6px 8px; border-radius: 6px; font-size: 12px; letter-spacing: 0; }

	.fd-career { padding: 28px 0 32px; }
	.fd-career-in { width: auto; max-width: 560px; padding: 0 18px; }
	.fd-h2 { gap: 12px; font-size: 28px; }
	.fd-h2::after { height: 1px; }
	.fd-h3 { gap: 10px; margin-top: 16px; font-size: 18px; }
	.fd-h3::before { width: 3px; height: 18px; }
	.fd-h2 + .fd-h3 { margin-top: 10px; }
	.fd-table { margin-top: 6px; font-size: 13px; letter-spacing: .02em; }
	.fd-table th, .fd-table td { height: 26px; padding: 3px 8px; }
	.fd-table th { width: 72px; padding: 3px 4px; }
	.fd-table td { padding-left: 12px; }
	.fd-table td br { display: none; }

	.fd-table:last-child th { letter-spacing: .15em; }
	.fd.is-en .fd-top-catch { width: 58%; font-size: 13px; line-height: 1.5; }
	.fd.is-en .fd-top-name b { font-size: 15px; }
	.fd.is-en .fd-quote p { font-size: 15px; line-height: 1.6; }
}

/* テニスサーブの動画（今のページと同じ動画。縦長） */
.fd-video { margin: calc(44 * var(--u)) 0 0; text-align: center; }
.fd-video video { display: block; width: calc(300 * var(--u)); margin: 0 auto; height: auto; aspect-ratio: 1080 / 1920; border-radius: calc(18 * var(--u)); background: #0F1B2E; box-shadow: 0 calc(12 * var(--u)) calc(30 * var(--u)) rgba(30,53,96,.18); }
.fd-video figcaption { margin-top: calc(14 * var(--u)); font-family: var(--serif); font-weight: 600; font-size: calc(16.5 * var(--u)); letter-spacing: .06em; color: var(--navy); }
/* 著書の段（トップと同じ部品。経歴との間を少し詰める） */
.fd-books { margin-top: calc(64 * var(--u)); }
.fd-books + .fd-career { padding-top: calc(72 * var(--u)); }
@media (max-width: 1023px) {
	.fd-video { margin-top: 22px; }
	.fd-video video { width: min(260px, 70vw); }
	.fd-video video { border-radius: 16px; box-shadow: 0 8px 20px rgba(30,53,96,.16); }
	.fd-video figcaption { margin-top: 10px; font-size: 13px; letter-spacing: .02em; }
	.fd-books { margin-top: 32px; }
	.fd-books + .fd-career { padding-top: 32px; }
}

/* 石井光の研究（研究ページへの入口）と、ほかの著書の一覧（2026-11-11） */
.fd-research { padding: calc(72 * var(--u)) 0 0; }
.fd-research-list { display: grid; grid-template-columns: 1fr 1fr; gap: calc(14 * var(--u)); margin-top: calc(24 * var(--u)); }
.fd-research-list a, .fd-book-others a { display: flex; flex-direction: column; gap: calc(6 * var(--u)); height: 100%; padding: calc(18 * var(--u)) calc(22 * var(--u)); border: 1px solid #DCE4EE; border-radius: calc(10 * var(--u)); background: #fff; color: #273246; }
.fd-research-list a:hover, .fd-book-others a:hover { border-color: var(--gold-1); }
.fd-research-list b, .fd-book-others b { font-family: var(--serif); font-weight: 700; font-size: calc(18 * var(--u)); color: var(--navy); }
.fd-research-list span { font-size: calc(14.5 * var(--u)); line-height: 1.8; }
.fd-youtube { margin-top: calc(18 * var(--u)); }
.fd-youtube a { display: inline-flex; align-items: center; gap: .6em; font-size: calc(15 * var(--u)); color: var(--blue-2); text-decoration: underline; }
.fd-youtube svg { width: calc(26 * var(--u)); height: auto; flex: none; }
.fd-books-h3 { width: calc(1024 * var(--u)); max-width: 100%; margin: calc(36 * var(--u)) auto 0; text-align: left; }
.fd-book-others { display: grid; grid-template-columns: 1fr 1fr; gap: calc(12 * var(--u)); margin-top: calc(14 * var(--u)); text-align: left; }
.fd-book-others small { display: block; font-size: .78em; font-weight: 600; color: #6B7A90; }
.fd-book-others span { font-size: calc(14 * var(--u)); color: #6B7A90; }
@media (max-width: 1023px) {
	.fd-research { padding-top: 32px; }
	.fd-research-list, .fd-book-others { grid-template-columns: 1fr; gap: 10px; margin-top: 14px; }
	.fd-research-list a, .fd-book-others a { padding: 14px 16px; border-radius: 8px; }
	.fd-research-list b, .fd-book-others b { font-size: 16px; }
	.fd-research-list span, .fd-book-others span { font-size: 13.5px; }
	.fd-youtube a { font-size: 14px; }
	.fd-youtube svg { width: 24px; }
	.fd-books-h3 { margin-top: 22px; }
}
.fd-books .rn-book-title a { color: inherit; }
.fd-books .rn-book-pub { letter-spacing: 0; }
@media (max-width: 1023px) {
	.fd-books-h3, .fd-book-others { margin-left: 16px; margin-right: 16px; width: auto; }
}
.fd-series-h3 { margin-top: calc(34 * var(--u)); }
.fd-series-lead { margin-top: calc(10 * var(--u)); font-size: calc(15 * var(--u)); line-height: 1.8; color: #273246; }
.fd-series-lead a, .fd-series a { color: var(--blue-2); text-decoration: underline; }
.fd-series { margin-top: calc(10 * var(--u)); padding-left: 1.6em; list-style: decimal; font-size: calc(15 * var(--u)); line-height: 2; color: #273246; }
.fd-series span { margin-left: .8em; font-size: .88em; color: #6B7A90; }
@media (max-width: 1023px) {
	.fd-series-h3 { margin-top: 20px; }
	.fd-series-lead, .fd-series { font-size: 14px; }
	.fd-series li { line-height: 1.7; margin-bottom: 6px; }
	.fd-series span { display: block; margin-left: 0; }
}

/* 著書からの引用（予防医学の考え方） */
.fd-quote-book { width: auto; max-width: 100%; margin-bottom: calc(10 * var(--u)); }
@media (min-width: 1024px) { .fd-quote-book p { font-size: calc(24 * var(--u)); line-height: calc(46 * var(--u)); } }
.fd-quote-src { margin: 0 auto calc(40 * var(--u)); text-align: center; font-size: max(12px, calc(13.5 * var(--u))); color: #5E6577; }
.fd-quote-src a { color: var(--navy); text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 1023px) {
	.fd-quote-src { padding: 0 16px; font-size: 12px; line-height: 1.7; }
}

/* 予防医学について、著書からの引用（複数） */
.fd-book { max-width: calc(860 * var(--u)); margin: 0 auto calc(48 * var(--u)); }
.fd-book-lead { text-wrap: balance; word-break: auto-phrase; font-family: var(--serif); font-weight: 700; font-size: calc(19 * var(--u)); color: var(--navy); text-align: center; }
.fd-book-list { list-style: none; margin: calc(18 * var(--u)) 0 0; padding: 0; display: grid; gap: calc(14 * var(--u)); }
.fd-book-list li { padding: calc(16 * var(--u)) calc(24 * var(--u)) calc(14 * var(--u)); border-left: 3px solid var(--gold-1); background: rgba(244,248,253,.9); border-radius: 0 calc(10 * var(--u)) calc(10 * var(--u)) 0; }
.fd-book-list p { font-family: var(--serif); font-size: calc(17 * var(--u)); line-height: 1.9; color: #1F2A3D; }
.fd-book-list span { display: block; margin-top: 4px; text-align: right; font-size: max(11px, calc(12.5 * var(--u))); color: #5E6577; }
@media (max-width: 1023px) {
	.fd-book { margin: 0 0 32px; }
	.fd-book-lead { font-size: 15.5px; }
	.fd-book-list { margin-top: 12px; gap: 10px; }
	.fd-book-list li { padding: 12px 14px 10px; }
	.fd-book-list p { font-size: 14.5px; line-height: 1.8; }
	.fd-book-list span { font-size: 11px; }
}
