@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ（くらしとマネーの交差点 リニューアル版）
    Version: 2.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ========================================
   やさしい・親しみデザイン
======================================== */
:root {
	--soft-radius: 14px;
	--soft-shadow: 0 4px 16px rgba(90, 158, 124, .10);
	--soft-shadow-hover: 0 8px 24px rgba(90, 158, 124, .18);
	--soft-accent: #e39e5a;
}

/* 本文の読みやすさ */
.post_content {
	line-height: 1.95;
	letter-spacing: .03em;
}

/* 記事一覧：カード */
.-type-card .p-postList__item .p-postList__link {
	background: #fff;
	border-radius: var(--soft-radius);
	box-shadow: var(--soft-shadow);
	overflow: hidden;
	transition: box-shadow .25s, transform .25s;
}
.-type-card .p-postList__item .p-postList__link:hover {
	box-shadow: var(--soft-shadow-hover);
	transform: translateY(-3px);
}
.-type-card .p-postList__body {
	padding: 0 1em 1em;
}

/* サムネイル上のカテゴリー */
.c-postThumb__cat {
	border-radius: 0 0 8px 0;
}

/* ボタン類 */
.c-pagination a,
.c-pagination span,
.p-postList__more a {
	border-radius: 999px;
}

/* サイドバーウィジェット */
.l-sidebar .c-widget {
	background: #fff;
	border-radius: var(--soft-radius);
	box-shadow: var(--soft-shadow);
	padding: 1.25em;
}
.l-sidebar .c-widget__title {
	border-radius: 8px;
}

/* 目次 */
.p-toc {
	border-radius: var(--soft-radius);
}

/* 記事内の画像 */
.post_content img {
	border-radius: 10px;
}

/* トップ：カテゴリーカード（parts/top/pickup_banner.php） */
.p-catCards {
	width: 100%;
	margin: 0 0 3.5em;
}
.p-catCards__title {
	text-align: center;
	font-size: 1.25em;
	font-weight: 700;
	margin: 0 0 1.25em;
	color: var(--color_main);
	letter-spacing: .08em;
}
.p-catCards__title::after {
	content: "";
	display: block;
	width: 40px;
	height: 3px;
	margin: .5em auto 0;
	border-radius: 3px;
	background: var(--soft-accent);
}
.p-catCards__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.p-catCards__item {
	--tone: var(--color_main);
	--tone-pale: #e6f2eb;
}
.p-catCards__item.-accent {
	--tone: var(--soft-accent);
	--tone-pale: #fcefe0;
}
.p-catCards__link {
	display: flex;
	align-items: center;
	gap: 16px;
	height: 100%;
	padding: 20px;
	background: #fff;
	border: 1px solid transparent;
	border-radius: var(--soft-radius);
	box-shadow: var(--soft-shadow);
	color: inherit;
	text-decoration: none;
	transition: box-shadow .25s, transform .25s, border-color .25s;
}
.p-catCards__link:hover {
	border-color: var(--tone);
	box-shadow: var(--soft-shadow-hover);
	transform: translateY(-3px);
}
.p-catCards__icon {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--tone-pale);
	color: var(--tone);
	transition: background .25s, color .25s;
}
.p-catCards__link:hover .p-catCards__icon {
	background: var(--tone);
	color: #fff;
}
.p-catCards__icon svg {
	width: 28px;
	height: 28px;
}
.p-catCards__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.p-catCards__name {
	font-weight: 700;
	font-size: 1.05em;
}
.p-catCards__desc {
	font-size: .8em;
	line-height: 1.6;
	opacity: .8;
}
.p-catCards__count {
	align-self: flex-start;
	margin-top: 6px;
	padding: 1px 10px;
	border-radius: 999px;
	background: var(--tone-pale);
	color: var(--tone);
	font-size: .72em;
	font-weight: 700;
}
@media (max-width: 959px) {
	.p-catCards__list {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}
}
@media (max-width: 599px) {
	.p-catCards__link {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
		padding: 14px;
	}
	.p-catCards__icon {
		width: 44px;
		height: 44px;
	}
	.p-catCards__icon svg {
		width: 22px;
		height: 22px;
	}
}

/* トップ：メインビジュアルの 3D 背景（assets/js/hero-3d.js が挿入） */
.p-hero3d {
	position: absolute;
	inset: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	opacity: 0;
	transition: opacity 1.2s ease;
	pointer-events: none;
}
.p-hero3d.is-ready {
	opacity: 1;
}
#main_visual .p-mainVisual__textLayer {
	z-index: 2;
}

/* ページが1つだけのときはページャーを隠す */
.c-pagination:not(:has(a)) {
	display: none;
}

/* ========================================
   フッター
======================================== */
.l-footer {
	position: relative;
	margin-top: 60px;
}
/* 上端のやわらかい波 */
.l-footer::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	height: 40px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V22C240 2 480 2 720 18s480 16 720-4v26z' fill='%23eef5ef'/%3E%3C/svg%3E") no-repeat center bottom / 100% 100%;
	pointer-events: none;
}
.l-footer__widgetArea {
	padding: 2.5em 0 1.5em;
}
.l-footer__widgetArea .wp-block-heading,
.l-footer__widgetArea .c-widget__title {
	font-size: 1em;
	font-weight: 700;
	color: var(--color_main);
	border: none;
	padding: 0 0 .6em;
	margin-bottom: .8em;
	position: relative;
}
.l-footer__widgetArea .wp-block-heading::before,
.l-footer__widgetArea .wp-block-heading::after,
.l-footer__widgetArea .c-widget__title::before,
.l-footer__widgetArea .c-widget__title::after {
	display: none;
}
.l-footer__widgetArea .wp-block-heading,
.l-footer__widgetArea .c-widget__title {
	background: linear-gradient(var(--soft-accent), var(--soft-accent)) left bottom / 28px 3px no-repeat;
}
.p-footBrand__name {
	font-size: 1.2em;
	font-weight: 700;
	margin-bottom: .4em;
}
.p-footBrand__tag {
	color: var(--color_main);
	font-weight: 700;
	font-size: .9em;
	line-height: 1.7;
	margin-bottom: .8em;
}
.p-footBrand__text {
	font-size: .82em;
	line-height: 1.9;
	opacity: .85;
}
.l-footer__widgetArea .wp-block-categories,
.p-footLinks {
	list-style: none;
	margin: 0;
	padding: 0;
}
.l-footer__widgetArea .wp-block-categories li,
.p-footLinks li {
	padding: .35em 0;
	font-size: .9em;
}
.l-footer__widgetArea .wp-block-categories a,
.p-footLinks a {
	color: inherit;
	text-decoration: none;
	transition: color .2s, padding .2s;
}
.l-footer__widgetArea .wp-block-categories a::before,
.p-footLinks a::before {
	content: "›";
	margin-right: .5em;
	color: var(--color_main);
}
/* SWELL標準のリスト装飾（線・アイコン・余白）を打ち消してサイト案内と揃える */
.l-footer__widgetArea .c-listMenu a {
	display: inline;
	padding: 0;
	border: none;
	background: none;
}
.l-footer__widgetArea .c-listMenu a::before {
	position: static;
	transform: none;
	font-family: inherit;
	font-size: inherit;
}
.l-footer__widgetArea .cat-post-count {
	font-size: .85em;
	opacity: .6;
}
.l-footer__widgetArea .wp-block-categories a:hover,
.p-footLinks a:hover {
	color: var(--color_main);
	padding-left: 4px;
}
.l-footer__foot {
	background: #e3efe6;
}
.l-footer__foot .copyright {
	font-size: .75em;
	letter-spacing: .05em;
}

/* ========================================
   用語解説（inc/glossary.php）
======================================== */
.p-yogo {
	margin: 2em 0;
	border: 2px solid #e6f2eb;
	border-radius: var(--soft-radius);
	background: #fff;
	overflow: hidden;
}
.p-yogo__head {
	display: flex;
	align-items: center;
	gap: .75em;
	padding: .6em 1em;
	background: #e6f2eb;
}
.p-yogo__label {
	padding: .1em .75em;
	border-radius: 999px;
	background: var(--color_main);
	color: #fff;
	font-size: .75em;
	font-weight: 700;
}
.p-yogo__word {
	font-weight: 700;
}
.p-yogo__body {
	padding: 1em 1.25em;
	font-size: .92em;
}
.p-yogo__body > :last-child {
	margin-bottom: 0;
}

.p-yogoTip {
	position: relative;
	border-bottom: 2px dotted var(--color_main);
	cursor: help;
}
.p-yogoTip__pop {
	position: absolute;
	left: 50%;
	bottom: calc(100% + 8px);
	z-index: 10;
	width: max-content;
	max-width: min(280px, 80vw);
	padding: .6em .9em;
	border-radius: 8px;
	background: #3d4a43;
	color: #fff;
	font-size: .8rem;
	font-weight: 400;
	line-height: 1.7;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 4px);
	transition: opacity .2s, transform .2s;
}
.p-yogoTip:hover .p-yogoTip__pop,
.p-yogoTip:focus .p-yogoTip__pop {
	opacity: 1;
	transform: translate(-50%, 0);
}

/* ========================================
   積立シミュレーター（inc/simulator.php）
======================================== */
.p-sim {
	--sim-principal: #2e8b5e;
	--sim-gain: #e0852f;
	margin: 2em 0;
	padding: 1.5em;
	border-radius: var(--soft-radius);
	background: #fff;
	box-shadow: var(--soft-shadow);
}
.p-sim__head {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .6em;
	margin-bottom: 1.2em;
}
.p-sim__label {
	padding: .1em .75em;
	border-radius: 999px;
	background: var(--soft-accent);
	color: #fff;
	font-size: .75em;
	font-weight: 700;
}
.p-sim__title {
	font-weight: 700;
	font-size: 1.1em;
}
.p-sim__form {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin-bottom: 1.2em;
}
.p-sim__field {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.p-sim__fieldName {
	font-size: .8em;
	font-weight: 700;
	opacity: .8;
}
.p-sim__input {
	display: flex;
	align-items: center;
	gap: 6px;
}
.p-sim__input input {
	width: 100%;
	min-width: 0;
	padding: .5em .75em;
	border: 1px solid #d9e3dc;
	border-radius: 8px;
	background: #fbf9f4;
	font-size: 1em;
	text-align: right;
}
.p-sim__input input:focus {
	outline: 2px solid var(--color_main);
	outline-offset: 1px;
	background: #fff;
}
.p-sim__unit {
	font-size: .85em;
}
.p-sim__result {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr;
	gap: 12px;
	margin-bottom: 1.2em;
}
.p-sim__stat {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: .8em 1em;
	border-radius: 10px;
	background: #f6f4ee;
}
.p-sim__stat.-total {
	background: #e6f2eb;
}
.p-sim__statName {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: .75em;
	opacity: .85;
}
.p-sim__statValue {
	font-size: 1.15em;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
.p-sim__stat.-total .p-sim__statValue {
	font-size: 1.5em;
	color: #22694a;
}
.p-sim__swatch {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 3px;
	flex-shrink: 0;
}
.p-sim__swatch.-principal { background: var(--sim-principal); }
.p-sim__swatch.-gain { background: var(--sim-gain); }
.p-sim__chartWrap {
	position: relative;
}
.p-sim__legend {
	display: flex;
	justify-content: flex-end;
	gap: 1em;
	margin-bottom: .3em;
	font-size: .75em;
}
.p-sim__legend span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}
.p-sim__svg {
	display: block;
	width: 100%;
	height: auto;
}
.p-sim__grid {
	stroke: #ebe7de;
	stroke-width: 1;
}
.p-sim__base {
	stroke: #c9c3b6;
	stroke-width: 1;
}
.p-sim__axis {
	fill: #7a7a7a;
	font-size: 11px;
	font-variant-numeric: tabular-nums;
}
.p-sim__bar.-principal { fill: var(--sim-principal); }
.p-sim__bar.-gain { fill: var(--sim-gain); }
.p-sim__bar {
	transition: opacity .15s;
}
.p-sim__svg:hover .p-sim__bar {
	opacity: .45;
}
.p-sim__svg .is-active .p-sim__bar {
	opacity: 1;
}
.p-sim__hit {
	fill: transparent;
	cursor: pointer;
}
.p-sim__tip {
	position: absolute;
	z-index: 5;
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: .6em .8em;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 4px 16px rgba(0, 0, 0, .15);
	font-size: .75em;
	white-space: nowrap;
	pointer-events: none;
	font-variant-numeric: tabular-nums;
}
.p-sim__tip[hidden] {
	display: none;
}
.p-sim__tip span {
	display: flex;
	align-items: center;
	gap: 6px;
}
.p-sim__tipTotal {
	margin-top: 2px;
	padding-top: 4px;
	border-top: 1px solid #eee;
	font-weight: 700;
}
.p-sim__tableWrap {
	margin-top: 1em;
	font-size: .85em;
}
.p-sim__tableWrap summary {
	cursor: pointer;
	color: var(--color_link);
	font-weight: 700;
}
.p-sim__tableScroll {
	overflow-x: auto;
	margin-top: .6em;
}
.post_content .p-sim__table {
	width: 100%;
	margin: 0;
	font-variant-numeric: tabular-nums;
}
.post_content .p-sim__table td {
	text-align: right;
}
.post_content .p-sim__table td:first-child {
	text-align: left;
}
.p-sim__note {
	margin: 1em 0 0 !important;
	font-size: .72em;
	opacity: .7;
	line-height: 1.7;
}
@media (max-width: 599px) {
	.p-sim {
		padding: 1.1em;
	}
	.p-sim__form,
	.p-sim__result {
		grid-template-columns: 1fr;
	}
	.p-sim__result {
		gap: 8px;
	}
}

/* ========================================
   記事内の自動パーツ（inc/post-parts.php）
======================================== */
.p-points {
	margin: 0 0 2.5em;
	padding: 1.2em 1.4em 1.2em;
	border-radius: var(--soft-radius);
	background: #fdf6ec;
	border: 2px dashed #f0cfa6;
}
.post_content .p-points__title {
	display: flex;
	align-items: center;
	gap: .4em;
	margin: 0 0 .6em;
	font-weight: 700;
	color: #b8661f;
}
.post_content .p-points__title::before {
	content: "✓";
	display: grid;
	place-items: center;
	width: 1.5em;
	height: 1.5em;
	border-radius: 50%;
	background: var(--soft-accent);
	color: #fff;
	font-size: .8em;
}
.post_content .p-points__list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.post_content .p-points__list li {
	position: relative;
	padding: .25em 0 .25em 1.3em;
}
.post_content .p-points__list li::before {
	content: "";
	position: absolute;
	left: .2em;
	top: .95em;
	width: .5em;
	height: .5em;
	border-radius: 50%;
	background: var(--soft-accent);
}

.p-disclaimer {
	margin: 3em 0 0;
	padding: 1em 1.25em;
	border-radius: var(--soft-radius);
	background: #f3f1ec;
	font-size: .8em;
	line-height: 1.8;
}
.post_content .p-disclaimer p {
	margin: 0;
}
.post_content .p-disclaimer__title {
	margin-bottom: .3em !important;
	font-weight: 700;
}

/* ========================================
   読みやすさ（inc/readability.php）
======================================== */
.c-postTimes__read {
	display: inline-flex;
	align-items: center;
	gap: .3em;
	margin-left: .8em;
}
.p-readProgress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	height: 3px;
	pointer-events: none;
}
.p-readProgress__bar {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, var(--color_main), var(--soft-accent));
	transform: scaleX(0);
	transform-origin: left;
}

/* 追尾サイドバーの目次：目次がない記事では枠ごと隠す */
.widget_swell_index:has(.p-toc:empty) {
	display: none;
}
#fix_sidebar .p-toc a {
	display: block;
	border-radius: 6px;
	transition: background .2s, color .2s;
}
#fix_sidebar .p-toc a.is-current {
	background: #e6f2eb;
	color: var(--color_main);
	font-weight: 700;
}

/* サイドバーの関連記事（inc/related-sidebar.php） */
.p-sideRelated {
	list-style: none;
	margin: 0;
	padding: 0;
}
.p-sideRelated__item + .p-sideRelated__item {
	margin-top: 10px;
}
.p-sideRelated__link {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 6px;
	border-radius: 10px;
	color: inherit;
	text-decoration: none;
	transition: background .2s;
}
.p-sideRelated__link:hover {
	background: #f3f7f4;
}
.p-sideRelated__thumb {
	flex-shrink: 0;
	width: 72px;
	aspect-ratio: 1;
	border-radius: 8px;
	overflow: hidden;
	background: #eef2ef;
}
.p-sideRelated__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.p-sideRelated__body {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}
.p-sideRelated__cat {
	align-self: flex-start;
	padding: 0 8px;
	border-radius: 999px;
	background: #fcefe0;
	color: #b8661f;
	font-size: 10px;
	font-weight: 700;
	line-height: 1.8;
}
.p-sideRelated__thumb.-external {
	display: grid;
	place-items: center;
	background: #fcefe0;
	color: var(--soft-accent);
}
.p-sideRelated__thumb.-external svg {
	width: 30px;
	height: 30px;
}
.p-sideRelated__cat.-external {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	background: #eef2ef;
	color: #5f6b64;
	font-weight: 400;
}
.p-sideRelated__title {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: .8em;
	font-weight: 700;
	line-height: 1.55;
}

/* ========================================
   カテゴリーページ（inc/category-pages.php ＋ 各カテゴリーのブログパーツ）
======================================== */
/* 個別デザインのページでは SWELL 標準の見出し・説明を隠す（見出しは p-catHero の h1） */
.has-catPage .l-mainContent__inner > .c-pageTitle,
.has-catPage .p-termHead {
	display: none;
}
/* 隠した説明文の分の余白が残らないように */
.has-catPage .p-termContent {
	margin-top: 0 !important;
}
/* 記事0件のときは「記事が見つかりませんでした」の代わりに p-catSoon を出す */
.is-catEmpty .p-postListTabBody,
.is-catEmpty .p-catListTitle {
	display: none;
}

.p-catPage {
	--tone: var(--color_main);
	--tone-pale: #e6f2eb;
	--tone-deep: #2f6e51;
}
.p-catPage.-accent {
	--tone: var(--soft-accent);
	--tone-pale: #fcefe0;
	--tone-deep: #a85a16;
}
/* ページ・セクションは「グループ」ブロック（中に wp-block-group__inner-container が入る） */
.p-catPage > .wp-block-group__inner-container > *,
.p-catSec > .wp-block-group__inner-container > * {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.p-catPage > .wp-block-group__inner-container > * + * {
	margin-top: 3em !important;
}
/* セクション内：ラベル → 見出し → リード → 本文 */
.p-catSec > .wp-block-group__inner-container > .p-catSec__title {
	margin-top: .1em !important;
}
.p-catSec > .wp-block-group__inner-container > .p-catSec__lead {
	margin-top: .8em !important;
}
.p-catSec > .wp-block-group__inner-container > :not(.p-catSec__en):not(.p-catSec__title):not(.p-catSec__lead) {
	margin-top: 1.2em !important;
}

/* ヒーロー */
.p-catHero {
	display: flex;
	align-items: center;
	gap: 28px;
	padding: 36px 40px;
	border-radius: 20px;
	background:
		radial-gradient(circle at 92% 18%, rgba(255, 255, 255, .7) 0 60px, transparent 61px),
		radial-gradient(circle at 80% 110%, rgba(255, 255, 255, .5) 0 90px, transparent 91px),
		var(--tone-pale);
}
.p-catHero__icon {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: #fff;
	color: var(--tone);
	box-shadow: var(--soft-shadow);
}
.p-catHero__icon svg {
	width: 46px;
	height: 46px;
}
.p-catHero__body > * {
	margin: 0 !important;
}
.p-catHero__label {
	font-size: .7em;
	font-weight: 700;
	letter-spacing: .08em;
	color: var(--tone-deep);
}
.post_content .p-catHero__title,
.p-catHero__title {
	margin: .1em 0 .3em !important;
	padding: 0;
	border: none;
	background: none;
	font-size: 1.9em;
	line-height: 1.35;
	color: inherit;
}
.p-catHero__title::before,
.p-catHero__title::after {
	display: none !important;
}
.p-catHero__lead {
	font-size: 1.1em;
	font-weight: 700;
	color: var(--tone-deep);
}
.p-catHero__desc {
	font-size: .9em;
	opacity: .85;
}
.p-catHero__count {
	display: inline-block;
	margin-top: .8em !important;
	padding: .15em .9em;
	border-radius: 999px;
	background: #fff;
	color: var(--tone-deep);
	font-size: .75em;
	font-weight: 700;
}

/* セクション見出し */
.post_content .p-catSec__en,
.p-catSec__en {
	margin: 0 !important;
	font-size: .7em;
	font-weight: 700;
	letter-spacing: .08em;
	color: var(--tone);
}
.post_content .p-catSec__title,
.p-catSec__title {
	margin: 0 !important;
	padding: 0 0 .4em;
	border: none;
	background: linear-gradient(var(--tone), var(--tone)) left bottom / 36px 3px no-repeat;
	font-size: 1.35em;
	color: inherit;
}
.p-catSec__title::before,
.p-catSec__title::after {
	display: none !important;
}
.p-catSec__lead {
	margin: .8em 0 0 !important;
	font-size: .92em;
}

/* 記事カード（[kuramane_post]） */
.p-catPost {
	display: flex;
	gap: 0;
	overflow: hidden;
	border-radius: var(--soft-radius);
	background: #fff;
	box-shadow: var(--soft-shadow);
	color: inherit;
	text-decoration: none;
	transition: box-shadow .25s, transform .25s;
}
.p-catPost:hover {
	box-shadow: var(--soft-shadow-hover);
	transform: translateY(-3px);
}
.p-catPost__thumb {
	flex: 0 0 42%;
}
.p-catPost__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0 !important;
}
.p-catPost__body {
	display: flex;
	flex-direction: column;
	gap: .5em;
	padding: 1.4em 1.6em;
}
.p-catPost__label {
	align-self: flex-start;
	padding: .1em .8em;
	border-radius: 999px;
	background: var(--tone);
	color: #fff;
	font-size: .72em;
	font-weight: 700;
}
.p-catPost__title {
	font-weight: 700;
	line-height: 1.6;
}
.p-catPost__excerpt {
	font-size: .82em;
	line-height: 1.8;
	opacity: .8;
}
.p-catPost__more {
	margin-top: auto;
	color: var(--tone-deep);
	font-size: .82em;
	font-weight: 700;
}

/* ロードマップ（ステップ）
   グループ p-catRoad ＞ グループ p-catRoad__step（タイトル・説明・チップ）。各グループの中に wp-block-group__inner-container */
.p-catRoad > .wp-block-group__inner-container {
	counter-reset: road;
}
.p-catRoad__step {
	position: relative;
	margin: 0 !important;
	padding: 0 0 1.8em 72px !important;
}
.p-catRoad__step > .wp-block-group__inner-container > * {
	margin: 0 !important;
}
.p-catRoad__step::before {
	counter-increment: road;
	content: "ステップ\A" counter(road);
	white-space: pre;
	position: absolute;
	left: 0;
	top: 0;
	display: grid;
	place-items: center;
	align-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--tone);
	color: #fff;
	font-size: 9px;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	z-index: 1;
}
.p-catRoad__step:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 25px;
	top: 52px;
	bottom: 0;
	border-left: 2px dashed var(--tone);
	opacity: .4;
}
.p-catRoad__step > .wp-block-group__inner-container > .p-catRoad__title {
	margin-top: .2em !important;
	font-weight: 700;
	font-size: 1.05em;
}
.p-catRoad__step > .wp-block-group__inner-container > .p-catRoad__text {
	margin-top: .3em !important;
	font-size: .88em;
	opacity: .85;
}
.p-catRoad__step > .wp-block-group__inner-container > .p-catChips {
	margin-top: .7em !important;
}
/* チップの並び（グループ p-catChips ＞ ブロック「チップ」） */
.p-catChips > .wp-block-group__inner-container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
}
/* SWELL がグループ内の要素につける下余白を打ち消す（チップの高さ・間隔をそろえる） */
.p-catChips > .wp-block-group__inner-container > * {
	margin: 0 !important;
}
.p-catChip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: .3em .9em;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--tone);
	color: var(--tone-deep);
	font-size: .78em;
	text-decoration: none;
	transition: background .2s, color .2s;
}
a.p-catChip:hover {
	background: var(--tone);
	color: #fff;
}
.p-catChip.-soon {
	border-style: dashed;
	border-color: #cfc9bd;
	color: #8a857a;
}
.p-catChip.-soon::after {
	content: "準備中";
	margin-left: 2px;
	padding: 0 6px;
	border-radius: 999px;
	background: #efece5;
	font-size: .85em;
}

/* ポイントのグリッド */
.p-catGrid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.p-catGrid.-col3 {
	grid-template-columns: repeat(3, 1fr);
}
.p-catGrid > li {
	margin: 0 !important;
	padding: 1.2em 1.3em !important;
	border-radius: var(--soft-radius);
	background: #fff;
	box-shadow: var(--soft-shadow);
	list-style: none;
}
.p-catGrid > li::before {
	display: none !important;
}
.p-catGrid__num {
	display: inline-grid;
	place-items: center;
	width: 2em;
	height: 2em;
	margin-bottom: .5em;
	border-radius: 50%;
	background: var(--tone-pale);
	color: var(--tone-deep);
	font-weight: 700;
	font-size: .85em;
}
.p-catGrid__title {
	margin: 0 0 .3em !important;
	font-weight: 700;
}
.p-catGrid__text {
	margin: 0 !important;
	font-size: .85em;
	line-height: 1.8;
	opacity: .85;
}

/* 吹き出し風のひとこと（運営者の声） */
.p-catVoice {
	display: flex;
	align-items: flex-start;
	gap: 16px;
}
.p-catVoice__icon {
	flex-shrink: 0;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	overflow: hidden;
	background: #fff;
	box-shadow: var(--soft-shadow);
}
.p-catVoice__icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0 !important;
}
.p-catVoice__bubble {
	position: relative;
	flex: 1;
	padding: 1em 1.3em;
	border-radius: var(--soft-radius);
	background: #fff;
	box-shadow: var(--soft-shadow);
	font-size: .9em;
}
.p-catVoice__bubble::before {
	content: "";
	position: absolute;
	left: -8px;
	top: 22px;
	border: 8px solid transparent;
	border-left: 0;
	border-right-color: #fff;
}
.p-catVoice__bubble > :last-child {
	margin-bottom: 0 !important;
}
.p-catVoice__name {
	margin: 0 0 .3em !important;
	font-size: .8em;
	font-weight: 700;
	color: var(--tone-deep);
}

/* 準備中の案内（[kuramane_soon]） */
.p-catSoon {
	padding: 1.6em;
	border: 2px dashed #d9d3c6;
	border-radius: var(--soft-radius);
	background: #fff;
	text-align: center;
}
.p-catSoon__title {
	margin: 0 0 .6em !important;
	font-weight: 700;
}
.p-catSoon__body {
	font-size: .88em;
	opacity: .85;
}
.p-catSoon__btn {
	display: inline-block;
	margin-top: 1em;
	padding: .6em 1.6em;
	border-radius: 999px;
	background: var(--tone, var(--color_main));
	color: #fff !important;
	font-size: .85em;
	font-weight: 700;
	text-decoration: none;
}

/* 記事一覧の見出し（ブログパーツの最後に置く）：下の記事一覧との間 */
.p-catListTitle {
	margin-bottom: 1.5em !important;
}

@media (max-width: 599px) {
	.p-catHero {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		padding: 26px 22px;
	}
	.p-catHero__icon {
		width: 68px;
		height: 68px;
	}
	.p-catHero__icon svg {
		width: 32px;
		height: 32px;
	}
	.post_content .p-catHero__title,
	.p-catHero__title {
		font-size: 1.5em;
	}
	.p-catPost {
		flex-direction: column;
	}
	.p-catPost__thumb {
		flex-basis: auto;
		aspect-ratio: 1.9;
	}
	.p-catGrid,
	.p-catGrid.-col3 {
		grid-template-columns: 1fr;
	}
	.p-catRoad__step {
		padding-left: 62px !important;
	}
}

/* ========================================
   シリーズ（inc/series.php・taxonomy-series.php）
======================================== */
/* 記事の先頭：シリーズ名と第○回 */
.p-seriesBadge {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .5em .7em;
	margin: 0 0 1.8em;
	padding: .5em 1em .5em .5em;
	border-radius: 999px;
	background: #fff;
	box-shadow: var(--soft-shadow);
	color: inherit !important;
	font-size: .85em;
	text-decoration: none !important;
	transition: box-shadow .2s;
}
.p-seriesBadge:hover {
	box-shadow: var(--soft-shadow-hover);
}
.p-seriesBadge__label {
	padding: .1em .8em;
	border-radius: 999px;
	background: var(--color_main);
	color: #fff;
	font-size: .85em;
	font-weight: 700;
}
.p-seriesBadge__name {
	font-weight: 700;
}
.p-seriesBadge__num {
	color: var(--color_main);
	font-weight: 700;
}

/* 記事の末尾：シリーズ目次 */
.p-seriesBox {
	margin: 3em 0 0;
	padding: 1.6em 1.6em 1.4em;
	border-radius: var(--soft-radius);
	background: #fff;
	box-shadow: var(--soft-shadow);
}
.post_content .p-seriesBox__label {
	margin: 0 !important;
	color: var(--color_main);
	font-size: .75em;
	font-weight: 700;
	letter-spacing: .1em;
}
.post_content .p-seriesBox__name {
	margin: .1em 0 1em !important;
	font-size: 1.15em;
	font-weight: 700;
}
.p-seriesBox__name a {
	color: inherit;
	text-decoration: none;
}
.post_content .p-seriesToc {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	border-left: 2px solid #e6f2eb;
}
.post_content .p-seriesToc__item {
	position: relative;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	font-size: .88em;
}
.post_content .p-seriesToc__item::before {
	content: "";
	position: absolute;
	left: -6px;
	top: 1.05em;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #cfe4d7;
}
.p-seriesToc__link,
.post_content .p-seriesToc__item.-current,
.post_content .p-seriesToc__item.-soon {
	display: flex;
	gap: .8em;
	padding: .55em .8em .55em 1.2em !important;
	border-radius: 0 8px 8px 0;
	color: inherit;
	text-decoration: none;
}
.p-seriesToc__link:hover {
	background: #f3f7f4;
}
.p-seriesToc__num {
	flex-shrink: 0;
	min-width: 3.6em;
	color: var(--color_main);
	font-weight: 700;
}
.p-seriesToc__item.-current {
	background: #e6f2eb;
	font-weight: 700;
	flex-wrap: wrap;
}
.post_content .p-seriesToc__item.-current::before {
	background: var(--color_main);
	box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--color_main);
}
.p-seriesToc__here {
	padding: 0 .7em;
	border-radius: 999px;
	background: var(--color_main);
	color: #fff;
	font-size: .75em;
	line-height: 1.9;
	align-self: center;
}
.p-seriesToc__item.-soon {
	color: #9a958a;
}
.p-seriesToc__item.-soon .p-seriesToc__num {
	color: inherit;
}
.p-seriesNav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-top: 1.2em;
}
.p-seriesNav__link {
	display: flex;
	flex-direction: column;
	gap: .2em;
	padding: .8em 1em;
	border: 1px solid #e3ece6;
	border-radius: 10px;
	color: inherit;
	font-size: .85em;
	text-decoration: none;
	transition: border-color .2s, background .2s;
}
.p-seriesNav__link:hover {
	border-color: var(--color_main);
	background: #f3f7f4;
}
.p-seriesNav__link.-next {
	grid-column: 2;
	text-align: right;
}
.p-seriesNav__dir {
	color: var(--color_main);
	font-weight: 700;
	font-size: .9em;
}
.p-seriesNav__title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-weight: 700;
}

/* シリーズカード（[kuramane_series_cards]） */
.p-seriesCards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 14px;
}
.p-seriesCard {
	display: flex;
	flex-direction: column;
	gap: .4em;
	padding: 1.3em 1.4em;
	border-radius: var(--soft-radius);
	background: #fff;
	box-shadow: var(--soft-shadow);
	color: inherit !important;
	text-decoration: none !important;
	transition: box-shadow .25s, transform .25s;
}
.p-seriesCard:hover {
	box-shadow: var(--soft-shadow-hover);
	transform: translateY(-3px);
}
.p-seriesCard__label {
	color: var(--tone, var(--color_main));
	font-size: .68em;
	font-weight: 700;
	letter-spacing: .08em;
}
.p-seriesCard__name {
	font-weight: 700;
	font-size: 1.05em;
}
.p-seriesCard__desc {
	font-size: .82em;
	line-height: 1.8;
	opacity: .8;
}
.p-seriesCard__progress {
	display: flex;
	flex-direction: column;
	gap: .3em;
	margin-top: auto;
	padding-top: .5em;
}
.p-seriesCard__bar {
	display: block;
	height: 6px;
	border-radius: 999px;
	background: #ece8df;
	overflow: hidden;
}
.p-seriesCard__bar > span {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--color_main);
}
.p-seriesCard__count {
	font-size: .72em;
	opacity: .75;
}

/* シリーズページ */
.p-seriesHero {
	padding: 36px 40px;
	border-radius: 20px;
	background:
		radial-gradient(circle at 92% 18%, rgba(255, 255, 255, .7) 0 60px, transparent 61px),
		#e6f2eb;
}
.p-seriesHero__label {
	margin: 0;
	color: #2f6e51;
	font-size: .7em;
	font-weight: 700;
	letter-spacing: .08em;
}
.p-seriesHero__title {
	margin: .1em 0 .4em;
	font-size: 1.8em;
	line-height: 1.4;
}
.p-seriesHero__desc {
	margin: 0 0 1em;
	font-size: .92em;
}
.p-seriesHero__progress {
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: 420px;
}
.p-seriesHero__progress .p-seriesCard__bar {
	flex: 1;
	background: #fff;
}
.p-seriesHero__count {
	flex-shrink: 0;
	font-size: .8em;
	font-weight: 700;
	color: #2f6e51;
}
.p-seriesHero__btn {
	display: inline-block;
	margin-top: 1.2em;
	padding: .6em 1.6em;
	border-radius: 999px;
	background: var(--soft-accent);
	color: #fff !important;
	font-size: .9em;
	font-weight: 700;
	text-decoration: none !important;
}
.p-seriesList {
	margin: 2.5em 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.p-seriesList__link,
.p-seriesList__item.-soon {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 14px 18px;
	border-radius: var(--soft-radius);
	background: #fff;
	box-shadow: var(--soft-shadow);
	color: inherit;
	text-decoration: none;
	transition: box-shadow .25s, transform .25s;
}
.p-seriesList__link:hover {
	box-shadow: var(--soft-shadow-hover);
	transform: translateY(-2px);
}
.p-seriesList__item.-soon {
	background: transparent;
	box-shadow: none;
	border: 2px dashed #ddd7cb;
	color: #9a958a;
}
.p-seriesList__num {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: #e6f2eb;
	color: #2f6e51;
	font-size: .8em;
	font-weight: 700;
}
.p-seriesList__item.-soon .p-seriesList__num {
	background: #efece5;
	color: inherit;
}
.p-seriesList__thumb {
	flex-shrink: 0;
	width: 150px;
	aspect-ratio: 1.9;
	border-radius: 8px;
	overflow: hidden;
}
.p-seriesList__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.p-seriesList__body {
	display: flex;
	flex-direction: column;
	gap: .3em;
	min-width: 0;
}
.p-seriesList__title {
	font-weight: 700;
	line-height: 1.6;
}
.p-seriesList__excerpt {
	font-size: .8em;
	line-height: 1.7;
	opacity: .75;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

@media (max-width: 599px) {
	.p-seriesNav {
		grid-template-columns: 1fr;
	}
	.p-seriesNav__link.-next {
		grid-column: auto;
	}
	.p-seriesHero {
		padding: 26px 22px;
	}
	.p-seriesHero__title {
		font-size: 1.45em;
	}
	.p-seriesList__link {
		flex-wrap: wrap;
		gap: 12px;
	}
	.p-seriesList__num {
		width: 52px;
		height: 52px;
	}
	.p-seriesList__thumb {
		width: calc(100% - 64px);
	}
	.p-seriesList__body {
		flex-basis: 100%;
	}
}

/* 著者ボックス */
.p-authorBox {
	border-radius: var(--soft-radius);
	background: #fff;
	box-shadow: var(--soft-shadow);
	border: none;
}

/* 引用 */
.post_content blockquote {
	border-radius: var(--soft-radius);
}

