/* "text_news.css" */
@charset "UTF-8";

body {
	background-color:			 var(--color-background);
}

.cont_wrap {
	background-color:			transparent;
	display:					grid;
	gap:						2rem;
	grid-template-columns:		1fr min(var(--sidebar-width-min), var(--sidebar-width-max));
	height:						100%;
	margin:						0 auto;
	min-height:					calc(100% - var(--header-height));
	max-width:					var(--main-content-width);
	padding:					0;
	width:						100%;
}
@media screen and (min-width:1px) and (max-width:960px) {
	.cont_wrap {
		display:				flex;
		flex-direction:			column;
		margin:					0;
		padding:				0;
		width:					100%;
	}
}

/* ------------------------------ */
/* HTML tag */

/* main a:link {
	color:						var(--color-primary-600);
}
main a:visited {
	color:						var(--color-link-visited);
}
main a:hover {
	color:						var(--color-primary-700);
}
main a:active {
	color:						var(--color-primary-800);
} */


button {
	border:						none;
}

time {
	font-size:				0.875rem;
	letter-spacing:			0.03em;
	text-align:				right;
}
@media screen and (min-width:1px) and (max-width:800px) {
	time {
		font-size:				0.75rem;
	}
}

/* HTML tag */
/* ------------------------------ */
/* class */


/* ブックマーク */
.bm_ps {
	background:				url("../img/icon/bm_ps.png") no-repeat left;
	background-size:		1.25rem 1.25rem;
	padding:				0.25rem 0.5rem 0.25rem 1.5rem;
}
.bm_ps_chk {
	background:				url("../img/icon/bm_ps_chk.png") no-repeat left;
	background-size:		1.25rem 1.25rem;
	font-weight:			bold;
	padding:				0.25rem 0.5rem 0.25rem 1.5rem;
}

/* 共有ブックマーク */
.bm_sh {
	background:				url("../img/icon/bm_sh.png") no-repeat left;
	background-size:		1.25rem 1.25rem;
	padding:				0.25rem 0.5rem 0.25rem 1.5rem;
}
.bm_sh_chk {
	background:				url("../img/icon/bm_sh_chk.png") no-repeat left;
	background-size:		1.25rem 1.25rem;
	font-weight:			bold;
	padding:				0.25rem 0.5rem 0.25rem 1.5rem;
}
.bm_sh.disabled {
	opacity:				0.3;
}

/* １から順番に番号を振る */
.rank {
	counter-increment:			rank;
	display:					grid;
	grid-template-columns:		2.5rem 1fr;
}
.rank::before {
	color:						var(--color-primary-400);
	content:					counter(rank);
	font-size:					1.5rem;
	font-style:					italic;
}
/* １位～３位の数字の色を変更 */
.rank:nth-child(1)::before {
	background:					linear-gradient(150deg, var(--color-primary-700) 0%, var(--color-primary-500) 60%, var(--color-primary-300) 100%);
	background-clip:			text;
	color:						var(--color-primary-300);
	-webkit-background-clip:	text;
	-webkit-text-fill-color:	transparent;
}
.rank:nth-child(2)::before,
.rank:nth-child(3)::before {
	color: var(--color-primary-500);
}

/* class */
/* ------------------------------ */
/* main */

/* .main_wrap がある場合 */
.main_wrap {
	background-color:		white;
	border-left:			1px solid var(--color-gray-300);
	border-right:			1px solid var(--color-gray-300);
	min-height:				calc(100vh - var(--header-height));
	width:					100%;
}
@media screen and (min-width:1px) and (max-width:800px) {
	.main_wrap {
		border-left:		none;
		border-right:		none;
		padding:			0;
	}
}

/* main が .cont_wrap 直下にある場合 */
.cont_wrap > main {
	border-left:			1px solid var(--color-gray-300);
	border-right:			1px solid var(--color-gray-300);
}


/* トップページ、記事一覧ページ */
main {
	align-content:			flex-start;
	align-items:			flex-start;
	background-color:		white;
	display:				flex;
	flex-direction:			column;
	gap:					0.875rem;
	height:					100%;
	padding:				1.5rem;
}
/* 記事個別ページ */
.main_wrap main {
	margin:					0 auto;
	min-width:				min-content;
	max-width:				42.5rem;
}
@media screen and (min-height:1px) and (max-height:1000px) {
	/* 縦の幅が短いデバイスでは余白を詰める */
	main {
		gap:				0.5rem;
	}
}
@media screen and (min-width:1px) and (max-width:800px) {
	main {
		border-right:		none;
		padding:			1rem;
		max-width:			100%;
	}
	.main_wrap main {
		min-width:			0;
	}
}


main section {
	width:					100%;
}

.main-item {
	max-width:			100%;
	min-height:			40px;
	width:				100%;
}



/* main */
/* ------------------------------ */
/* top main */
/* トップページ */


.sec_ttl {
	align-items:				center;
	border-top:					1px solid var(--color-gray-700);
	display:					flex;
	justify-content:			space-between;
	line-height:				2rem;
	min-height:					calc(2.5rem + 1px);
	padding:					0.25rem 0;
	width:						100%;
}
.sec_ttl a:hover {
	text-decoration:			underline;
}
.sec_ttl button {
	background-color:			transparent;
}

/* 紙面セクション | PC, SP 共通クラス*/
.shimen {	
	display:					flex;
	flex-direction:				column;
	gap:						0.5rem;
	width:						100%;
}
/* 発刊済みリスト ｜ PC, SP 共通クラス */
.pub_list__box {
	align-items:				center;
	display:					flex;
	flex-wrap:					wrap;
	gap:						0;
	justify-content:			flex-start;
	width:						100%;

	/* .pub_list__kan_link の高さ
		文字１行 0.875rem + パディング上下 0.25rem + ボーダー上下 2px
	*/
	min-height:					calc(0.875rem + 0.2rem + 2px);
}
.pub_list__item {
	position:					relative;
}
.pub_list__kan_link {
	border:						1px solid transparent;
	border-radius:				0.125rem;
	display:					block;
	font-size:					0.875rem;
	padding:					0.125rem 0.25rem;
	width:						fit-content;

	/* 文字２文字分 + パディング 0.5rem + ボーダー 2px */
	min-width:					calc(1.75rem + 0.5rem + 2px);
}
.pub_list__kan_link.published {
	color:						var(--color-primary-700);
}
.pub_list__kan_link.latest {
	background-color:			var(--color-primary-600);
	border:						1px solid transparent;
	color:						var(--color-text-inverse);
}
.pub_list__kan_link.unpublished {
	border:						none;
	color:						var(--color-gray-300);
}
.pub_list__dropdown {
	background-color:			var(--color-text-inverse);
	border:						1.5px solid var(--color-primary-700);
	display:					none;
	flex-direction:				column;
	left:						0;
	position:					absolute;
	top:						100%;
	width:						3.5rem;
	z-index:					10;
}
.pub_list__dropdown :not(:first-child) {
	border-top:					1px solid var(--color-primary-500);
}
.pub_list__dropdown_item {
	display:					block;
	font-size:					0.875rem;
	padding:					0.125rem 0.5rem;
	text-align:					right;
	width:						100%;
}
.pub_list__dropdown_item:hover {
	background-color:			var(--color-primary-100);
}
/* 発刊済み刊名のホバー */
.pub_list__item:hover .pub_list__kan_link:not(.unpublished) {
	background-color:			var(--color-primary-600);
	color:						var(--color-text-inverse);
}
/* SP などのタッチ操作時 */
@media (hover: none) and (pointer: coarse) {
	/* .pub_list__box {
		gap:					0.5rem;
	}
	.pub_list__kan_link {
		border:					1px solid var(--color-primary-700);
		border-radius:			0.25rem;
		padding:				0.125rem 0.25rem;
	}
	.pub_list__kan_link.unpublished {
		border:					1px solid var(--color-gray-300);
	} */
}



/*
	スマホ時、タブレット時にのみ表示
	トップ　紙面、インタビュー、金融資本市場展望　セクション
*/
.top,
.tablet_only, 
.sp_only {
	display:					none;
}
@media screen and (min-width: 601px) and (max-width: 960px) {
	.tablet_only {
		display:				block;
	}
	.top {
		display:				grid;
		gap:					0.5rem;
		grid-template-columns:	1fr 1fr;
		width:					100%;
	}
}
@media screen and (min-width: 1px) and (max-width: 600px) {
	.sp_only {
		display	:				block;
	}
	.top {
		display:				flex;
		flex-direction:			column;
		width:					100%;
	}
}

/* SP 用 紙面バナー */
.sp_only .shimen_link {
	align-items:				center;
	background:					linear-gradient(
									135deg,
									var(--color-primary-900) 0%,
									var(--color-primary-600) 45%,
									var(--color-primary-500) 100%
								);
	border-bottom:				1px solid var(--color-gray-200);
	border-radius:				0.25rem;
	display:					flex;
	flex-grow:					1;
	gap:						0.75rem;
	justify-content:			space-between;
	margin-bottom:				0.5rem;
	padding:					0.5rem;
	width:						100%;
}
.sp_only .shimen_link__cont {
	display:					flex;
	flex:						1;
	gap:						0.5rem;
}
.sp_only .shimen_box {
	width:						8rem;
}
/* ── 縦区切り線 ── */
.sp_only .divider {
	align-self:					stretch;
	background:					rgba(255, 255, 255, 0.2);
	width:						1px;
}
.sp_only .shimen_info { 
	display:				flex;
	flex-direction:			column;
	gap:					0.375rem;
	justify-content:		center;
}
.sp_only .shimen_link h2 {
	color:						var(--color-primary-300);
	font-size:					0.6875rem;
	font-weight:				500;
	letter-spacing:				0.12em;
}
.sp_only .shimen_link .shimen_date {
	color:						var(--color-text-inverse);
	font-size:					1rem;
	font-weight:				500;
	letter-spacing:				0.02em;
	line-height:				1.2;
}
.sp_only .shimen_link .shimen_youbi {
	font-size:					0.875rem;
}
.sp_only .shimen_link .kan_name {
	color:						var(--color-primary-200);
	font-size:					0.875rem;
	font-weight:				500;
	letter-spacing:				0.08em;
	width:						fit-content;
}

/* 新着連載 */
.latest_series ul {
	min-height:					6.75rem;
}
.latest_series_ul h3 {
	font-size:					0.875rem;
}
.latest_series_link {
	display:					flex;
	flex-direction:				column;
	gap:						0.25rem;
}
.recom_link {
	display:				grid;
	grid-template-columns:	11rem 1fr auto;
	height:					1.8rem;
}
.recom_ttl {
	overflow:				hidden;
	text-overflow:			ellipsis;
	white-space:			nowrap;
}
@media screen and (min-width:1px) and (max-width:700px) {
	.recom_link {
		gap:					1rem;
		grid-template-columns:	auto 1fr auto;
	}
	.recom_ttl {
		font-size:			1rem;
	}
}


/* トップ画面の新着記事や、カテゴリー記事一覧などの <a> １行 */
.news_link_top {
	align-items:			center;
	display:				grid;
	gap:					1rem;
	grid-template-columns:	6rem 8rem minmax(auto, 1fr) auto;
}
.news_link_top .news_link_text {
	overflow:				hidden;
	text-overflow:			ellipsis;
	white-space:			nowrap;
}
@media screen and (min-width:1px) and (max-width:700px) {
	ul:has(.news_link_top) li:not(:first-child) {
		border-top:			1px solid var(--color-gray-300);
	}
	.news_link_top {
		display:			flex;
		flex-wrap:			wrap;
		gap:				0;
		padding:			1rem 0;
	}
	.news_link_top .news_link_text {
		order:				-1;
	}
}

.news_link_top .cat,
.news_link .cat {
	overflow:					hidden;			/* はみ出た部分を隠す */
	text-overflow:				ellipsis;		/* はみ出た部分を「…」にする */
	white-space:				nowrap;			/* 改行を禁止する */
}

.cat_news_link {
	align-items:			center;
	display:				flex;
	flex-wrap:				wrap;
	gap:					0.5rem;
	justify-content:		space-between;
	padding:				0.5rem 0;
	width:					100%;
}
.cat_news_link:hover {
	background-color:		var(--color-background);
}
.cat_news_link_grid {
	align-items:			center;
	display:				grid;
	gap:					1rem;
	grid-template-columns:	6rem 1fr auto;
}
.cat_news_link time {
	font-weight:			bold;
	display:				inline-block;
}
.cat_news_link_cat_box {
	display:				flex;
	gap:					0.5rem;
	margin-left:			auto;
}
.cat_news_link .cat_label {
	background-color:		var(--color-primary-100);
	border-radius:			0.25rem;
	color:					var(--color-text-secondary);
	font-size:				0.875rem;
	font-weight:			bold;
	padding:				0.125rem 0.25rem;
	width:					max-content;
}
@media screen and (min-width:1px) and (max-width:600px) {
	.cat_news_link {
		display:				grid;
		gap:					0 0.5rem;
		grid-template-columns:	auto auto 1fr;
		grid-template-areas:	"title     title     title"
								"date      cat       .";
	}
	.cat_news_link_grid {
		display:				contents;
	}
	.cat_news_link .news_link_text {
		font-size:				1.125rem;
		grid-area:				title;
	}
	.cat_news_link .time {
		font-weight:			normal;
		grid-area:				date;
		width:					fit-content;
	}
	.cat_news_link .cat_news_link_cat_box {
		grid-area:				cat;
	}
	.cat_news_link .cat_label {
		background-color:		transparent;
		font-size:				0.75rem;
		font-weight:			normal;
	}
}



.news_link_column {
	display:				flex;
	flex-direction:			column;
	padding:				0.5rem 0;
	width:					100%;
}
.news_link_column .cat {
	font-family:			monospace;
}

/* 新着記事 */
.latest_news {
	height:					auto;
	width:					100%;
}
.latest_news_ul {
	min-height:				9rem;
}

#top_favcat .tab_cont_box {
	margin-top:				0.75rem;
	min-height:				19.5rem;
}

/* 各刊の主な記事 */
#kyouno .tab_cont_box {
	/*
		.tab_cont_ul	16.5rem + 6px	内訳：(文字１行 1.5rem * 7行) + ((gap 0.5rem + padding 0.5rem + border 1px) * 6間隔)
		.more_link		1.5rem
	*/
	margin-top:				0.75rem;
	min-height:				calc(18rem + 6px);
}

/* 見通し */
#mitooshi {
	min-height:				25rem;
}
#mitooshi .news_link_text {
	display:				inline;
}
#mitooshi .tab_cont_ul {
	/*
		.tab_cont_ul	16.5rem + 6px	内訳：(文字１行 1.5rem * 7行) + ((gap 0.5rem + padding 0.5rem + border 1px) * 6間隔)
	*/
	margin-top:				0.75rem;
	min-height:				calc(16.5rem + 6px);
}



.more_link {
	text-align:				right;
}
.more_link a {
	color:					var(--color-gray-500);
	font-size:				0.875rem;
	font-weight:			600;
	text-decoration:		underline;
}





/* 連載一覧 */
.series_news {
	display:				grid;
	grid-template-columns:	1fr 1fr;
	gap:					1.5rem;
	width:					100%;
}
@media screen and (min-width:1px) and (max-width:600px) {
	.series_news {
		grid-template-columns:	1fr;
	}
}


.series_news_link {
	align-items:			center;
	display:				grid;
	gap:					0.5rem;
	grid-template-columns:	8rem 1fr;
	height:					2.25rem;
	min-height:				2.25rem;
	padding:				0.125rem 0;
}
.series_news_cont {
	height:					100%;
}
.series_news_ttl {
	line-height:			2.25rem;
	overflow:				hidden;
	text-overflow:			ellipsis;
	white-space:			nowrap;
}
.banner_img {
	float:					left;
	max-height:				32px;
	width:					108px;
}


/* main */
/* ------------------------------ */
/* top main | お気に入りカテゴリーの Enpty State */

/* ===== 空状態レイアウト ===== */
.empty_state {
	align-items:			stretch;
	display:				grid;
	grid-template-columns:	1fr 1fr;
	min-height:				400px;
	width:					100%;
}
@media screen and (min-width:1px) and (max-width:600px) {
	.empty_state {
		grid-template-columns:	1.3fr 0.7fr;
	}
}
/* 左: CTA */
.empty_cta {
	display:			flex;
	flex:				0 0 52%;
	flex-direction:		column;
	justify-content:	center;
	padding:			56px 48px 56px 52px;
	position:			relative;
}
@media screen and (min-width:1px) and (max-width:600px) {
	.empty_cta {
		padding:		1rem 0.75rem 1rem 0;
	}
}
/* 細い右ボーダー */
.empty_cta::after {
	background:			var(--color-primary-100);
	bottom:				32px;
	content:			'';
	position:			absolute;
	right:				0;
	top:				32px;
	width:				1px;
}
.empty_title {
	color:				var(--color-primary-900);
	font-size:			19px;
	font-weight:		700;
	letter-spacing:		0.01em;
	line-height:		1.7;
	margin-bottom:		14px;
}
.empty_desc {
	color:				var(--color-gray-500);
	font-size:			13px;
	line-height:		1.5;
	margin-bottom:		32px;
}
/* カテゴリーを登録するボタン */
.empty_state .fav_cat_open_btn {
	background-color:	var(--color-primary-600);
	color:				var(--color-text-inverse);
}
.empty_state .fav_cat_open_btn:focus {
	background-color:	var(--color-text-inverse);
	color:				var(--color-primary-600);
}
/* 小さいリンク */
.empty_sub_link {
	align-items:		center;
	color:				var(--color-gray-400);
	display:			flex;
	font-size:			12px;
	gap:				4px;
	margin-top:			14px;
}
.empty_sub_link a {
	border-bottom:		1px solid var(--color-primary-200);
	color:				var(--color-primary-500);
	padding-bottom:		1px;
	text-decoration:	none;
	transition:			color 0.15s;
}
.empty_sub_link a:hover {
	color:				var(--color-primary-700);
}
/* 右: イラストエリア */
.empty_illustration {
	align-items:		center;
	background:			#F5F7FB;
	display:			flex;
	justify-content:	center;
	overflow:			hidden;
	padding:			32px;
	position:			relative;
}
@media screen and (min-width:1px) and (max-width:600px) {
	.empty_illustration {
		padding:		0.5rem;
	}
}
.empty_illustration .bg_grid {
	height:				100%;
	inset:				0;
	pointer-events:		none;
	position:			absolute;
	width:				100%;
}
.mock_wrap {
	display:			flex;
	flex-direction:		column;
	max-width:			300px;
	position:			relative;
	width:				100%;
	z-index:			1;
}
.mock_tabs {
	display:			flex;
	overflow:			hidden;
}
.mock_tab {
	background:			#fff;
	border:				none;
	border-bottom:		2px solid transparent;
	color:				var(--color-primary-400);
	font-size:			11px;
	font-weight:		 500;
	letter-spacing:		0.03em;
	padding:			7px 14px;
	white-space:		nowrap;
}
.mock_tab.active {
	border-bottom:		2px solid var(--color-primary-600);
	color:				var(--color-primary-700);
	font-family:		var(--font-serif);
	font-weight:		700;
}
.mock_tab_bar {
	background:		var(--color-primary-200);
	height:			1px;
}
.mock_panel {
	background:		#fff;
	border:			1px solid var(--color-primary-200);
	border-radius:	0 0 8px 8px;
	border-top:		none;
	display:		flex;
	flex-direction:	column;
	gap:			9px;
	padding:		16px 14px;
}
.mock_line {
	background:		var(--color-primary-300);
	border-radius:	3px;
	flex-shrink:	0;
	height:			6px;
}

/* top main | お気に入りカテゴリーの Enpty State */
/* ------------------------------ */
/* one_news main */
/* 記事ページ */

main article {
	width:					100%;
}
main .news_header {
	border-bottom:			2.4px solid var(--color-gray-300);
	display:				flex;
	flex-direction:			column;
	gap:					0.5rem;
	margin-bottom:			1rem;
	padding-bottom:			1rem;
	width:					100%;
}

/* ブックマークメモ */
.bm_memo_box {
	border-radius:			0.3125rem;
}
.bm_memo_ps, .bm_memo_sh {
	display:				none;
}
.bm_memo_sec_label {
	background-color:		var(--color-background);
	font-size:				0.875rem;
	font-weight:			bold;
	padding:				0.25rem 0.5rem;
}
.bm_memo_msg {
	font-size:				0.75rem;
}

.bm_memo_ps_cont {
	padding:				0.5rem 0;
}
.bm_memo_ipt {
	padding:				0.25rem 0.5rem;
	width:					100%;
}
.bm_memo_sh_cont {
	align-items:			center;
	display:				flex;
	justify-content:		center;
	padding:				0.5rem 0;
	width:					100%;
}
.bm_memo_ul {
	width:					100%
}
.bm_memo_li {
	border:					1px solid var(--color-gray-200);
	border-radius:			0 0.625rem 0.625rem 0.625rem;
	box-shadow:				0 2px 4px rgba(0, 0, 0, 0.025);
	padding:				0.5rem 0.75rem;

}
.bm_memo_name, .bm_memo_time {
	font-size:				0.875rem;
	font-weight:			bold;
}
.bm_memo_time {
	font-size:				0.75rem;
	margin-left:			0.75rem;
}


main #news_ttl {
	align-items:			flex-start;
	display:				flex;
	flex-direction:			column;
	margin:					0;
	min-height:				2.875rem;
}
/* @media screen and (min-width:1px) and (max-width:800px) {
	main #news_ttl {
		font-size:			1.5rem;
	}
} */
main .news_subttl {
	font-size:				1.2rem;
}
@media screen and (min-width:1px) and (max-width:800px) {
	main .news_subttl {
		font-size:			1rem;
	}
}
main #news_cont {
	/* border-bottom:			2.4px solid var(--color-gray-300); */
	color:					var(--color-text-secondary);
	font-size:				1.125rem;
	line-height:			1.8em;
	min-height:				7.2rem;
}
@media screen and (min-width:1px) and (max-width:800px) {
	main #news_cont {
		font-size:			1rem;
		line-height:		1.8;
		overflow-y:			auto;
	}
}

/* 記事本文のリンク */
main #news_cont a {
	color:					var(--color-primary-600);
}
main #news_cont a:visited {
	color:					var(--color-link-visited);
}
main #news_cont a:hover {
	color:					var(--color-info-muted);
	text-decoration:		underline;
}

/* 本文中の「やさしい市場用語」や「銘柄コード」のリンク */
main #news_cont .dot {
	color:					var(--color-text-primary);
}

/* 本文中の「企業別ファイナンス」のリンク */
.cross {
	text-decoration:	none;
}
.cross::before {
	content:			'企';
	vertical-align:		top;
	font-size:			0.65rem;
	font-weight:		bold;
	margin:				0 4px 0 -4px;
	color:				white;
	border-radius:		3px;
	background-color:	var(--color-primary-500);
	padding:			0 3px;
}

/* main #news_cont b {
	display:				block;
	margin-top:				1.8rem;
	font-weight:			700;
}
main #news_cont b + b {
		display:				inline;
	margin-top:				0;
}
main #news_cont br:has(+ b),
main #news_cont b + br {
		<b> を display: none; にすると、
		改行のための <br> が１行分の空行になるので <br> を非表示にする。
	display:				none;
} */

.news_meta_box {
	align-items:			center;
	display:				flex;
	flex-wrap:				wrap;
	gap:					0.5rem;
	min-height:				1.75rem;
}
.news_cat_box {
	display:				flex;
	font-size:				0.875rem;
	gap:					0.5rem;
}
.news_cat_box a.cat_label:hover {
	text-decoration:		underline;
}
.news_act_box {
	align-items:			center;
	display:				flex;
	gap:					0.5rem;
	margin-left:			auto;
}
@media screen and (min-width:1px) and (max-width:600px) {
	.news_act_box button {
		height:				1.5rem;
		width:				1.5rem;
	}
	.news_act_box span {
		display:			none;
	}
}

/* 前の記事、次の記事 */
.prev_next_links {
	border-bottom:			1px solid var(--color-primary-200);
	border-top:				2.4px solid var(--color-primary-200);
	display:				grid;
	font-size:				0.875rem;
	grid-template-columns:	1fr 1fr;
	min-height:				5rem;
	width:					100%;
}
.prev_news, .next_news {
	align-items:			center;
	display:				flex;
	justify-content:		center;
	position:				relative;
	width:					100%;
}
/* 前の記事と次の記事を区切る縦線 */
.prev_news::after {
	background:				var(--color-gray-300);
	content:				"";
	height:					50%;
	right:					0;
	position:				absolute;
	top:					50%;
	transform:				translateY(-50%);
	width:					1px;
}.prev_next_msg {
	color:					var(--color-gray-400);
	font-size:				0.75rem;
}


/* 前の記事、次の記事 | それぞれのリンク */
.prev_news_link, .next_news_link {
	align-items:			center;
	display:				flex;
	gap:					1rem;
	height:					100%;
	justify-content:		center;
	padding:				0.5rem 0;
	width:					100%;
}
.prev_news_link {
	justify-content:		flex-start;
	padding-right:			0.5rem;
	text-align:				left;
}
.next_news_link {
	justify-content:		flex-end;
	padding-left:			0.5rem;
	text-align:				right;
}

/* 前の記事、次の記事 | 左右矢印を除くテキスト部分。「前の記事」「次の記事」の文字列を上揃えにする */
.prev_news_text, .next_news_text {
	display:				grid;
	gap:					0.25rem;
	grid-template-rows:		auto 1fr;
	height:					100%;
}

/* 前の記事、次の記事 | 「前の記事」「次の記事」ラベル */
.prev_news_span, .next_news_span  {
	color:					var(--color-gray-600);
	font-size:				0.75rem;
}

/* 前の記事、次の記事 | 記事タイトル */
.prev_news_ttl, .next_news_ttl {
	text-wrap:				balance;
}


.paywall_wrap {
	margin-top:				-5rem;
	padding-top:			5rem;
	position:				relative;
	text-align:				center;
}
.paywall_wrap::before {
	background:				linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 50%, rgba(255,255,255,1) 100%);
	content:				"";
	height:					12rem;
	left:					0;
	pointer-events:			none;
	position:				absolute;
	top:					0;
	width:					100%;
	z-index:				1;
}
.paywall_cont {
	margin:					0 auto;
	max-width:				25rem;
	padding:				3rem 2rem;
	position:				relative;
	z-index:				2;
}
.how_cont {
	font-size:				0.875rem;
}
.paywall_wrap .action_area {
	display:				flex;
	flex-direction:			column;
	gap:					0.5rem;
}
.no_id.act_btn {
	background-color:		var(--color-warning-muted);
	color:					var(--color-text-inverse);
}
.no_id.act_btn .oneshot_hist {
	font-size:				0.875rem;
	margin-left:			0.5rem;
	text-decoration:		underline;
}
.has_id.act_btn {
	border:					1px solid var(--color-info-bold);
	color:					var(--color-info-bold);
}




/* ニュースリスト一覧 */
.one_news .news_list_ul {
	min-height:				22.75rem;
}


/* one_news main */
/* ------------------------------ */
/* text_news main */
/* 記事一覧ページ */

@media screen and (min-width:501px) {
	#text_news .pc_only {
		display:				block;
	}
	#text_news .sp_only {
		display:				none;
	}
}
@media screen and (min-width:1px) and (max-width:500px) {
	#text_news .pc_only {
		display:				none;
	}
	#text_news .sp_only {
		display:				block;
	}
}

#text_news .page_header {
	border-bottom:			2.4px solid var(--color-gray-300);
	padding-bottom:			1rem;
}

.page_title_box {
	position:				relative;
}
.related_page_box {
	align-items:			center;
	display:				flex;
	font-size:				0.875rem;
	margin:					0.75rem 0 1rem 0;
}
.related_page_link {
	margin-right: 					0.875rem;
	text-align:				center;
	text-decoration:		underline;
}

/* コントロールエリア */
.control_area {
	align-items:			center;
	display:				flex;
	flex-wrap:				wrap;
	gap:					0.5rem;
	min-height:				1.5rem;
	width:					100%;
}

/* お気に入りカテゴリーボタン、メール通知ボタン */
.action_area {
	display:				none;
}
.cat_act_btn {
	background-color:		white;
	border:					1px solid var(--color-gray-300);
	border-radius:			0.315rem;
	display:				inline-block;
	padding:				0.25rem 0.5rem;
	text-align:				center;
}
.cat_act_btn:hover {
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
.cat_act_btn:active {
	background-color:		#e0e2e5; /* クリック中にさらに背景をグレーにする */
	box-shadow:				0 1px 2px rgba(0, 0, 0, 0.1); /* 影を控えめに */
}
.cat_act_btn.add_mark::before,
.cat_act_btn.check_mark::before {
	vertical-align:			-0.16rem;
}
.cat_act_btn.check_mark::before {
	background-color:		var(--color-primary-600);
}

/* 表示順、表示件数エリア */
.option_area {
	align-items:			center;
	display:				flex;
	gap:					0.5rem;
	justify-content:		center;
	margin-left:			auto;
}

/* 記事一覧 */
#text_news .news_list_ul {
	min-height:					calc(100vh - var(--header-height) - 25.5rem);
}

/* 検索条件 */
.srch_dtl {
	background-color:			#ffa;
	margin-right:				1rem;
}
/* 検索時の記事一覧 */
.search_news_link {
	background-color:			white;
	display:					block;
	padding:					0.5rem 0.75rem;
	width:						100%;
}
.search_news_link:hover {
	background-color:			var(--color-background);
}
.search_news_link time {
	display:					inline-block;
	font-size:					0.75rem;
}
.search_news_link .cat_label {
	display:					inline-block;
	font-size:					0.75rem;
	margin-left:				0.75rem;
}
.search_news_link .news_link_text {
	display:					block;
}
/* 本文のチラ見せ */
.srch_prev {
	color:						var(--color-gray-600);
	font-size:					0.875rem;
	line-height:				1.5;
}
.srch_prev em, .ttl em, article em {
	background-color:			#ff3;
	font-style:					normal;
}
@media screen and (min-width:1px) and (max-width:600px) {
	main.search {
		background-color:		transparent;
		padding:				0.5rem 0;
	}
	main.search .page_header {
		padding:				0 0.5rem;
	}
	main.search .news_list_ul {
		gap:					0.5rem;
	}
	.search_news_link .news_link_text {
		font-size:				1.125rem;
	}
	.search_news_link {
		/* border-top:				4px solid var(--color-background); */
	}

	.srch_prev {
		/* font-size:				0.75rem; */
	}
}


/* ブックマーク一覧 */
.bm_news_link {
	display:					flex;
	flex-direction:				column;
	padding:					0.5rem 0;
}
.bm_news_link .bm_who_when {
	align-items:				baseline;
	color:						var(--color-gray-500);
	display:					flex;
	font-size:					0.75rem;
	gap:						0.25rem;
	margin-left:				2px;
}
.bm_news_link .bm_new {
	color:						var(--color-error-muted);
	font-size:					0.75rem;
}
.bm_news_link .bm_name {
	color:						var(--color-text-secondary);
	font-weight:				500;
}
.bm_news_link .bm_time {
	color:						var(--color-text-secondary);
	font-size:					0.75rem;
}
.bm_news_link .bm_memo {
	background-color:			var(--color-primary-100);
	border:						1px solid var(--color-primary-200);
	border-radius:				0.5rem 0.5rem 0.5rem 0;
	box-shadow:					0 2px 4px rgba(0, 0, 0, 0.025);
	color:						var(--color-text-primary);
	line-height:				1.5;
	margin:						0.125rem 0;
	padding:					0.25rem 0.5rem;
}
.bm_news_link article {
	border-left:				2px solid var(--color-gray-400);
	margin-left:				2px;
	margin-top:					0.25rem;
	padding-left:				0.65rem;
}
.bm_news_link time {
	display:					inline-block;
	font-size:					0.75rem;
}
.bm_news_link .cat_label {
	font-size:					0.75rem;
	margin-left:				0.75rem;
}




/* ページャー */
.pager_nav {
	align-items:			center;
	display:				flex;
	flex-direction:			column;
	gap:					0.5rem;
	justify-content:		center;
	min-height:				4rem;
	width:					100%;
}
.pager_info {
	font-size:				0.875rem;
	min-height:				1.575rem;
	height:					1.575rem;
}
.pager_ul {
	display:				flex;
	gap:					0.5rem;
}
@media screen and (min-width:1px) and (max-width:800px) {
	.pager_info {
		font-size:			0.875rem;
	}
	.pager_ul {
		width:				100%;
	}
	.pager_item {
		flex:				1;
	}
}
.pager_item.active {
	/* 現在のページ */
	background-color:		var(--color-primary-600);
	color:					var(--color-text-inverse);
	pointer-events:			none;
}
.pager_item.disabled {
	color:					var(--color-gray-300);
	pointer-events:			none;
}
.pager_item .backward_mark::before,
.pager_item .forward_mark::after {
	/* アイコンの位置の微調節 */
	vertical-align:			-0.125rem;
}
.pager_item.disabled .backward_mark::before,
.pager_item.disabled .forward_mark::after {
	background-color:		var(--color-gray-300);
}
.pager_link {
	border:					1px solid var(--color-gray-200);

	/*
		アイコンが文字に対して上にずれる問題を vertical-align で対応するため、
		flex ではなく inline-block にする
	*/
	display:				inline-block;

	padding:				0.5rem 0.75rem;
	text-align:				center;
}
.pager_link:hover {
	background-color:		var(--color-gray-200);
}
@media screen and (min-width:1px) and (max-width:800px) {
	.pager_link {
		width:				100%;
	}
}

/* ページャーの数字部分 */
.pager_num_box {
	display:				contents;
}
@media screen and (min-width:1px) and (max-width:800px) {
	.pager_num_box {
		display:			none;
	}
}


 /* SP 用のカテゴリー情報ブロック */
.cat_info {
	display:				none;
}
@media screen and (min-width:1px) and (max-width:500px) {
	.cat_info.sp_only {
		background-color:	var(--color-gray-100);
		border-radius:		0.315rem;
		margin:				0 auto;
		padding:			1rem;
	}
	.cat_info .page_title {
		font-size:			1.2rem;
		font-weight:		bold;
	}
	.cat_info .page_desc {
		line-height:		1.5;
	}

}


/* text_news main */
/* ------------------------------ */
/* aside */

aside {
	align-items:			flex-start;
	align-self:				flex-end;
	bottom:					10px;
	display:				flex;
	flex-direction:			column;
	gap:					1rem;
	height:					max-content;
	padding:				1.25rem 0;
	position:				sticky;
	position:				-webkit-sticky;
	-ms-flex-item-align:	end;
	-webkit-align-self:		flex-end;
}
@media screen and (min-height:1px) and (max-height:1000px) {
	aside {
		gap:				1rem;
	}
}
@media screen and (min-width:1px) and (max-width:960px) {
	aside {
		position:			static;
		padding:			0 1rem;
	}
}
aside section {
	width:					100%;
}
aside section {
	width:					100%;
}
aside section h3,
aside section h3 a {

	font-size:				0.875rem;
	/* font-weight:			normal; */
}
aside section p {
	font-size:				0.8125rem;
	line-height:			1.5;
}

.pc_only {
	width:					100%;
}

/* aside | PC 用 紙面セクション */
@media screen and (min-width: 1px) and (max-width: 960px) {
	.pc_only {
		display:			none;
	}
}
.pc_only .shimen {
	padding:				0;
	position:				relative;
	z-index:				3;
}

/* PC などのマウス操作時 */
@media (hover: hover) and (pointer: fine) {
	/* ドロップダウンメニューを表示 */
	.pub_list__item:hover .pub_list__dropdown {
		display:			flex;
	}
}

.shimen_box {
	align-items:				center;
	aspect-ratio:				430 / 304;
	background-color:			white;
	border:						1px solid var(--color-gray-400);
	/* border:						1px solid rgba(255, 255, 255, 0.8); */
	display:					flex;
	max-width:					100%;
}
.shimen_box img {
	width:						100%;
}

#souba {
	border-top:					1px solid var(--color-gray-700);
	padding-top:				1rem;
}
#souba ul {
	display:					flex;
	flex-direction:				column;
	gap:						0.5rem;
}
#souba .btn_link_text_box {
	align-items:				center;
	display:					flex;
	gap:						0.5rem;
}
.souba_banner {
	align-items:				center;
	/* deep-blue gradient background */
	background:					radial-gradient(110% 180% at 110% 40%, var(--color-primary-400) 0%, transparent 55%),
								radial-gradient(90% 140% at 0% 100%, var(--color-primary-600) 0%, transparent 55%),
								linear-gradient(45deg, var(--color-primary-700) 0%, var(--color-primary-600) 60%, var(--color-primary-500) 100%);
	border-radius:				0.315rem;
	color:						var(--color-text-inverse);
	display:					flex;
	gap:						0.5rem;
	padding:					0.5rem;
	position:					relative;
	transition:					box-shadow  0.35s ease,
								transform   0.35s cubic-bezier(.2,.7,.2,1);
	width:						100%;
}
.souba_banner:hover {
	box-shadow:					0 12px 40px rgba(0, 20, 64, 0.35);
}
.souba_banner h2 {
	color:						var(--color-text-inverse);
	font-size:					0.875rem;
}
#souba_update_time {
	color:						rgba(255, 255, 255, 0.85);
	display:					inline-block;
	font-size:					0.75rem;
	height:						1rem;
}
.souba_banner.forward_mark::after {
	background-color:			var(--color-text-inverse);
}

.data_banner {
	border-top:					1px solid var(--color-gray-700);
	padding-top:				1rem;
}
.data_banner__link {
	/* deep-blue gradient background */
	background:					radial-gradient(110% 180% at 110% 40%, var(--color-primary-400) 0%, transparent 55%),
								radial-gradient(90%  140% at 0%   100%, var(--color-primary-500) 0%, transparent 55%),
								linear-gradient(135deg, var(--color-primary-700) 0%, var(--color-primary-600) 60%, var(--color-primary-500) 100%);
	border-radius:				0.315rem;
	color:						var(--color-text-inverse);
	display:					block;
	position:					relative;
	transition:					box-shadow  0.35s ease,
								transform   0.35s cubic-bezier(.2,.7,.2,1);
	width:						100%;
}
.data_banner__link:hover {
	box-shadow:					0 12px 40px rgba(0, 20, 64, 0.35);
}

/* sheen sweep on hover */
.data_banner__link::before {
	background:					linear-gradient(115deg, transparent 30%, rgba(255,255,255,.08) 50%, transparent 70%);
	content:					"";
	inset:						0;
	pointer-events:				none;
	position:					absolute;
	transform:					translateX(-100%);
	transition:					transform 0.8s cubic-bezier(.2,.7,.2,1);
	z-index:					1;
}
.data_banner__link:hover::before {
	display:					block;
	transform:					translateX(100%);
}
.data_banner__link:focus::before {
	display:					none;
}

/* decorative SVG chart layer */
.data_banner__chart {
	bottom:						0;
	height:						100%;
	left:						0;
	pointer-events:				none;
	position:					absolute;
	right:						0;
	width:						100%;
	z-index:					0;
}

/* inner layout */
.data_banner__inner {
	align-items:				center;
	display:					grid;
	grid-template-columns:		1fr auto;
	height:						100%;
	padding:					0.875rem 1.25rem 0.875rem 1rem;
	position:					relative;
	z-index:					2;
}

.data_banner__title {
	align-items:				flex-end;
	color:						var(--color-text-inverse);
	display:					flex;
	gap:						0.5rem;
	letter-spacing:				0.08em;
	line-height:				1.2;
	margin-bottom:				0.5rem;
}
.data_banner__title .tag {
	color:						var(--color-primary-200);
	font-family:				sans-serif;
	font-size:					0.75rem;
	font-weight:				500;
	letter-spacing:				0.2em;
	text-transform:				uppercase;
	vertical-align:				middle;
}
.data_banner__lead {
	color:						rgba(255, 255, 255, 0.85);
	font-size: 					0.75rem;
	line-height:				1.5;
	max-width:					30rem;
}
/* CTA pill */
.data_banner__cta {
	align-items:				center;
	background:					var(--color-text-inverse);
	border:						0.8px solid transparent;
	border-radius:				999px;
	display:					inline-flex;
	padding-left:				0.125rem;
	text-decoration:			none;
	white-space:				nowrap;
}
.data_banner__cta.forward_mark::after {
	background-color:			var(--color-primary-700);
}

/* インタビュー */
.itvw_box {
	display:					flex;
	flex-direction:				column;
	gap:						1.5rem;
	min-height:					8.2rem;
	width:						100%;
}	
.financial_views {
	min-height:					8.2rem;
}

/* 相場表、設立記念日 */
aside .btn_links {
	border-top:					1px solid var(--color-gray-700);
	display:					flex;
	flex-direction:				column;
	gap:						0.75rem;
	padding-top:				1.5rem;
	width:						100%;
}
aside .btn_link {
	align-items:				center;
	background-color:			rgba(255, 255, 255, 0.55);
	/* background:					linear-gradient(to bottom, #FFFFFF 0%, #F0F2F5 100%); */
	backdrop-filter:			blur(8px);
	border:						1px solid rgba(255, 255, 255, 0.8);
	border-radius:				0.315rem;
	box-shadow:					0 2px 4px rgba(0, 0, 0, 0.06);
	display:					flex;
	gap:						0.75rem;
	padding:					0.875rem 1.25rem 0.875rem 1rem;
	transition:					border-color 0.15s ease,
								box-shadow   0.15s ease,
								transform    0.1s ease;
}

aside .btn_link_ttl {
	font-size:					1rem;
}
.btn_link_text_box {
	flex:						1;
}
.btn_link_cmt {
	display:					inline-block;
	font-size:					0.75rem;
	height:						1rem;
	color:						var(--color-gray-500);
}
.btn_link_cmt time {
	font-size:					0.75rem;
}

.img_left {
	align-items:				center;
	display:					grid;
	gap:						0.5rem;
	grid-template-columns:		90px 1fr;
}
aside .portrait {
	height:						90px;
	object-fit:					cover;
	padding:					0.25rem 0;
	width:						90px;
}
aside .interviewee {
	align-items:				flex-start;
	display:					flex;
	flex-direction:				column;
	gap:						0.5rem;
}
aside .financial-views {
	display:					flex;
	flex-direction:				column;
	gap:						0.25rem;
}

/* 金ファクアクセスランキング */
.fnranking_ol {
	display:					flex;
	flex-direction:				column;
	min-height:					27rem;
}
.fnranking_ol li {
	align-items:				center;
	display:					grid;
	font-size:					0.875rem;
	grid-template-columns:		2.5rem 1fr;
	padding:					0.5rem 0;
}
.fnranking_ol li:not(:last-child){
	border-bottom:				1px solid var(--color-gray-100);
}

/* お役立ちリンク */
.ext_link_ul {
	display:					flex;
	flex-direction:				column;
	gap:						0.5rem;
}
aside .ext_link_a {
	align-items:				center;
	/* backdrop-filter:			blur(16px); */
	/* background-color:		rgba(255, 255, 255, 0.6); */
	border-radius:				0.25rem;
	box-shadow:					0 2px 4px rgba(0,0,0,0.06);
	/* color:						var(--color-text-secondary); */
	color:						var(--color-primary-600);
	display:					flex;
	font-size:					0.875rem;
	font-weight:				bold;
	gap:						0.25rem;
	/* justify-content:			space-between; */
	padding:					0.5rem;
}
aside .ext_link_a:hover {
	color:						var(--color-info-muted);
}

aside #ext_link .ext_link_url_text:hover {
	font-size:					0.75rem;
	font-weight:				normal;
}


/* PWA バナー | ホーム画面に追加するには */
.pwa_banner {
	border:						1px solid var(--color-gray-700);
	border-radius:				0.125rem;
	box-sizing:					border-box;
	cursor:						pointer;
	display:					flex;
	flex-direction:				column;
	overflow:					hidden;
	padding:					1.25rem 1.25rem 1.125rem;
	position:					relative;
	text-decoration:			none;
	transition:					box-shadow 0.15s, transform 0.15s;
	width:						100%;
}

/* PWA バナー | 背景デコ */
.pwa_banner__deco {
	opacity:					0.1;
	pointer-events:				none;
	position:					absolute;
	right:						-28px;
	top:						-28px;
}

/* PWA バナー | 上段 */
.pwa_banner__top_row {
	align-items:				center;
	display:					flex;
	gap:						12px;
	margin-bottom:				11px;
	width:						100%;
}
.pwa_banner__icon_wrap {
	flex-shrink:				0;
	position:					relative;
}
.pwa_banner__badge {
	border-radius:				20px;
	color:						#fff;
	font-size:					9px;
	font-weight:				700;
	letter-spacing:				0.04em;
	padding:					2px 6px;
	position:					absolute;
	right:						-8px;
	top:						-5px;
}
.pwa_banner__text_block {
	flex: 1;
}
.pwa_banner__title {
	font-size:					14px;
	font-weight:				700;
	line-height:				1.4;
	margin:						0 0 3px;
}
.pwa_banner__sub {
	font-size:					11px;
	line-height:				1.55;
	margin:						0;
}

/* PWA バナー | 区切り線 */
.pwa_banner__divider {
	height:						1px;
	margin-bottom:				10px;
	width:						100%;
}

/* PWA バナー | デバイス対応の行 */
.pwa_banner__device_row {
	align-items:				center;
	display:					flex;
	font-size:					10px;
	font-weight:				500;
	gap:						7px;
	justify-content:			center;
	margin-bottom:				10px;
	width:						100%;
}
.pwa_banner__device-item {
	align-items:				center;
	display:					flex;
	gap:						4px;
}
.pwa_banner__device-sep {
	opacity:					0.4;
}

/* PWA バナー | CTA */
.pwa_banner__cta_row {
	align-items:				flex-end;
	display:					flex;
	gap:						6px;
	justify-content:			flex-end;
	width:						100%;
}
.pwa_banner__cta_text {
	font-size:					11px;
	font-weight:				500;
	text-decoration:			underline;
	text-decoration-thickness:	1px;
	text-underline-offset:		3px;
}

/* aside */
/* ------------------------------ */
/* favcat | お気に入りカテゴリーの記事一覧ページ */

.favcat h1.page_title {
	display:					inline-block;
	width:						fit-content;
}
.favcat .page_title_box .fav_cat_open_btn {
	background-color:			transparent;
	border:						1px solid var(--color-gray-200);
	border-radius:				9999px;
	display:					inline-block;
	margin-left:				1rem;
	padding:					0.25rem 0.75rem;
}
.favcat .fav_cat_open_btn svg {
	margin-right:				0.375rem;
	vertical-align:				-0.25em;
}

/* favcat | お気に入りカテゴリーの記事一覧ページ */
/* ------------------------------ */
/* feat | 注目企業ページ */

#set_feat_btn {
	padding:					0.25rem 0.5rem;
	background-color:			var(--color-background);
	background:					-moz-linear-gradient(top, var(--color-background) 0%, var(--color-primary-100) 100%);
	background:					-webkit-linear-gradient(top, var(--color-background) 0%, var(--color-primary-100) 100%);
	background:					linear-gradient(to bottom, var(--color-background) 0%, var(--color-primary-100) 100%);
	border:						solid 1px var(--color-gray-200);
	border-radius:				0.315rem;
	filter:						progid:DXImageTransform.Microsoft.gradient( startColorstr='var(--color-background)', endColorstr='var(--color-primary-100)',GradientType=0 );
	height:						2.875rem;
	position:					absolute;
	top:						0;
	transition:					0.2s ease-in-out;
	right:						0;
	-o-transition:				0.2s ease-in-out;
	-moz-transition:			0.2s ease-in-out;
	-webkit-transition:			0.2s ease-in-out;
}

/* feat | 注目企業 */
/* ------------------------------ */
