/* =========================================================================
   下層ページの共通部品（2026-09-26）
   トップ（front-page.php）の見た目に合わせた部品。トップでは読み込まない。

   色（トップと同じ値）
     #1F2A18 本文・濃い地   #3C5A22 見出し・ボタン   #538B36 ディープリーフ
     #7BBE35 BMKグリーン（罫線・アクセント）          #BF993D ゴールド（原稿待ちの印）
     #FBFAF6 地             #F2F5EC 淡い緑の地       #D5D8CE 罫線   #5B6655 補足文字
   ========================================================================= */

/* ---------------------------------------------------------------- 見出しエリア */
.bmk-page-inner--wide { max-width: 1200px; }
.bmk-page-lead {
	max-width: 44em;
	margin: 22px 0 0;
	font-size: 17px;
	line-height: 1.9;
	letter-spacing: .02em;
	color: #1F2A18;
	text-wrap: pretty;
}
@media (max-width: 760px) {
	.bmk-page-lead { font-size: 16px; }
}

/* ヘッダーのメニュー：いま見ているページ（と、その配下）に下線 */
.bmk-hd--pc nav a[aria-current="page"],
.bmk-hd--pc nav a[data-bmk-current] { border-bottom-color: #7BBE35 !important; color: #3C5A22 !important; }
.bmk-hd--sp .bmk-drawer a[aria-current="page"],
.bmk-hd--sp .bmk-drawer a[data-bmk-current] { color: #3C5A22 !important; font-weight: 700 !important; }

/* ---------------------------------------------------------------- セクション */
.bmk-sec { padding: clamp(64px, 7vw, 112px) clamp(20px, 3vw, 40px); }
.bmk-sec--tint { background: #F2F5EC; }
.bmk-sec--dark { background: #1F2A18; color: #FBFAF6; }
.bmk-sec--rule { border-top: 1px solid #D5D8CE; }
.bmk-sec--tight { padding-top: clamp(40px, 5vw, 72px); padding-bottom: clamp(40px, 5vw, 72px); }
.bmk-wrap { max-width: 1200px; margin: 0 auto; }
.bmk-wrap--narrow { max-width: 880px; }

.bmk-en {
	margin: 0 0 16px;
	font-family: 'Cormorant Garamond', serif;
	font-weight: 600;
	font-size: 15px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: #3C5A22;
}
.bmk-sec--dark .bmk-en { color: #7BBE35; }
.bmk-h2 {
	margin: 0 0 28px;
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: clamp(26px, 2.8vw, 36px);
	line-height: 1.5;
	letter-spacing: .04em;
	color: #3C5A22;
	text-wrap: balance;
}
.bmk-sec--dark .bmk-h2 { color: #FBFAF6; }
.bmk-h3 {
	margin: 0 0 12px;
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: clamp(19px, 1.8vw, 22px);
	line-height: 1.6;
	letter-spacing: .04em;
	color: #3C5A22;
	text-wrap: balance;
}
.bmk-sec--dark .bmk-h3 { color: #FBFAF6; }
.bmk-lead,
.bmk-text {
	margin: 0 0 1.4em;
	font-size: 17px;
	line-height: 1.9;
	letter-spacing: .02em;
	text-wrap: pretty;
}
.bmk-text:last-child, .bmk-lead:last-child { margin-bottom: 0; }
.bmk-small { font-size: 14px; line-height: 1.8; color: #5B6655; }
.bmk-sec--dark .bmk-small { color: #C9CFBF; }
@media (max-width: 760px) {
	.bmk-lead, .bmk-text { font-size: 16px; }
}

/* 見出しと右端のリンクを横に並べる */
.bmk-head-row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px 24px;
	margin-bottom: 32px;
}
.bmk-head-row .bmk-h2 { margin-bottom: 0; }

/* 2カラム（文章＋写真など）。狭い画面では縦積み */
.bmk-split {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr));
	gap: clamp(36px, 5vw, 80px);
	align-items: center;
}
.bmk-split--top { align-items: start; }
.bmk-figure {
	position: relative;
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 4px;
	background: #F2F5EC;
}
.bmk-figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
/* style.css の body.bmk-sub img { height:auto } に負けて写真が枠を埋めなくなるのを防ぐ */
body.bmk-sub .bmk-figure img { height: 100%; }

/* ---------------------------------------------------------------- リンク・ボタン */
.bmk-link-arrow {
	display: inline-flex;
	align-items: flex-end;
	min-height: 44px; /* タップ領域。下線は文字のすぐ下のまま */
	gap: 10px;
	padding-bottom: 4px;
	border-bottom: 1px solid #7BBE35;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .06em;
	color: #3C5A22;
}
.bmk-sec--dark .bmk-link-arrow { color: #FBFAF6; }
.bmk-link-arrow:hover { border-bottom-color: #3C5A22; }

.bmk-btns { display: flex; flex-wrap: wrap; gap: 14px; }
.bmk-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 52px;
	padding: 0 30px;
	border: 1px solid #3C5A22;
	border-radius: 3px;
	background: transparent;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .08em;
	line-height: 1.4;
	text-align: center;
	color: #3C5A22;
	transition: background-color .2s, color .2s;
}
body.bmk-sub a.bmk-btn:hover { background: #3C5A22; color: #FBFAF6; }
body.bmk-sub a.bmk-btn--fill { background: #3C5A22; color: #FBFAF6; }
body.bmk-sub a.bmk-btn--fill:hover { background: #538B36; border-color: #538B36; color: #FBFAF6; }
body.bmk-sub a.bmk-btn--light { border-color: #FBFAF6; background: #FBFAF6; color: #3C5A22; }
body.bmk-sub a.bmk-btn--light:hover { background: #F2F5EC; color: #3C5A22; }
body.bmk-sub a.bmk-btn--line-light { border-color: #FBFAF6; color: #FBFAF6; }
body.bmk-sub a.bmk-btn--line-light:hover { background: rgba(251, 250, 246, .12); color: #FBFAF6; }

/* ---------------------------------------------------------------- 原稿待ちの印
   トップの「［学会名（西暦）／演題］ — 協会様に確認後…」と同じ見た目。
   公開前に、協会様からいただいた原稿へ差し替える箇所。 */
.bmk-ph {
	padding: 0 .25em;
	border-radius: 2px;
	background: rgba(191, 153, 61, .14);
	color: #735121;
}
.bmk-sec--dark .bmk-ph { background: rgba(191, 153, 61, .22); color: #E6CF94; }
.bmk-ph-block {
	margin: 0 0 1.6em;
	padding: 10px 14px;
	border: 1px dashed #538B36;
	border-radius: 3px;
	font-family: ui-monospace, monospace;
	font-size: 13px;
	line-height: 1.7;
	letter-spacing: 0;
	color: #8A6A1F;
}
.bmk-sec--dark .bmk-ph-block { color: #BF993D; }

/* ---------------------------------------------------------------- カード */
.bmk-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: clamp(16px, 2vw, 24px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.bmk-cards--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); }
.bmk-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: clamp(24px, 2.4vw, 32px);
	border: 1px solid #D5D8CE;
	border-radius: 4px;
	background: #FFFFFF;
	color: #1F2A18;
}
body.bmk-sub a.bmk-card { color: #1F2A18; transition: border-color .2s, box-shadow .2s; }
body.bmk-sub a.bmk-card:hover { border-color: #7BBE35; box-shadow: 0 6px 24px rgba(31, 42, 24, .06); color: #1F2A18; }
.bmk-card__label {
	margin: 0 0 10px;
	font-family: 'Cormorant Garamond', serif;
	font-weight: 600;
	font-size: 14px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: #538B36;
}
.bmk-card__title {
	margin: 0 0 10px;
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: 19px;
	line-height: 1.6;
	letter-spacing: .04em;
	color: #3C5A22;
	text-wrap: balance;
}
.bmk-card__text { margin: 0; font-size: 15px; line-height: 1.85; color: #1F2A18; text-wrap: pretty; }
.bmk-card__more {
	margin-top: auto;
	padding-top: 18px;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .06em;
	color: #3C5A22;
}

/* ---------------------------------------------------------------- 項目と内容の表 */
.bmk-table {
	width: 100%;
	margin: 0 0 1.6em;
	border-collapse: collapse;
	border-top: 1px solid #D5D8CE;
	font-size: 16px;
	line-height: 1.8;
}
.bmk-table th,
.bmk-table td {
	padding: 16px 12px;
	border: 0; /* 親テーマの table の四辺の枠線・背景・狭い画面の文字縮小を打ち消す */
	border-bottom: 1px solid #D5D8CE;
	background: transparent;
	font-size: inherit;
	text-align: left;
	vertical-align: top;
}
.bmk-table th {
	width: 12em;
	font-weight: 500;
	color: #3C5A22;
	white-space: nowrap;
}
.bmk-table thead th { width: auto; background: #F2F5EC; font-size: 14px; letter-spacing: .06em; }
table.bmk-table tr { background: transparent; } /* 親テーマの 1 行おきの縞 */
@media (max-width: 640px) {
	.bmk-table--stack thead { display: none; }
	.bmk-table--stack, .bmk-table--stack tbody, .bmk-table--stack tr,
	.bmk-table--stack th, .bmk-table--stack td { display: block; width: 100%; }
	.bmk-table--stack th { padding-bottom: 2px; border-bottom: 0; white-space: normal; }
	.bmk-table--stack td { padding-top: 2px; }
}
/* 横に長い表は枠の中だけ横スクロール */
.bmk-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.bmk-table-scroll .bmk-table { min-width: 640px; }

/* ---------------------------------------------------------------- 手順（番号つき） */
.bmk-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: bmkstep;
	border-top: 1px solid #D5D8CE;
}
.bmk-steps > li {
	counter-increment: bmkstep;
	padding: 28px clamp(0px, 2vw, 24px) 0;
	border-left: 1px solid #D5D8CE;
}
.bmk-steps > li::before {
	content: counter(bmkstep, decimal-leading-zero);
	display: block;
	margin: 0 0 10px;
	font-family: 'Cormorant Garamond', serif;
	font-weight: 600;
	font-size: 30px;
	line-height: 1;
	letter-spacing: .06em;
	color: #7BBE35;
}
.bmk-steps h3 {
	margin: 0 0 8px;
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: 18px;
	line-height: 1.6;
	letter-spacing: .04em;
	color: #3C5A22;
}
.bmk-steps p { margin: 0; font-size: 15px; line-height: 1.85; text-wrap: pretty; }
@media (max-width: 760px) {
	.bmk-steps > li { padding: 22px 0 22px 20px; border-left: 2px solid #7BBE35; border-bottom: 1px solid #D5D8CE; }
	.bmk-steps { border-top: 0; }
}

/* ---------------------------------------------------------------- 箇条書き（チェック） */
.bmk-checks { margin: 0 0 1.4em; padding: 0; list-style: none; }
.bmk-checks li {
	position: relative;
	margin: 0 0 .7em;
	padding-left: 1.7em;
	font-size: 16px;
	line-height: 1.8;
}
.bmk-checks li::before {
	content: "";
	position: absolute;
	left: .2em;
	top: .55em;
	width: .7em;
	height: .38em;
	border-left: 2px solid #7BBE35;
	border-bottom: 2px solid #7BBE35;
	transform: rotate(-45deg);
}

/* ---------------------------------------------------------------- お問い合わせの帯 */
.bmk-cta {
	padding: clamp(72px, 8vw, 120px) clamp(20px, 3vw, 40px);
	background: linear-gradient(135deg, #538B36 0%, #3C5A22 100%);
	color: #FBFAF6;
	text-align: center;
}
.bmk-cta__inner { max-width: 760px; margin: 0 auto; }
.bmk-top .bmk-cta__title {
	margin: 0 0 28px;
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: clamp(26px, 3vw, 40px);
	line-height: 1.5;
	letter-spacing: .04em;
	color: #FBFAF6;
	text-wrap: balance;
}
.bmk-cta__text { margin: 0 0 40px; font-size: 17px; line-height: 1.9; letter-spacing: .02em; text-wrap: pretty; }
.bmk-cta__btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
@media (max-width: 760px) {
	.bmk-cta__text { font-size: 16px; }
	.bmk-cta__text br { display: none; }
}

/* ---------------------------------------------------------------- 共通の補正（2026-09-26） */
/* 本文の文字リンクに下線（style.css の body.bmk-sub a { text-decoration:none } が勝っていた）。
   ボタン・カードなどクラス付きのリンクは対象外 */
body.bmk-sub .bmk-prose a:not([class]) { text-decoration: underline; text-underline-offset: .2em; }
/* 本文（エディタで書いた部分）の小見出し */
.bmk-prose h3 {
	margin: 2em 0 .8em;
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: clamp(18px, 1.7vw, 20px);
	line-height: 1.6;
	letter-spacing: .04em;
	color: #3C5A22;
}
/* 見出しを文節で折り返し、行の長さをそろえる。2026-09-26 に全ページ×3幅で比べて決めた
   （語の途中らしい改行 19→7、1〜2文字だけの行 10→2。文節だけだと記事タイトルの text-wrap:pretty と組み合わさって 1 語だけの行ができた）。
   .bmk-top を付けて記事タイトルの .bmk-top .bmk-post-title より強くしている */
.bmk-top .bmk-main h1,
.bmk-top .bmk-main h2:not(.bmk-pcard__title) { word-break: auto-phrase; text-wrap: balance; }
/* 講座詳細・施術別のページ名はスペースで区切った塊（.bmkp-nb・inline-block）で包んでいるが、
   塊が 1 行に入らないと塊の中で割れるため、ページ名の中では通常の文字に戻して文節の折り返しに任せる */
.bmk-top .bmk-page-title .bmkp-nb { display: inline; }
/* 374px 以下はページ名を 26px に（「プライバシーポリシー」「リニューアルしました」など 10 文字の語が 1 行に入るように） */
@media (max-width: 374px) { .bmk-top .bmk-page-title { font-size: 26px; } }
