/*
Theme Name: JAMA
Theme URI: https://jamamed.or.jp/
Author: 移行プロジェクト
Description: 一般社団法人 日本先進医療医師会（JAMA）のブロックテーマ。旧Elementor版のデザインをブロックエディタで再現したもの。
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jamamed
Tags: block-theme, full-site-editing, one-column, custom-logo, custom-menu
*/

/* =========================================================
   共通
   ========================================================= */
body {
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
}

/* =========================================================
   ヘッダー
   ========================================================= */
.site-header {
	background-color: #fff;
	padding-block: 20px;
}

/*
 * 旧サイトのヘッダーは Elementor の layout:full_width で、
 * コンテンツ幅（1265px）で中央寄せせず画面幅いっぱいに広がる。
 * そのためロゴは画面の左端付近（左右余白20px＋ロゴ列の余白15px）に置かれる。
 * PCのみ適用（タブレット以下は縦積み・中央寄せのため対象外）。
 */
@media (min-width: 1025px) {
	.site-header > .site-header__inner.alignwide {
		max-width: none;
	}

	.site-header .wp-block-site-logo {
		padding-left: 15px;
	}

	/*
	 * グローバルメニューは、ロゴと違って本文のコンテンツ幅（1140px）の
	 * 右端に揃える（現行サイトと同じ挙動）。
	 * ヘッダー自体は全幅なので、右側に「(親幅 - 1140px) / 2」の余白を作って
	 * 下のセクションの右端と一致させる。画面が狭いときは 0 で止める。
	 */
	.site-header .site-header__inner > .site-nav {
		margin-right: max(0px, calc((100% - 1140px) / 2));
	}
}

.site-header .wp-block-site-logo img {
	width: 300px;
	max-width: 100%;
	height: auto;
}

.site-nav .wp-block-navigation__container {
	gap: 0;
}

.site-nav .wp-block-navigation-item__content {
	position: relative;
	color: #1e63b6;
	font-size: 14.4px;
	font-weight: 600;
	padding: 10px 14px;
	line-height: 1.4;
	text-decoration: none;
}

/*
 * 現在のページ／ホバー時に下部へ引かれる下線。
 * 旧サイト（Elementor のポインター効果「下線」＋フェード）の再現。
 * 太さ3px・アクセント色・0.3秒のフェードイン。
 */
.site-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	background-color: #1e63b6;
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
}

.site-nav .wp-block-navigation-item__content:hover::after,
.site-nav .wp-block-navigation-item__content:focus-visible::after,
.site-nav .wp-block-navigation-item__content[aria-current="page"]::after,
.site-nav .current-menu-item > .wp-block-navigation-item__content::after,
.site-nav .current-menu-ancestor > .wp-block-navigation-item__content::after {
	opacity: 1;
}

.site-nav .wp-block-navigation-item__content:hover,
.site-nav .wp-block-navigation-item__content:focus-visible {
	text-decoration: none;
}

/* 項目間の区切り線（旧サイト: 1px / #DADADA） */
.site-nav .wp-block-navigation-item + .wp-block-navigation-item {
	border-left: 1px solid #dadada;
}

/* =========================================================
   モバイルメニュー（ハンバーガー）
   旧サイトの設定値に準拠:
     トグル背景 #1E63B6 / アイコン白 / 角丸なし / 中央配置
     項目 padding 15px 20px・1.2em・現在ページは白文字×青背景
   開いたメニューは画面を覆わず、コンテンツを下へ押し出す（旧サイトと同じ）
   ========================================================= */

/* --- トグルボタン（ハンバーガー / ×） --- */
/*
 * コアは閉じるボタンを position:absolute; right:0; top:0 で右上に固定するため、
 * 通常フローに戻したうえで中央寄せする。詳細度はコアより高くする必要がある。
 */
/*
 * ここでは見た目（色・大きさ・中央寄せ）だけを指定する。
 * display は指定しないこと。指定するとコアのPC非表示（min-width:600px で display:none）を
 * 上書きしてしまい、PCでもハンバーガーが出てしまう。
 * 表示の切り替えは末尾のレスポンシブ指定（max-width:1024px）で行う。
 */
.site-header .site-nav .wp-block-navigation__responsive-container-open,
.site-header .site-nav .wp-block-navigation__responsive-container-close {
	position: static;
	width: 46px;
	height: 46px;
	margin: 0 auto;
	padding: 0;
	align-items: center;
	justify-content: center;
	background-color: #1e63b6;
	border-radius: 0;
	color: #fff;
}

/*
 * × ボタンは開いている時だけ表示される。
 * ボタンは既定でインライン扱いのため display を与えないと margin:auto の
 * 中央寄せが効かず左端に寄ってしまう。開いている時に限定して flex にする。
 * （メディアクエリ外で無条件に display を指定すると、PCでも出てしまうので不可）
 */
.site-header .site-nav .is-menu-open .wp-block-navigation__responsive-container-close {
	display: flex;
	margin: 0 auto 12px;
}

.site-nav .wp-block-navigation__responsive-container-open svg,
.site-nav .wp-block-navigation__responsive-container-close svg {
	width: 24px;
	height: 24px;
	fill: #fff;
}

.site-nav .wp-block-navigation__responsive-container-open:hover,
.site-nav .wp-block-navigation__responsive-container-close:hover {
	background-color: #004290;
}

/* 開いている間はハンバーガーを隠し、× に置き換わったように見せる */
.site-nav:has(.wp-block-navigation__responsive-container.is-menu-open)
	.wp-block-navigation__responsive-container-open {
	display: none;
}

/* --- 開いた状態: オーバーレイをやめてインライン表示にする --- */
.site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open {
	position: static;
	inset: auto;
	z-index: auto;
	padding: 0;
	overflow: visible;
	background-color: #fff;
	animation: none;
}

/*
 * コアは管理バー表示時に
 *   .has-modal-open .admin-bar .is-menu-open ... .responsive-dialog { margin-top: 32px/46px }
 * を当てる（全画面オーバーレイが管理バーに隠れないための配慮）。
 * 本テーマはインライン表示なので不要。これが残るとログイン中だけ
 * ×ボタンが下にずれるため打ち消す。コア側が(0,4,0)なので上回る指定にする。
 */
.site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	margin-top: 0;
}

/*
 * 開いたメニューの入れ物は、コア側で max-width / auto マージン / flex 配置が
 * 何段も掛かっている。すべて打ち消して素直に全幅にする。
 */
.site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open,
.site-header .site-nav .is-menu-open .wp-block-navigation__responsive-close,
.site-header .site-nav .is-menu-open .wp-block-navigation__responsive-dialog,
.site-header .site-nav .is-menu-open .wp-block-navigation__responsive-container-content,
.site-header .site-nav .is-menu-open .wp-block-navigation__container {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	position: static;
	left: auto;
	right: auto;
	float: none;
}

/*
 * コアは開いたメニューの中身を flex + align-items:（ナビの寄せ設定）にするため、
 * ヘッダーのナビが「右寄せ」だと項目が右に縮んでしまう。
 * ブロック表示に戻して全幅・左寄せにする。コア側が詳細度(0,4,0)なので上回る指定にする。
 */
.site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	display: block;
	width: 100%;
	padding-top: 0;
	align-items: stretch;
}

/* スクロールロックの解除（インライン表示のためページは通常どおり動かす） */
:root.has-modal-open {
	overflow: visible !important;
}

/* --- 開いた状態のメニュー項目 --- */
.site-header .site-nav .is-menu-open .wp-block-navigation__container {
	display: block;
	width: 100%;
	gap: 0;
	align-items: stretch;
}

.site-header .site-nav .is-menu-open .wp-block-navigation-item {
	display: block;
	width: 100%;
	border-left: none;
	border-bottom: 1px solid #dadada;
	text-align: left;
}

.site-header .site-nav .is-menu-open .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	padding: 15px 20px;
	font-size: 19.2px;
	font-weight: 400;
	line-height: 1.5;
	color: #333;
	background-color: #fff;
	text-align: left;
}

/* 現在のページ（背景は行の全幅に広げる） */
.site-header .site-nav .is-menu-open .wp-block-navigation-item__content[aria-current="page"],
.site-header .site-nav .is-menu-open .current-menu-item > .wp-block-navigation-item__content {
	color: #fff;
	background-color: #1e63b6;
	font-weight: 700;
}

/* 横並び用の下線はここでは使わない */
.site-nav .is-menu-open .wp-block-navigation-item__content::after {
	display: none;
}

/* =========================================================
   ページタイトル帯（下層ページ）
   ========================================================= */
.page-hero {
	position: relative;
	min-height: 273px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	text-align: center;
}

.page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 20, 45, 0.28);
}

.page-hero > * {
	position: relative;
	z-index: 1;
}

.page-hero .wp-block-post-title,
.page-hero h1 {
	color: #fff;
	font-size: 35.2px;
	font-weight: 700;
	text-align: center;
	margin: 0;
	text-shadow: 0 0 13px rgba(1, 52, 101, 0.4);
}

/* =========================================================
   パンくず
   ========================================================= */
.jamamed-breadcrumb {
	font-size: 12px;
	line-height: 35px;
	color: #333;
}

.jamamed-breadcrumb ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.8em;
}

.jamamed-breadcrumb li {
	position: relative;
	padding-right: 1.6em;
}

.jamamed-breadcrumb li:not(:last-child)::after {
	content: "\003e";
	position: absolute;
	right: 0.5em;
	color: #999;
}

.jamamed-breadcrumb a {
	color: #333;
	text-decoration: none;
}

.jamamed-breadcrumb a:hover {
	text-decoration: underline;
}

/* =========================================================
   下層ページ 2カラム
   ========================================================= */
.content-with-sidebar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 326px;
	gap: 40px;
	align-items: start;
}

.content-with-sidebar > * {
	min-width: 0;
	/* コアの flow レイアウトが 2番目以降に付ける上マージンを打ち消す */
	margin-block-start: 0;
	margin-block-end: 0;
}

/* レスポンシブ時の挙動は末尾の「レスポンシブ」セクションに集約 */

/* =========================================================
   サイドメニュー（旧サイトの指定に準拠）
     枠: 上4px / 他1px の実線・アクセント色・角丸3px・上下余白12px
     親: 矢印11px / 文字16px / 行間22px / 左右余白20px
     子: シェブロン6px / 文字14.4px / 行間9px / 左字下げ46px
   ========================================================= */
.side-menu {
	border: 1px solid #1e63b6;
	border-top-width: 4px;
	border-radius: 3px;
	padding: 12px 0;
}

.side-menu .wp-block-navigation.is-layout-flex {
	gap: 0;
}

.side-menu ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.side-menu li {
	margin: 0;
}

.side-menu .wp-block-navigation-item__content {
	display: block;
	position: relative;
	padding-left: 16px;
	text-decoration: none;
	line-height: 1.5;
}

.side-menu .wp-block-navigation-item__content:hover {
	text-decoration: underline;
}

/* --- 親グループ（矢印） --- */
.side-menu__parent {
	padding: 20px 20px 0;
}

.side-menu__parent--last {
	padding: 0 20px 20px;
}

.side-menu__parent .wp-block-navigation-item + .wp-block-navigation-item {
	margin-top: 22px;
}

/*
 * 親項目（旧サイト: 1em / font-weight 600 / アクセント色）
 * 太さ600が入ることで、同じ青でもはっきり見える。
 */
.side-menu__parent .wp-block-navigation-item__content {
	font-size: 16px;
	padding-left: 16px;
	color: #1e63b6;
	font-weight: 600;
}

.side-menu__parent .wp-block-navigation-item__content::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.45em;
	width: 11px;
	height: 11px;
	background-color: #1e63b6;
	-webkit-mask: url("assets/icons/arrow-right.svg") no-repeat center / contain;
	mask: url("assets/icons/arrow-right.svg") no-repeat center / contain;
}

/* --- 子グループ（シェブロン・字下げ） --- */
.side-menu__child {
	padding: 0 10px 10px 46px;
}

.side-menu__child .wp-block-navigation-item + .wp-block-navigation-item {
	margin-top: 9px;
}

/*
 * 子項目の文字は親と同じ青（旧サイトは色指定がなく、リンク色＝アクセント色が効く）。
 * アイコン（シェブロン）だけ #333 が明示されている。
 */
.side-menu__child .wp-block-navigation-item__content {
	font-size: 14.4px;
	padding-left: 11px;
	color: #1e63b6;
}

.side-menu__child .wp-block-navigation-item__content::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.5em;
	width: 6px;
	height: 6px;
	background-color: #333;
	-webkit-mask: url("assets/icons/chevron-right.svg") no-repeat center / contain;
	mask: url("assets/icons/chevron-right.svg") no-repeat center / contain;
}

/* 現在表示中のページ */
.side-menu .wp-block-navigation-item__content[aria-current="page"],
.side-menu .current-menu-item > .wp-block-navigation-item__content {
	font-weight: 700;
}

/* =========================================================
   本文
   ========================================================= */
.entry-content {
	padding-block: 40px 60px;
}

/*
 * 本文の見出し（旧サイトの指定に準拠）
 *   h2: 1.7em / 左に5pxのアクセント色の縦線 / 左余白17px
 *       直後に #CCCCCC の区切り線（core/separator）が入る
 *   h3: 1.3em / 背景 #E3EEF3 の帯 / 文字はアクセント色 / 内側10px
 *       （旧サイトでは h4 だったが、見出し階層の正規化で h3 にしている）
 */
.entry-content h2 {
	margin-top: 2em;
	margin-bottom: 0.8em;
	padding-left: 17px;
	border-left: 5px solid #1e63b6;
	font-size: 27.2px;
	line-height: 1.4;
}

.entry-content h3 {
	margin-top: 1.8em;
	margin-bottom: 0.7em;
	padding: 10px;
	background-color: #e3eef3;
	color: #1e63b6;
	font-size: 20.8px;
	line-height: 1.5;
}

/* 見出し直後の区切り線は間隔を詰める（旧サイトは gap 2px） */
.entry-content h2 + .wp-block-separator {
	margin-top: 0.6em;
}

.entry-content p {
	line-height: 1.9;
}

.entry-content ul,
.entry-content ol {
	line-height: 1.9;
}

/* 旧サイト由来のグループ枠（定款の条文など） */
.entry-content .wp-block-group.section {
	margin-bottom: 1.6em;
}

/* =========================================================
   テーブル（旧 Ttype01 を含む）
   ========================================================= */
.entry-content .wp-block-table,
.entry-content .wp-block-html table {
	margin-bottom: 15px;
	overflow-x: auto;
}

.entry-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14.4px;
}

.entry-content table th,
.entry-content table td {
	padding: 15px;
	border: 1px solid rgba(128, 128, 128, 0.5);
	vertical-align: top;
	word-break: break-word;
}

.entry-content table th {
	background-color: #c3e9ff;
	color: #333;
	font-weight: 700;
	text-align: center;
}

.entry-content table thead th {
	background-color: #c3e9ff;
}

.entry-content .wp-block-table figcaption {
	font-size: 14.4px;
}

/* has-fixed-layout は列幅が均等になりすぎるため解除 */
.entry-content table.has-fixed-layout {
	table-layout: auto;
}

/* 横スクロール（会員一覧・支部一覧などの広い表） */
.entry-content .wp-block-table,
.entry-content .wp-block-html {
	max-width: 100%;
	overflow-x: auto;
}

/* =========================================================
   アコーディオン（core/details）
   ========================================================= */
.entry-content .wp-block-details {
	border: 1px solid #e6e6e6;
	margin-bottom: 12px;
}

.entry-content .wp-block-details summary {
	background: #f8f8f8;
	padding: 14px 18px;
	font-weight: 700;
	cursor: pointer;
	list-style-position: inside;
}

.entry-content .wp-block-details summary:hover {
	background: #e1ecf7;
}

.entry-content .wp-block-details[open] summary {
	border-bottom: 1px solid #e6e6e6;
}

.entry-content .wp-block-details > *:not(summary) {
	padding-inline: 18px;
}

.entry-content .wp-block-details > *:not(summary):first-of-type {
	padding-top: 14px;
}

.entry-content .wp-block-details > *:last-child {
	padding-bottom: 14px;
}

/* =========================================================
   区切り線
   ========================================================= */
.wp-block-separator {
	border: none;
	border-top: 1px solid #ccc;
	opacity: 1;
	margin-block: 1.5em;
}

/* =========================================================
   トップページ
   ========================================================= */
/*
 * ヒーロー（旧サイト: layout:full_width / min-height 682px / 左右余白135px）
 * コンテンツ幅で中央寄せせず、画面幅いっぱいに広げたうえで余白だけを取る。
 */
.home-hero {
	position: relative;
	min-height: 682px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-inline: 135px;
	background-image: url("/wp-content/uploads/2022/06/mv-new.jpg");
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
}

/*
 * 旧サイトはヒーローにオーバーレイを掛けていない（不透明度0）。
 * 文字の可読性はテキストシャドウだけで確保しているため、暗くしない。
 */
.home-hero > * {
	position: relative;
	z-index: 1;
	width: 100%;
}

.home-hero h1 {
	/* 旧サイトの指定どおり明朝体（Noto Serif JP / ウェイト600 / 行間1.6） */
	font-family: var(--wp--preset--font-family--serif);
	color: #fff;
	font-size: 38.4px;
	font-weight: 600;
	line-height: 1.6;
	text-shadow: 0 0 13px rgba(1, 52, 101, 0.4);
	margin: 0 0 24px;
}

/*
 * ヒーローのボタン（旧サイト: align:center / 上マージン42px / 余白26px・76px）
 * 見出しや本文は左寄せだが、ボタンだけ中央に置く構成。
 */
.home-hero .wp-block-buttons {
	justify-content: center;
	margin-top: 42px;
}

.home-hero .wp-block-button__link {
	padding: 26px 76px;
}

.home-hero p {
	color: #fff;
	line-height: 1.9;
	/* 旧サイトの指定: ぼかし10px / rgba(0, 99, 174, 0.3) */
	text-shadow: 0 0 10px rgba(0, 99, 174, 0.3);
	max-width: 720px;
	margin-block: 0 28px;
	/*
	 * コアの constrained レイアウトが
	 *   .is-layout-constrained > *{margin-left:auto !important;margin-right:auto !important}
	 * を出力しており、max-width を持つこの段落だけが中央寄せになってしまう。
	 * !important 同士でないと打ち消せないため、ここだけ同じ強さで指定する。
	 */
	margin-left: 0 !important;
	margin-right: auto !important;
}


/* --- 3つの案内ボックス --- */
.home-guide {
	padding-block: 60px;
}

/*
 * 3つの案内ボックス
 * 旧サイトの指定: 枠線 上4px / 他1px・角丸4px・内側余白 28/25/20/25
 * ボックスごとにテーマ色を持ち、枠線・アイコン・矢印に同じ色を使う。
 */
.home-guide__box {
	--box-color: #1e63b6;
	border: 1px solid var(--box-color);
	border-top-width: 4px;
	border-radius: 4px;
	padding: 28px 25px 20px;
}

.home-guide__box--about {
	--box-color: #31a2e0;
}

.home-guide__box--org {
	--box-color: #14a17e;
}

.home-guide__box--join {
	--box-color: #004290;
}

/*
 * 見出し（旧サイト: PCはアイコンを上に置いて中央揃え、モバイルのみ横並び）
 * Elementor の icon-box は position 既定値が top、position_mobile だけ left。
 */
.home-guide__title {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 11px;
	font-size: 20.8px;
	font-weight: 700;
	color: #333;
	margin: 0 0 18px;
}

/* 見出し左のアイコン（Font Awesome の図形をSVGとして同梱） */
.home-guide__icon {
	flex: 0 0 auto;
	display: inline-flex;
	width: 28px;
	height: 28px;
	color: var(--box-color);
}

.home-guide__icon svg {
	width: 100%;
	height: 100%;
}

/* コアのナビが持つ gap を解除し、間隔は項目の余白だけで管理する */
.home-guide .wp-block-navigation.is-layout-flex {
	gap: 0;
}

.home-guide ul {
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
}

/* 区切り線を枠いっぱいに引くため、項目を全幅にする */
.home-guide li {
	margin: 0;
	width: 100%;
	border-bottom: 1px solid #eaeaea;
}

.home-guide li:last-child {
	border-bottom: none;
}

.home-guide li a {
	position: relative;
	display: block;
	padding: 14.5px 0 14.5px 30px;
	color: #333;
	text-decoration: none;
	font-size: 16px;
	line-height: 1.6;
}

/* 矢印アイコン（fa-arrow-right をマスクとして使用し、色をボックスに合わせる） */
.home-guide li a::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 16px;
	height: 16px;
	margin-top: -8px;
	background-color: var(--box-color);
	-webkit-mask: url("assets/icons/arrow-right.svg") no-repeat center / contain;
	mask: url("assets/icons/arrow-right.svg") no-repeat center / contain;
}

.home-guide li a:hover {
	color: var(--box-color);
	text-decoration: underline;
}

/* --- 3枚の画像カード --- */
/*
 * 3枚のカード（旧サイト: コンテンツ幅内に配置し、各カラムに左右10pxのマージン）
 * 上の3ボックスと同じ幅・同じ左右位置に揃える。
 */
.home-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-auto-rows: 1fr;
	align-items: stretch;
	gap: 20px;
	max-width: 1140px;
	margin-inline: auto;
	padding-inline: 20px;
	box-sizing: content-box;
}

/*
 * コアの flow レイアウト（:where(...) > * + *）が 2枚目以降に
 * margin-block-start を付けるため、グリッド内で高さがずれる。ここで打ち消す。
 */
.home-cards > * {
	margin-block-start: 0;
	margin-block-end: 0;
	height: 100%;
}


.home-card {
	position: relative;
	min-height: 180px;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background-position: center center;
	background-size: cover;
	text-align: center;
	overflow: hidden;
}

/* カード内の段落もマージンを持たせない（高さのばらつき防止） */
.home-card > p {
	margin: 0;
	width: 100%;
}

.home-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 20, 45, 0.4);
	transition: background-color 0.25s ease;
}

.home-card:hover::before {
	background: rgba(30, 99, 182, 0.55);
}

.home-card a {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 180px;
	padding: 20px;
	color: #fff;
	text-decoration: none;
	text-shadow: 0 0 13px rgba(1, 52, 101, 0.5);
	text-align: center;
}

.home-card__title {
	display: block;
	font-size: 22.4px;
	font-weight: 700;
	line-height: 1.4;
}

/* 会長挨拶カードの肩書き・氏名（旧サイト: 0.9em / 行間1.5） */
.home-card__name {
	display: block;
	margin-top: 6px;
	font-size: 14.4px;
	font-weight: 400;
	line-height: 1.5;
}

.home-card--greeting {
	background-image: url("/wp-content/uploads/2022/06/kaicho2.png");
}

.home-card--nintei3 {
	background-image: url("/wp-content/uploads/2022/07/23958406_m.jpg");
}

.home-card--nintei2 {
	background-image: url("/wp-content/uploads/2022/06/23447945_l2-scaled.jpg");
}

.home-card--greeting .home-card__title {
	font-size: 24px;
}

/* --- お知らせ --- */
.home-news {
	padding-block: 60px;
}

/*
 * 見出し行（旧サイト: 下に1pxのアクセント色の線 / 下余白17px / 上下マージン29px）
 */
.home-news__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 29px 0;
	padding-bottom: 17px;
	border-bottom: 1px solid #1e63b6;
}

.home-news__head h2 {
	font-size: 19.2px;
	font-weight: 700;
	color: #333;
	margin: 0;
}

/*
 * MOREボタン（旧サイト: 白背景 / アクセント色の1px枠 / 文字もアクセント色 /
 * 角丸なし / 内側 8px・14px）
 */
.home-news__head .wp-block-button__link {
	background-color: #fff;
	color: #1e63b6;
	border: 1px solid #1e63b6;
	border-radius: 0;
	padding: 8px 14px;
	font-size: 14.4px;
}

.home-news__head .wp-block-button__link:hover {
	background-color: #1e63b6;
	color: #fff;
}

.home-news .wp-block-post-template {
	list-style: none;
	margin: 0;
	padding: 0;
}

.home-news .wp-block-post-template > li {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 20px;
	padding: 14px 0;
	margin: 0;
	border-bottom: 1px solid #e6e6e6;
}

.home-news .wp-block-post-date {
	font-size: 12px;
	color: #adadad;
	flex: 0 0 8em;
	margin: 0;
}

.home-news .wp-block-post-title {
	font-size: 16px;
	font-weight: 400;
	margin: 0;
	flex: 1 1 auto;
}

.home-news .wp-block-post-title a {
	color: #333;
	text-decoration: none;
}

.home-news .wp-block-post-title a:hover {
	color: #1e63b6;
	text-decoration: underline;
}

/* =========================================================
   投稿（お知らせ）
   ========================================================= */
.post-meta {
	font-size: 12px;
	color: #adadad;
	margin-bottom: 8px;
}

.archive-list .wp-block-post-template > li {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 20px;
	padding: 14px 0;
	border-bottom: 1px solid #e6e6e6;
}

.archive-list .wp-block-post-date {
	font-size: 12px;
	color: #adadad;
	flex: 0 0 8em;
	margin: 0;
}

.archive-list .wp-block-post-title {
	font-size: 16px;
	font-weight: 400;
	margin: 0;
	flex: 1 1 auto;
}

.archive-list .wp-block-post-title a {
	color: #333;
	text-decoration: none;
}

.archive-list .wp-block-post-title a:hover {
	color: #1e63b6;
	text-decoration: underline;
}

/* =========================================================
   フッター
   ========================================================= */
.site-footer {
	background-color: #f8f8f8;
	padding-block: 54px 47px;
}

.site-footer__cols {
	display: grid;
	grid-template-columns: 1.2fr 1fr 1fr 1fr;
	gap: 30px;
	align-items: start;
}

/* 同上: 2列目以降が下にずれるのを防ぐ */
.site-footer__cols > * {
	margin-block-start: 0;
	margin-block-end: 0;
}


.site-footer img {
	width: 300px;
	max-width: 100%;
	height: auto;
}

.site-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

/*
 * リンクの先頭アイコン（旧サイト: 親は fa-arrow-right 9px / 子は fa-chevron-right 6px）
 * 色はテキストと同じ #333。
 */
.site-footer .wp-block-navigation-item {
	margin: 0;
}

.site-footer a {
	color: #333;
	text-decoration: none;
	font-size: 14.4px;
	line-height: 1.6;
}

.site-footer a:hover {
	color: #1e63b6;
	text-decoration: underline;
}

/*
 * 矢印はメニュー項目にだけ付ける。
 * .site-footer a 全体に付けるとロゴなどメニュー以外のリンクにも出てしまう。
 */
.site-footer .wp-block-navigation-item__content {
	position: relative;
	display: inline-block;
	padding-left: 18px;
}

.site-footer .wp-block-navigation-item__content::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.5em;
	width: 9px;
	height: 9px;
	background-color: #333;
	-webkit-mask: url("assets/icons/arrow-right.svg") no-repeat center / contain;
	mask: url("assets/icons/arrow-right.svg") no-repeat center / contain;
}

.site-footer .wp-block-navigation-item__content:hover::before {
	background-color: #1e63b6;
}

/* フッターロゴ（灰色地になじむ専用画像） */
.site-footer__logo {
	margin: 0;
}

/*
 * コアのナビは gap（＝blockGap 20px）を持つため、そのままだと
 * 下の margin-top と二重になって行間が広がりすぎる。gap は解除して
 * 行間は margin-top だけで管理する。
 */
.site-footer .wp-block-navigation.is-layout-flex {
	gap: 0;
}

/* 親項目（当医師会について）: 上下の間隔22px、左に20pxの余白 */
.site-footer .wp-block-navigation:not(.is-sub-links) {
	padding-left: 20px;
}

.site-footer .wp-block-navigation:not(.is-sub-links) .wp-block-navigation-item + .wp-block-navigation-item {
	margin-top: 22px;
}

/* 子項目: 字下げ46px、シェブロン6px、間隔9px */
.site-footer .is-sub-links {
	padding: 8px 10px 10px 46px;
}

.site-footer .is-sub-links .wp-block-navigation-item + .wp-block-navigation-item {
	margin-top: 9px;
}

.site-footer .is-sub-links .wp-block-navigation-item__content::before {
	width: 6px;
	height: 6px;
	top: 0.55em;
	-webkit-mask-image: url("assets/icons/chevron-right.svg");
	mask-image: url("assets/icons/chevron-right.svg");
}

.site-copyright {
	background-color: #f8f8f8;
	padding-block: 20px 40px;
	text-align: center;
}

.site-copyright p {
	font-size: 14.4px;
	color: #333;
	margin: 0;
}

/* =========================================================
   Snow Monkey Forms（旧フォームのデザインに合わせる）
   ========================================================= */
.smf-form .smf-item {
	border-bottom: 1px solid rgba(128, 128, 128, 0.3);
}

/* ラベル列: 旧サイトの table.bug_contact th 相当 */
.smf-form .smf-item__col--label {
	background-color: #ddecf8;
	padding: 25px 10px;
	vertical-align: middle;
}

.smf-form .smf-item__label {
	font-weight: 700;
	line-height: 1.6;
}

.smf-form .smf-item__col--controls {
	padding: 20px 10px;
}

/* 必須マーク */
.smf-required {
	color: #cc0000;
	margin-left: 0.3em;
	font-weight: 700;
}

/* 1項目内の副見出し（製品名・電話 など） */
.smf-form .smf-sub-label {
	margin: 12px 0 4px;
	font-size: 14.4px;
	font-weight: 700;
	color: #333;
}

.smf-form .smf-item__controls > .smf-sub-label:first-child {
	margin-top: 0;
}

/* 入力欄 */
.smf-form input[type="text"],
.smf-form input[type="email"],
.smf-form input[type="tel"],
.smf-form input[type="date"],
.smf-form textarea,
.smf-form select {
	font-family: inherit;
	font-size: 16px;
}

/* ボタン */
.smf-form .smf-button-control__control {
	background: #004290;
	color: #fff;
	border: none;
	padding: 16px 40px;
	font-size: 16px;
	cursor: pointer;
	min-width: 220px;
}

.smf-form .smf-button-control__control:hover {
	background: #1e63b6;
}

.smf-action {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 30px;
}

/* エラー表示 */
.smf-form .smf-error-messages {
	color: #cc0000;
	font-size: 14.4px;
	margin-top: 6px;
}

/*
 * ハニーポット（スパム対策）
 * 画面にも読み上げにも出さない。display:none だと入力自体を送らないボットがいるため、
 * レイアウトから外して視覚的にのみ隠す。
 */
.jamamed-hp-wrap {
	position: absolute !important;
	left: -9999px !important;
	top: auto !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

@media (max-width: 640px) {
	.smf-form .smf-item__col--label {
		padding: 14px 10px;
	}

	.smf-form .smf-button-control__control {
		width: 100%;
		min-width: 0;
	}
}

/* =========================================================
   フォーム（素のHTML入力欄が入る場合の最低限）
   ========================================================= */
.entry-content input[type="text"],
.entry-content input[type="email"],
.entry-content input[type="tel"],
.entry-content input[type="number"],
.entry-content input[type="date"],
.entry-content textarea,
.entry-content select {
	width: 100%;
	padding: 10px;
	border: 1px solid #ccc;
	font-size: 16px;
	font-family: inherit;
}

.entry-content input[type="submit"] {
	background: #004290;
	color: #fff;
	border: none;
	padding: 16px 40px;
	font-size: 16px;
	cursor: pointer;
}

.entry-content input[type="submit"]:hover {
	background: #1e63b6;
}

/* =========================================================
   レスポンシブ
   旧サイト（Elementor）の設定値に準拠。
   ブレークポイント: viewport_md=768 / viewport_lg=1025
   → モバイル ≤767px / タブレット 768〜1024px / PC ≥1025px
   ========================================================= */

/* ---------------------------------------------------------
   タブレット以下（≤1024px）
   --------------------------------------------------------- */
@media (max-width: 1024px) {

	/* ヘッダー: ロゴとメニューを縦積みし、どちらも中央に置く */
	.site-header .site-header__inner {
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		gap: 0;
	}

	.site-header .site-header__inner > .wp-block-site-logo {
		width: 100%;
		text-align: center;
	}

	/*
	 * ヘッダーには左右20pxの共通余白（has-global-padding）が入るため、
	 * メニューを画面の端まで広げるにはその分だけ外側へ逃がす。
	 */
	.site-header .site-header__inner > .site-nav {
		width: calc(100% + var(--wp--style--root--padding-left, 20px) + var(--wp--style--root--padding-right, 20px));
		max-width: none;
		/*
		 * コアはレイアウト系の自動マージンを !important で当ててくるため、
		 * ここも同じ強さで指定しないと中央寄せに戻されてしまう。
		 */
		margin-left: calc(var(--wp--style--root--padding-left, 20px) * -1) !important;
		margin-right: calc(var(--wp--style--root--padding-right, 20px) * -1) !important;
	}

	.site-header .wp-block-site-logo img {
		display: inline-block;
		width: 64%;
		max-width: 300px;
	}

	/*
	 * ハンバーガーの表示開始をコア既定の600pxから1024pxへ広げる。
	 * 旧サイトはタブレットでもトグル表示だったため。
	 */
	.site-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.site-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}

	/* 下層ページ: 1カラム化し、サイドメニューは非表示（旧サイトと同じ） */
	.content-with-sidebar {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.content-with-sidebar > aside {
		display: none;
	}

	/* ヒーロー: タブレットは左右50px（旧サイトの指定） */
	.home-hero {
		padding-inline: 50px;
	}

	/* トップの3枚カード: 縦積み */
	.home-cards {
		grid-template-columns: 1fr;
		/*
		 * カード間の間隔は gap で作る。
		 * 上下マージンだと height:100% と合わさって行からはみ出し、
		 * 隣のカードとの間隔が潰れてしまうため。
		 */
		gap: 20px;
	}

	.home-card {
		/* 左右のみマージン（旧サイトと同じ10px）。上下は gap に任せる */
		margin: 0 10px;
		min-height: 0;
	}

	.home-card a,
	.home-card--greeting a {
		min-height: 0;
		padding: 60px 20px;
	}

	/* フッター: 縦積み、ロゴは中央 */
	.site-footer__cols {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.site-footer__brand {
		text-align: center;
	}

	.site-footer__brand .wp-block-site-logo {
		margin-inline: auto;
	}
}

/* ---------------------------------------------------------
   モバイル（≤767px）
   --------------------------------------------------------- */
@media (max-width: 767px) {

	/* ヘッダー */
	.site-header .wp-block-site-logo img {
		width: 53%;
	}

	.site-header .wp-block-site-logo {
		padding: 12px 0 18px;
	}

	/* --- ヒーロー（旧サイト: 高さ526px / 上24px・左右32px） --- */
	.home-hero {
		min-height: 526px;
		padding: 24px 32px 0;
		justify-content: flex-start;
	}

	.home-hero h1 {
		font-size: 22.4px;
		line-height: 1.7;
		margin-bottom: 18px;
	}

	/*
	 * 旧サイトはモバイル用に「改行なし」の見出しを別途用意して出し分けていた。
	 * 同じ見た目になるよう、モバイルでは強制改行を無効にする。
	 */
	.home-hero h1 br {
		display: none;
	}

	.home-hero p {
		font-size: 14.4px;
		margin-bottom: 20px;
	}

	.home-hero .wp-block-button__link {
		font-size: 16px;
		padding: 16px 20px;
	}

	/* 旧サイトのモバイル指定: 上マージン0 / 下27px（中央寄せはPCから継承） */
	.home-hero .wp-block-buttons {
		margin-top: 0;
		margin-bottom: 27px;
	}

	/* --- 3つの案内 --- */
	.home-guide {
		padding-block: 35px 0;
	}

	.home-guide .wp-block-column {
		margin-bottom: 20px;
	}

	.home-guide__box {
		padding: 19px;
	}

	/* モバイルはアイコンを左に置いて横並び（旧サイト: position_mobile = left） */
	.home-guide__title {
		flex-direction: row;
		align-items: center;
		text-align: left;
		font-size: 16px;
		gap: 9px;
	}

	.home-guide__icon {
		width: 25px;
		height: 25px;
	}

	/* --- 3枚カード --- */
	/* 旧サイト: セクション左右5px + カラム左右10px = 合計15px */
	.home-cards {
		padding-inline: 5px;
	}

	.home-card a,
	.home-card--greeting a {
		padding: 45px 20px;
	}

	.home-card__title {
		font-size: 19.2px;
	}

	.home-card--greeting .home-card__title {
		font-size: 22.4px;
	}

	.home-card__name {
		font-size: 11.2px;
		margin-top: 4px;
	}

	/* --- お知らせ --- */
	.home-news {
		padding-block: 40px;
		--wp--style--root--padding-left: 10px;
		--wp--style--root--padding-right: 10px;
	}

	.home-news__head {
		flex-direction: column;
		align-items: center;
		gap: 0;
	}

	.home-news__head h2 {
		font-size: 17.6px;
		text-align: center;
		margin-bottom: 15px;
	}

	.home-news .wp-block-button__link {
		font-size: 12.8px;
		padding: 5px 11px;
	}

	.home-news .wp-block-post-template > li,
	.archive-list .wp-block-post-template > li {
		flex-direction: column;
		gap: 2px;
	}

	.home-news .wp-block-post-date,
	.archive-list .wp-block-post-date {
		flex: none;
	}

	.home-news .wp-block-post-title,
	.archive-list .wp-block-post-title {
		line-height: 1.4;
	}

	/* --- フッター: スマホでは行間を詰めてコンパクトに --- */
	.site-footer {
		padding-block: 32px 24px;
	}

	.site-footer .wp-block-navigation:not(.is-sub-links) .wp-block-navigation-item + .wp-block-navigation-item {
		margin-top: 12px;
	}

	.site-footer .is-sub-links {
		padding: 6px 10px 6px 40px;
	}

	.site-footer .is-sub-links .wp-block-navigation-item + .wp-block-navigation-item {
		margin-top: 6px;
	}

	.site-footer a {
		line-height: 1.5;
	}

	.site-copyright {
		padding-block: 12px 24px;
	}

	/* --- 下層ページ --- */
	.page-hero {
		min-height: 199px;
	}

	.page-hero .wp-block-post-title,
	.page-hero h1 {
		font-size: 20.8px;
	}

	.jamamed-breadcrumb {
		padding: 5px 0;
		line-height: 1.7;
	}

	.entry-content {
		--wp--style--root--padding-left: 15px;
		--wp--style--root--padding-right: 15px;
		padding-block: 24px 40px;
	}

	.entry-content h2 {
		font-size: 20.8px;
	}

	.entry-content h3 {
		font-size: 18.4px;
	}

	/* 幅の広い表は横スクロールで見せる */
	.entry-content .wp-block-table,
	.entry-content .wp-block-html {
		-webkit-overflow-scrolling: touch;
	}

	.entry-content table th,
	.entry-content table td {
		padding: 10px;
		white-space: nowrap;
	}

	/* アコーディオンの見出し */
	.entry-content .wp-block-details summary {
		padding: 12px 14px;
	}
}

/* =========================================================
   印刷
   ========================================================= */
@media print {
	.site-header,
	.site-footer,
	.site-copyright,
	.side-menu,
	.jamamed-breadcrumb,
	.page-hero {
		display: none !important;
	}

	.content-with-sidebar {
		grid-template-columns: 1fr;
	}
}
