@charset "UTF-8";
/*
 * NoLimit Media
 *
 * 既存テーマ（style.css）は一切変更しない。メディア関連ページでのみ読み込まれる。
 * 配色・余白・最大幅は既存テーマに合わせている。
 *   背景 #14181E ／ アクセント #00D7C8 ／ 文字 #fff
 *   コンテンツ幅 90% / max 1040px ／ html font-size 62.5%（1rem = 10px）
 */

/* ------------------------------------------------------------------ */
/* 土台                                                                 */
/* ------------------------------------------------------------------ */

.nlmPage {
	background-color: #14181E;
	color: #fff;
	position: relative;
	overflow: hidden;
}

.nlmWrap {
	width: 90%;
	max-width: 1040px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}

.nlmWrap--narrow {
	max-width: 800px;
}

.nlmSection {
	margin: 0 0 90px;
}

.nlmSection__ttl {
	font-size: 2.4rem;
	font-weight: 400;
	color: #fff;
	letter-spacing: 0.08em;
	margin: 0 0 24px;
	padding-left: 14px;
	border-left: 4px solid #00D7C8;
	line-height: 1.5;
}

.nlmSection__page {
	font-size: 1.4rem;
	color: #B9B9B9;
	margin-left: 12px;
}

.nlmSection__lead {
	font-size: 1.4rem;
	line-height: 1.9;
	color: #D1D2D3;
	margin: -12px 0 24px;
}

.nlmSection__more {
	margin-top: 24px;
	text-align: right;
	font-size: 1.4rem;
}

.nlmSection__more a {
	color: #00D7C8;
	text-decoration: underline;
}

.nlmEmpty {
	text-align: center;
	font-size: 1.4rem;
	color: #B9B9B9;
	padding: 60px 0;
	line-height: 2;
}

.nlmCount {
	font-size: 1.4rem;
	color: #B9B9B9;
	margin: 0 0 20px;
}

/* ------------------------------------------------------------------ */
/* ヒーロー                                                             */
/* ------------------------------------------------------------------ */

.nlmHero {
	margin: 0 0 70px;
	text-align: center;
}

.nlmHero__catch {
	font-family: "Noto Serif SC", serif;
	font-size: 3.2rem;
	line-height: 1.5;
	letter-spacing: 0.08em;
	margin: 0 0 16px;
}

.nlmHero__lead {
	font-size: 1.5rem;
	line-height: 1.9;
	color: #D1D2D3;
	margin: 0 auto 32px;
	max-width: 680px;
}

/* ------------------------------------------------------------------ */
/* 検索フォーム                                                         */
/* ------------------------------------------------------------------ */

.nlmSearch {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	max-width: 720px;
	margin: 0 auto 40px;
}

.nlmSearch__input {
	flex: 1 1 260px;
	min-width: 0;
	padding: 12px 14px;
	font-size: 1.4rem;
	color: #14181E;
	background: #fff;
	border: 1px solid #D5D5D5;
	border-radius: 2px;
}

.nlmSearch__select {
	padding: 12px 10px;
	font-size: 1.4rem;
	color: #14181E;
	background: #fff;
	border: 1px solid #D5D5D5;
	border-radius: 2px;
}

.nlmSearch__btn {
	padding: 12px 28px;
	font-size: 1.4rem;
	color: #14181E;
	background: #00D7C8;
	border: none;
	border-radius: 2px;
	cursor: pointer;
	transition: opacity 0.2s;
}

.nlmSearch__btn:hover {
	opacity: 0.8;
}

/* ------------------------------------------------------------------ */
/* カード一覧                                                           */
/* ------------------------------------------------------------------ */

.nlmGrid {
	display: grid;
	gap: 40px 3.5%;
}

.nlmGrid--3 {
	grid-template-columns: repeat(3, 1fr);
}

.nlmCard__link {
	display: block;
	color: #fff;
	text-decoration: none;
}

.nlmCard__thumb {
	display: block;
	position: relative;
	overflow: hidden;
	margin-bottom: 14px;
	aspect-ratio: 16 / 10;
	background: #1D2229;
}

.nlmCard__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: transform 0.4s;
}

.nlmCard__link:hover .nlmCard__thumb img {
	transform: scale(1.05);
}

.nlmCard__typeBadge {
	position: absolute;
	left: 0;
	top: 0;
	font-size: 1.1rem;
	padding: 5px 10px;
	background: #00D7C8;
	color: #14181E;
	letter-spacing: 0.05em;
}

.nlmCard__typeBadge.nlmBadge--research {
	background: #00D7C8;
}

.nlmCard__typeBadge.nlmBadge--comparison {
	background: #fff;
}

.nlmCard__top {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 8px;
	font-size: 1.2rem;
	color: #B9B9B9;
	font-family: "Figtree", sans-serif;
}

.nlmCard__cate {
	color: #00D7C8;
	font-family: YakuHanJP, 'Noto Sans JP', sans-serif;
}

.nlmCard__ttl {
	display: block;
	font-size: 1.6rem;
	line-height: 1.6;
	margin-bottom: 8px;
}

.nlmCard__link:hover .nlmCard__ttl {
	color: #00D7C8;
}

.nlmCard__lede {
	display: block;
	font-size: 1.3rem;
	line-height: 1.8;
	color: #949699;
}

/* ------------------------------------------------------------------ */
/* カテゴリタイル                                                       */
/* ------------------------------------------------------------------ */

.nlmCats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
}

.nlmCats__item {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	padding: 18px 16px;
	border: 1px solid #393C41;
	color: #fff;
	text-decoration: none;
	transition: border-color 0.2s, background-color 0.2s;
}

.nlmCats__item:hover {
	border-color: #00D7C8;
	background-color: #1A1F26;
}

.nlmCats__name {
	font-size: 1.4rem;
}

.nlmCats__count {
	font-size: 1.1rem;
	color: #949699;
	font-family: "Figtree", sans-serif;
}

/* ------------------------------------------------------------------ */
/* ページ送り                                                           */
/* ------------------------------------------------------------------ */

.nlmPager {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	margin-top: 30px;
	font-family: "Figtree", sans-serif;
	font-size: 1.3rem;
}

.nlmPager .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	color: #fff;
	text-decoration: none;
	border: 1px solid #393C41;
}

.nlmPager .page-numbers:hover {
	border-color: #00D7C8;
	color: #00D7C8;
}

.nlmPager .page-numbers.current {
	background: #00D7C8;
	border-color: #00D7C8;
	color: #14181E;
}

.nlmPager .page-numbers.dots {
	border: none;
}

/* ------------------------------------------------------------------ */
/* パンくず                                                             */
/* ------------------------------------------------------------------ */

.nlmCrumb {
	font-size: 1.2rem;
	color: #949699;
	margin: 0 0 30px;
	line-height: 1.8;
	word-break: break-all;
}

.nlmCrumb__link {
	color: #B9B9B9;
	text-decoration: none;
}

.nlmCrumb__link:hover {
	color: #00D7C8;
	text-decoration: underline;
}

.nlmCrumb__sep {
	margin: 0 8px;
	color: #55585D;
}

.nlmTermDesc {
	font-size: 1.4rem;
	line-height: 2;
	color: #D1D2D3;
	margin: 0 0 30px;
	padding: 20px 24px;
	background: #1A1F26;
	border-left: 3px solid #00D7C8;
}

/* ------------------------------------------------------------------ */
/* 記事詳細                                                             */
/* ------------------------------------------------------------------ */

.nlmBadges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 16px;
}

.nlmBadge {
	display: inline-block;
	font-size: 1.2rem;
	padding: 5px 12px;
	text-decoration: none;
	line-height: 1.4;
}

.nlmBadge--cat {
	background: #00D7C8;
	color: #14181E;
}

.nlmBadge--type {
	border: 1px solid #00D7C8;
	color: #00D7C8;
}

.nlmArticle__ttl {
	font-size: 3.0rem;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.04em;
	margin: 0 0 18px;
}

.nlmArticle__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	font-size: 1.2rem;
	color: #B9B9B9;
	margin-bottom: 26px;
	font-family: "Figtree", YakuHanJP, 'Noto Sans JP', sans-serif;
}

.nlmArticle__thumb {
	width: 100%;
	height: auto;
	margin-bottom: 30px;
}

.nlmArticle__lede {
	font-size: 1.5rem;
	line-height: 2;
	color: #D1D2D3;
	padding: 22px 24px;
	background: #1A1F26;
	margin-bottom: 36px;
}

.nlmArticle__lede p {
	margin: 0 0 0.8em;
}

.nlmArticle__lede p:last-child {
	margin-bottom: 0;
}

/* 目次 */

.nlmToc {
	background: #1A1F26;
	border: 1px solid #393C41;
	padding: 24px 28px;
	margin: 0 0 40px;
}

.nlmToc__ttl {
	font-size: 1.5rem;
	margin: 0 0 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid #393C41;
}

.nlmToc__list {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: nlmtoc;
}

.nlmToc__item {
	font-size: 1.4rem;
	line-height: 1.7;
	margin: 0 0 10px;
}

.nlmToc__item--h3 {
	padding-left: 20px;
	font-size: 1.3rem;
	color: #B9B9B9;
}

.nlmToc__item a {
	color: #fff;
	text-decoration: none;
}

.nlmToc__item a:hover {
	color: #00D7C8;
	text-decoration: underline;
}

.nlmToc__item--h3 a {
	color: #B9B9B9;
}

/* ------------------------------------------------------------------ */
/* 本文（書き手が inline style を書かなくて済むようにする）              */
/* ------------------------------------------------------------------ */

.nlmArticle__body {
	font-size: 1.5rem;
	line-height: 2;
	color: #EFEFEF;
}

.nlmArticle__body > * {
	margin: 0 0 1.8em;
}

.nlmArticle__body h2 {
	background-color: #55585D;
	border-left: 5px solid #00D7C8;
	color: #fff;
	padding: 12px 0 12px 14px;
	font-size: 2.2rem;
	line-height: 1.5;
	letter-spacing: 0.06em;
	margin: 3em 0 1.2em;
	scroll-margin-top: 100px;
}

.nlmArticle__body h3 {
	font-size: 1.9rem;
	line-height: 1.6;
	color: #fff;
	padding-left: 12px;
	border-left: 3px solid #00D7C8;
	margin: 2.4em 0 1em;
	scroll-margin-top: 100px;
}

.nlmArticle__body h4 {
	font-size: 1.6rem;
	color: #00D7C8;
	margin: 2em 0 0.8em;
}

.nlmArticle__body a {
	color: #00D7C8;
	text-decoration: underline;
}

.nlmArticle__body a:hover {
	opacity: 0.8;
}

/*
 * 本文中のCTAボタン。
 * 上の .nlmArticle__body a のほうが詳細度で勝つため、ボタンの文字がリンク色（水色）になり、
 * 同色の背景に溶けて読めなくなる。ここで明示的に戻す。
 */
.nlmArticle__body a.nlmCta__btn {
	color: #14181E;
	text-decoration: none;
}

.nlmArticle__body a.nlmCta__btn:hover {
	opacity: 0.85;
}

.nlmArticle__body ul,
.nlmArticle__body ol {
	padding-left: 1.6em;
}

.nlmArticle__body ul {
	list-style: disc;
}

.nlmArticle__body ol {
	list-style: decimal;
}

.nlmArticle__body li {
	margin: 0 0 0.6em;
	line-height: 1.9;
}

.nlmArticle__body blockquote {
	border-left: 3px solid #55585D;
	padding: 4px 0 4px 20px;
	color: #B9B9B9;
	font-size: 1.4rem;
}

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

.nlmArticle__body figcaption {
	font-size: 1.2rem;
	color: #949699;
	margin-top: 8px;
	text-align: center;
}

.nlmArticle__body code {
	background: #262B33;
	padding: 2px 6px;
	font-size: 0.9em;
	border-radius: 2px;
}

.nlmArticle__body strong {
	font-weight: 700;
	color: #fff;
}

/* ------------------------------------------------------------------ */
/* 表（横スクロール対応）                                               */
/* ------------------------------------------------------------------ */

.nlmTableWrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 0 0 1.5em;
}

.nlmTable {
	width: 100%;
	min-width: 480px;
	border-collapse: collapse;
	font-size: 1.4rem;
}

.nlmTable th,
.nlmTable td {
	border: 1px solid #393C41;
	padding: 12px 14px;
	text-align: left;
	line-height: 1.7;
	vertical-align: top;
}

.nlmTable thead th {
	background: #262B33;
	color: #fff;
	white-space: nowrap;
}

.nlmTable tbody th {
	background: #1A1F26;
	font-weight: 500;
}

.nlmTable tbody th small {
	display: block;
	font-size: 1.1rem;
	color: #949699;
	margin-top: 4px;
}

.nlmTable__n {
	color: #949699;
	font-family: "Figtree", sans-serif;
	white-space: nowrap;
}

/* ------------------------------------------------------------------ */
/* 独自調査ブロック                                                     */
/* ------------------------------------------------------------------ */

.nlmResearch {
	border: 1px solid #00D7C8;
	padding: 26px 28px;
	margin: 0 0 40px;
	background: #161C22;
}

.nlmResearch__label {
	font-size: 1.3rem;
	color: #00D7C8;
	letter-spacing: 0.1em;
	margin: 0 0 16px;
}

.nlmResearch__dl {
	margin: 0 0 20px;
	font-size: 1.4rem;
}

.nlmResearch__dl > div {
	display: flex;
	flex-wrap: wrap;
	gap: 0 16px;
	padding: 8px 0;
	border-bottom: 1px solid #262B33;
}

.nlmResearch__dl dt {
	width: 110px;
	flex-shrink: 0;
	color: #949699;
}

.nlmResearch__dl dd {
	flex: 1 1 260px;
	margin: 0;
	line-height: 1.8;
}

.nlmResearch__note {
	font-size: 1.2rem;
	color: #949699;
	margin: 10px 0 0;
	line-height: 1.8;
}

.nlm-value {
	font-weight: 700;
}

.nlm-n {
	font-size: 0.85em;
	color: #949699;
}

.nlm-suppressed {
	color: #949699;
	font-size: 0.9em;
	border-bottom: 1px dotted #55585D;
	cursor: help;
}

/* ショートコード [nl_metric] */

.nlm-metric {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	padding: 1px 8px;
	background: #1A1F26;
	border-bottom: 2px solid #00D7C8;
	cursor: help;
}

.nlm-metric__value {
	color: #00D7C8;
	font-size: 1.1em;
}

.nlm-metric__meta {
	font-size: 0.78em;
	color: #949699;
}

/* ショートコード [nl_chart] */

.nlmChart {
	margin: 0 0 2em;
	padding: 24px;
	background: #1A1F26;
	border: 1px solid #393C41;
}

.nlmChart__ttl {
	font-size: 1.5rem;
	margin: 0 0 18px;
	color: #fff;
}

.nlmChart__row {
	display: grid;
	grid-template-columns: 140px 1fr 110px;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
	font-size: 1.3rem;
}

.nlmChart__label {
	color: #D1D2D3;
	line-height: 1.4;
}

.nlmChart__barwrap {
	display: block;
	background: #262B33;
	height: 18px;
}

.nlmChart__bar {
	display: block;
	height: 100%;
	background: #00D7C8;
}

.nlmChart__value {
	text-align: right;
	color: #fff;
	font-family: "Figtree", sans-serif;
}

.nlmChart__value small {
	display: block;
	font-size: 1.0rem;
	color: #949699;
}

.nlmChart__note,
.nlmChart__source {
	font-size: 1.2rem;
	color: #949699;
	margin: 14px 0 0;
	line-height: 1.8;
}

/* ------------------------------------------------------------------ */
/* 比較表ブロック                                                       */
/* ------------------------------------------------------------------ */

.nlmCompare {
	margin: 50px 0;
}

.nlmCompare__ttl {
	font-size: 2.0rem;
	margin: 0 0 18px;
	padding-left: 12px;
	border-left: 4px solid #00D7C8;
	font-weight: 400;
}

.nlmCompare__criteria {
	background: #1A1F26;
	padding: 18px 22px;
	margin: 0 0 20px;
	font-size: 1.4rem;
	line-height: 1.9;
	color: #D1D2D3;
}

.nlmCompare__criteriaTtl {
	color: #00D7C8;
	font-size: 1.3rem;
	margin: 0 0 8px;
}

.nlmCompare__notes {
	list-style: none;
	padding: 0;
	margin: 14px 0 0;
	font-size: 1.2rem;
	color: #949699;
	line-height: 1.9;
}

.nlmCompare__notes li::before {
	content: "※ ";
}

/* ------------------------------------------------------------------ */
/* 出典・執筆者                                                         */
/* ------------------------------------------------------------------ */

.nlmSources {
	margin: 50px 0 40px;
	padding: 24px 26px;
	background: #1A1F26;
	border-top: 2px solid #00D7C8;
}

.nlmSources__ttl {
	font-size: 1.5rem;
	margin: 0 0 14px;
	font-weight: 500;
}

.nlmSources__list {
	margin: 0;
	padding-left: 1.4em;
	font-size: 1.3rem;
	line-height: 1.9;
	color: #D1D2D3;
}

.nlmSources__item {
	margin-bottom: 8px;
	word-break: break-all;
}

.nlmSources__item a {
	color: #00D7C8;
	text-decoration: underline;
}

.nlmSources__date {
	color: #949699;
	font-size: 0.9em;
}

.nlmAuthor {
	border: 1px solid #393C41;
	padding: 22px 26px;
	margin: 0 0 40px;
}

.nlmAuthor__label {
	font-size: 1.2rem;
	color: #949699;
	margin: 0 0 8px;
}

.nlmAuthor__name {
	font-size: 1.6rem;
	margin: 0 0 4px;
}

.nlmAuthor__role {
	font-size: 1.3rem;
	color: #B9B9B9;
	margin: 0;
	line-height: 1.8;
}

/* ------------------------------------------------------------------ */
/* CTA                                                                  */
/* ------------------------------------------------------------------ */

.nlmCta--inline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	background: linear-gradient(90deg, #003A42 0%, #006D7B 100%);
	padding: 24px 28px;
	margin: 2.5em 0;
}

.nlmCta__ttl {
	font-size: 1.7rem;
	line-height: 1.5;
	margin: 0 0 6px;
	color: #fff;
}

.nlmCta__lead {
	font-size: 1.3rem;
	color: #DBEFEC;
	margin: 0;
	line-height: 1.7;
}

.nlmCta__btn {
	display: inline-block;
	flex-shrink: 0;
	padding: 12px 32px;
	background: #00D7C8;
	color: #14181E;
	font-size: 1.4rem;
	text-decoration: none;
	transition: opacity 0.2s;
}

.nlmCta__btn:hover {
	opacity: 0.85;
}

.nlmCtaFooter {
	margin-top: 100px;
}

/* スマホ追従CTA */

.nlmSticky {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 90;
	display: none;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	background: rgba(20, 24, 30, 0.96);
	border-top: 1px solid #00D7C8;
}

.nlmSticky__text {
	flex: 1;
	font-size: 1.2rem;
	color: #fff;
	margin: 0;
	line-height: 1.5;
}

.nlmSticky__btn {
	flex-shrink: 0;
	padding: 10px 18px;
	background: #00D7C8;
	color: #14181E;
	font-size: 1.3rem;
	text-decoration: none;
}

.nlmSticky__close {
	flex-shrink: 0;
	background: none;
	border: none;
	color: #949699;
	font-size: 1.8rem;
	line-height: 1;
	padding: 4px 6px;
	cursor: pointer;
}

/* ------------------------------------------------------------------ */
/* レスポンシブ                                                         */
/* ------------------------------------------------------------------ */

@media screen and (max-width: 1024px) {
	.nlmCats {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media screen and (max-width: 767px) {
	.nlmGrid--3 {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.nlmCats {
		grid-template-columns: repeat(2, 1fr);
	}

	.nlmHero__catch {
		font-size: 2.4rem;
	}

	.nlmArticle__ttl {
		font-size: 2.2rem;
	}

	.nlmArticle__body {
		font-size: 1.5rem;
	}

	.nlmArticle__body h2 {
		font-size: 1.9rem;
	}

	.nlmArticle__body h3 {
		font-size: 1.7rem;
	}

	.nlmSection {
		margin-bottom: 60px;
	}

	.nlmCta--inline {
		flex-direction: column;
		align-items: stretch;
		text-align: center;
	}

	.nlmCta__btn {
		text-align: center;
	}

	.nlmChart__row {
		grid-template-columns: 100px 1fr 88px;
		font-size: 1.2rem;
	}

	.nlmResearch__dl dt {
		width: 100%;
	}

	/* 追従CTAはスマホのみ */
	.nlmSticky.is-visible {
		display: flex;
	}

	/* 追従CTAの下に本文が隠れないように */
	body.nlm-sticky-on {
		padding-bottom: 64px;
	}
}

/* ------------------------------------------------------------------ */
/* よくある質問                                                          */
/* ------------------------------------------------------------------ */

.nlmFaq {
	margin: 56px 0 0;
}

.nlmFaq__ttl {
	font-size: 2.1rem;
	font-weight: 400;
	color: #fff;
	letter-spacing: 0.08em;
	margin: 0 0 20px;
	padding-left: 14px;
	border-left: 4px solid #00D7C8;
	line-height: 1.5;
}

.nlmFaq__item {
	border-bottom: 1px solid #2A313A;
	padding: 18px 0;
}

.nlmFaq__item:last-child {
	border-bottom: none;
}

.nlmFaq__q {
	font-size: 1.5rem;
	line-height: 1.8;
	color: #fff;
	margin: 0 0 8px;
}

.nlmFaq__q::before {
	content: 'Q. ';
	color: #00D7C8;
	font-weight: 700;
}

.nlmFaq__a {
	font-size: 1.4rem;
	line-height: 2;
	color: #D1D2D3;
	margin: 0;
}

.nlmFaq__a::before {
	content: 'A. ';
	color: #6C757D;
	font-weight: 700;
}

/* ------------------------------------------------------------------ */
/* 本文の表                                                             */
/* 横に長い表は本文の幅で潰さず、枠の中だけを横スクロールさせる。         */
/* ------------------------------------------------------------------ */

.nlmTableWrap {
	overflow-x: auto;
	margin: 0 0 28px;
	-webkit-overflow-scrolling: touch;
}

.nlmArticle__body table {
	width: 100%;
	min-width: 460px;
	border-collapse: collapse;
	font-size: 1.35rem;
	line-height: 1.7;
}

.nlmArticle__body th,
.nlmArticle__body td {
	border-bottom: 1px solid #2A313A;
	padding: 10px 12px;
	text-align: left;
	white-space: nowrap;
}

.nlmArticle__body th {
	color: #00D7C8;
	font-weight: 400;
	letter-spacing: 0.06em;
	border-bottom: 1px solid #00D7C8;
}

.nlmArticle__body td {
	color: #D1D2D3;
}

.nlmArticle__body td:first-child {
	color: #fff;
}

.nlmArticle__body tbody tr:last-child td {
	border-bottom: none;
}

/* ------------------------------------------------------------------ */
/* グラフ                                                              */
/* 外部ライブラリなし。SVGをそのまま埋め込む。                            */
/* ------------------------------------------------------------------ */

.nlmChart {
	margin: 0 0 20px;
	padding: 0;
}

.nlmChart__cap {
	font-size: 1.3rem;
	color: #B9B9B9;
	letter-spacing: 0.04em;
	margin: 0 0 10px;
	line-height: 1.6;
}

.nlmChart__svg {
	display: block;
	width: 100%;
	height: auto;
	font-family: inherit;
}


/* ------------------------------------------------------------------ */
/* 営業データベース（指標ページ）                                        */
/* 配色・余白は既存テーマに合わせる。背景 #14181E ／ アクセント #00D7C8    */
/* ------------------------------------------------------------------ */

.nlmDbLead {
	font-size: 1.5rem;
	line-height: 2;
	color: #B9B9B9;
	margin: 0 0 40px;
}

.nlmDbGrid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}

.nlmDbCard {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 20px 18px;
	border: 1px solid #393C41;
	border-radius: 6px;
	background-color: #161B22;
	color: #fff;
	text-decoration: none;
	transition: border-color 0.3s, background-color 0.3s;
}

.nlmDbCard:hover {
	border-color: #00D7C8;
	background-color: #1A1F26;
}

.nlmDbCard__code {
	display: block;
	font-size: 1.1rem;
	letter-spacing: 0.06em;
	color: #6F7680;
}

.nlmDbCard__name {
	display: block;
	font-size: 1.5rem;
	letter-spacing: 0.04em;
}

.nlmDbCard__value {
	display: block;
	font-size: 3.2rem;
	line-height: 1.2;
	color: #00D7C8;
	letter-spacing: 0.02em;
}

.nlmDbCard__n {
	display: block;
	font-size: 1.2rem;
	color: #B9B9B9;
}

.nlmDbCard__axes {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 6px;
}

.nlmDbCard__axis {
	display: inline-block;
	font-size: 1.1rem;
	color: #B9B9B9;
	border: 1px solid #393C41;
	border-radius: 3px;
	padding: 2px 8px;
}

/* 全体値・定義 */

.nlmFacts {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border: 1px solid #393C41;
	border-radius: 6px;
	overflow: hidden;
}

.nlmFact {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 20px 18px;
	border-right: 1px solid #393C41;
	background-color: #161B22;
}

.nlmFact:last-child {
	border-right: none;
}

.nlmFact__k {
	display: block;
	font-size: 1.2rem;
	color: #6F7680;
	letter-spacing: 0.06em;
}

.nlmFact__v {
	display: block;
	font-size: 3.2rem;
	line-height: 1.1;
	color: #00D7C8;
}

.nlmFact__note {
	display: block;
	font-size: 1.3rem;
	line-height: 1.7;
	color: #B9B9B9;
}

.nlmDbCi,
.nlmDbPeriod {
	font-size: 1.3rem;
	color: #B9B9B9;
	margin: 14px 0 0;
}

/* 軸の切り替え */

.nlmAxisNav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 24px;
}

.nlmAxisNav__item {
	display: inline-block;
	padding: 8px 18px;
	border: 1px solid #393C41;
	border-radius: 999px;
	color: #fff;
	font-size: 1.3rem;
	text-decoration: none;
	transition: border-color 0.3s, background-color 0.3s, color 0.3s;
}

.nlmAxisNav__item:hover {
	border-color: #00D7C8;
}

.nlmAxisNav__item.is-on {
	background-color: #00D7C8;
	border-color: #00D7C8;
	color: #14181E;
}

/* 表 */

.nlmDbTableWrap {
	overflow-x: auto;
}

.nlmDbTable {
	width: 100%;
	border-collapse: collapse;
	font-size: 1.4rem;
}

.nlmDbTable th,
.nlmDbTable td {
	padding: 12px 14px;
	border-bottom: 1px solid #262B33;
	text-align: left;
	font-weight: 400;
	white-space: nowrap;
}

.nlmDbTable thead th {
	font-size: 1.2rem;
	color: #6F7680;
	letter-spacing: 0.06em;
	border-bottom: 1px solid #393C41;
}

.nlmDbTable__v {
	color: #00D7C8;
}

.nlmDbTable__n {
	color: #B9B9B9;
}

.nlmDbTable__bar {
	width: 40%;
	min-width: 160px;
}

.nlmDbBar {
	display: block;
	width: 100%;
	height: 8px;
	border-radius: 999px;
	background-color: #262B33;
}

.nlmDbBar__fill {
	display: block;
	height: 100%;
	border-radius: 999px;
	background-color: #00D7C8;
}

.nlmDbNote,
.nlmDbDef {
	font-size: 1.3rem;
	line-height: 1.9;
	color: #B9B9B9;
	margin: 16px 0 0;
}

/* 出典・非公開の説明 */

.nlmNoteGrid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.nlmNote {
	padding: 20px 18px;
	border: 1px solid #393C41;
	border-radius: 6px;
	background-color: #161B22;
	font-size: 1.3rem;
	line-height: 1.9;
	color: #B9B9B9;
}

.nlmNote__ttl {
	font-size: 1.4rem;
	color: #fff;
	margin: 0 0 8px;
}

.nlmNote--ok {
	border-color: #1F6F68;
}

.nlmNote--ng {
	border-color: #6F4A1F;
}

@media screen and (max-width: 1024px) {

	.nlmDbGrid,
	.nlmFacts,
	.nlmNoteGrid {
		grid-template-columns: repeat(2, 1fr);
	}

	.nlmFact {
		border-bottom: 1px solid #393C41;
	}
}

@media screen and (max-width: 767px) {

	.nlmDbGrid,
	.nlmFacts,
	.nlmNoteGrid {
		grid-template-columns: 1fr;
	}

	.nlmFact {
		border-right: none;
	}

	.nlmDbCard__value,
	.nlmFact__v {
		font-size: 2.8rem;
	}

	.nlmDbTable {
		font-size: 1.3rem;
	}

	.nlmDbTable__bar {
		display: none;
	}
}


/* ------------------------------------------------------------------ */
/* 診断ツール・ターゲット診断・準備中の表示                               */
/* ------------------------------------------------------------------ */

.nlmSoonBar {
	display: inline-block;
	margin: 0 0 24px;
	padding: 6px 16px;
	border: 1px solid #6F4A1F;
	border-radius: 999px;
	background-color: #1C1811;
	color: #E0B060;
	font-size: 1.2rem;
	letter-spacing: 0.04em;
}

.nlmDbCount {
	font-size: 1.4rem;
	color: #B9B9B9;
	margin: 0 0 40px;
}

.nlmDbCount strong {
	color: #00D7C8;
	font-weight: 400;
	font-size: 1.8rem;
	padding: 0 2px;
}

.nlmDbCard__value--none {
	color: #fff;
	font-size: 2.2rem;
}

.nlmDbTable--cross th,
.nlmDbTable--cross td {
	padding: 10px 12px;
	font-size: 1.3rem;
}

.nlmDbTable--cross td small {
	display: block;
	font-size: 1.1rem;
	color: #6F7680;
}

.nlmDbTable__empty {
	color: #4A5058;
}

/* 診断フォーム */

.nlmDg__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin: 0 0 16px;
}

.nlmDg__grid--4 {
	grid-template-columns: repeat(4, 1fr);
}

.nlmDg__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.nlmDg__label {
	font-size: 1.2rem;
	color: #B9B9B9;
	letter-spacing: 0.04em;
}

.nlmDg__input {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #393C41;
	border-radius: 4px;
	background-color: #161B22;
	color: #fff;
	font-size: 1.5rem;
	font-family: inherit;
	box-sizing: border-box;
}

.nlmDg__input:focus {
	outline: none;
	border-color: #00D7C8;
}

.nlmDg__hint {
	font-size: 1.2rem;
	color: #6F7680;
	margin: 0 0 20px;
}

.nlmDg__btn {
	display: inline-block;
	padding: 14px 40px;
	border: none;
	border-radius: 999px;
	background-color: #00D7C8;
	color: #14181E;
	font-size: 1.5rem;
	font-family: inherit;
	letter-spacing: 0.06em;
	cursor: pointer;
	transition: opacity 0.2s;
}

.nlmDg__btn:hover {
	opacity: 0.85;
}

.nlmDg__result {
	margin-top: 40px;
}

.nlmDg__table {
	margin-bottom: 16px;
}

.nlmDg__table tr.is-weak th,
.nlmDg__table tr.is-weak td {
	background-color: #1C1811;
}

.nlmDg__up {
	color: #00D7C8;
}

.nlmDg__down {
	color: #E0B060;
}

.nlmDg__basis,
.nlmDg__caution {
	font-size: 1.2rem;
	color: #6F7680;
	margin: 0 0 10px;
}

.nlmDg__advice {
	margin: 20px 0;
	padding: 20px 18px;
	border: 1px solid #1F6F68;
	border-radius: 6px;
	background-color: #101A19;
}

.nlmDg__adviceTtl {
	font-size: 1.6rem;
	color: #fff;
	margin: 0 0 8px;
}

.nlmDg__advice p {
	font-size: 1.4rem;
	line-height: 1.9;
	color: #B9B9B9;
	margin: 0;
}

.nlmDg__err {
	color: #E0B060;
	font-size: 1.4rem;
}

/* ターゲット診断 */

.nlmTargetGrid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.nlmTarget {
	padding: 20px 18px;
	border: 1px solid #393C41;
	border-radius: 6px;
	background-color: #161B22;
}

.nlmTarget__ttl {
	font-size: 1.5rem;
	color: #fff;
	margin: 0 0 14px;
}

.nlmTarget__list {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.nlmTarget__item {
	display: grid;
	grid-template-columns: 20px 1fr auto;
	grid-template-areas:
		"rank name value"
		"rank bar  n";
	gap: 2px 8px;
	align-items: center;
	padding: 8px 0;
	border-bottom: 1px solid #262B33;
}

.nlmTarget__rank {
	grid-area: rank;
	font-size: 1.2rem;
	color: #6F7680;
	text-align: center;
}

.nlmTarget__name {
	grid-area: name;
	font-size: 1.3rem;
	color: #fff;
}

.nlmTarget__bar {
	grid-area: bar;
	display: block;
}

.nlmTarget__v {
	grid-area: value;
	font-size: 1.3rem;
	color: #00D7C8;
	white-space: nowrap;
}

.nlmTarget__n {
	grid-area: n;
	font-size: 1.1rem;
	color: #6F7680;
	white-space: nowrap;
	text-align: right;
}

@media screen and (max-width: 1024px) {

	.nlmTargetGrid {
		grid-template-columns: 1fr;
	}

	.nlmDg__grid--4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media screen and (max-width: 767px) {

	.nlmDg__grid,
	.nlmDg__grid--4 {
		grid-template-columns: 1fr;
	}
}


/* ------------------------------------------------------------------ */
/* サービスページ（/inside-sales/）                                      */
/* AIにも人にも読める形にするための、事実の表と比較表とFAQ                 */
/* ------------------------------------------------------------------ */

.nlmService__lead {
	font-size: 2.2rem;
	line-height: 1.8;
	color: #fff;
	margin: 0 0 20px;
}

.nlmService__summary {
	font-size: 1.5rem;
	line-height: 2;
	color: #D1D2D3;
	margin: 0 0 16px;
}

.nlmService__list {
	margin: 0;
	padding: 0 0 0 1.2em;
	font-size: 1.4rem;
	line-height: 2;
	color: #D1D2D3;
}

.nlmService__list--check {
	list-style: none;
	padding-left: 0;
}

.nlmService__list--check li {
	position: relative;
	padding-left: 24px;
}

.nlmService__list--check li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: #00D7C8;
}

.nlmFactTable th,
.nlmFactTable td {
	white-space: normal;
	vertical-align: top;
}

.nlmFactTable th {
	width: 28%;
	color: #B9B9B9;
	font-size: 1.3rem;
}

.nlmCompareTable th,
.nlmCompareTable td {
	white-space: normal;
	vertical-align: top;
	font-size: 1.3rem;
	line-height: 1.9;
}

.nlmCompareTable__us {
	color: #fff;
	background-color: #101A19;
}

/* FAQ を dl で書いたとき（構造化データと同じ並びにするため dt/dd を使う） */

.nlmFaq dt.nlmFaq__q {
	margin: 18px 0 8px;
}

.nlmFaq dd.nlmFaq__a {
	margin: 0 0 18px;
	padding-bottom: 18px;
	border-bottom: 1px solid #2A313A;
}

.nlmFaq dd.nlmFaq__a:last-child {
	border-bottom: none;
}

@media screen and (max-width: 767px) {

	.nlmService__lead {
		font-size: 1.8rem;
	}

	.nlmFactTable th {
		width: 34%;
	}
}


/* ------------------------------------------------------------------ */
/* サービスページの追加パーツ（定義ブロック・手順・CTA）                   */
/* ------------------------------------------------------------------ */

.nlmDefine {
	margin: 28px 0 0;
	padding: 20px 22px;
	border: 1px solid #1F6F68;
	border-radius: 6px;
	background-color: #101A19;
}

.nlmDefine__q {
	font-size: 1.5rem;
	color: #00D7C8;
	margin: 0 0 8px;
}

.nlmDefine__q::before {
	content: "Q. ";
}

.nlmDefine__a {
	font-size: 1.4rem;
	line-height: 2;
	color: #fff;
	margin: 0;
}

.nlmSteps {
	margin: 0;
	padding: 0 0 0 1.4em;
	font-size: 1.4rem;
	line-height: 2;
	color: #D1D2D3;
}

.nlmSteps__item {
	padding: 6px 0;
}

.nlmSteps__item::marker {
	color: #00D7C8;
}

.nlmServiceCta {
	padding: 28px 24px;
	border: 1px solid #393C41;
	border-radius: 6px;
	background-color: #161B22;
}

.nlmServiceCta .nlmSection__ttl {
	margin-bottom: 12px;
}


.nlmServiceLinks {
	padding: 24px 22px;
	border: 1px solid #393C41;
	border-radius: 6px;
	background-color: #161B22;
}

.nlmServiceLinks__lead {
	font-size: 1.4rem;
	line-height: 2;
	color: #D1D2D3;
	margin: 0 0 14px;
}

/* ------------------------------------------------------------------ */
/* 営業ラボの冒頭                                                       */
/* ------------------------------------------------------------------ */

/* テーマの固定ヘッダーは半透明で、スクロールすると下の見出しが
   ロゴに重なって読めなくなる。このCSSは営業ラボの画面でしか読まれないので、
   ここだけ不透明にする。 */
.header {
	background-color: #14181E;
}

.nlmFv__lead {
	margin-top: 24px;
	max-width: 620px;
	font-size: 1.5rem;
	line-height: 2;
	color: #C9CCD1;
	position: relative;
	z-index: 1;
}

.nlmFv__name {
	margin-top: 18px;
	font-size: 1.3rem;
	letter-spacing: 0.08em;
	color: #00D7C8;
	position: relative;
	z-index: 1;
}

.nlmHero--search {
	margin-bottom: 64px;
}

@media screen and (max-width: 767px) {
	.nlmFv__lead {
		font-size: 1.35rem;
		margin-top: 18px;
	}
}
