.box {
	padding: 1.5rem;
	background: var(--color-white);
	/* box-shadow: 0 0.15rem 0.5rem rgba(0, 0, 0, 0.065); */
}
.box-shadow {
	box-shadow: 0 0.15rem 0.5rem rgba(0, 0, 0, 0.065);
}

/* ===== PAGE CONTENT ===== */
.page-content {
	padding: 2rem 0 3rem;
}

.page-content__title {
	font-size: 1.375rem; font-weight: 700; line-height: 1.4;
	border-bottom: 2px solid var(--color-green);
	padding-bottom: 0.75rem;
	margin-bottom: 1.75rem;
}

/* ===== PAGE CONTENT BODY ===== */
.page-content__body {
	font-size: 0.9375rem; line-height: 1.85;
}

/* --- 段落 --- */
.page-content__body p { margin-bottom: 1rem; }

/* --- リンク --- */
.page-content__body a {
	color: var(--color-green);
	text-decoration: underline;
	text-underline-offset: 0.15rem;
}
@media (min-width: 769px) {
	.page-content__body a:hover { opacity: 0.75; }
}

/* --- 画像 --- */
.page-content__body img { max-width: 100%; height: auto; margin: 1rem 0; }

/* --- 見出し --- */
.page-content__body h2 {
	font-size: 1.25rem; font-weight: 700;
	margin: 2rem 0 0.875rem;
	padding: 0.5rem 0.75rem;
	/* background: var(--color-bg); */
	border-left: 2px solid var(--color-green);
	line-height: 1.55;
}
.page-content__body h3 {
	font-size: 1.125rem; font-weight: 700;
	margin: 1.75rem 0 0.75rem;
	padding-bottom: 0.375rem;
	border-bottom: 1px solid var(--color-border);
}
.page-content__body h4 {
	font-size: 1rem; font-weight: 700;
	margin: 1.25rem 0 0.5rem;
}
.page-content__body h5,
.page-content__body h6 {
	font-size: 0.9375rem; font-weight: 700;
	margin: 1rem 0 0.5rem;
	color: var(--color-text-sub);
}

/* --- リスト（common.cssのlist-style:noneを上書き） --- */
.page-content__body ul,
.page-content__body ol {
	margin: 0 0 1rem 1.5rem;
	padding: 0;
}
.page-content__body ul { list-style: disc; }
.page-content__body ol { list-style: decimal; }
.page-content__body li {
	margin-bottom: 0.375rem; line-height: 1.7;
}
.page-content__body ul ul,
.page-content__body ol ol,
.page-content__body ul ol,
.page-content__body ol ul {
	margin-top: 0.375rem; margin-bottom: 0;
}

/* --- テーブル（Bootstrap準拠） --- */
/* display:blockでスクロールコンテナ化（.rowの負マージンに影響しない） */
.page-content__body table {
	overflow-x: auto; -webkit-overflow-scrolling: touch;
	width: 100%; border-collapse: collapse;
	margin-bottom: 1.25rem; font-size: 0.875rem;
}
.page-content__body th,
.page-content__body td {
	padding: 0.625rem 0.875rem;
	border: 1px solid var(--color-border);
	text-align: left; vertical-align: top; line-height: 1.6;
}
.page-content__body th {
	background: var(--color-bg); font-weight: 700; white-space: nowrap;
}
.page-content__body tr:nth-child(even) td {
	background: rgba(0, 0, 0, .02);
}

/* --- PC --- */
@media (min-width: 769px) {
	.page-content__title { font-size: 1.75rem; }
	.page-content__body { font-size: 1rem; }
	.page-content__body h2 { font-size: 1.5rem; }
	.page-content__body h3 { font-size: 1.25rem; }
	.page-content__body h4 { font-size: 1.125rem; }
	.page-content__body h5,
	.page-content__body h6 { font-size: 1rem; }
}

/* ===== POST HERO (全ページ共通) ===== */
.post-hero { position: relative; overflow: hidden; }
.post-hero__img {
	display: block; width: 100%; height: 15rem;
	object-fit: cover; object-position: center center;
	color: transparent; user-select: none;
}
.post-hero__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(
		to top,
		rgba(0, 0, 0, .82) 0%,
		rgba(0, 0, 0, .35) 55%,
		rgba(0, 0, 0, .08) 100%
	);
	display: flex; flex-direction: column; justify-content: center;
	padding: 1.25rem 0.625rem; gap: 0.5rem;
}
.post-hero__title {
	font-size: 1.75rem; font-weight: 700;
	color: var(--color-white); line-height: 1.2;
}
.post-hero__subtitle {
	font-size: 0.75rem; font-weight: 700;
	color: var(--color-green); letter-spacing: 0.1em;
}
.post-hero__sub {
	font-size: 0.8125rem; color: var(--color-white); line-height: 1.4;
}
/* カテゴリ・タグ行と投稿日・投稿者行を上下に分ける */
.post-hero__meta {
	display: flex; flex-direction: column; align-items: flex-start;
	gap: 0.5rem; padding-top: 1.25rem;
}
.post-hero__badges { display: flex; align-items: center; gap: 0.375rem; flex-wrap: wrap; }
.post-hero__badges-icon { color: var(--color-white); font-size: 0.875rem; }
.post-hero__badges-icon:not(:first-child) { margin-left: 0.5rem; }
.post-hero__byline {
	display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap;
}
.post-hero__date,
.post-hero__author {
	display: inline-flex; align-items: center; gap: 0.25rem;
	font-size: 0.75rem; color: var(--color-white);
}
.post-hero__author { text-decoration: none; transition: opacity 0.3s ease; }
.post-hero__date i,
.post-hero__author i { font-size: 0.75rem; }
@media (hover: hover) {
	.post-hero__author:hover { text-decoration: underline; opacity: 0.85; }
}
/* container-xl を挟んだ場合の flex 縦並び・gap 補完 */
.post-hero__overlay > .container-xl {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
@media (min-width: 769px) {
	/* 画面右に固定される .gallery-banner とテキストが被らないよう、
	   overlay自体ではなくコンテナ内側に右余白を確保（overlayに付けるとxl以上でcontainer-xlの中央位置がずれるため） */
	.post-hero__overlay > .container-xl { padding-right: 7.5rem; }
}
.post-hero__overlay .badge {
	color: var(--color-white);
	background: transparent;
	border-color: rgba(255, 255, 255, 0.5);
}
.post-hero__overlay .badge--primary {
	background: var(--color-white);
	border-color: var(--color-white);
	mix-blend-mode: screen;
    color: var(--color-dark);
}
@media (min-width: 769px) {
	.post-hero__img { height: 20rem; }
	.post-hero__overlay { padding: 2rem; }
	.post-hero__title { font-size: 2.25rem; }
	.post-hero__sub { font-size: 0.9375rem; }
}

/* SP: ヒーローのコンテンツ量が多い場合に overflow:hidden で見切れないよう高さを可変にする */
@media (max-width: 768px) {
	.post-hero__img {
		position: absolute; inset: 0; height: 100%;
	}
	.post-hero__overlay {
		position: relative; min-height: 15rem;
	}
}

/* ===== CF7 FORM ===== */
/* 送信ボタン */
.wpcf7-submit.btn {
	padding: 0.75rem 3rem;
	background: var(--color-green);
	color: var(--color-white);
	font-size: 1rem; font-weight: 700;
	border: none; cursor: pointer;
	transition: opacity 0.3s ease;
}
@media (min-width: 769px) {
	.wpcf7-submit.btn:hover { opacity: 0.8; }
}

/* バリデーションエラー */
.wpcf7-not-valid-tip {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.8125rem;
	color: #dc3545;
}
.wpcf7-form-control.wpcf7-not-valid {
	border-color: #dc3545;
}

/* 送信後メッセージ */
.wpcf7-response-output {
	margin-top: 1rem;
	padding: 0.75rem 1rem;
	font-size: 0.875rem;
	border-radius: 0.25rem;
	border: 1px solid var(--color-border);
}
.wpcf7-mail-sent-ok {
	background: var(--color-box-green);
	border-color: var(--color-green);
	color: var(--color-green);
}
.wpcf7-mail-sent-ng,
.wpcf7-validation-errors {
	background: #fff5f5;
	border-color: #dc3545;
	color: #dc3545;
}

/* WPギャラリースタイル */
/* .wp-block-gallery.has-nested-images {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.wp-block-gallery.has-nested-images figure {
    margin: 0;
    overflow: hidden;
}

.wp-block-gallery.has-nested-images img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
}

@media (max-width: 767px) {
    .wp-block-gallery.has-nested-images {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .wp-block-gallery.has-nested-images {
        grid-template-columns: 1fr;
    }
} */

/* ===== CONTENT LAYOUT (2カラム) ===== */
.content-layout {
	display: flex;
	align-items: flex-start;
	gap: 2.5rem;
	padding: 2.5rem 0.625rem;
}
@media (min-width: 992px) {
	.content-layout {
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
}
@media (min-width: 1260px) {
	.content-layout {
		padding-left: 0;
		padding-right: 0;
	}
}

.content-layout__main {
	flex: 1;
	min-width: 0;
}

.content-layout__sidebar {
	width: 18rem;
	flex-shrink: 0;
}

@media (min-width: 768px) and (max-width: 991px) {
	.content-layout__sidebar {
		width: 15rem;
	}
}

@media (max-width: 767px) {
	.content-layout {
		flex-direction: column;
		gap: 2.5rem;
	}
	.content-layout__main {
		/* flex-direction: columnではalign-items: flex-startによりfit-content幅になり、
		   子要素のmax-width:100%が正しく機能しないため明示的に幅を指定 */
		width: 100%;
	}
	.content-layout__sidebar {
		width: 100%;
	}
}

/* ===== SIDEBAR ===== */
.sidebar {
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
}

.sidebar__widget-title {
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--color-border);
	margin-bottom: 0.875rem;
	color: var(--bs-gray-dark);
}

/* 新着記事 */
/* SP：2カラム / PC：1カラム */
.sidebar-latest {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.25rem 1rem;
}
@media (min-width: 769px) {
	.sidebar-latest {
		grid-template-columns: 1fr;
	}
}
/* 記事が1件のみの場合はSPでも1カラム */
.sidebar-latest:has(> .sidebar-latest__item:only-child) {
	grid-template-columns: 1fr;
}
.sidebar-latest__link {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	color: var(--color-text);
	transition: color 0.3s ease;
}
@media (hover: hover) {
	.sidebar-latest__link:hover { color: var(--color-green); }
}
.sidebar-latest__thumb {
	width: 100%;
	aspect-ratio: 2 / 1;
	overflow: hidden;
	border-radius: 0.25rem;
}
.sidebar-latest__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}
@media (hover: hover) {
	.sidebar-latest__link:hover .sidebar-latest__thumb img { transform: scale(1.04); }
}
.sidebar-latest__body {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.sidebar-latest__title {
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.45;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.sidebar-latest__date {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 0.6875rem;
	color: var(--color-text-sub);
}
.sidebar-latest__date i { font-size: 0.6875rem; }

/* 最新スケジュール（sidebar-latest と同じレイアウトを共用・.post-period のみサイドバー用に縮小） */
.sidebar-latest .post-period {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	width: fit-content;
	font-size: 0.6875rem;
	border-radius: 0.25rem;
}

/* 人気記事 */
.sidebar-popular-tabs {
	display: flex;
	border-bottom: 2px solid var(--color-border);
	margin-bottom: 0.875rem;
}
.sidebar-popular-tabs__btn {
	flex: 1;
	padding: 0.375rem 0;
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -0.125rem;
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--color-text-sub);
	cursor: pointer;
	transition: color 0.3s ease, border-color 0.3s ease;
}
.sidebar-popular-tabs__btn.is-active {
	color: var(--color-green);
	border-bottom-color: var(--color-green);
}
.sidebar-popular {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
}
.sidebar-popular__item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.sidebar-popular__num {
	flex-shrink: 0;
	width: 1.5rem;
	height: 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--color-white);
	background: var(--color-purple);
	border-radius: 50%;
	opacity: 0.8;
}
.sidebar-popular__num--low {
	background: #6c757d;
	opacity: 1;
}
.sidebar-popular__link {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	flex: 1;
	min-width: 0;
	color: var(--color-text);
	transition: color 0.3s ease;
}
@media (hover: hover) {
	.sidebar-popular__link:hover { color: var(--color-green); }
}
.sidebar-popular__thumb {
	width: 3.75rem;
	height: 2.75rem;
	flex-shrink: 0;
	overflow: hidden;
	border-radius: 0.25rem;
}
.sidebar-popular__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.sidebar-popular__title {
	font-size: 0.8125rem;
	line-height: 1.4;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* バナーエリア */
.sidebar__widget--banner { min-height: 4rem; }

.sidebar-banner-placeholder {
	background: var(--color-bg);
	border: 1px dashed var(--color-border);
	border-radius: 0.375rem;
	padding: 2rem 1rem;
	text-align: center;
	color: var(--color-text-sub);
	font-size: 0.8125rem;
}

/* バナーリンク（サイドバー上部・下部） */
.sidebar-banner-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
/* PC時以外：バナーが2件以上ある場合は2カラム */
@media (max-width: 768px) {
	.sidebar-banner-list:has(.sidebar-banner-list__item:nth-child(2)) {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}
}
.sidebar-banner-list__link {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	color: var(--color-text);
	transition: color 0.3s ease;
}
@media (hover: hover) {
	.sidebar-banner-list__link:hover { color: var(--color-green); }
}
.sidebar-banner-list__thumb {
	width: 100%;
	/* aspect-ratio: 2 / 1; */
	overflow: hidden;
	border-radius: 0.25rem;
}
.sidebar-banner-list__img {
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}
@media (min-width: 769px) {
	.sidebar-banner-list__img {
		width: 100%;
	}
}
@media (hover: hover) {
	.sidebar-banner-list__link:hover .sidebar-banner-list__img { transform: scale(1.04); }
}
.sidebar-banner-list__title {
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.4;
}

/* タグクラウド */
.sidebar-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.625rem;
	align-items: baseline;
}
.sidebar-tags a {
	color: var(--color-green);
	text-decoration: none;
	font-weight: 500;
	line-height: 1.6;
	transition: color 0.3s ease;
}
.sidebar-tags a::before {
	content: "#";
	color: var(--color-lgreen);
	margin-right: 0.1em;
	font-weight: 700;
	font-size: 0.875rem;
}
@media (hover: hover) {
	.sidebar-tags a:hover { color: var(--color-green); }
}

/* ドロップダウン */
.sidebar-select-wrap { position: relative; }

.sidebar-select-wrap::after {
	content: '';
	position: absolute;
	top: 50%; right: 0.75rem;
	transform: translateY(-50%);
	width: 0; height: 0;
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	border-top: 6px solid var(--color-text-sub);
	pointer-events: none;
}

.sidebar-select {
	width: 100%;
	padding: 0.5rem 2rem 0.5rem 0.75rem;
	border: 1px solid var(--color-border);
	border-radius: 0.375rem;
	background: var(--color-white);
	font-size: 0.875rem;
	color: var(--color-text);
	appearance: none;
	cursor: pointer;
	transition: border-color 0.3s ease;
}

.sidebar-select:focus { outline: none; border-color: var(--color-green); }

/* ===== SITEMAP ===== */

/* page-content__body h2 のデフォルトスタイルをリセット */
.page-content__body .sitemap-section__title {
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-text-sub);
	background: none;
	border-left: none;
	border-bottom: 2px solid var(--color-border);
	padding: 0 0 0.5rem;
	margin: 0 0 0.875rem;
}

.sitemap-list {
	list-style: none !important;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.125rem;
}

@media (min-width: 576px) {
	.sitemap-list { grid-template-columns: repeat(2, 1fr); }
}

.sitemap-list__item a {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.75rem 1rem;
	color: var(--color-text);
	text-decoration: none;
	border-radius: 0.5rem;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.4;
	transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}

.sitemap-list__item a::after {
	content: '›';
	margin-left: auto;
	flex-shrink: 0;
	color: var(--color-border);
	font-size: 1.25rem;
	line-height: 1;
	transition: color 0.3s ease, transform 0.3s ease;
}

.sitemap-list__item a i {
	flex-shrink: 0;
	width: 1.125rem;
	text-align: center;
	color: var(--color-green);
	font-size: 0.875rem;
	transition: color 0.3s ease;
}

@media (min-width: 769px) {
	.sitemap-list__item a:hover {
		background: var(--color-box-green);
		color: var(--color-green);
		transform: translateX(0.1875rem);
	}
	.sitemap-list__item a:hover i { color: var(--color-primary); }
	.sitemap-list__item a:hover::after {
		color: var(--color-green);
		transform: translateX(0.125rem);
	}
}

/* ===== BLK-SEGMENT (冊子紹介ブロック) ===== */

/* --- カード共通 --- */
.blk-segment {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: 0.625rem;
	padding: 1.25rem;
	margin-bottom: 1.25rem;
	box-shadow: 0 0.15rem 0.5rem rgba(0, 0, 0, 0.065);
}

/* タイトル（page-content h5 のデフォルト color を上書き） */
.blk-segment h5 {
	color: var(--color-green);
	font-size: 1.15rem;
	font-weight: 600;
	line-height: 1.55;
	margin: 0 0 0.85rem;
}
.blk-segment ul {
	font-size: 0.875rem;
	line-height: 1.6;
}

/* --- Pattern 1: figure + h5 + ul --- */

/* .blk-segment > figure {
	margin: 0 0 0.875rem;
	text-align: center;
}
.blk-segment > figure img {
	max-width: 10.5rem;
	height: auto;
	border-radius: 0.25rem;
	box-shadow: 0.1875rem 0.25rem 0.875rem rgba(0, 0, 0, 0.15);
	margin: 0;
} */

/* 購入リンクリスト（page-content ul のデフォルトを上書き） */
.blk-segment > ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}
.blk-segment > ul a {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 0.8125rem;
	color: var(--color-green);
	text-decoration: underline;
	text-underline-offset: 0.15rem;
}

/* タブレット+: figure あり → グリッドで左列に固定 */
/* @media (min-width: 576px) {
	.blk-segment:has(> figure) {
		display: grid;
		grid-template-columns: 7.5rem 1fr;
		grid-template-rows: auto 1fr;
		column-gap: 1.25rem;
		row-gap: 0.375rem;
		align-items: start;
	}
	.blk-segment:has(> figure) > figure {
		grid-column: 1;
		grid-row: 1 / -1;
		margin: 0;
		text-align: left;
	}
	.blk-segment:has(> figure) > h5 {
		grid-column: 2;
		grid-row: 1;
		align-self: end;
	}
	.blk-segment:has(> figure) > ul {
		grid-column: 2;
		grid-row: 2;
	}
} */

/* --- Pattern 2: .txt + .img --- */

.blk-segment .txt {
	flex: 1;
	min-width: 0;
}
.blk-segment .txt p {
	font-size: 0.875rem;
	line-height: 1.8;
	color: var(--color-text);
	margin-bottom: 0.5rem;
}

.blk-segment .img {
	flex-shrink: 0;
	margin: 0;
	text-align: center;
}
.blk-segment .img img {
	max-width: 7.5rem;
	height: auto;
	border-radius: 0.25rem;
	box-shadow: 0.1875rem 0.25rem 0.875rem rgba(0, 0, 0, 0.15);
	margin: 0;
}

/* タブレット+: フレックス横並び */
.blk-segment:has(> .txt) {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
@media (min-width: 576px) {
	.blk-segment:has(> .txt) {
		flex-direction: row;
		align-items: flex-start;
	}
}

/* PC hover */
@media (min-width: 769px) {
	.blk-segment > ul a:hover { opacity: 0.75; }
}
