/* ============================================================
   ブログ記事（post タイプ）の表示。

   post-export-import-with-media で旧サイトから取り込んだ記事は、
   SWELL 由来のブロック（.swell-block-* / .swl-* / .cap_box / .pb-*）を
   本文HTMLとして保持している。SWELL と Useful Blocks は現在どちらも
   無効なので、保存済みの静的HTMLだけがそのまま出力される。
   ここではその静的HTMLに sooness-welfare 側のデザインを当て直し、
   記事本文が崩れずに読めるようにする。

   本文の中身（HTML）は一切書き換えていない。見た目だけをCSSで補う。
   @package Sooness_Welfare
   ============================================================ */

/* ------------------------------------------------------------
   1. 記事ページ全体のレイアウト
   お知らせ記事（single-sooness_news.php）の .news-article-* を
   そのまま流用しつつ、本文だけは .blog-article-body を使う。
   .news-article-body には「ulは枠付き・liは✓アイコン」という
   お知らせ専用の装飾が入っており、長文ブログには合わないため。
   ------------------------------------------------------------ */
.blog-article-page .news-article-hero {
	background: linear-gradient(135deg, #f7fbff, #eef5ff 52%, #f4fbee);
}

.blog-article-page .news-article-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}

.blog-article-page .news-article-meta .news-category {
	color: var(--blue);
	background: #eaf3ff;
}

.blog-article-page .news-article-meta time {
	display: inline-flex;
	gap: 7px;
	align-items: center;
	color: #8a949d;
	font: 700 10px/1 Arial, sans-serif;
}

.blog-article-page .news-article-meta .sooness-icon {
	width: 15px;
	height: 15px;
}

.blog-article-page .news-article-hero > figure {
	margin: 0;
}

.blog-article-page .news-article-hero > figure img {
	width: 100%;
	height: 470px;
	display: block;
	object-fit: cover;
	border-radius: 24px 24px 0 0;
}

.blog-article-body {
	max-width: 760px;
	min-width: 0;
}

.blog-article-page .news-article-aside > span {
	color: var(--blue);
}

.blog-article-page .news-article-aside > a:not(.news-back-link) {
	background: linear-gradient(135deg, #0b6bd4, #004dad);
}

/* ------------------------------------------------------------
   2. 本文の基本タイポグラフィ
   ------------------------------------------------------------ */
.blog-entry {
	/* SWELL 既定のカラーパレット。旧記事の has-swl-*-color /
	   has-swl-*-background-color がこの変数を参照する。 */
	--color_main: #04384c;
	--color_deep01: #e44141;
	--color_deep02: #3d79d5;
	--color_deep03: #63a84d;
	--color_deep04: #f09f4d;
	--color_pale01: #fff2f0;
	--color_pale02: #f3f8fd;
	--color_pale03: #f1f9ee;
	--color_pale04: #fdf9ee;
	--color_gray: #f7f7f7;
	--color_main_thin: #eef6f9;
	--color_mark_yellow: #fcf69f;
	--color_mark_orange: #ffddbc;
	--color_mark_blue: #b7e3ff;
	--color_mark_green: #c8f0c8;
	--color_mark_red: #ffd0d0;
	--color_border: #dce2e6;

	color: #46525b;
	font-size: 15px;
	line-height: 2;
	font-weight: 500;
	overflow-wrap: break-word;
	word-break: break-word;
}

.blog-entry > *:first-child {
	margin-top: 0;
}

.blog-entry > *:last-child {
	margin-bottom: 0;
}

.blog-entry p {
	margin: 0 0 1.6em;
}

.blog-entry a {
	color: var(--blue);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}

.blog-entry a:hover {
	text-decoration-thickness: 2px;
}

.blog-entry strong,
.blog-entry b {
	font-weight: 800;
	color: #27323d;
}

.blog-entry h2 {
	margin: 3em 0 1.1em;
	padding: 14px 20px;
	border-radius: 4px 12px 12px 4px;
	border-left: 5px solid var(--green);
	background: linear-gradient(135deg, #f4faed, #eff7ff);
	color: #1d2830;
	font-size: clamp(21px, 2.4vw, 27px);
	line-height: 1.6;
	letter-spacing: .02em;
}

.blog-entry h3 {
	margin: 2.6em 0 1em;
	padding-bottom: 11px;
	border-bottom: 2px solid #e2eadf;
	color: #24303a;
	font-size: clamp(18px, 2vw, 22px);
	line-height: 1.65;
}

.blog-entry h4 {
	margin: 2.2em 0 .9em;
	padding-left: 15px;
	border-left: 3px solid #b7d493;
	color: #2b3740;
	font-size: 17px;
	line-height: 1.7;
}

.blog-entry h5,
.blog-entry h6 {
	margin: 2em 0 .8em;
	color: #2b3740;
	font-size: 15.5px;
	line-height: 1.7;
}

/* 箇条書き。旧記事には SWELL / Useful Blocks 由来のリストもあるため、
   ここでは素の wp-block-list だけを対象にする。 */
.blog-entry ul,
.blog-entry ol {
	margin: 0 0 1.7em;
	padding-left: 1.6em;
}

.blog-entry li {
	margin-bottom: .6em;
	line-height: 1.95;
}

.blog-entry li:last-child {
	margin-bottom: 0;
}

.blog-entry ul.has-background,
.blog-entry ol.has-background {
	padding: 22px 24px 22px 42px;
	border-radius: 14px;
}

.blog-entry blockquote {
	margin: 0 0 1.8em;
	padding: 22px 26px;
	border-left: 4px solid #cfe0bd;
	border-radius: 0 12px 12px 0;
	background: #f7faf4;
	color: #4d5a51;
	font-size: 14px;
}

.blog-entry blockquote > *:last-child {
	margin-bottom: 0;
}

.blog-entry blockquote cite {
	display: block;
	margin-top: 10px;
	color: #7a857e;
	font-size: 11px;
	font-style: normal;
	font-weight: 700;
}

.blog-entry hr {
	margin: 2.6em 0;
	border: 0;
	border-top: 1px solid #e2e8e3;
}

.blog-entry code {
	padding: 2px 6px;
	border-radius: 5px;
	background: #f1f4f2;
	font-size: .92em;
}

/* コアのフォントサイズプリセット。このテーマは theme.json を持たないため
   自前で定義しないと has-*-font-size が効かない。 */
.blog-entry .has-small-font-size { font-size: 13px; }
.blog-entry .has-medium-font-size { font-size: 17px; }
.blog-entry .has-large-font-size { font-size: 21px; }
.blog-entry .has-x-large-font-size { font-size: 26px; }

/* ------------------------------------------------------------
   3. コアブロック（画像・表・埋め込み・キャプション）
   ------------------------------------------------------------ */
.blog-entry figure {
	margin: 0 0 1.9em;
}

.blog-entry .wp-block-image {
	line-height: 0;
}

.blog-entry .wp-block-image img,
.blog-entry img {
	max-width: 100%;
	height: auto;
	border-radius: 12px;
}

.blog-entry .wp-block-image.alignleft {
	float: left;
	margin: 0 1.6em 1.2em 0;
}

.blog-entry .wp-block-image.alignright {
	float: right;
	margin: 0 0 1.2em 1.6em;
}

.blog-entry .wp-block-image.aligncenter,
.blog-entry .aligncenter {
	margin-inline: auto;
	text-align: center;
}

.blog-entry figcaption,
.blog-entry .wp-element-caption {
	margin-top: 9px;
	color: #7b857f;
	font-size: 11.5px;
	line-height: 1.7;
	font-weight: 600;
	text-align: center;
}

.blog-entry .wp-block-table {
	overflow-x: auto;
}

.blog-entry table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	font-size: 13px;
	line-height: 1.8;
}

.blog-entry table.has-fixed-layout {
	table-layout: fixed;
}

.blog-entry th,
.blog-entry td {
	padding: 12px 14px;
	border: 1px solid #dbe3e6;
	vertical-align: middle;
	font-weight: 600;
}

.blog-entry th {
	background: #f2f7f9;
	color: #27323d;
	font-weight: 800;
}

.blog-entry .is-thead-centered thead th {
	text-align: center;
}

.blog-entry .wp-block-table.is-style-stripes tbody tr:nth-child(odd) td {
	background: #f8fafb;
}

.blog-entry .wp-block-table.is-style-double table,
.blog-entry .wp-block-table.is-style-double th,
.blog-entry .wp-block-table.is-style-double td {
	border-width: 1px;
}

/* 埋め込み。旧記事の core/embed は保存時にURL文字列しか持たないので、
   PHP 側（inc/blog.php）でリンクカード／iframe に組み直している。 */
.blog-entry .wp-block-embed {
	margin-bottom: 1.9em;
}

.blog-entry .wp-block-embed__wrapper {
	line-height: 0;
}

.blog-entry .wp-block-embed iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	border: 0;
	border-radius: 14px;
}

.blog-entry .wp-block-video video {
	width: 100%;
	border-radius: 14px;
}

/* 外部URLの埋め込みは iframe を作れないのでリンク行として出す。
   長いURLがレイアウトを押し広げないよう折り返す。 */
.blog-entry-extlink {
	margin: 0 0 1.6em;
	padding: 14px 18px;
	border: 1px solid #dde5ea;
	border-radius: 12px;
	background: #f8fafb;
	font-size: 12.5px;
	line-height: 1.75;
	overflow-wrap: anywhere;
}

.blog-entry-extlink a {
	font-weight: 700;
}

/* 内部記事へのリンクカード（core/embed と loos/post-link の置き換え先） */
.blog-linkcard {
	margin: 0 0 1.9em;
	display: flex;
	gap: 18px;
	align-items: center;
	padding: 16px;
	border: 1px solid #dde5ea;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(45, 63, 75, .06);
	color: inherit;
	text-decoration: none;
	font-weight: inherit;
}

.blog-linkcard:hover {
	border-color: #b9d3ee;
	text-decoration: none;
}

.blog-linkcard__thumb {
	width: 128px;
	height: 88px;
	flex: none;
	border-radius: 11px;
	object-fit: cover;
	background: #eef2f5;
}

.blog-linkcard__body {
	min-width: 0;
}

.blog-linkcard__label {
	display: block;
	margin-bottom: 6px;
	color: var(--blue);
	font: 800 9.5px/1 Arial, sans-serif;
	letter-spacing: .14em;
}

.blog-linkcard__title {
	display: block;
	color: #27323d;
	font-size: 14px;
	line-height: 1.65;
	font-weight: 800;
}

.blog-linkcard__excerpt {
	display: block;
	margin-top: 7px;
	color: #66717a;
	font-size: 11.5px;
	line-height: 1.75;
	font-weight: 600;
}

/* ------------------------------------------------------------
   4. SWELL 由来のインライン装飾
   ------------------------------------------------------------ */
.blog-entry .swl-marker {
	display: inline;
	padding: 2px 0;
	background: linear-gradient(transparent 62%, var(--color_mark_yellow) 0);
}

.blog-entry .swl-marker.mark_yellow { background: linear-gradient(transparent 62%, var(--color_mark_yellow) 0); }
.blog-entry .swl-marker.mark_orange { background: linear-gradient(transparent 62%, var(--color_mark_orange) 0); }
.blog-entry .swl-marker.mark_blue { background: linear-gradient(transparent 62%, var(--color_mark_blue) 0); }
.blog-entry .swl-marker.mark_green { background: linear-gradient(transparent 62%, var(--color_mark_green) 0); }
.blog-entry .swl-marker.mark_red { background: linear-gradient(transparent 62%, var(--color_mark_red) 0); }

.blog-entry .swl-inline-color { font-weight: 800; }

/* インラインアイコンは style 属性に data URI を持っているので背景として描く */
.blog-entry .swl-inline-icon {
	display: inline-block;
	width: 1.1em;
	height: 1.1em;
	margin-right: .15em;
	background-position: 50%;
	background-repeat: no-repeat;
	background-size: contain;
	vertical-align: -.18em;
}

.blog-entry .swl-inline-list {
	display: inline-block;
	padding-left: 1.15em;
	position: relative;
}

.blog-entry .swl-inline-list::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--green);
	position: absolute;
	left: 2px;
	top: .72em;
}

/* 表セル頭の色チップ */
.blog-entry .swl-cell-bg {
	display: inline-block;
	width: 1em;
	height: 1em;
	margin-right: .45em;
	border-radius: 3px;
	background: var(--the-cell-bg, #e6ebee);
	vertical-align: -.12em;
}

.blog-entry .swl-cell-bg[data-icon-size="l"] {
	width: 1.2em;
	height: 1.2em;
}

/* SWELL のユーティリティクラス */
.blog-entry .u-fz-xs { font-size: .8em; }
.blog-entry .u-fz-s { font-size: .9em; }
.blog-entry .u-fz-m { font-size: 1.1em; }
.blog-entry .u-fz-l { font-size: 1.25em; }
.blog-entry .u-fz-xl { font-size: 1.6em; }
.blog-entry .u-col-main { color: var(--color_main); }
.blog-entry .u-mb-0 { margin-bottom: 0 !important; }
.blog-entry .u-mb-15 { margin-bottom: 15px !important; }
.blog-entry .u-mb-25 { margin-bottom: 25px !important; }
.blog-entry .u-mb-30 { margin-bottom: 30px !important; }
.blog-entry .u-mb-60 { margin-bottom: 60px !important; }

/* SWELL カラーパレット */
.blog-entry .has-swl-main-color { color: var(--color_main); }
.blog-entry .has-swl-deep-01-color { color: var(--color_deep01); }
.blog-entry .has-swl-deep-02-color { color: var(--color_deep02); }
.blog-entry .has-swl-deep-03-color { color: var(--color_deep03); }
.blog-entry .has-swl-deep-04-color { color: var(--color_deep04); }
.blog-entry .has-swl-pale-03-color { color: #6f8f62; }
.blog-entry .has-swl-pale-04-color { color: #9a8a5f; }
.blog-entry .has-swl-main-background-color { background-color: var(--color_main); color: #fff; }
.blog-entry .has-swl-main-thin-background-color { background-color: var(--color_main_thin); }
.blog-entry .has-swl-gray-background-color { background-color: var(--color_gray); }
.blog-entry .has-swl-deep-01-background-color { background-color: var(--color_deep01); color: #fff; }
.blog-entry .has-swl-deep-02-background-color { background-color: var(--color_deep02); color: #fff; }
.blog-entry .has-swl-deep-03-background-color { background-color: var(--color_deep03); color: #fff; }
.blog-entry .has-swl-deep-04-background-color { background-color: var(--color_deep04); color: #fff; }
.blog-entry .has-swl-pale-01-background-color { background-color: var(--color_pale01); }
.blog-entry .has-swl-pale-02-background-color { background-color: var(--color_pale02); }
.blog-entry .has-swl-pale-03-background-color { background-color: var(--color_pale03); }
.blog-entry .has-swl-pale-04-background-color { background-color: var(--color_pale04); }

.blog-entry p.has-background {
	padding: 18px 22px;
	border-radius: 12px;
}

.blog-entry p.is-style-balloon_box2 {
	position: relative;
	border-radius: 12px;
}

.blog-entry p.is-style-balloon_box2::after {
	content: "";
	width: 0;
	height: 0;
	border: 10px solid transparent;
	border-top-color: var(--color_main_thin);
	position: absolute;
	left: 34px;
	top: 100%;
}

/* ------------------------------------------------------------
   5. SWELL ブロック（キャプションボックス／ステップ／ボタン／カラム）
   ------------------------------------------------------------ */
.blog-entry .swell-block-capbox {
	margin: 0 0 2em;
}

.blog-entry .cap_box_ttl {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	margin: 0;
	padding: 8px 22px;
	border-radius: 12px 12px 0 0;
	background: var(--green);
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.5;
}

.blog-entry .cap_box_ttl strong {
	color: inherit;
	font-weight: 800;
}

.blog-entry .cap_box_content {
	padding: 22px 24px;
	border: 2px solid var(--green);
	border-radius: 0 12px 12px 12px;
	background: #fff;
}

.blog-entry .cap_box_content > *:last-child {
	margin-bottom: 0;
}

/* SWELL のスタイルバリエーションごとの色分け */
.blog-entry .cap_box.is-style-big_icon_check .cap_box_ttl,
.blog-entry .cap_box.is-style-big_icon_check .cap_box_content { border-color: var(--green); }
.blog-entry .cap_box.is-style-big_icon_check .cap_box_ttl { background: var(--green); }
.blog-entry .cap_box.is-style-big_icon_memo .cap_box_ttl { background: var(--blue); }
.blog-entry .cap_box.is-style-big_icon_memo .cap_box_content { border-color: var(--blue); }
.blog-entry .cap_box.is-style-big_icon_point .cap_box_ttl { background: #e08a1e; }
.blog-entry .cap_box.is-style-big_icon_point .cap_box_content { border-color: #e08a1e; }
.blog-entry .cap_box.is-style-big_icon_caution .cap_box_ttl { background: var(--color_deep01); }
.blog-entry .cap_box.is-style-big_icon_caution .cap_box_content { border-color: var(--color_deep01); }
.blog-entry .cap_box.is-style-big_icon_hatena .cap_box_ttl { background: var(--purple); }
.blog-entry .cap_box.is-style-big_icon_hatena .cap_box_content { border-color: var(--purple); }

.blog-entry .cap_box.is-style-small_ttl .cap_box_ttl {
	min-height: 30px;
	padding: 5px 16px;
	border-radius: 9px 9px 0 0;
	font-size: 11.5px;
}

.blog-entry .cap_box.is-style-onborder_ttl,
.blog-entry .cap_box.is-style-onborder_ttl2 {
	position: relative;
	padding-top: 14px;
}

.blog-entry .cap_box.is-style-onborder_ttl .cap_box_ttl,
.blog-entry .cap_box.is-style-onborder_ttl2 .cap_box_ttl {
	position: absolute;
	left: 22px;
	top: 0;
	min-height: 0;
	padding: 4px 14px;
	border-radius: 999px;
	font-size: 11.5px;
}

.blog-entry .cap_box.is-style-onborder_ttl .cap_box_content,
.blog-entry .cap_box.is-style-onborder_ttl2 .cap_box_content {
	padding-top: 30px;
	border-radius: 12px;
}

.blog-entry .cap_box.is-style-index .cap_box_content,
.blog-entry .cap_box.is-style-border .cap_box_content {
	border-width: 1px;
	border-color: #d8e2d6;
	border-radius: 12px;
	background: #f8fbf6;
}

.blog-entry .cap_box.is-style-index .cap_box_ttl,
.blog-entry .cap_box.is-style-border .cap_box_ttl {
	background: #6d7a72;
}

.blog-entry .cap_box.is-style-shadow .cap_box_content {
	border: 0;
	border-radius: 12px;
	box-shadow: 0 14px 32px rgba(45, 63, 55, .1);
}

/* ステップブロック */
.blog-entry .swell-block-step {
	margin: 0 0 2em;
	counter-reset: sooness-step;
}

.blog-entry .swell-block-step__item {
	position: relative;
	padding: 0 0 34px 64px;
}

.blog-entry .swell-block-step__item::before {
	content: "";
	width: 0;
	height: 100%;
	border-left: 2px dashed #cfd9d2;
	position: absolute;
	left: 23px;
	top: 6px;
}

.blog-entry .swell-block-step__item:last-child {
	padding-bottom: 0;
}

.blog-entry .swell-block-step__item:last-child::before {
	content: none;
}

.blog-entry .swell-block-step__number {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: absolute;
	left: 0;
	top: 0;
	color: #fff;
	background: var(--green);
	line-height: 1;
	text-align: center;
}

.blog-entry .swell-block-step__number .__label {
	display: block;
	font: 800 9px/1 Arial, sans-serif;
	letter-spacing: .06em;
	opacity: .85;
}

.blog-entry .swell-block-step__number::after {
	content: counter(sooness-step);
	counter-increment: sooness-step;
	display: block;
	margin-top: 1px;
	font: 800 19px/1 Arial, sans-serif;
}

.blog-entry .swell-block-step__number[data-num]::after {
	content: attr(data-num);
}

.blog-entry .swell-block-step__number .__shape {
	display: none;
}

.blog-entry .swell-block-step__title {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 48px;
	margin: 0 0 6px;
	color: #24303a;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.6;
}

.blog-entry .swell-block-step__body > *:last-child {
	margin-bottom: 0;
}

/* カラム */
.blog-entry .swell-block-columns {
	margin: 0 0 2em;
}

.blog-entry .swell-block-columns__inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 20px;
	align-items: center;
}

.blog-entry .swell-block-column > *:last-child {
	margin-bottom: 0;
}

/* ボタン */
.blog-entry .swell-block-button {
	margin: 0 0 1.6em;
	text-align: center;
}

.blog-entry .swell-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 30px;
	border-radius: 12px;
	color: #fff;
	background: linear-gradient(135deg, #69b813, #4a9700);
	box-shadow: 0 12px 26px rgba(76, 153, 0, .18);
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
}

.blog-entry .swell-block-button__link:hover {
	text-decoration: none;
	filter: brightness(1.05);
}

.blog-entry .swell-block-button.blue_ .swell-block-button__link {
	background: linear-gradient(135deg, #0b6bd4, #004dad);
	box-shadow: 0 12px 26px rgba(5, 88, 191, .18);
}

.blog-entry .swell-block-button.red_ .swell-block-button__link {
	background: linear-gradient(135deg, #ef6060, #cf2b2b);
	box-shadow: 0 12px 26px rgba(200, 40, 40, .18);
}

/* 全幅ブロック。記事カラム内では横幅を超えさせず、背景だけ活かす。 */
.blog-entry .swell-block-fullWide {
	margin: 0 0 2em;
	padding: 34px 26px;
	border-radius: 20px;
	background: #fbf7e9;
}

.blog-entry .swell-block-fullWide.alignfull {
	width: auto;
	max-width: none;
	margin-inline: 0;
}

.blog-entry .swell-block-fullWide__inner > *:last-child {
	margin-bottom: 0;
}

/* ふきだし（inc/blog.php で組み立てた要素） */
.blog-balloon {
	margin: 0 0 1.9em;
	display: flex;
	gap: 16px;
	align-items: flex-start;
}

.blog-balloon.is-right {
	flex-direction: row-reverse;
}

.blog-balloon__icon {
	width: 64px;
	flex: none;
	text-align: center;
}

.blog-balloon__icon img {
	width: 64px;
	height: 64px;
	display: block;
	border-radius: 50%;
	object-fit: cover;
	background: #eef2f5;
}

.blog-balloon.is-square .blog-balloon__icon img {
	border-radius: 12px;
}

.blog-balloon__name {
	display: block;
	margin-top: 6px;
	color: #77828a;
	font-size: 10px;
	line-height: 1.4;
	font-weight: 700;
	word-break: break-word;
}

.blog-balloon__body {
	position: relative;
	max-width: 100%;
	padding: 16px 20px;
	border: 1px solid #dbe4e8;
	border-radius: 14px;
	background: #f7fafb;
	color: #46525b;
	font-size: 13.5px;
	line-height: 1.95;
}

.blog-balloon__body > *:last-child {
	margin-bottom: 0;
}

.blog-balloon__body::before {
	content: "";
	width: 0;
	height: 0;
	border: 8px solid transparent;
	border-right-color: #dbe4e8;
	position: absolute;
	left: -16px;
	top: 20px;
}

.blog-balloon__body::after {
	content: "";
	width: 0;
	height: 0;
	border: 8px solid transparent;
	border-right-color: #f7fafb;
	position: absolute;
	left: -14px;
	top: 20px;
}

.blog-balloon.is-right .blog-balloon__body::before {
	left: auto;
	right: -16px;
	border-right-color: transparent;
	border-left-color: #dbe4e8;
}

.blog-balloon.is-right .blog-balloon__body::after {
	left: auto;
	right: -14px;
	border-right-color: transparent;
	border-left-color: #f7fafb;
}

.blog-balloon.is-yellow .blog-balloon__body { border-color: #ecdca5; background: #fdf8e6; }
.blog-balloon.is-yellow .blog-balloon__body::before { border-right-color: #ecdca5; }
.blog-balloon.is-yellow .blog-balloon__body::after { border-right-color: #fdf8e6; }
.blog-balloon.is-yellow.is-right .blog-balloon__body::before { border-right-color: transparent; border-left-color: #ecdca5; }
.blog-balloon.is-yellow.is-right .blog-balloon__body::after { border-right-color: transparent; border-left-color: #fdf8e6; }

.blog-balloon.is-green .blog-balloon__body { border-color: #cfe4b6; background: #f4faee; }
.blog-balloon.is-green .blog-balloon__body::before { border-right-color: #cfe4b6; }
.blog-balloon.is-green .blog-balloon__body::after { border-right-color: #f4faee; }
.blog-balloon.is-green.is-right .blog-balloon__body::before { border-right-color: transparent; border-left-color: #cfe4b6; }
.blog-balloon.is-green.is-right .blog-balloon__body::after { border-right-color: transparent; border-left-color: #f4faee; }

.blog-balloon.is-blue .blog-balloon__body { border-color: #bfd8f0; background: #f2f8ff; }
.blog-balloon.is-blue .blog-balloon__body::before { border-right-color: #bfd8f0; }
.blog-balloon.is-blue .blog-balloon__body::after { border-right-color: #f2f8ff; }
.blog-balloon.is-blue.is-right .blog-balloon__body::before { border-right-color: transparent; border-left-color: #bfd8f0; }
.blog-balloon.is-blue.is-right .blog-balloon__body::after { border-right-color: transparent; border-left-color: #f2f8ff; }

.blog-balloon.is-red .blog-balloon__body { border-color: #edc4c4; background: #fdf3f3; }
.blog-balloon.is-red .blog-balloon__body::before { border-right-color: #edc4c4; }
.blog-balloon.is-red .blog-balloon__body::after { border-right-color: #fdf3f3; }
.blog-balloon.is-red.is-right .blog-balloon__body::before { border-right-color: transparent; border-left-color: #edc4c4; }
.blog-balloon.is-red.is-right .blog-balloon__body::after { border-right-color: transparent; border-left-color: #fdf3f3; }

/* ------------------------------------------------------------
   6. Useful Blocks（ponhiro）由来のブロック
   ------------------------------------------------------------ */
.blog-entry .pb-list {
	margin: 0 0 1.7em;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}

.blog-entry .pb-list li {
	margin: 0;
	padding-left: 26px;
	position: relative;
	font-size: 13.5px;
	line-height: 1.8;
}

.blog-entry .pb-list.-icon-dot li::before {
	content: "";
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--green);
	position: absolute;
	left: 4px;
	top: .68em;
}

.blog-entry .pb-compare-box {
	margin: 0 0 2em;
	border: 1px solid #dde3e6;
	border-radius: 16px;
	overflow: hidden;
	background: #fff;
}

.blog-entry .pb-compare-box__head {
	display: grid;
	grid-template-columns: 1fr 1fr;
}

.blog-entry .pb-compare-box__head__l,
.blog-entry .pb-compare-box__head__r {
	padding: 13px 16px;
	color: #fff;
	font-size: 13px;
	font-weight: 800;
	text-align: center;
}

.blog-entry .pb-compare-box__head__l { background: var(--blue); }
.blog-entry .pb-compare-box__head__r { background: #6d7a72; }

.blog-entry .pb-compare-box__body {
	display: grid;
	grid-template-columns: 1fr 1fr;
}

.blog-entry .pb-compare-box__body__l,
.blog-entry .pb-compare-box__body__r {
	padding: 20px 18px;
}

.blog-entry .pb-compare-box__body__l {
	border-right: 1px solid #e5eaec;
}

.blog-entry .pb-compare-box__body__l > *:last-child,
.blog-entry .pb-compare-box__body__r > *:last-child {
	margin-bottom: 0;
}

/* ------------------------------------------------------------
   7. 記事下部（タグ・前後の記事）とサイドバー
   ------------------------------------------------------------ */
.blog-article-foot {
	margin-top: 46px;
	padding-top: 30px;
	border-top: 1px solid #e2e8e3;
}

.blog-taxonomy {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	align-items: center;
	margin-bottom: 26px;
}

.blog-taxonomy > span {
	color: #8a949d;
	font: 800 10px/1 Arial, sans-serif;
	letter-spacing: .1em;
}

.blog-taxonomy a {
	display: inline-flex;
	align-items: center;
	min-height: 30px;
	padding: 0 13px;
	border: 1px solid #dbe4e8;
	border-radius: 999px;
	color: #56616a;
	background: #fff;
	font-size: 11px;
	font-weight: 700;
}

.blog-taxonomy a:hover {
	border-color: #b9d3ee;
	color: var(--blue);
}

.blog-adjacent {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.blog-adjacent a {
	display: block;
	padding: 18px 20px;
	border: 1px solid #dfe6ea;
	border-radius: 14px;
	background: #fff;
	color: #27323d;
}

.blog-adjacent a:hover {
	border-color: #b9d3ee;
}

.blog-adjacent span {
	display: block;
	margin-bottom: 7px;
	color: var(--blue);
	font: 800 9.5px/1 Arial, sans-serif;
	letter-spacing: .12em;
}

.blog-adjacent strong {
	display: block;
	font-size: 12.5px;
	line-height: 1.65;
	font-weight: 700;
}

.blog-adjacent .is-next {
	text-align: right;
}

.blog-related {
	margin-top: 26px;
	padding-top: 22px;
	border-top: 1px solid #e6ecea;
	display: grid;
	gap: 14px;
}

.blog-related > span {
	color: var(--blue);
	font: 800 8.5px/1 Arial, sans-serif;
	letter-spacing: .15em;
}

.blog-related a {
	display: flex;
	gap: 12px;
	align-items: center;
	color: #27323d;
}

.blog-related img {
	width: 62px;
	height: 46px;
	flex: none;
	border-radius: 8px;
	object-fit: cover;
	background: #eef2f5;
}

.blog-related b {
	font-size: 11.5px;
	line-height: 1.6;
	font-weight: 700;
}

/* ------------------------------------------------------------
   8. 一覧（アーカイブ／カテゴリー／タグ／検索）
   ------------------------------------------------------------ */
.blog-index-card > img,
.blog-index-card > .blog-index-noimage {
	width: 100%;
	height: 220px;
	display: block;
	object-fit: cover;
}

.blog-index-noimage {
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, #eef5ff, #f2faec);
	color: #93a3b0;
	font: 800 11px/1 Arial, sans-serif;
	letter-spacing: .14em;
}

.blog-index-card .news-category {
	color: var(--blue);
	background: #eaf3ff;
}

.blog-index-card .blog-index-cats {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.blog-empty {
	padding: 46px 0;
	color: #66717a;
	font-size: 14px;
	font-weight: 600;
}

/* ------------------------------------------------------------
   9. レスポンシブ
   ------------------------------------------------------------ */
@media (max-width: 820px) {
	.blog-article-page .news-article-hero > figure img { height: 350px; }
	.blog-article-body { max-width: none; }
	.blog-entry .swell-block-columns__inner { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
	.blog-entry .u-lb-off br { display: none; }
}

@media (max-width: 520px) {
	.blog-article-page .news-article-hero > figure img { height: 240px; border-radius: 17px 17px 0 0; }
	.blog-entry { font-size: 14px; }
	.blog-entry h2 { padding: 12px 15px; font-size: 19px; }
	.blog-entry .swell-block-step__item { padding-left: 52px; }
	.blog-entry .swell-block-step__number { width: 40px; height: 40px; }
	.blog-entry .swell-block-step__number::after { font-size: 16px; }
	.blog-entry .swell-block-step__item::before { left: 19px; }
	.blog-entry .pb-compare-box__head,
	.blog-entry .pb-compare-box__body { grid-template-columns: 1fr; }
	.blog-entry .pb-compare-box__body__l { border-right: 0; border-bottom: 1px solid #e5eaec; }
	.blog-linkcard { flex-direction: column; align-items: stretch; }
	.blog-linkcard__thumb { width: 100%; height: 150px; }
	.blog-adjacent { grid-template-columns: 1fr; }
	.blog-adjacent .is-next { text-align: left; }
}
