@charset "UTF-8";

/* 見出し明朝：Shippori Mincho(600) を JIS第1+第2水準にサブセットした自前ホスト。外部Webフォント不使用・表示速度最優先 */
@font-face {
	font-family: 'Shippori Mincho';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('assets/fonts/ShipporiMincho-SemiBold.subset.woff2') format('woff2');
}
/* =====================================================================
 * style-ai.css : AIメディア「AI経営手帖」専用CSS（C-41）
 *
 *   - スコープ：.ai-page に限定（/ai/ 配下のみ条件付き enqueue）
 *   - 本ファイルは Step 3b の段階では「骨組みのみ」
 *   - 本格デザイン（テラコッタ C-17 アニメ・グラデ・レスポンシブ）は Step 3f で投入
 *   - 既存 style.css は無改変
 *
 *   命名規則：AIメディア専用要素は ns-ai- プレフィクス（既存 ns- との衝突回避）
 *   禁止事項：::before / ::after の文字 content（→ 等）は使用禁止（CLAUDE.md 4-4）
 *             border-left 装飾禁止（同上）
 * ===================================================================== */


/* ---------- カラー変数（C-17 テラコッタ系） ----------
 *  SWELL 親テーマは body_class() の出力を <body> ではなく <div id="body_wrap"> に出すため、
 *  セレクタは body.ai-page ではなく .ai-page を採用（独自 page-ai.php 配置後の
 *  <body class="ai-page"> ケースも同一セレクタで網羅できる）。
 */
.ai-page {
	--nsai-primary:   #C96442;
	--nsai-secondary: #1F2937;
	--nsai-accent:    #F5E6D3;
	--nsai-bg:        #FAFAF7;
	--nsai-body:      #2D2A26;
	--nsai-border:    rgba(45, 42, 38, 0.12);
	--nsai-muted:     rgba(45, 42, 38, 0.6);

	/* フォント方針：見出し=明朝(自前ホスト Shippori Mincho)／本文=端末標準ゴシック(外部フォント不使用・表示速度最優先) */
	--nsai-font-serif: 'Shippori Mincho', 'Yu Mincho', 'YuMincho', 'Hiragino Mincho ProN', serif;
	--nsai-font-sans:  -apple-system, BlinkMacSystemFont, 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif;
	--nsai-font-mono:  'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;

	/* カテゴリ色（C-28 の4カテゴリ。テラコッタ系統で統一しつつ識別性確保） */
	--nsai-cat-news:       #C96442;  /* テラコッタ Primary・速報のホットさ */
	--nsai-cat-practice:   #1F2937;  /* Secondary・嶋崎本丸の硬派さ */
	--nsai-cat-industries: #8C5A3C;  /* ブロンズ系・多業種の中性 */
	--nsai-cat-blog:       #5E6B52;  /* くすみグリーン・スタッフ柔らかさ */

	background: var(--nsai-bg);
	color:      var(--nsai-body);
	font-family: var(--nsai-font-sans);
	font-feature-settings: "palt" 1;
}

/* AI ページ全域：見出しは明朝、本文はサンセリフ */
.ai-page h1, .ai-page h2, .ai-page h3, .ai-page h4 {
	font-family: var(--nsai-font-serif);
	font-feature-settings: "palt" 1;
}


/* ---------- ヘッダー骨組み ---------- */
.ai-page .ns-ai-header {
	background: #fff;
	border-bottom: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 16px 24px;
}
.ai-page .ns-ai-header__brand {
	text-decoration: none;
	color: var(--nsai-secondary);
	display: inline-flex;
	align-items: center;
}
.ai-page .ns-ai-header__logo-img {
	height: 40px;
	width: auto;
	display: block;
}
.ai-page .ns-ai-header__logo-main {
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.04em;
}
.ai-page .ns-ai-nav__list {
	display: flex;
	gap: 24px;
	list-style: none;
	padding: 0;
	margin: 0;
}
.ai-page .ns-ai-nav__link {
	text-decoration: none;
	color: var(--nsai-body);
	font-size: 14px;
}

.ai-page .ns-ai-header__actions {
	display: flex;
	gap: 8px;
	align-items: center;
}
.ai-page .ns-ai-header__search,
.ai-page .ns-ai-header__hamburger {
	background: transparent;
	border: 1px solid var(--nsai-border);
	border-radius: 8px;
	width: 40px;
	height: 40px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--nsai-body);
	padding: 0;
}
.ai-page .ns-ai-header__icon {
	width: 18px;
	height: 18px;
}
.ai-page .ns-ai-header__hamburger {
	display: none;
	flex-direction: column;
	gap: 4px;
}
.ai-page .ns-ai-header__hamburger-bar {
	display: block;
	width: 18px;
	height: 2px;
	background: var(--nsai-body);
}
.ai-page .ns-ai-header__hamburger[aria-expanded="true"] .ns-ai-header__hamburger-bar:nth-child(2) {
	opacity: 0;
}

.ai-page .ns-ai-mobile {
	padding: 16px 24px;
	border-top: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-mobile__list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.ai-page .ns-ai-mobile__back {
	display: inline-block;
	margin-top: 12px;
	font-size: 13px;
	color: var(--nsai-muted);
}


/* ---------- パンくず骨組み ---------- */
.ai-page .ns-ai-breadcrumb {
	max-width: 1120px;
	margin: 0 auto;
	padding: 8px 18px;
	font-size: 12px;
	color: var(--nsai-muted);
}
.ai-page .ns-ai-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	padding: 0;
	margin: 0;
	gap: 4px;
}
.ai-page .ns-ai-breadcrumb__item {
	display: inline-flex;
	align-items: center;
}
.ai-page .ns-ai-breadcrumb__link {
	color: var(--nsai-muted);
	text-decoration: none;
}
.ai-page .ns-ai-breadcrumb__sep {
	/* CSS 三角矢印（文字 content 不使用 → CLAUDE.md 4-4 遵守） */
	display: inline-block;
	width: 6px;
	height: 6px;
	margin: 0 8px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
	opacity: 0.45;
}
.ai-page .ns-ai-breadcrumb__item.is-current .ns-ai-breadcrumb__name {
	color: var(--nsai-body);
}
/* 追従ヘッダーがスクロール状態のときはパンくずを隠して記事を読みやすく
   （JS: #ns-ai-header.is-scrolled。ヘッダー実高が縮むぶん追従目次オフセットも自動で詰まる） */
.ai-page .ns-ai-header.is-scrolled .ns-ai-breadcrumb {
	display: none;
}


/* ---------- フッター骨組み ---------- */
.ai-page .ns-ai-footer {
	background: var(--nsai-secondary);
	color: #fff;
	margin-top: 0;
}
.ai-page .ns-ai-footer__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 48px 24px;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 40px;
}
.ai-page .ns-ai-footer__logo {
	text-decoration: none;
	color: #fff;
	font-weight: 700;
	font-size: 18px;
	display: inline-block;
}
.ai-page .ns-ai-footer__logo-img {
	/* 白文字版 SVG（logo_main_transparent_white.svg）。フッター黒背景に対応。
	   SVG viewBox 344×69 = アスペクト 5:1 */
	height: clamp(40px, 4vw, 48px);
	max-width: 240px;
	width: auto;
	display: block;
}
.ai-page .ns-ai-footer__catch {
	margin: 12px 0 4px;
	font-size: 15px;
}
.ai-page .ns-ai-footer__sub {
	margin: 0;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.7);
}
.ai-page .ns-ai-footer__nav-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.ai-page .ns-ai-footer__nav-list a {
	color: rgba(255, 255, 255, 0.85);
	text-decoration: none;
	font-size: 14px;
	display: inline-block;
	padding: 6px 0;
}
.ai-page .ns-ai-footer__operator-label {
	margin: 0;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.5);
	letter-spacing: 0.08em;
}
.ai-page .ns-ai-footer__operator-name {
	margin: 4px 0 12px;
	font-size: 15px;
}
.ai-page .ns-ai-footer__operator-link,
.ai-page .ns-ai-footer__back-link {
	color: var(--nsai-accent);
	text-decoration: none;
}
.ai-page .ns-ai-footer__text {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.7);
	margin: 0 0 12px;
}
.ai-page .ns-ai-footer__back {
	margin: 0;
}
.ai-page .ns-ai-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding: 16px 24px;
	text-align: center;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.55);
}
.ai-page .ns-ai-footer__copy {
	margin: 0;
}


/* ---------- レスポンシブ最低限 ---------- */
@media (max-width: 768px) {
	.ai-page .ns-ai-header__nav { display: none; }
	.ai-page .ns-ai-header__hamburger { display: inline-flex; }
	.ai-page .ns-ai-footer__inner { grid-template-columns: 1fr; }
}


/* ---------- [ns_ai_post_list] 最小整形（noside-ai-core プラグイン出力） ---------- */
.ai-page .ns-ai-post-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 24px;
}
.ai-page .ns-ai-post-list__item a {
	text-decoration: none;
	color: var(--nsai-body);
	display: block;
}
.ai-page .ns-ai-post-list__thumb {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	background: var(--nsai-border);
}
.ai-page .ns-ai-post-list__title {
	display: block;
	font-size: 15px;
	font-weight: 600;
	margin-top: 12px;
	line-height: 1.5;
}
.ai-page .ns-ai-post-list__date {
	display: block;
	margin-top: 4px;
	font-size: 12px;
	color: var(--nsai-muted);
}
.ai-page .ns-ai-empty {
	color: var(--nsai-muted);
	font-size: 14px;
	padding: 16px;
	text-align: center;
}


/* ---------- ページレイアウト最低限（Step 3c） ---------- */
.ai-page .l-mainContent.ns-ai-page {
	min-height: 60vh;
}
.ai-page .ns-ai-page__hero {
	background: linear-gradient(180deg, #fff 0%, var(--nsai-accent) 100%);
	padding: 64px 24px 48px;
	text-align: center;
}
.ai-page .ns-ai-page__hero-inner {
	max-width: 880px;
	margin: 0 auto;
}
.ai-page .ns-ai-page__hero-title {
	font-size: clamp(24px, 3.6vw, 36px);
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.4;
	margin: 0 0 12px;
	color: var(--nsai-secondary);
}
.ai-page .ns-ai-page__hero-sub {
	font-size: 15px;
	color: var(--nsai-muted);
	margin: 0;
	line-height: 1.8;
}
.ai-page .ns-ai-page__body {
	padding: 48px 24px 80px;
}
.ai-page .ns-ai-page__body-inner {
	max-width: 1200px;
	margin: 0 auto;
}


/* TODO: 本格デザイン（テラコッタグラデ・凝ったヘッダー・カード装飾・ホバー・
 *        アニメ・モバイルドロワー開閉・[ns_ai_search] スタイル）は Step 3f で投入 */


/* =====================================================================
 *  Step 3d : single-ns_ai.php 用スタイル
 *
 *   設計指針（memory: design-quality-bar 遵守）：
 *     - AI 感典型を排除：丸角バッジ・無意味な縦線・短く太い見出し下線・派手シャドウ全部禁止
 *     - 雑誌的：細い罫線 + 大きな余白 + 明朝見出し + 字間統制
 *     - SP も独立設計：1+2 非対称グリッドを SP でも維持、フォントサイズ階層を再設計
 * ===================================================================== */


/* ---------- カテゴリバッジ（4 カテゴリ × 大小2サイズ） ---------- */
.ai-page .ns-ai-cat-badge {
	display: inline-block;
	font-family: var(--nsai-font-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #fff;
	background: var(--nsai-secondary);
	padding: 5px 12px 4px;
	text-decoration: none;
	line-height: 1.4;
	/* border-radius は使わない（丸角バッジ＝AI感典型のため） */
}
.ai-page .ns-ai-cat-badge--lg {
	font-size: 12px;
	padding: 7px 16px 6px;
	letter-spacing: 0.2em;
}
.ai-page .ns-ai-cat-badge[data-slug="news"]       { background: var(--nsai-cat-news); }
.ai-page .ns-ai-cat-badge[data-slug="practice"]   { background: var(--nsai-cat-practice); }
.ai-page .ns-ai-cat-badge[data-slug="industries"] { background: var(--nsai-cat-industries); }
.ai-page .ns-ai-cat-badge[data-slug="blog"]       { background: var(--nsai-cat-blog); }

/* バッジ表示テキスト：日本語の場合は uppercase / letter-spacing を弱める（CJK は不要） */
.ai-page .ns-ai-cat-badge:lang(ja) {
	text-transform: none;
	letter-spacing: 0.1em;
}


/* ---------- 記事個別ページ：全体ラッパ ---------- */
.ai-page .ns-ai-single {
	padding: 0;
}


/* ---------- 記事ヘッダー（カテゴリ＋メタ・タイトル・リード） ----------
 *   article の max-width = 1120px。本文ブロックは 760px（ハイクラスメディア標準幅）。
 *   嶋崎方針（v5 修正 2026-05-21）：「PCで本文が広すぎると読みにくい」を反映、
 *   本文は 760px の可読幅に戻す。アイキャッチ・関連・人気は外枠 1120px のまま。
 *   サイドバーは記事枠の外（画面右端フローティング等）に別レイヤーで配置予定。
 *   ns-ai-single__cat-meta：カテゴリバッジ + メタ情報を 1 行に統合（嶋崎指示）。
 */
.ai-page .ns-ai-single__article {
	max-width: 1120px;
	margin: 0 auto;
	padding: 30px 18px 4px;
}
.ai-page .ns-ai-single__header {
	max-width: 760px;
	margin: 0 auto 24px;
}
.ai-page .ns-ai-single__cat-meta {
	display: flex;
	align-items: center;
	gap: clamp(10px, 1.8vw, 18px);
	flex-wrap: nowrap;
	min-width: 0;
	margin-bottom: 14px;
}
.ai-page .ns-ai-single__cat-meta .ns-ai-cat-badge {
	flex: 0 0 auto;
}
.ai-page .ns-ai-single__cat-meta .ns-ai-meta {
	display: flex;
	flex-wrap: nowrap;
	gap: clamp(10px, 1.6vw, 18px);
	min-width: 0;
	overflow: hidden;
}
.ai-page .ns-ai-single__title {
	font-family: var(--nsai-font-serif);
	font-size: clamp(22px, 3vw, 30px);
	font-weight: 600;
	line-height: 1.55;
	letter-spacing: 0;
	color: var(--nsai-secondary);
	margin: 0 0 18px;
}
.ai-page .ns-ai-single__lead {
	font-family: var(--nsai-font-sans);
	font-size: 15px;
	line-height: 1.95;
	color: rgba(45, 42, 38, 0.78);
	margin: 0;
	padding: 0;
	border: none;
}

/* v5.20.15: 編集リード（excerpt）内のインライン装飾。パイプライン側 generate_editorial_lead が
   NS_AI_LEAD_DECORATION=1 で <strong> / <span class="lead-red"> / <u> / <span class="lead-lg"> を
   限定出力し、single-ns_ai.php の wp_kses で許可済み。控えめな強調のみ想定。 */
.ai-page .ns-ai-single__lead strong,
.ai-page .ns-ai-single__lead b {
	font-weight: 700;
	color: rgba(45, 42, 38, 0.96);
}
.ai-page .ns-ai-single__lead .lead-red {
	font-weight: 700;
	color: #c8202e;
}
.ai-page .ns-ai-single__lead u {
	text-decoration: underline;
	text-underline-offset: 0.18em;
	text-decoration-thickness: 1.5px;
}
.ai-page .ns-ai-single__lead .lead-lg {
	font-size: 1.18em;
}

/* メタ行：カテゴリバッジ右側に 1 行で収まるコンパクト表記。
 *   端末サイズに応じて clamp() でフォント・gap を自動調整、常に 1 行表示を維持。
 */
.ai-page .ns-ai-meta {
	display: flex;
	flex-wrap: nowrap;
	gap: clamp(8px, 1.4vw, 14px);
	margin: 0;
	padding: 0;
	min-width: 0;
}
.ai-page .ns-ai-meta__pair {
	display: inline-flex;
	align-items: baseline;
	gap: clamp(4px, 0.7vw, 7px);
	flex: 0 0 auto;
}
.ai-page .ns-ai-meta__label {
	font-family: var(--nsai-font-sans);
	font-size: clamp(9px, 1.1vw, 10px);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--nsai-muted);
	margin: 0;
}
.ai-page .ns-ai-meta__value {
	font-family: var(--nsai-font-sans);
	font-size: clamp(11px, 1.3vw, 13px);
	color: var(--nsai-body);
	margin: 0;
	white-space: nowrap;
}
.ai-page .ns-ai-meta__value time {
	font-feature-settings: "tnum" 1;
	letter-spacing: 0.04em;
}


/* ---------- アイキャッチ ---------- */
.ai-page .ns-ai-single__eyecatch {
	max-width: 760px;
	margin: 24px auto 32px;
	padding: 0;
}
.ai-page .ns-ai-single__eyecatch img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 16 / 9;
	max-height: 428px;
	object-fit: cover;
	/* 嶋崎指示（v6）：画像幅とテキスト幅を完全に揃える（左右ラインを統一して違和感排除）。
	 * シャドウ・丸角なし：紙の写真版面のように直線で。 */
}


/* ---------- 本文タイポ（the_content） ----------
 *   max-width 760px（嶋崎指示・v5）：ハイクラスメディア標準幅
 */
.ai-page .ns-ai-single__body {
	max-width: 760px;
	margin: 0 auto;
	padding: 0 0 24px;
	font-family: var(--nsai-font-sans);
	font-size: 16px;
	line-height: 2.0;
	color: var(--nsai-body);
}
.ai-page .ns-ai-single__body > * + * {
	margin-top: 1.6em;
}
.ai-page .ns-ai-single__body h2 {
	font-family: var(--nsai-font-serif);
	font-size: 24px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.02em;
	color: var(--nsai-secondary);
	margin-top: 3.2em;
	margin-bottom: 0.8em;
	padding-top: 1.2em;
	border-top: 1px solid var(--nsai-border);
	/* 「短く太い下線」AI 感典型を避けるため、上側に細い罫線で章節境界を表現 */
}
/* 用語集 single 専用：短文の回遊ハブなので H2 区切りの余白を圧縮（記事/news/info は上の base 値を維持） */
.ai-page .ns-ai-single__body--glossary h2 {
	margin-top: 1.2em;
	margin-bottom: 0.3em;
	padding-top: 0.8em;
}
.ai-page .ns-ai-single__body h3 {
	font-family: var(--nsai-font-serif);
	font-size: 19px;
	font-weight: 600;
	line-height: 1.6;
	color: var(--nsai-secondary);
	margin-top: 2.4em;
	margin-bottom: 0.6em;
}
.ai-page .ns-ai-single__body p {
	margin: 0;
}
/* p/ul/ol の margin:0 リセット(詳細度 0,2,1)が owl(> * + *＝0,2,0)より強く本文直下の
 * 段落どうし・段落とリストの間隔が消えて詰まるため、直下の連続フロー要素にだけ
 * 段落間隔(1.6em)を補完(0,2,2で勝つ)。見出し・装飾枠の余白には影響させない。 */
.ai-page .ns-ai-single__body > p + p,
.ai-page .ns-ai-single__body > p + ul,
.ai-page .ns-ai-single__body > p + ol,
.ai-page .ns-ai-single__body > ul + p,
.ai-page .ns-ai-single__body > ol + p {
	margin-top: 1.6em;
}

/* リスト（SWELL 親テーマの .wp-block-list 等の独自スタイルを /ai/ 専用に上書き）
 *   SWELL_Rulebook L433「list-style: none を明示」の趣旨に従い、AI ページでは
 *   明示的にマーカー位置・サイズ・色を制御する。本文左端と揃え、過度なインデント
 *   や独自アイコンによる位置ズレを防ぐ。 */
.ai-page .ns-ai-single__body ul,
.ai-page .ns-ai-single__body ol,
.ai-page .ns-ai-single__body .wp-block-list {
	list-style-position: outside;
	padding-left: 1.4em;
	margin: 0;
	background: transparent;
	border: none;
}
.ai-page .ns-ai-single__body ul,
.ai-page .ns-ai-single__body ul.wp-block-list { list-style-type: disc; }
.ai-page .ns-ai-single__body ol,
.ai-page .ns-ai-single__body ol.wp-block-list { list-style-type: decimal; }
.ai-page .ns-ai-single__body ul ul { list-style-type: circle; }
.ai-page .ns-ai-single__body ol ol { list-style-type: lower-alpha; }
.ai-page .ns-ai-single__body li {
	margin: 0;
	padding: 0;
	background: none;
	font-size: inherit;
	line-height: inherit;
}
.ai-page .ns-ai-single__body li::marker {
	color: var(--nsai-primary);
	font-size: 0.9em;
}
.ai-page .ns-ai-single__body li + li {
	margin-top: 0.5em;
}
.ai-page .ns-ai-single__body li > p:first-child { margin: 0; }
.ai-page .ns-ai-single__body li > ul,
.ai-page .ns-ai-single__body li > ol {
	margin-top: 0.5em;
}
.ai-page .ns-ai-single__body a {
	color: var(--nsai-primary);
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-thickness: 1px;
}
.ai-page .ns-ai-single__body blockquote {
	margin: 2em 0;
	padding: 8px 0 8px 28px;
	border-left: 2px solid var(--nsai-primary);
	font-family: var(--nsai-font-serif);
	font-size: 17px;
	line-height: 1.9;
	color: rgba(45, 42, 38, 0.85);
	/* ※引用用途のみ border-left を許容（装飾ではなく blockquote 意味論） */
}
.ai-page .ns-ai-single__body img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 1.6em auto;
}
/* 本文画像のキャプション(figcaption)を画像の直下に密着させる(本文と紛れない様に)。
 * 従来は上の __body img の margin:1.6em が画像とキャプションを引き離していた。
 * 画像ユニットの上下余白は figure 側へ移し、img の余白は 0、キャプションは画像直下+控えめ表示。 */
.ai-page .ns-ai-single__body figure.wp-block-image {
	margin: 1.6em auto;
	text-align: center;
}
.ai-page .ns-ai-single__body figure.wp-block-image img {
	margin: 0 auto;
}
.ai-page .ns-ai-single__body figure.wp-block-image figcaption,
.ai-page .ns-ai-single__body figure.wp-block-image .wp-element-caption {
	margin-top: 6px;
	margin-bottom: 0;
	font-size: 13px;
	line-height: 1.6;
	color: var(--nsai-muted);
	text-align: center;
}


/* ---------- 記事本文 装飾枠（ns-ai-box）：種別ボックス ----------
 *  本文中の「要点・メリット・注意・警告・回避・メモ・補足」を出し分ける独自枠。
 *  左アイコンを置かず全幅で本文を狭めない。縦棒/border-left・装飾罫線・装飾アイコン・
 *  多色callout・赤ベタ塗りは使わず、terracotta/slate の2色とクリーム/白の地、
 *  角タグのラベルと「構造・質感の差」だけで種別を表す。
 */
.ai-page .ns-ai-single__body .ns-ai-box {
	box-sizing: border-box;
	max-width: 100%;
	margin: .85em 0;
	padding: .9em 1.15em;
	background: #fff;
	border: 1px solid var(--nsai-border);
	border-radius: 7px;
	overflow-wrap: break-word;
	word-break: normal;
}
/* 本文より浮かないよう直後の要素との余白も詰める */
.ai-page .ns-ai-single__body .ns-ai-box + * { margin-top: .85em; }
/* SWELL wp:group の内側コンテナ余白を打ち消し（枠は外側 div が持つ） */
.ai-page .ns-ai-single__body .ns-ai-box > .wp-block-group__inner-container { padding: 0; margin: 0; }
.ai-page .ns-ai-single__body .ns-ai-box > .wp-block-group__inner-container > :first-child { margin-top: 0; }
.ai-page .ns-ai-single__body .ns-ai-box > .wp-block-group__inner-container > :last-child { margin-bottom: 0; }

.ai-page .ns-ai-single__body .ns-ai-box__head {
	margin: 0 0 .35em;
	font-family: var(--nsai-font-serif);
	font-size: 16.5px;
	font-weight: 600;
	line-height: 1.55;
	color: var(--nsai-secondary);
}
/* ラベルは HTML 実テキスト（::before の文字content は使わない）。角ばったタグ */
.ai-page .ns-ai-single__body .ns-ai-box__label {
	display: inline-block;
	margin-right: .6em;
	padding: .14em .55em;
	font-family: var(--nsai-font-sans);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1.5;
	color: #fff;
	background: var(--nsai-secondary);
	border-radius: 3px;
	white-space: nowrap;
	vertical-align: .14em;
}
.ai-page .ns-ai-single__body .ns-ai-box__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.85;
	color: var(--nsai-body);
}
.ai-page .ns-ai-single__body .ns-ai-box__text + .ns-ai-box__text { margin-top: .7em; }
/* 枠内の強調は terracotta で締める（赤文字は使わない） */
.ai-page .ns-ai-single__body .ns-ai-box__text strong { color: var(--nsai-primary); font-weight: 700; }
/* 見出しなし（run-in ラベル）の短文ノート用 */
.ai-page .ns-ai-single__body .ns-ai-box__text .ns-ai-box__label { margin-right: .55em; vertical-align: .12em; }

/* 要点・結論：クリーム地の見出し付きパネル（見出し下に全幅の中立ヘアライン） */
.ai-page .ns-ai-single__body .ns-ai-box--point {
	background: var(--nsai-accent);
	border-color: rgba(201, 100, 66, .18);
	padding-top: .8em;
}
.ai-page .ns-ai-single__body .ns-ai-box--point .ns-ai-box__label { background: var(--nsai-primary); }
.ai-page .ns-ai-single__body .ns-ai-box--point .ns-ai-box__head {
	font-size: 17.5px;
	padding-bottom: .45em;
	margin-bottom: .5em;
	border-bottom: 1px solid var(--nsai-border);
}

/* メリット・推奨：クリーム地の角タグ枠 */
.ai-page .ns-ai-single__body .ns-ai-box--good {
	background: var(--nsai-accent);
	border-color: rgba(201, 100, 66, .18);
}
.ai-page .ns-ai-single__body .ns-ai-box--good .ns-ai-box__label { background: var(--nsai-secondary); }

/* 注意・回避：淡い暖色の角タグ枠 */
.ai-page .ns-ai-single__body .ns-ai-box--attention,
.ai-page .ns-ai-single__body .ns-ai-box--batsu {
	background: rgba(201, 100, 66, .055);
	border-color: rgba(201, 100, 66, .2);
}
.ai-page .ns-ai-single__body .ns-ai-box--attention .ns-ai-box__label { background: var(--nsai-primary); }
.ai-page .ns-ai-single__body .ns-ai-box--batsu .ns-ai-box__label { background: var(--nsai-secondary); }

/* 強い警告：暖色を一段濃く＋見出し太字（色帯は使わない＝AI生成風callout回避） */
.ai-page .ns-ai-single__body .ns-ai-box--caution {
	background: rgba(201, 100, 66, .09);
	border-color: rgba(201, 100, 66, .24);
}
.ai-page .ns-ai-single__body .ns-ai-box--caution .ns-ai-box__label { background: var(--nsai-primary); }
.ai-page .ns-ai-single__body .ns-ai-box--caution .ns-ai-box__head { font-weight: 700; }

/* メモ・補足：枠なしの上下ヘアライン・アサイド（左右paddingゼロで本文最大幅） */
.ai-page .ns-ai-single__body .ns-ai-box--memo,
.ai-page .ns-ai-single__body .ns-ai-box--info {
	background: transparent;
	border: 0;
	border-top: 1px solid var(--nsai-border);
	border-bottom: 1px solid var(--nsai-border);
	border-radius: 0;
	padding: .8em 0;
}
.ai-page .ns-ai-single__body .ns-ai-box--memo .ns-ai-box__label,
.ai-page .ns-ai-single__body .ns-ai-box--info .ns-ai-box__label {
	color: var(--nsai-secondary);
	background: transparent;
	border: 1px solid var(--nsai-border);
}

/* 要点 別案B：スレートのヘッダーバンド型（__bar を先頭に置く構造） */
.ai-page .ns-ai-single__body .ns-ai-box--point-band {
	padding: 0;
	background: var(--nsai-accent);
	border-color: rgba(201, 100, 66, .18);
	overflow: hidden;
}
.ai-page .ns-ai-single__body .ns-ai-box--point-band .ns-ai-box__bar {
	margin: 0;
	padding: .45em 1.15em;
	font-family: var(--nsai-font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	color: #fff;
	background: var(--nsai-secondary);
}
.ai-page .ns-ai-single__body .ns-ai-box--point-band .ns-ai-box__head { margin: .7em 1.15em .3em; font-size: 17px; }
.ai-page .ns-ai-single__body .ns-ai-box--point-band .ns-ai-box__text { margin: 0 1.15em .8em; }

/* チェックリスト（is-style-check-list 置換）：機能アイコン=チェックのみ・SVG背景 */
.ai-page .ns-ai-single__body ul.wp-block-list.ns-ai-list--check { list-style: none; padding-left: 0; margin: 0; }
.ai-page .ns-ai-single__body .ns-ai-list--check > li { position: relative; padding-left: 1.6em; }
.ai-page .ns-ai-single__body .ns-ai-list--check > li + li { margin-top: .45em; }
.ai-page .ns-ai-single__body .ns-ai-list--check > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .4em;
	width: 1em;
	height: 1em;
	background: no-repeat center / contain;
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23C96442'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M5%2013l4%204L19%207'/%3E%3C/svg%3E");
}

@media (max-width: 600px) {
	.ai-page .ns-ai-single__body .ns-ai-box { padding: .7em .85em; margin: .7em 0; }
	.ai-page .ns-ai-single__body .ns-ai-box + * { margin-top: .7em; }
	.ai-page .ns-ai-single__body .ns-ai-box--point { padding-top: .65em; }
	.ai-page .ns-ai-single__body .ns-ai-box--memo,
	.ai-page .ns-ai-single__body .ns-ai-box--info { padding: .65em 0; }
	.ai-page .ns-ai-single__body .ns-ai-box__head { font-size: 16px; }
	.ai-page .ns-ai-single__body .ns-ai-box--point .ns-ai-box__head { font-size: 16.5px; }
	.ai-page .ns-ai-single__body .ns-ai-box--point-band .ns-ai-box__head { margin-left: .9em; margin-right: .9em; }
	.ai-page .ns-ai-single__body .ns-ai-box--point-band .ns-ai-box__text { margin-left: .9em; margin-right: .9em; }
	.ai-page .ns-ai-single__body .ns-ai-box--point-band .ns-ai-box__bar { padding-left: .9em; padding-right: .9em; }
}


/* ---------- セクション見出し（関連・人気の共通ヘッダー） ---------- */
.ai-page .ns-ai-section-head {
	max-width: 100%;
	margin: 0 0 20px;
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
}
.ai-page .ns-ai-section-head__eyebrow {
	font-family: var(--nsai-font-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.32em;
	color: var(--nsai-primary);
}
.ai-page .ns-ai-section-head__title {
	font-family: var(--nsai-font-serif);
	font-size: clamp(22px, 2.6vw, 28px);
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--nsai-secondary);
	margin: 0;
}


/* ---------- 関連記事：3 列均等グリッド（PC コンパクト化・v5） ----------
 *   嶋崎フィードバック「あわせて読みたいが大きすぎる」→ 1+2 非対称を廃止し
 *   3 列均等の小サイズカードに統一。ハイクラスメディアの定石。
 *   SP では 1+2 維持（hero フル幅+sub2列）で雑誌見開き感を残す。
 */
.ai-page .ns-ai-related {
	max-width: 1120px;
	margin: 32px auto 0;
	padding: 28px 18px 0;
	border-top: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-related__grid {
	max-width: 100%;
	margin: 0 auto;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}


/* ---------- 人気記事：ランキング型横並びリスト ---------- */
.ai-page .ns-ai-popular {
	max-width: 1120px;
	margin: 32px auto 0;
	padding: 28px 18px 48px;
	border-top: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-popular__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}


/* ---------- 共通カード ---------- */
.ai-page .ns-ai-card {
	background: transparent;
}
.ai-page .ns-ai-card__link {
	display: block;
	text-decoration: none;
	color: var(--nsai-body);
}
.ai-page .ns-ai-card__media {
	position: relative;
	width: 100%;
	margin: 0;
	overflow: hidden;
	background: var(--nsai-accent);
}
.ai-page .ns-ai-card__img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	aspect-ratio: 16 / 10;
	transition: transform 0.6s ease;
}
.ai-page .ns-ai-card__link:hover .ns-ai-card__img {
	transform: scale(1.03);
}
.ai-page .ns-ai-card__img-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 16 / 10;
	background: linear-gradient(135deg, var(--nsai-primary) 0%, #A14E32 100%);
	color: rgba(255, 255, 255, 0.92);
	font-family: var(--nsai-font-serif);
	font-size: 22px;
	letter-spacing: 0.2em;
}
.ai-page .ns-ai-card__rank {
	position: absolute;
	left: 0;
	bottom: 0;
	display: inline-flex;
	align-items: flex-end;
	justify-content: center;
	width: 56px;
	height: 56px;
	padding-bottom: 4px;
	background: rgba(31, 41, 55, 0.92);
	color: #fff;
	font-family: var(--nsai-font-serif);
	font-size: 28px;
	font-weight: 600; /* 自前ホスト明朝は600単一ウェイト */
	font-feature-settings: "tnum" 1;
	letter-spacing: 0;
	line-height: 1;
}
.ai-page .ns-ai-card__body {
	padding: 18px 0 0;
}
.ai-page .ns-ai-card__body .ns-ai-cat-badge {
	margin-bottom: 12px;
}
.ai-page .ns-ai-card__title {
	font-family: var(--nsai-font-serif);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: 0.02em;
	color: var(--nsai-secondary);
	margin: 0 0 10px;
}
.ai-page .ns-ai-card__date {
	font-family: var(--nsai-font-sans);
	font-size: 12px;
	font-feature-settings: "tnum" 1;
	letter-spacing: 0.08em;
	color: var(--nsai-muted);
}

/* PC：関連カードはタイトルやや小さめでコンパクト */
.ai-page .ns-ai-card--related .ns-ai-card__title,
.ai-page .ns-ai-card--related-hero .ns-ai-card__title,
.ai-page .ns-ai-card--related-sub .ns-ai-card__title {
	font-size: 15px;
	line-height: 1.55;
	margin: 0 0 6px;
}
.ai-page .ns-ai-card--related .ns-ai-card__body { padding-top: 14px; }
.ai-page .ns-ai-card--related .ns-ai-card__body .ns-ai-cat-badge { margin-bottom: 8px; }


/* =====================================================================
 *  SP（〜768px）：独立設計 — 「PC 版を1カラム積み上げ」のブログ感を排除
 * ===================================================================== */
@media (max-width: 768px) {
	.ai-page .ns-ai-single__article {
		padding: 8px 18px 2px;
	}
	.ai-page .ns-ai-single__header {
		margin-bottom: 18px;
	}
	.ai-page .ns-ai-single__title {
		font-size: 20px;
		line-height: 1.55;
		margin: 0 0 12px;
	}
	.ai-page .ns-ai-single__lead {
		font-size: 14px;
		line-height: 1.9;
	}
	/* SP cat-meta：常に 1 行を維持するため value だけを最小フォントに */
	.ai-page .ns-ai-single__cat-meta {
		gap: 10px;
		margin-bottom: 10px;
	}
	.ai-page .ns-ai-meta {
		gap: 8px;
	}
	.ai-page .ns-ai-meta__pair {
		gap: 4px;
	}
	.ai-page .ns-ai-meta__label {
		font-size: 9px;
		letter-spacing: 0.12em;
	}
	.ai-page .ns-ai-meta__value {
		font-size: 11px;
	}
	.ai-page .ns-ai-single__eyecatch {
		margin: 16px auto 18px;
		padding: 0;
	}
	.ai-page .ns-ai-single__body {
		font-size: 15px;
		line-height: 1.9;
		padding: 0 10px 2px;
	}
	.ai-page .ns-ai-single__body h2 {
		font-size: 19px;
		margin-top: 2em;
		padding-top: 0.9em;
	}
	.ai-page .ns-ai-single__body--glossary h2 {
		margin-top: 0.8em;
		padding-top: 0.8em;
	}
	.ai-page .ns-ai-single__body h3 {
		font-size: 16px;
	}
	/* SP本文の字間: 詰まり感を緩和(段落・リード・箇条書きのみ/見出しは対象外) */
	.ai-page .ns-ai-single__lead,
	.ai-page .ns-ai-single__body p,
	.ai-page .ns-ai-single__body li {
		letter-spacing: 0.03em;
	}

	/* 関連記事 SP：1+2 維持（hero=全幅、sub2件=2列横並び・雑誌見開き感） */
	.ai-page .ns-ai-related {
		margin-top: 20px;
		padding: 20px 18px 0;
	}
	.ai-page .ns-ai-related__grid {
		padding: 0;
		gap: 16px 12px;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto auto;
		grid-template-areas:
			"hero hero"
			"sub1 sub2";
	}
	/* SP のみ 1+2 になるよう nth-of-type で位置指定 */
	.ai-page .ns-ai-card--related:nth-of-type(1) { grid-area: hero; }
	.ai-page .ns-ai-card--related:nth-of-type(2) { grid-area: sub1; }
	.ai-page .ns-ai-card--related:nth-of-type(3) { grid-area: sub2; }
	.ai-page .ns-ai-card--related:nth-of-type(1) .ns-ai-card__title { font-size: 16px; }
	.ai-page .ns-ai-card--related:nth-of-type(n+2) .ns-ai-card__title { font-size: 13px; line-height: 1.5; }
	.ai-page .ns-ai-card--related:nth-of-type(n+2) .ns-ai-card__body { padding-top: 10px; }

	/* 人気記事 SP：3列だと窮屈になるため、1列縦並び＋横長レイアウト（雑誌コラム風） */
	.ai-page .ns-ai-popular {
		margin-top: 20px;
		padding: 20px 18px 28px;
	}
	.ai-page .ns-ai-popular__list {
		padding: 0;
		grid-template-columns: 1fr;
		gap: 18px;
	}
	.ai-page .ns-ai-card--popular .ns-ai-card__link {
		display: grid;
		grid-template-columns: 130px 1fr;
		gap: 16px;
		align-items: start;
	}
	.ai-page .ns-ai-card--popular .ns-ai-card__media {
		grid-column: 1;
	}
	.ai-page .ns-ai-card--popular .ns-ai-card__img,
	.ai-page .ns-ai-card--popular .ns-ai-card__img-placeholder {
		aspect-ratio: 4 / 3;
	}
	.ai-page .ns-ai-card--popular .ns-ai-card__img-placeholder {
		font-size: 11px;
		letter-spacing: 0.1em;
	}
	.ai-page .ns-ai-card--popular .ns-ai-card__rank {
		width: 32px;
		height: 32px;
		font-size: 16px;
	}
	.ai-page .ns-ai-card--popular .ns-ai-card__body {
		padding: 0;
	}
	.ai-page .ns-ai-card--popular .ns-ai-card__title {
		font-size: 14px;
		line-height: 1.55;
		margin-bottom: 6px;
	}
	.ai-page .ns-ai-card--popular .ns-ai-card__date {
		font-size: 11px;
	}
	.ai-page .ns-ai-section-head {
		padding: 0;
		margin-bottom: 14px;
	}
}


/* =====================================================================
 *  Step 3e : SP overflow 対策（SWELL Rulebook §5-A 準拠）
 *
 *   嶋崎指摘＆ヘッドレス Chrome SP 検証で判明した「長文字列が画面右端を
 *   超える」問題への根治策：
 *     - box-sizing: border-box を .ai-page 配下全要素に強制（padding が
 *       外側に出る事故を防止）
 *     - テキスト要素に overflow-wrap: anywhere + min-width: 0（CJK と英数字
 *       混じり長文字列の折り返しを保証）
 *     - Grid 子要素には min-width: 0（5-A-3 ② / ③ 必須）
 *
 *   .ai-page スコープ限定なのでノーサイド本体には一切影響しない。
 * ===================================================================== */
.ai-page,
.ai-page *,
.ai-page *::before,
.ai-page *::after {
	box-sizing: border-box;
}
.ai-page .ns-ai-single__title,
.ai-page .ns-ai-single__lead,
.ai-page .ns-ai-single__body p,
.ai-page .ns-ai-single__body li,
.ai-page .ns-ai-single__body h2,
.ai-page .ns-ai-single__body h3,
.ai-page .ns-ai-card__title,
.ai-page .ns-ai-archive__title,
.ai-page .ns-ai-archive__desc {
	overflow-wrap: anywhere;
	word-break: normal;
	min-width: 0;
}


/* =====================================================================
 *  Step 3e : カテゴリアーカイブヘッダー（/ai/category/{slug}/）
 *
 *   構造：eyebrow（英字大文字 letter-spacing 大）→ h1（明朝大型）
 *        → description（管理画面 term_description）→ 件数 → 下罫線
 *   AI 感典型を排除：border-left 禁止／丸角バッジ禁止／謎の縦線禁止
 * ===================================================================== */
.ai-page .ns-ai-archive {
	padding: 0;
}
.ai-page .ns-ai-archive__header {
	max-width: 1120px;
	margin: 0 auto;
	padding: 40px 18px 28px;
	border-bottom: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-archive__header-inner {
	max-width: 760px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}
.ai-page .ns-ai-archive__eyebrow {
	font-family: var(--nsai-font-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.32em;
	color: var(--nsai-primary);
	text-transform: uppercase;
}
.ai-page .ns-ai-archive__title {
	font-family: var(--nsai-font-serif);
	font-size: clamp(28px, 3.4vw, 40px);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.02em;
	color: var(--nsai-secondary);
	margin: 0;
}
/* h1 のテラコッタ系統アクセント（カテゴリ別の左寄せ "│" は使わず、文字色の微差で識別） */
.ai-page .ns-ai-archive__title[data-slug="news"]       { color: var(--nsai-cat-news); }
.ai-page .ns-ai-archive__title[data-slug="practice"]   { color: var(--nsai-cat-practice); }
.ai-page .ns-ai-archive__title[data-slug="industries"] { color: var(--nsai-cat-industries); }
.ai-page .ns-ai-archive__title[data-slug="blog"]       { color: var(--nsai-cat-blog); }

.ai-page .ns-ai-archive__desc {
	font-family: var(--nsai-font-sans);
	font-size: 15px;
	line-height: 1.95;
	color: rgba(45, 42, 38, 0.78);
	margin: 4px 0 0;
	padding: 0;
	border: none;
	/* 親が align-items:flex-start のため stretch しないと max-width 幅のまま横はみ出す */
	align-self: stretch;
	max-width: 62ch;
}
.ai-page .ns-ai-archive__count {
	display: none; /* 記事が少ない間は非表示。増えたらこの行を削除 */
	font-family: var(--nsai-font-sans);
	font-size: 12px;
	font-feature-settings: "tnum" 1;
	letter-spacing: 0.08em;
	color: var(--nsai-muted);
	margin-top: 4px;
}


/* =====================================================================
 *  [ns_ai_search] スタイル本体（本体 ns-blog-search 踏襲・テラコッタ厳格化版）
 *
 *   嶋崎指示（2026-05-21 Step 3f フィードバック）：
 *   - コア UX（focus-within アクセント / スピナー / クリア / ドロップダウン
 *     reveal / 結果 grid / mark 下線 / 0件 CTA）= 本体踏襲
 *   - テラコッタ厳格化：色は全て nsai-* パレット、border-radius は 0 or 4px
 *     （AI 感を回避）、丸角 999px CTA は廃止し直線矩形
 *   - 検索フィールド左の縦アクセント（focus-within 時のみ）は機能的
 *     インジケータで装飾線ではない（CLAUDE.md 4-4「border-left 装飾禁止」
 *     とは異なる）
 * ===================================================================== */
.ai-page .ns-ai-archive__search {
	max-width: 1120px;
	margin: 0 auto;
	padding: 24px 18px 0;
}
.ai-page .ns-ai-archive__search-inner {
	max-width: 760px;
	margin: 0 auto;
}

/* 検索コンテナ本体（記事内・サイドバー・SP 開閉メニューでも流用） */
.ai-page .ns-ai-search {
	position: relative;
	width: 100%;
	max-width: 760px;
	margin: 0 auto;
	padding: 0;
	isolation: isolate;
	font-family: var(--nsai-font-sans);
	z-index: 5;
}
.ai-page .ns-ai-search--compact {
	max-width: 540px;
}

/* インデックス JSON は非表示 */
.ai-page .ns-ai-search__index {
	display: none !important;
}

/* イントロ */
.ai-page .ns-ai-search__intro {
	margin: 0 0 14px;
	text-align: center;
	font-size: clamp(13px, 0.4vw + 0.7rem, 14.5px);
	color: var(--nsai-muted);
	line-height: 1.7;
	letter-spacing: 0.01em;
}

/* 検索フィールド（背景グラデ + 多層 shadow + focus-within 強化） */
.ai-page .ns-ai-search__field {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 18px;
	background: linear-gradient(180deg, #ffffff 0%, #fafbfa 100%);
	border: 1.5px solid var(--nsai-border);
	border-radius: 0;
	box-shadow:
		0 1px 2px rgba(31, 41, 55, 0.04),
		0 6px 16px rgba(31, 41, 55, 0.05),
		0 18px 36px rgba(31, 41, 55, 0.06),
		inset 0 1px 0 rgba(255, 255, 255, 0.9);
	transition: border-color 0.22s ease, box-shadow 0.26s ease, transform 0.22s ease, background 0.26s ease;
	z-index: 2;
}

/* 検索窓の左端に focus-within 時のみテラコッタ縦アクセント（機能的インジケータ） */
.ai-page .ns-ai-search__field::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 3px;
	height: 60%;
	background: linear-gradient(180deg, transparent 0%, var(--nsai-primary) 30%, var(--nsai-primary) 70%, transparent 100%);
	transform: translateY(-50%);
	opacity: 0;
	transition: opacity 0.32s ease;
}

.ai-page .ns-ai-search__field:hover {
	border-color: color-mix(in srgb, var(--nsai-primary) 35%, var(--nsai-border));
	box-shadow:
		0 1px 2px rgba(31, 41, 55, 0.05),
		0 10px 24px rgba(31, 41, 55, 0.08),
		0 22px 44px rgba(201, 100, 66, 0.08),
		inset 0 1px 0 rgba(255, 255, 255, 0.95);
	transform: translateY(-1px);
}

.ai-page .ns-ai-search__field:focus-within {
	border-color: var(--nsai-primary);
	background: linear-gradient(180deg, #ffffff 0%, #fffaf7 100%);
	box-shadow:
		0 0 0 5px rgba(201, 100, 66, 0.10),
		0 0 0 1px rgba(201, 100, 66, 0.20),
		0 1px 2px rgba(31, 41, 55, 0.05),
		0 18px 44px rgba(201, 100, 66, 0.18),
		inset 0 1px 0 rgba(255, 255, 255, 0.95);
	transform: translateY(-2px);
}
.ai-page .ns-ai-search__field:focus-within::before {
	opacity: 1;
}

/* 虫眼鏡アイコン（focus-within で scale 強化） */
.ai-page .ns-ai-search__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	color: color-mix(in srgb, var(--nsai-primary) 65%, var(--nsai-muted));
	transition: color 0.22s ease, transform 0.22s ease;
}
.ai-page .ns-ai-search__icon svg {
	width: 100%;
	height: 100%;
}
.ai-page .ns-ai-search__field:hover .ns-ai-search__icon {
	color: var(--nsai-primary);
	transform: scale(1.04);
}
.ai-page .ns-ai-search__field:focus-within .ns-ai-search__icon {
	color: var(--nsai-primary);
	transform: scale(1.08);
}

/* 入力欄 */
.ai-page .ns-ai-search__input {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	padding: 4px 0;
	height: auto;
	background: transparent;
	border: 0;
	outline: none;
	font-size: clamp(15px, 0.4vw + 0.85rem, 17px);
	color: var(--nsai-secondary);
	font-weight: 500;
	letter-spacing: 0.005em;
	font-family: var(--nsai-font-sans);
	-webkit-appearance: none;
	appearance: none;
}
.ai-page .ns-ai-search__input::-webkit-search-decoration,
.ai-page .ns-ai-search__input::-webkit-search-cancel-button,
.ai-page .ns-ai-search__input::-webkit-search-results-button,
.ai-page .ns-ai-search__input::-webkit-search-results-decoration {
	-webkit-appearance: none;
	display: none;
}
.ai-page .ns-ai-search__input::placeholder {
	color: var(--nsai-muted);
	font-weight: 400;
	letter-spacing: 0.01em;
	transition: color 0.22s ease;
}
.ai-page .ns-ai-search__field:focus-within .ns-ai-search__input::placeholder {
	color: color-mix(in srgb, var(--nsai-muted) 60%, transparent);
}

/* スピナー（入力中だけ表示） */
.ai-page .ns-ai-search__spinner {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 3px;
	width: 24px;
	opacity: 0;
	transition: opacity 0.18s ease;
	pointer-events: none;
	margin: 0;
}
.ai-page .ns-ai-search__spinner.is-active {
	opacity: 1;
}
.ai-page .ns-ai-search__spinner-dot {
	width: 4px;
	height: 4px;
	background: var(--nsai-primary);
	border-radius: 50%;
	animation: nsai-search-pulse 1.05s ease-in-out infinite;
}
.ai-page .ns-ai-search__spinner-dot:nth-child(2) { animation-delay: 0.16s; }
.ai-page .ns-ai-search__spinner-dot:nth-child(3) { animation-delay: 0.32s; }
@keyframes nsai-search-pulse {
	0%, 80%, 100% { transform: scale(0.55); opacity: 0.4; }
	40%           { transform: scale(1.0);  opacity: 1; }
}

/* クリアボタン（円形 + hover で 90 度回転） */
.ai-page .ns-ai-search__clear {
	flex: 0 0 auto;
	display: none;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin: 0;
	padding: 0;
	background: var(--nsai-bg);
	border: 0;
	border-radius: 50%;
	color: var(--nsai-muted);
	cursor: pointer;
	transition: background 0.18s ease, color 0.18s ease, transform 0.22s ease;
}
.ai-page .ns-ai-search__clear.is-visible {
	display: inline-flex;
}
.ai-page .ns-ai-search__clear svg {
	width: 14px;
	height: 14px;
}
.ai-page .ns-ai-search__clear:hover {
	background: var(--nsai-primary);
	color: #ffffff;
	transform: rotate(90deg);
}
.ai-page .ns-ai-search__clear:focus-visible {
	outline: 2px solid var(--nsai-primary);
	outline-offset: 2px;
}

/* ドロップダウン */
.ai-page .ns-ai-search__dropdown {
	position: absolute;
	top: calc(100% + 10px);
	left: 0;
	right: 0;
	z-index: 50;
	max-height: min(540px, 80vh);
	overflow: hidden auto;
	background: #ffffff;
	border: 1px solid var(--nsai-border);
	border-radius: 0;
	box-shadow:
		0 4px 12px rgba(31, 41, 55, 0.06),
		0 24px 56px rgba(31, 41, 55, 0.16);
	scrollbar-width: thin;
	scrollbar-color: var(--nsai-border) transparent;
	animation: nsai-search-reveal 0.22s ease both;
}
.ai-page .ns-ai-search__dropdown.is-detached {
	position: fixed;
}
.ai-page .ns-ai-search__dropdown[hidden] {
	display: none;
}
@keyframes nsai-search-reveal {
	from { opacity: 0; transform: translateY(-6px); }
	to   { opacity: 1; transform: translateY(0); }
}
.ai-page .ns-ai-search__dropdown::-webkit-scrollbar {
	width: 6px;
}
.ai-page .ns-ai-search__dropdown::-webkit-scrollbar-thumb {
	background: var(--nsai-border);
	border-radius: 999px;
}

.ai-page .ns-ai-search__results {
	list-style: none !important;
	margin: 0 !important;
	padding: 8px !important;
}

/* 1 件 = 1 リンク（grid サムネ + 本文 + 矢印） */
.ai-page .ns-ai-search__result {
	position: relative;
	display: grid;
	grid-template-columns: 84px 1fr 18px;
	align-items: center;
	gap: 14px;
	margin: 0 !important;
	padding: 10px 12px !important;
	border-radius: 0;
	cursor: pointer;
	transition: background 0.18s ease, transform 0.18s ease;
}
.ai-page .ns-ai-search__result + .ns-ai-search__result {
	margin-top: 2px !important;
}
.ai-page .ns-ai-search__result.is-active,
.ai-page .ns-ai-search__result:hover {
	background: rgba(201, 100, 66, 0.06);
}
.ai-page .ns-ai-search__result.is-active .ns-ai-search__arrow,
.ai-page .ns-ai-search__result:hover .ns-ai-search__arrow {
	transform: translateX(3px);
	color: var(--nsai-primary);
	border-color: var(--nsai-primary);
}
.ai-page .ns-ai-search__result.is-active .ns-ai-search__title,
.ai-page .ns-ai-search__result:hover .ns-ai-search__title {
	color: var(--nsai-primary);
}

/* サムネ */
.ai-page .ns-ai-search__thumb {
	display: block;
	width: 84px;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: linear-gradient(135deg, var(--nsai-accent) 0%, var(--nsai-bg) 100%);
	flex: 0 0 auto;
	min-width: 0;
}
.ai-page .ns-ai-search__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.32s ease;
}
.ai-page .ns-ai-search__result.is-active .ns-ai-search__thumb img,
.ai-page .ns-ai-search__result:hover .ns-ai-search__thumb img {
	transform: scale(1.06);
}
.ai-page .ns-ai-search__thumb--placeholder {
	background:
		linear-gradient(135deg, var(--nsai-primary) 0%, #A14E32 100%),
		radial-gradient(circle at 30% 30%, rgba(201,100,66,0.08), transparent 60%);
}

/* 本文 */
.ai-page .ns-ai-search__body {
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}
.ai-page .ns-ai-search__meta {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	min-width: 0;
}
.ai-page .ns-ai-search__cat {
	display: inline-block;
	padding: 2px 8px;
	background: var(--cat-color, var(--nsai-primary));
	color: #ffffff;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.4;
	white-space: nowrap;
	flex: 0 0 auto;
}
.ai-page .ns-ai-search__date {
	font-size: 11px;
	color: var(--nsai-muted);
	letter-spacing: 0.04em;
	white-space: nowrap;
	font-feature-settings: "tnum" 1;
}
.ai-page .ns-ai-search__title {
	font-family: var(--nsai-font-sans);
	font-size: clamp(13.5px, 0.3vw + 0.75rem, 15px);
	font-weight: 700;
	line-height: 1.45;
	color: var(--nsai-secondary);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color 0.18s ease;
	overflow-wrap: anywhere;
}
.ai-page .ns-ai-search__mark {
	background: linear-gradient(transparent 60%, rgba(201, 100, 66, 0.22) 60%);
	color: inherit;
	padding: 0 1px;
	font-weight: 800;
}

/* 矢印 */
.ai-page .ns-ai-search__arrow {
	flex: 0 0 auto;
	display: inline-block;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--nsai-border);
	border-bottom: 2px solid var(--nsai-border);
	transform: rotate(-45deg);
	transition: transform 0.22s ease, border-color 0.22s ease, color 0.22s ease;
	margin-right: 4px;
	color: var(--nsai-border);
}

/* 「全て見る」フッター */
.ai-page .ns-ai-search__footer {
	border-top: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-search__see-all {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 16px;
	text-decoration: none;
	color: var(--nsai-primary);
	background: rgba(201, 100, 66, 0.04);
	transition: background 0.15s ease;
	font-family: var(--nsai-font-sans);
}
.ai-page .ns-ai-search__see-all:hover {
	background: rgba(201, 100, 66, 0.1);
}
.ai-page .ns-ai-search__see-all-text {
	font-size: 13px;
	font-weight: 500;
}
.ai-page .ns-ai-search__see-all-keyword {
	font-weight: 700;
}
.ai-page .ns-ai-search__see-all-arrow {
	display: inline-block;
	width: 7px;
	height: 7px;
	border-right: 1.5px solid var(--nsai-primary);
	border-bottom: 1.5px solid var(--nsai-primary);
	transform: rotate(-45deg);
}

/* 0 件表示 */
.ai-page .ns-ai-search__empty {
	list-style: none !important;
	padding: 24px 22px 22px !important;
	margin: 0 !important;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}
.ai-page .ns-ai-search__empty-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin-bottom: 4px;
	color: var(--nsai-border);
}
.ai-page .ns-ai-search__empty-icon svg {
	width: 100%;
	height: 100%;
}
.ai-page .ns-ai-search__empty-text {
	margin: 0 !important;
	font-size: 14.5px;
	font-weight: 700;
	color: var(--nsai-secondary);
	line-height: 1.5;
	letter-spacing: 0.005em;
}
.ai-page .ns-ai-search__empty-sub {
	margin: 0 !important;
	font-size: 13px;
	color: var(--nsai-muted);
	line-height: 1.65;
}
.ai-page .ns-ai-search__empty-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: 12px;
	flex-wrap: wrap;
}
.ai-page .ns-ai-search__empty-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 22px;
	background: var(--nsai-primary);
	color: #ffffff !important;
	font-size: 13.5px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-decoration: none !important;
	transition: background 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;
	box-shadow: 0 4px 12px rgba(201, 100, 66, 0.22);
}
.ai-page .ns-ai-search__empty-cta:hover {
	background: #A14E32;
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(201, 100, 66, 0.32);
}
.ai-page .ns-ai-search__empty-cta:hover .ns-ai-search__empty-cta-arrow {
	transform: translateX(3px);
}
.ai-page .ns-ai-search__empty-cta-arrow {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-right: 2px solid #ffffff;
	border-bottom: 2px solid #ffffff;
	transform: rotate(-45deg);
	transition: transform 0.22s ease;
}
.ai-page .ns-ai-search__empty-dismiss {
	padding: 10px 18px;
	background: transparent;
	border: 1px solid var(--nsai-border);
	color: var(--nsai-muted);
	font-size: 13px;
	cursor: pointer;
	transition: border-color .15s ease, color .15s ease;
}
.ai-page .ns-ai-search__empty-dismiss:hover {
	border-color: var(--nsai-muted);
	color: var(--nsai-secondary);
}


/* =====================================================================
 *  Step 3e : archive 記事グリッド（PC 3列 / SP 2列）
 *
 *   .ns-ai-card--archive variant は .ns-ai-card--related のサイズ感を継承。
 *   §5-A：minmax(0, 1fr) + 子要素に min-width: 0 で日本語見出しの溢れを防ぐ。
 * ===================================================================== */
.ai-page .ns-ai-archive__grid-wrap {
	max-width: 1120px;
	margin: 32px auto 0;
	padding: 0 18px;
}
.ai-page .ns-ai-archive__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 36px 28px;
	max-width: 100%;
}
.ai-page .ns-ai-card--archive {
	min-width: 0;
}
.ai-page .ns-ai-card--archive .ns-ai-card__title {
	font-size: 15px;
	line-height: 1.55;
	margin: 0 0 6px;
}
.ai-page .ns-ai-card--archive .ns-ai-card__body { padding-top: 14px; }
.ai-page .ns-ai-card--archive .ns-ai-card__body .ns-ai-cat-badge { margin-bottom: 8px; }


/* =====================================================================
 *  Step 3e : ページネーション（直線矩形・テラコッタアクセント）
 *
 *   paginate_links を array で取得 → 独自 HTML で組み立て。
 *   現在ページはテラコッタ背景白文字、その他は白背景 + 罫線。
 *   PREV / NEXT は英字大文字（東洋経済水準のハイクラス組版）。
 * ===================================================================== */
.ai-page .ns-ai-archive__paginate {
	max-width: 1120px;
	margin: 56px auto 64px;
	padding: 0 18px;
	display: flex;
	justify-content: center;
}
.ai-page .ns-ai-paginate__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
	align-items: center;
}
.ai-page .ns-ai-paginate__item {
	font-family: var(--nsai-font-sans);
	font-feature-settings: "tnum" 1;
}
.ai-page .ns-ai-paginate__item a,
.ai-page .ns-ai-paginate__item .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	background: #fff;
	border: 1px solid var(--nsai-border);
	color: var(--nsai-body);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	letter-spacing: 0.02em;
	transition: border-color 0.18s ease, color 0.18s ease, background 0.18s ease;
}
.ai-page .ns-ai-paginate__item a:hover {
	border-color: var(--nsai-primary);
	color: var(--nsai-primary);
}
.ai-page .ns-ai-paginate__item.is-current .page-numbers {
	background: var(--nsai-primary);
	border-color: var(--nsai-primary);
	color: #fff;
	font-weight: 600;
}
.ai-page .ns-ai-paginate__item.is-dots .page-numbers {
	border: none;
	background: transparent;
	color: var(--nsai-muted);
	min-width: 24px;
	padding: 0 4px;
}
.ai-page .ns-ai-paginate__item.is-prev a,
.ai-page .ns-ai-paginate__item.is-next a {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.2em;
	padding: 0 18px;
}


/* =====================================================================
 *  Step 3e : 記事ゼロ件時のメッセージ
 * ===================================================================== */
.ai-page .ns-ai-archive__empty {
	max-width: 1120px;
	margin: 48px auto 64px;
	padding: 56px 18px;
	text-align: center;
}
.ai-page .ns-ai-archive__empty-inner {
	max-width: 480px;
	margin: 0 auto;
}
.ai-page .ns-ai-archive__empty-text {
	font-family: var(--nsai-font-serif);
	font-size: 18px;
	font-weight: 600; /* 自前ホスト明朝は600単一ウェイト */
	color: var(--nsai-secondary);
	margin: 0 0 16px;
}
.ai-page .ns-ai-archive__empty-link {
	display: inline-block;
	font-family: var(--nsai-font-sans);
	font-size: 13px;
	color: var(--nsai-primary);
	text-decoration: none;
	letter-spacing: 0.04em;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}
.ai-page .ns-ai-archive__empty-link:hover {
	color: var(--nsai-secondary);
}


/* =====================================================================
 *  Step 3e : SP 独立設計（〜768px）— archive ページ向け
 * ===================================================================== */
@media (max-width: 768px) {
	.ai-page .ns-ai-archive__header {
		padding: 24px 18px 18px;
	}
	.ai-page .ns-ai-archive__header-inner {
		gap: 8px;
	}
	.ai-page .ns-ai-archive__title {
		font-size: clamp(22px, 6vw, 28px);
	}
	.ai-page .ns-ai-archive__desc {
		font-size: 14px;
		line-height: 1.85;
	}
	.ai-page .ns-ai-archive__search {
		padding: 18px 18px 0;
	}
	.ai-page .ns-ai-search__input {
		font-size: 14px;
	}
	.ai-page .ns-ai-search__input::placeholder {
		font-size: 13px;
	}

	/* SP archive グリッド：2 列均等（雑誌のカテゴリ別一覧感） */
	.ai-page .ns-ai-archive__grid-wrap {
		margin-top: 20px;
		padding: 0 18px;
	}
	.ai-page .ns-ai-archive__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px 14px;
	}
	.ai-page .ns-ai-card--archive .ns-ai-card__title {
		font-size: 13px;
		line-height: 1.5;
	}
	.ai-page .ns-ai-card--archive .ns-ai-card__body {
		padding-top: 10px;
	}
	.ai-page .ns-ai-card--archive .ns-ai-card__body .ns-ai-cat-badge {
		font-size: 9px;
		padding: 3px 7px 2px;
		letter-spacing: 0.08em;
	}

	/* SP paginate：少しコンパクト */
	.ai-page .ns-ai-archive__paginate {
		margin: 36px auto 48px;
	}
	.ai-page .ns-ai-paginate__item a,
	.ai-page .ns-ai-paginate__item .page-numbers {
		min-width: 36px;
		height: 36px;
		font-size: 13px;
		padding: 0 10px;
	}
	.ai-page .ns-ai-paginate__item.is-prev a,
	.ai-page .ns-ai-paginate__item.is-next a {
		font-size: 11px;
		padding: 0 14px;
	}

	/* SP empty */
	.ai-page .ns-ai-archive__empty {
		margin: 28px auto 48px;
		padding: 36px 18px;
	}
	.ai-page .ns-ai-archive__empty-text {
		font-size: 16px;
	}
}


/* =====================================================================
 * §16. /ai/{about|privacy|contact} 子ページ専用デザイン（Step 7 / C-62）
 *
 *   - childヘッダー = eyebrow + 明朝大見出し + lead
 *   - 本文は記事本文と同幅 760px（C-53 と統一）
 *   - 雑誌のセクション扉感（東洋経済オンライン特集トップ / Forbes Japan
 *     コラム水準の組版）
 *   - 子ページ末尾 CTA（運営/相談導線）共通スタイル
 * ===================================================================== */

/* childヘッダー（Phase 1-D：嶋崎指示「冗長削減」で上下 padding 大幅圧縮） */
.ai-page .ns-ai-page__child-header {
	padding: clamp(20px, 3vw, 36px) 24px clamp(14px, 2vw, 24px);
	background: #fff;
	border-bottom: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-page__child-header-inner {
	max-width: 760px;
	margin: 0 auto;
	min-width: 0;
}
.ai-page .ns-ai-page__child-eyebrow {
	font-family: var(--nsai-font-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.32em;
	color: var(--nsai-primary);
	text-transform: uppercase;
	margin: 0 0 18px;
}
.ai-page .ns-ai-page__child-title {
	font-family: var(--nsai-font-serif);
	font-size: clamp(28px, 4.4vw, 44px);
	font-weight: 600;
	line-height: 1.45;
	color: var(--nsai-secondary);
	letter-spacing: 0.01em;
	margin: 0;
	overflow-wrap: anywhere;
}
.ai-page .ns-ai-page__child-lead {
	font-family: var(--nsai-font-sans);
	font-size: clamp(14px, 1.4vw, 16px);
	line-height: 2.0;
	color: var(--nsai-muted);
	margin: clamp(20px, 2.4vw, 28px) 0 0;
	overflow-wrap: anywhere;
}

/* 子ページ本文領域（記事本文と同幅 760px）Phase 1-D：上下 padding 圧縮 */
.ai-page .ns-ai-page--child .ns-ai-page__body {
	padding: clamp(20px, 3vw, 32px) 24px clamp(32px, 4.5vw, 56px);
	background: var(--nsai-bg);
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner {
	max-width: 760px;
	margin: 0 auto;
	min-width: 0;
	font-family: var(--nsai-font-sans);
	font-size: clamp(15px, 1.4vw, 16px);
	line-height: 2.0;
	color: var(--nsai-body);
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner > * {
	overflow-wrap: anywhere;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner h2 {
	font-family: var(--nsai-font-serif);
	font-size: clamp(20px, 2.4vw, 26px);
	font-weight: 600;
	line-height: 1.55;
	color: var(--nsai-secondary);
	letter-spacing: 0.01em;
	margin: clamp(24px, 3vw, 36px) 0 clamp(10px, 1.4vw, 16px);
	padding-bottom: 8px;
	border-bottom: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner h2:first-child {
	margin-top: 0;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner h3 {
	font-family: var(--nsai-font-serif);
	font-size: clamp(17px, 1.8vw, 20px);
	font-weight: 600;
	line-height: 1.6;
	color: var(--nsai-secondary);
	margin: clamp(36px, 4vw, 44px) 0 clamp(12px, 1.6vw, 18px);
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner p {
	margin: 0 0 clamp(18px, 2vw, 24px);
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner ul,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner ol {
	margin: 0 0 clamp(20px, 2.4vw, 28px);
	padding-left: 1.5em;
	list-style-position: outside;
}
/* Phase 1-D：wp-block-list が表示されない問題の根治（list-style-type 明示） */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner ul,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner ul.wp-block-list {
	list-style-type: disc;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner ol,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner ol.wp-block-list {
	list-style-type: decimal;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner li {
	margin: 0 0 clamp(8px, 1vw, 12px);
	line-height: 1.9;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner a {
	color: var(--nsai-primary);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: text-decoration-thickness .15s ease;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner a:hover {
	text-decoration-thickness: 2px;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner strong {
	font-weight: 700;
	color: var(--nsai-secondary);
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner em {
	font-style: normal;
	background: linear-gradient(transparent 60%, rgba(201, 100, 66, 0.18) 60%);
	padding: 0 2px;
}

/* 子ページ内：定義リスト風セクション（dl/dt/dd） */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner dl {
	margin: 0 0 clamp(24px, 3vw, 32px);
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner dt {
	font-family: var(--nsai-font-sans);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--nsai-primary);
	margin: clamp(18px, 2vw, 24px) 0 6px;
	text-transform: uppercase;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner dd {
	margin: 0;
	line-height: 1.95;
}

/* 子ページ内：blockquote = 強調枠（編集ポリシー宣言箇所など） */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner blockquote {
	margin: clamp(28px, 3.5vw, 40px) 0;
	padding: clamp(22px, 2.6vw, 32px) clamp(22px, 2.6vw, 32px);
	background: var(--nsai-accent);
	color: var(--nsai-secondary);
	font-style: normal;
	border: 0;
	border-radius: 0;
	font-size: clamp(14px, 1.4vw, 16px);
	line-height: 1.95;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner blockquote p {
	margin: 0;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner blockquote p + p {
	margin-top: 10px;
}

/* 子ページ末尾 CTA（運営／相談導線・共通） */
.ai-page .ns-ai-page__child-cta {
	margin: clamp(44px, 5.5vw, 64px) 0 0;
	padding: clamp(34px, 4.2vw, 48px) clamp(24px, 3vw, 40px);
	background: var(--nsai-secondary);
	color: #fff;
	text-align: center;
	border-radius: 12px;
}
.ai-page .ns-ai-page__child-cta-title {
	font-family: var(--nsai-font-serif);
	font-size: clamp(21px, 2.5vw, 27px);
	font-weight: 600;
	line-height: 1.5;
	margin: 0 0 12px;
	color: #fff;
	letter-spacing: 0.03em;
}
.ai-page .ns-ai-page__child-cta-sub {
	font-family: var(--nsai-font-sans);
	font-size: clamp(13px, 1.3vw, 15px);
	line-height: 1.85;
	color: rgba(255, 255, 255, 0.80);
	margin: 0 auto 26px;
	max-width: 600px;
}
.ai-page .ns-ai-page__child-cta-button,
.ai-page .ns-ai-page__child-cta-button:link,
.ai-page .ns-ai-page__child-cta-button:visited,
.ai-page .ns-ai-page__child-cta-button:hover,
.ai-page .ns-ai-page__child-cta-button:focus,
.ai-page .ns-ai-page__child-cta-button:active {
	color: #fff !important;
	text-decoration: none !important;
}
.ai-page .ns-ai-page__child-cta-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 280px;
	padding: 18px 48px;
	background: var(--nsai-primary);
	font-family: var(--nsai-font-sans);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.12em;
	transition: background .2s ease, transform .2s ease;
}
.ai-page .ns-ai-page__child-cta-button:hover {
	background: #b85838;
	transform: translateY(-1px);
}
.ai-page .ns-ai-page__child-cta-button .ns-ai-page__child-cta-arrow {
	display: inline-block;
	width: 18px;
	height: 18px;
	transition: transform .2s ease;
}
.ai-page .ns-ai-page__child-cta-button:hover .ns-ai-page__child-cta-arrow {
	transform: translateX(3px);
}

/* CF7 フォーム CSS は §18（v1.4.0 Phase 1-C-2）に統合・全面リライト済 */

/* SP 独立調整 */
@media (max-width: 768px) {
	.ai-page .ns-ai-page__child-header {
		padding: clamp(40px, 9vw, 64px) 20px clamp(24px, 4vw, 36px);
	}
	.ai-page .ns-ai-page--child .ns-ai-page__body {
		padding: clamp(32px, 6vw, 48px) 20px clamp(48px, 8vw, 72px);
	}
	.ai-page .ns-ai-page__child-cta {
		padding: 32px 20px;
	}
}


/* =====================================================================
 * §17. Step 3f 統合パッケージ（2026-05-21）
 *
 *   - ヘッダー本格化（PC ホバー下線ナビ・ロゴクランプ・細身）
 *   - SP ヘッダー見切れ根治（D：padding/gap/サイズ縮小・ロゴ max-width）
 *   - SP モバイルドロワー本格スタイル（B：右スライドイン + backdrop +
 *     雑誌風カテゴリ + 3固定ページ）
 *   - SP メニュー上部 [ns_ai_search compact] 統合（C-①）
 *   - /ai/ MV 下検索（C-②）
 *   - /ai/ トップ featured-grid 非対称グリッド（E）
 *   - X 字ハンバーガー本格変形
 * ===================================================================== */

/* ---------- ヘッダー本格化（PC・A） ---------- */
.ai-page .ns-ai-header {
	position: sticky;
	top: 0;
	z-index: 50;
}
.ai-page .ns-ai-header__inner {
	padding: 14px 28px;
	gap: 32px;
}
.ai-page .ns-ai-header__logo-img {
	/* SVG viewBox 344x69 = アスペクト比 約 5:1（余白削除版）
	   PC 1280: height 54px → width 約 270px（嶋崎指示 max 270px） */
	height: clamp(52px, 5.6vw, 68px);
	max-width: 270px;
	width: auto;
	display: block;
}
.ai-page .ns-ai-header__logo-main {
	font-family: var(--nsai-font-serif);
	font-size: clamp(20px, 2.4vw, 26px);
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--nsai-secondary);
}

/* PC ナビ：ホバー下線 + 現在ページ下線（雑誌系定石） */
.ai-page .ns-ai-nav__list {
	gap: clamp(20px, 2.4vw, 36px);
}
.ai-page .ns-ai-nav__item {
	margin: 0;
}
.ai-page .ns-ai-nav__link {
	font-family: var(--nsai-font-sans);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--nsai-secondary);
	padding: 8px 0;
	position: relative;
	display: inline-block;
	transition: color .15s ease;
}
.ai-page .ns-ai-nav__link::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 2px;
	background: var(--nsai-primary);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform .2s ease;
}
.ai-page .ns-ai-nav__link:hover,
.ai-page .ns-ai-nav__link:focus-visible {
	color: var(--nsai-primary);
	text-decoration: none;
}
.ai-page .ns-ai-nav__link:hover::after,
.ai-page .ns-ai-nav__link:focus-visible::after,
.ai-page .ns-ai-nav__link[aria-current="page"]::after,
.ai-page .ns-ai-nav__item.current-menu-item .ns-ai-nav__link::after,
.ai-page .ns-ai-nav__item.current-cat .ns-ai-nav__link::after {
	transform: scaleX(1);
}
.ai-page .ns-ai-header__search,
.ai-page .ns-ai-header__hamburger {
	border: 1px solid var(--nsai-border);
	border-radius: 4px;
	transition: border-color .15s ease, color .15s ease;
}
.ai-page .ns-ai-header__search:hover,
.ai-page .ns-ai-header__hamburger:hover {
	border-color: var(--nsai-primary);
	color: var(--nsai-primary);
}

/* X 字ハンバーガー（本格変形） */
.ai-page .ns-ai-header__hamburger-bar {
	transition: transform .25s ease, opacity .2s ease;
	transform-origin: center;
}
.ai-page .ns-ai-header__hamburger[aria-expanded="true"] .ns-ai-header__hamburger-bar:nth-child(1) {
	transform: translateY(6px) rotate(45deg);
}
.ai-page .ns-ai-header__hamburger[aria-expanded="true"] .ns-ai-header__hamburger-bar:nth-child(3) {
	transform: translateY(-6px) rotate(-45deg);
}


/* ---------- SP ヘッダー見切れ根治（D） ---------- */
@media (max-width: 768px) {
	.ai-page .ns-ai-header__inner {
		padding: 10px 14px;
		gap: 10px;
	}
	.ai-page .ns-ai-header__actions {
		gap: 6px;
	}
	.ai-page .ns-ai-header__search,
	.ai-page .ns-ai-header__hamburger {
		width: 36px;
		height: 36px;
	}
	.ai-page .ns-ai-header__icon {
		width: 16px;
		height: 16px;
	}
	.ai-page .ns-ai-header__logo-img {
		/* SVG アスペクト 5:1（余白削除版）+ 嶋崎指示で max 220px
		   SP 390 で height 約 45px → width 約 225px、max-width 220px で制限 */
		height: clamp(40px, 11.5vw, 52px);
		max-width: 220px;
	}
	.ai-page .ns-ai-header__logo-main {
		font-size: 18px;
	}
}


/* ---------- SP モバイルドロワー本格スタイル（B） ---------- */
.ai-page .ns-ai-mobile-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(31, 41, 55, 0.45);
	z-index: 90;
	opacity: 0;
	transition: opacity .28s ease;
}
.ai-page .ns-ai-mobile-backdrop.is-open {
	opacity: 1;
}
.ai-page .ns-ai-mobile {
	position: fixed;
	top: 0;
	right: 0;
	width: 88vw;
	max-width: 420px;
	height: 100vh;
	height: 100dvh;
	background: #fff;
	z-index: 100;
	overflow-y: auto;
	overflow-x: hidden;
	padding: 0 20px 32px;
	border-top: none;
	transform: translateX(100%);
	transition: transform .28s ease;
	box-shadow: -16px 0 48px rgba(31, 41, 55, 0.16);
	box-sizing: border-box;
	-webkit-overflow-scrolling: touch;
}
.ai-page .ns-ai-mobile.is-open {
	transform: translateX(0);
}
.ai-page .ns-ai-mobile__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 0;
	border-bottom: 1px solid var(--nsai-border);
	margin: 0 0 18px;
	position: sticky;
	top: 0;
	background: #fff;
	z-index: 1;
}
.ai-page .ns-ai-mobile__title {
	font-family: var(--nsai-font-serif);
	font-size: 17px;
	font-weight: 600;
	color: var(--nsai-secondary);
	letter-spacing: 0.04em;
}
.ai-page .ns-ai-mobile__close {
	background: transparent;
	border: 1px solid var(--nsai-border);
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--nsai-body);
	padding: 0;
}
.ai-page .ns-ai-mobile__close svg {
	width: 16px;
	height: 16px;
}
.ai-page .ns-ai-mobile__close:hover {
	border-color: var(--nsai-primary);
	color: var(--nsai-primary);
}

/* SP メニュー上部の検索窓（C-①）— drawer 内では translateY / 大型 shadow を抑制 */
.ai-page .ns-ai-mobile__search {
	margin: 0 0 20px;
}
.ai-page .ns-ai-mobile__search .ns-ai-search--compact .ns-ai-search__field {
	padding: 10px 14px;
	box-shadow:
		0 1px 2px rgba(31, 41, 55, 0.04),
		inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.ai-page .ns-ai-mobile__search .ns-ai-search--compact .ns-ai-search__field:hover,
.ai-page .ns-ai-mobile__search .ns-ai-search--compact .ns-ai-search__field:focus-within {
	transform: none;
}
.ai-page .ns-ai-mobile__search .ns-ai-search--compact .ns-ai-search__field:focus-within {
	box-shadow:
		0 0 0 3px rgba(201, 100, 66, 0.10),
		0 0 0 1px rgba(201, 100, 66, 0.20);
}
.ai-page .ns-ai-mobile__search .ns-ai-search--compact .ns-ai-search__icon {
	width: 20px;
	height: 20px;
}
.ai-page .ns-ai-mobile__search .ns-ai-search--compact .ns-ai-search__input {
	font-size: 14px;
}
/* SP ドロワー検索窓：focus 時の左端縦アクセントは非表示（背が低くて位置が浮くため。
   フォーカスは枠色＋リングで十分伝わる。border-left 系装飾の禁止方針にも沿う） */
.ai-page .ns-ai-mobile__search .ns-ai-search--compact .ns-ai-search__field::before {
	display: none;
}

/* SP メニュー：4カテゴリ縦リスト（雑誌風） */
.ai-page .ns-ai-mobile__list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.ai-page .ns-ai-mobile__list--cats .ns-ai-mobile__item {
	border-bottom: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-mobile__list--cats .ns-ai-mobile__item:first-child {
	border-top: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-mobile__link {
	display: block;
	padding: 12px 4px;
	text-decoration: none;
	color: var(--nsai-secondary);
	position: relative;
	transition: padding-left .15s ease;
}
.ai-page .ns-ai-mobile__link:hover,
.ai-page .ns-ai-mobile__link:focus-visible {
	padding-left: 10px;
	text-decoration: none;
}
.ai-page .ns-ai-mobile__item[data-slug="news"] .ns-ai-mobile__eyebrow       { color: #C96442; }
.ai-page .ns-ai-mobile__item[data-slug="practice"] .ns-ai-mobile__eyebrow   { color: #1F2937; }
.ai-page .ns-ai-mobile__item[data-slug="industries"] .ns-ai-mobile__eyebrow { color: #8C5A3C; }
.ai-page .ns-ai-mobile__item[data-slug="blog"] .ns-ai-mobile__eyebrow       { color: #5E6B52; }
.ai-page .ns-ai-mobile__eyebrow {
	display: block;
	font-family: var(--nsai-font-sans);
	font-size: 9.5px;
	font-weight: 600;
	letter-spacing: 0.24em;
	margin: 0 0 3px;
}
.ai-page .ns-ai-mobile__name {
	display: block;
	font-family: var(--nsai-font-serif);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--nsai-secondary);
	letter-spacing: 0.02em;
}

/* SP メニュー：底部アクション（問い合わせ CTA 等）
   将来ボタン/メニュー追加を想定し、縦積み＋gap のコンテナにしてある。
   ボタンを増やすときは __action を追加するだけ（--primary / --outline） */
.ai-page .ns-ai-mobile__cta {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 24px 0 8px;
	padding-top: 20px;
	border-top: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-mobile__action {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	box-sizing: border-box;
	padding: 14px 18px;
	border-radius: 6px;
	font-family: var(--nsai-font-sans);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
/* 主ボタン：テラコッタ塗り（丸み控えめ＝radius 6px） */
.ai-page .ns-ai-mobile__action--primary {
	background: var(--nsai-primary);
	color: #fff;
	border: 1px solid var(--nsai-primary);
}
.ai-page .ns-ai-mobile__action--primary:hover,
.ai-page .ns-ai-mobile__action--primary:focus-visible {
	background: color-mix(in srgb, var(--nsai-primary) 86%, #000);
	border-color: color-mix(in srgb, var(--nsai-primary) 86%, #000);
	color: #fff;
	text-decoration: none;
}
/* 副ボタン（将来の2つ目以降）用：アウトライン型 */
.ai-page .ns-ai-mobile__action--outline {
	background: #fff;
	color: var(--nsai-secondary);
	border: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-mobile__action--outline:hover,
.ai-page .ns-ai-mobile__action--outline:focus-visible {
	border-color: var(--nsai-primary);
	color: var(--nsai-primary);
	text-decoration: none;
}

/* body スクロールロック（ドロワー展開中） */
body.ns-ai-no-scroll {
	overflow: hidden;
}


/* ---------- C-②：/ai/ MV 下検索 ---------- */
.ai-page .ns-ai-page__hero-search {
	max-width: 720px;
	margin: clamp(24px, 3vw, 36px) auto 0;
	padding: 0 24px;
}
.ai-page .ns-ai-page__hero-search .ns-ai-search__field {
	background: #fff;
	box-shadow: 0 8px 24px rgba(31, 41, 55, 0.06);
}


/* ---------- E：/ai/ トップ featured-grid 非対称グリッド ---------- */
.ai-page .ns-ai-featured {
	max-width: 1200px;
	margin: clamp(40px, 5vw, 72px) auto;
	padding: 0 clamp(16px, 3vw, 28px);
}
.ai-page .ns-ai-featured__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin: 0 0 clamp(20px, 2.4vw, 32px);
	gap: 16px;
	flex-wrap: wrap;
	min-width: 0;
}
.ai-page .ns-ai-featured__eyebrow {
	display: block;
	font-family: var(--nsai-font-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.32em;
	color: var(--nsai-primary);
	text-transform: uppercase;
	margin: 0 0 6px;
}
.ai-page .ns-ai-featured__title {
	font-family: var(--nsai-font-serif);
	font-size: clamp(22px, 2.8vw, 30px);
	font-weight: 600;
	line-height: 1.4;
	color: var(--nsai-secondary);
	margin: 0;
	letter-spacing: 0.02em;
}
.ai-page .ns-ai-featured__all {
	font-family: var(--nsai-font-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	color: var(--nsai-body);
	text-decoration: none;
	white-space: nowrap;
	border-bottom: 1px solid var(--nsai-border);
	padding: 0 0 4px;
	transition: color .15s ease, border-color .15s ease;
}
.ai-page .ns-ai-featured__all:hover {
	color: var(--nsai-primary);
	border-bottom-color: var(--nsai-primary);
	text-decoration: none;
}

/* 非対称グリッド本体：PC = hero(1) フル幅 + sub(2..7) 3列 / SP = hero フル幅 + sub 2列 */
.ai-page .ns-ai-featured__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(20px, 2.4vw, 32px);
}
.ai-page .ns-ai-featured__hero {
	grid-column: 1 / -1;
}

/* featured-hero カード：横並び大型 */
.ai-page .ns-ai-card--featured-hero {
	min-width: 0;
}
.ai-page .ns-ai-card--featured-hero .ns-ai-card__link {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: clamp(24px, 3vw, 40px);
	text-decoration: none;
	color: inherit;
	align-items: center;
}
.ai-page .ns-ai-card--featured-hero .ns-ai-card__media {
	margin: 0;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--nsai-accent);
	min-width: 0;
}
.ai-page .ns-ai-card--featured-hero .ns-ai-card__img,
.ai-page .ns-ai-card--featured-hero .ns-ai-card__img-placeholder {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}
.ai-page .ns-ai-card--featured-hero .ns-ai-card__img-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, var(--nsai-primary) 0%, #A14E32 100%);
	color: #fff;
	font-family: var(--nsai-font-serif);
	font-size: 22px;
	letter-spacing: 0.06em;
}
.ai-page .ns-ai-card--featured-hero .ns-ai-card__body {
	min-width: 0;
}
.ai-page .ns-ai-card--featured-hero .ns-ai-card__title {
	font-family: var(--nsai-font-serif);
	font-size: clamp(20px, 2.4vw, 28px);
	font-weight: 600;
	line-height: 1.5;
	color: var(--nsai-secondary);
	margin: 14px 0 12px;
	letter-spacing: 0.01em;
	overflow-wrap: anywhere;
}
.ai-page .ns-ai-card--featured-hero .ns-ai-card__date {
	font-family: var(--nsai-font-sans);
	font-size: 12px;
	color: var(--nsai-muted);
	font-feature-settings: "tnum" 1;
	letter-spacing: 0.06em;
}

/* featured-sub カード：3列均等 */
.ai-page .ns-ai-card--featured-sub {
	min-width: 0;
}
.ai-page .ns-ai-card--featured-sub .ns-ai-card__link {
	display: block;
	text-decoration: none;
	color: inherit;
}
.ai-page .ns-ai-card--featured-sub .ns-ai-card__media {
	margin: 0 0 12px;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--nsai-accent);
}
.ai-page .ns-ai-card--featured-sub .ns-ai-card__img,
.ai-page .ns-ai-card--featured-sub .ns-ai-card__img-placeholder {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}
.ai-page .ns-ai-card--featured-sub .ns-ai-card__img-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, var(--nsai-primary) 0%, #A14E32 100%);
	color: #fff;
	font-family: var(--nsai-font-serif);
	font-size: 14px;
	letter-spacing: 0.06em;
}
.ai-page .ns-ai-card--featured-sub .ns-ai-card__body {
	min-width: 0;
}
.ai-page .ns-ai-card--featured-sub .ns-ai-card__title {
	font-family: var(--nsai-font-serif);
	font-size: clamp(15px, 1.5vw, 17px);
	font-weight: 600;
	line-height: 1.55;
	color: var(--nsai-secondary);
	margin: 10px 0 8px;
	letter-spacing: 0.01em;
	overflow-wrap: anywhere;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ai-page .ns-ai-card--featured-sub .ns-ai-card__date {
	font-family: var(--nsai-font-sans);
	font-size: 11px;
	color: var(--nsai-muted);
	font-feature-settings: "tnum" 1;
	letter-spacing: 0.06em;
}
.ai-page .ns-ai-card--featured-hero .ns-ai-cat-badge,
.ai-page .ns-ai-card--featured-sub .ns-ai-cat-badge {
	display: inline-block;
}

/* featured-grid SP 独立設計 */
@media (max-width: 768px) {
	.ai-page .ns-ai-featured__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px 14px;
	}
	.ai-page .ns-ai-card--featured-hero .ns-ai-card__link {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.ai-page .ns-ai-card--featured-hero .ns-ai-card__title {
		font-size: clamp(17px, 4.6vw, 21px);
		margin: 10px 0 8px;
	}
	.ai-page .ns-ai-card--featured-sub .ns-ai-card__title {
		font-size: clamp(13px, 3.6vw, 15px);
		-webkit-line-clamp: 4;
	}
}
@media (max-width: 380px) {
	.ai-page .ns-ai-featured__grid {
		gap: 16px 10px;
	}
}


/* ---------- /ai/ トップ hero 本格化（Step 3f） ---------- */
.ai-page .ns-ai-page--top .ns-ai-page__hero {
	background: linear-gradient(180deg, #fff 0%, var(--nsai-accent) 100%);
	padding: clamp(56px, 7vw, 88px) 24px clamp(40px, 5vw, 64px);
	text-align: center;
}
.ai-page .ns-ai-page--top .ns-ai-page__hero-inner {
	max-width: 880px;
	margin: 0 auto;
	min-width: 0;
}
.ai-page .ns-ai-page__hero-eyebrow {
	font-family: var(--nsai-font-sans);
	font-size: clamp(10px, 1.1vw, 12px);
	font-weight: 600;
	letter-spacing: 0.36em;
	color: var(--nsai-primary);
	margin: 0 0 clamp(18px, 2.2vw, 28px);
	text-transform: uppercase;
}
.ai-page .ns-ai-page--top .ns-ai-page__hero-title {
	font-family: var(--nsai-font-serif);
	font-size: clamp(24px, 3.6vw, 38px);
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.55;
	margin: 0 0 clamp(14px, 1.8vw, 20px);
	color: var(--nsai-secondary);
	overflow-wrap: anywhere;
}
.ai-page .ns-ai-page--top .ns-ai-page__hero-sub {
	font-family: var(--nsai-font-sans);
	font-size: clamp(13px, 1.4vw, 15px);
	color: var(--nsai-muted);
	margin: 0 auto;
	line-height: 2.0;
	max-width: 680px;
	overflow-wrap: anywhere;
}

/* /ai/ トップは body セクション padding 抑制（featured-grid がすぐ下に来る） */
.ai-page .ns-ai-page--top .ns-ai-page__body {
	padding: 0 24px clamp(48px, 6vw, 80px);
}

@media (max-width: 768px) {
	.ai-page .ns-ai-page--top .ns-ai-page__hero {
		padding: clamp(40px, 9vw, 56px) 18px clamp(28px, 6vw, 40px);
	}
	.ai-page .ns-ai-page__hero-search {
		padding: 0 4px;
	}
	.ai-page .ns-ai-page--top .ns-ai-page__body {
		padding: 0 18px clamp(40px, 8vw, 64px);
	}
}


/* =====================================================================
 * §18. CF7 フォーム専用デザイン（v1.5.0 / Phase 1-D / 2026-05-22）
 *
 *   嶋崎フィードバック 28 項目を全面反映：
 *     - リード（ns-ai-form__lead）削除＋トップボーダー削除（AI 感）
 *     - 入力 padding 13px 16px → 5px 10px（嶋崎指示）
 *     - ラベル左端と入力左端の完全揃え（label padding-left + input padding-left）
 *     - 必須・任意マークの上下中央揃え修正
 *     - AI ツール 8 大項目アコーディオン CSS 削除
 *     - 送信ボタン CF7 マニュアル §3-5〜§3-7 準拠で全面リライト
 *       中央寄せ / <p>膨張対策 / spinner 退避 / 立体多層 shadow / CSS border 矢印
 *     - バリデーションレスポンスの AI 感削除（border-top 太線禁止）
 *
 *   命名規則・スコープ：
 *     - .ai-page .ns-ai-page--child .ns-ai-page__body-inner 配下に限定
 *     - .ns-ai-required / .ns-ai-optional / .ns-ai-form__hint / .ns-ai-form__submit-note
 *     - .ns-ai-form__submit-wrap / .ns-ai-btn-wrap / .ns-ai-submit-btn
 *     - .ns-ai-form__textarea / .ns-ai-form__textarea--small（AI ツール・その他 など短文用）
 *     - .ns-ai-zoom-sub（§18-12 / 動的サブフィールド）
 *     - .ns-datetime-picker / .ns-ai-datetime-hidden（§18-13 / カスタム日時ピッカー）
 * ===================================================================== */

/* --- 18-1. ラッパー基本 --------------------------------------- */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7 {
	margin: clamp(20px, 2.6vw, 32px) 0;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form > p,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form > div {
	margin: 0 0 clamp(18px, 2.2vw, 24px);
}

/* --- 18-2. 必須・任意マーク（上下中央揃え修正） ----------------- */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-required,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-optional {
	display: inline-block;
	font-size: 10px;
	font-weight: 600;
	padding: 3px 8px 2px;
	margin-left: 10px;
	letter-spacing: 0.08em;
	vertical-align: middle;
	position: relative;
	top: -1px;
	border-radius: 0;
	line-height: 1;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-required {
	background: var(--nsai-primary);
	color: #fff;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-optional {
	background: transparent;
	color: var(--nsai-muted);
	border: 1px solid var(--nsai-border);
}

/* --- 18-3. ラベル（Phase 1-D-7：padding-left 0 で入力欄左端を完全統一） -----
 * <p><label>...<br>[text]</label></p> 構造では label が block で padding-left を持つと
 * 内部 input も label の padding 内に配置され、<div><label></label>[textarea]</div>
 * 構造の textarea（padding 0）と左端不一致になる（嶋崎 SP 指摘）。
 * label padding-left: 0 にして、全 input/textarea/select の左端を 0 に統一。
 * テキスト位置は input/textarea の padding-left で確保（視覚的にラベルテキストと
 * 入力テキストはわずかにずれるが、入力欄ボックスの左端は完全揃え）。
 * --------------------------------------------------------------- */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form label {
	display: block;
	font-family: var(--nsai-font-sans);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--nsai-secondary);
	margin: 0 0 8px;
	padding-left: 0;
	line-height: 1.5;
}

/* --- 18-4. 入力フィールド共通（padding 5px 10px / 嶋崎指示） ---- */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input[type="text"],
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input[type="email"],
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input[type="tel"],
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form select,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form textarea {
	width: 100%;
	padding: 5px 10px;
	border: 1px solid var(--nsai-border);
	border-radius: 0;
	background: #fff;
	font-family: var(--nsai-font-sans);
	font-size: 15px;
	color: var(--nsai-body);
	line-height: 1.7;
	box-sizing: border-box;
	transition: border-color .15s ease, box-shadow .15s ease;
	-webkit-appearance: none;
	appearance: none;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input:focus,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form select:focus,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form textarea:focus {
	outline: none;
	border-color: var(--nsai-primary);
	box-shadow: 0 0 0 1px var(--nsai-primary);
}

/* select の chevron（appearance:none で消えるので独自描画 / SVG データ URI は子テーマ style.css で使用可） */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form select {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='none' stroke='%231F2937' stroke-width='1.5' d='M1 1.5l5 5 5-5'/></svg>");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 12px 8px;
	padding-right: 38px;
	cursor: pointer;
}

/* --- 18-5. hint・送信ボタン直上ノート ------------------------- */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-form__hint {
	font-family: var(--nsai-font-sans);
	font-size: 13px;
	line-height: 1.7;
	color: var(--nsai-muted);
	margin: 6px 0 0;
	padding-left: 10px;
	letter-spacing: 0.02em;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-form__submit-note {
	font-family: var(--nsai-font-sans);
	font-size: 13px;
	line-height: 1.7;
	color: var(--nsai-muted);
	margin: 0 0 14px;
	text-align: center;
	letter-spacing: 0.02em;
}

/* --- 18-7. checkbox / radio ネイティブ整形 -------------------- */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .wpcf7-list-item {
	display: inline-flex;
	align-items: flex-start;
	margin: 0;
	padding: 6px 0;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .wpcf7-list-item-label {
	font-family: var(--nsai-font-sans);
	font-weight: 400;
	color: var(--nsai-body);
	font-size: 14px;
	letter-spacing: 0;
	line-height: 1.6;
	padding-left: 6px;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input[type="checkbox"],
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input[type="radio"] {
	width: 16px;
	height: 16px;
	margin: 3px 0 0;
	accent-color: var(--nsai-primary);
	cursor: pointer;
	flex-shrink: 0;
}

/* Zoom 希望 radio は縦並びの読み物形式 */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .wpcf7-radio {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-top: 4px;
}

/* --- 18-8. textarea auto-grow（--small セレクタ拡張） --------- */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-form__field--message {
	margin: 0 0 24px;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-form__field--message label {
	margin-bottom: 6px;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-form__textarea,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form textarea.ns-ai-form__textarea {
	min-height: 180px;
	resize: none;
	field-sizing: content;
	font-size: 15px;
	line-height: 1.85;
	padding: 10px 14px;
	overflow: hidden;
}
/* AI ツール / Zoom その他 など短文 textarea */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-form__textarea--small,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form textarea.ns-ai-form__textarea--small {
	min-height: 80px;
	resize: none;
	field-sizing: content;
	font-size: 15px;
	line-height: 1.7;
	padding: 8px 10px;
	overflow: hidden;
}

/* --- 18-9. 送信ボタン（CF7 マニュアル §3-5〜§3-7 準拠・全面リライト） --- */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-form__submit-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 32px 0 0;
}
/* 送信中インジケーター「現在送信中です...」（Phase 1-D-7 / 嶋崎指示） */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-form__submitting {
	display: none;
	text-align: center;
	color: var(--nsai-primary);
	font-family: var(--nsai-font-sans);
	font-size: 14px;
	font-weight: 600;
	margin: 0 0 14px;
	letter-spacing: 0.08em;
	min-height: 1.5em;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-btn-wrap {
	position: relative;
	display: inline-block;
}
/* CF7 が自動で <p> で submit を包む対策（<p> 幅膨張防止） */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-btn-wrap p {
	margin: 0 !important;
	padding: 0 !important;
	display: inline-block !important;
	width: auto !important;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-btn-wrap p::before,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-btn-wrap p::after {
	content: none !important;
	display: none !important;
}
/* CF7 spinner をフロー外へ */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-btn-wrap .wpcf7-spinner {
	position: absolute !important;
	top: 50%;
	left: calc(100% + 12px);
	transform: translateY(-50%);
	margin: 0 !important;
	background-color: var(--nsai-primary);
}
/* 矢印 CSS border 描画（CF7 マニュアル §3-6・SVG データ URI 不使用） */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-btn-wrap::after {
	content: '';
	position: absolute;
	right: 28px;
	top: 50%;
	width: 8px;
	height: 8px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: translateY(-50%) rotate(45deg);
	pointer-events: none;
	z-index: 2;
	transition: transform .25s ease;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-btn-wrap:hover::after {
	transform: translateY(-50%) rotate(45deg) translate(2px, -2px);
}
/* 送信ボタン本体（中央寄せ + 立体多層シャドウ + 矢印分の右 padding） */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input[type="submit"],
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input.ns-ai-submit-btn,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .wpcf7-submit {
	display: block !important;
	width: auto !important;
	min-width: 360px !important;
	max-width: 100% !important;
	padding: 18px 72px 18px 56px !important;
	background: var(--nsai-primary) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-family: var(--nsai-font-sans) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	white-space: nowrap !important;
	cursor: pointer !important;
	box-shadow: 0 6px 0 0 var(--nsai-secondary), 0 12px 20px rgba(31, 41, 55, 0.12) !important;
	transition: background .2s ease, transform .15s ease, box-shadow .2s ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	box-sizing: border-box !important;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input[type="submit"]:hover,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input.ns-ai-submit-btn:hover {
	background: var(--nsai-secondary) !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 8px 0 0 var(--nsai-primary), 0 16px 24px rgba(31, 41, 55, 0.16) !important;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input[type="submit"]:active,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input.ns-ai-submit-btn:active {
	transform: translateY(2px) !important;
	box-shadow: 0 2px 0 0 var(--nsai-secondary), 0 4px 8px rgba(31, 41, 55, 0.08) !important;
}

/* --- 18-10. バリデーション応答（AI 感削除：border-top 太線禁止） --- */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .wpcf7-not-valid-tip {
	display: block !important;
	color: #B95536;
	font-size: 13px;
	margin-top: 6px;
	padding-left: 10px;
	letter-spacing: 0.02em;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .wpcf7-not-valid {
	border-color: #B95536 !important;
	background: #FFF7F5;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-response-output {
	border: 1px solid var(--nsai-border);
	padding: 14px 18px;
	margin: 20px 0 0;
	font-size: 14px;
	line-height: 1.7;
	background: #FAFAF7;
	color: var(--nsai-body);
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7 form.invalid .wpcf7-response-output,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7 form.unaccepted .wpcf7-response-output,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7 form.payment-required .wpcf7-response-output {
	background: #FFF7F5;
	border-color: #E5A89B;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7 form.sent .wpcf7-response-output {
	background: #F2F7EE;
	border-color: #BDD3B0;
}

/* --- 18-10b. response-output 内の未入力項目リスト（Phase 1-D-8 / JS で動的追加） --- */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-response-output .ns-ai-form__invalid-list {
	margin: 10px 0 0;
	padding: 0 0 0 22px;
	list-style: disc outside;
	font-size: 14px;
	line-height: 1.8;
	color: #B95536;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-response-output .ns-ai-form__invalid-list li {
	margin: 2px 0;
	padding: 0;
	font-weight: 600;
}

/* --- 18-11. SP 独立調整 -------------------------------------- */
@media (max-width: 768px) {
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-form__textarea {
		min-height: 140px;
		font-size: 16px;
	}
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-form__textarea--small {
		font-size: 16px;
	}
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input[type="text"],
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input[type="email"],
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input[type="tel"],
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form select {
		font-size: 16px; /* iOS 拡大防止 */
	}
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-btn-wrap {
		display: block;
		width: 100%;
	}
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-btn-wrap p {
		display: block !important;
		width: 100% !important;
	}
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input[type="submit"],
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form input.ns-ai-submit-btn,
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .wpcf7-submit {
		min-width: 0 !important;
		width: 100% !important;
		padding: 16px 48px 16px 28px !important;
		font-size: 15px !important;
	}
	/* SP 矢印：全プロパティ明示（PC 定義の継承曖昧さを排除・CF7 マニュアル §3-7 SP 準拠） */
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-btn-wrap::after {
		content: '' !important;
		position: absolute !important;
		right: 20px;
		top: 50%;
		width: 8px;
		height: 8px;
		border-top: 2px solid #fff;
		border-right: 2px solid #fff;
		border-bottom: none;
		border-left: none;
		background: none !important;
		transform: translateY(-50%) rotate(45deg);
		pointer-events: none;
		z-index: 2;
	}
	/* SP では spinner をボタン内右寄り */
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-btn-wrap .wpcf7-spinner {
		left: auto;
		right: 50px;
	}
}


/* =====================================================================
 * §18-12. Zoom 動的サブフィールド（v1.5.0 / Phase 1-D）
 *
 *   Zoom radio の選択値に応じて表示／非表示。JS 側で .is-open クラスを付与。
 *   ヌルッとアニメーション = max-height + opacity + padding cubic-bezier transition。
 * ===================================================================== */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-zoom-sub {
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	padding: 0;
	margin: 0;
	background: #FAFAF7;
	transition:
		max-height .35s cubic-bezier(0.4, 0, 0.2, 1),
		opacity .25s ease,
		padding .25s ease,
		margin .25s ease;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-zoom-sub.is-open {
	max-height: 1200px;
	opacity: 1;
	padding: 16px 18px;
	margin: 8px 0 12px;
	border-top: 1px solid var(--nsai-primary);  /* テラコッタ細線で sub フィールド hint */
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-zoom-sub label {
	margin-top: 4px;
	padding-left: 0;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-zoom-sub .ns-ai-form__hint {
	margin: 0;
	padding: 8px 0;
	color: var(--nsai-body);
}
@media (prefers-reduced-motion: reduce) {
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-zoom-sub {
		transition: none;
	}
}


/* =====================================================================
 * §18-13. カスタム日時ピッカー（v1.5.0 / Phase 1-D 嶋崎指示・独自 UI 実装）
 *
 *   嶋崎指示準拠（実装場所）：
 *     - CF7 hidden text 3 個（class:ns-ai-datetime-hidden）を視覚非表示
 *     - 同じ親内に <div class="ns-datetime-picker" data-slots="3"> を配置
 *     - スロット 3 個 → 日付パネル + 時刻パネル切替 UI
 *
 *   嶋崎指示準拠（CSS ルール）：
 *     - スコープ：.ns-datetime-picker 配下のみ
 *     - CSS 変数（--xxx）使用禁止、直値（hex/rgba）で記述
 *     - SVG データ URI 禁止（border + transform で矢印描画）
 *     - all: revert 禁止
 *     - 全角ダッシュ - 禁止（半角ハイフン - のみ）
 *     - 配色は AI メディア既存配色から近似（テラコッタ #C96442 / セカンダリ #1F2937
 *       / accent #F5E6D3 / muted #5B6570 / border #E0E4EA）
 *     - 土曜 #2563EB 近似（青系）/ 日曜・祝日 #DC2626 近似（赤系）
 *
 *   prefers-reduced-motion: reduce 環境ではトランジション無効化
 * ===================================================================== */

/* CF7 hidden text（視覚非表示・display:none は使わない / CF7 内部状態管理対策） */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-datetime-hidden {
	opacity: 0;
	position: absolute;
	width: 1px;
	height: 1px;
	pointer-events: none;
	overflow: hidden;
	border: 0;
	padding: 0;
	margin: 0;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form-control-wrap:has(.ns-ai-datetime-hidden) {
	position: absolute;
	pointer-events: none;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ピッカー全体 */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 8px 0 4px;
	position: relative;
}

/* スロットボタン */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__slot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 16px;
	border: 1px solid #E0E4EA;
	background: #fff;
	font-family: inherit;
	font-size: 14px;
	color: #1F2937;
	cursor: pointer;
	transition: border-color .15s ease, background .15s ease;
	min-width: 0;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__slot:hover {
	border-color: #C96442;
	background: #F5E6D3;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__slot--filled {
	border-color: #C96442;
	background: #fff;
	font-weight: 600;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__slot-num {
	flex-shrink: 0;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: #5B6570;
	min-width: 64px;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__slot--filled .ns-datetime-picker__slot-num {
	color: #C96442;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__slot-value {
	flex: 1;
	min-width: 0;
	/* Phase 1-D-8：単一時刻でも複数時刻でも全文表示できるよう折り返し許可
	 * （旧：white-space: nowrap + text-overflow: ellipsis で時刻が ellipsis 切り落とし） */
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: keep-all;
	text-align: left;
	color: #1F2937;
	line-height: 1.6;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__slot--empty .ns-datetime-picker__slot-value {
	color: #5B6570;
	font-weight: 400;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__slot-actions {
	display: flex;
	gap: 6px;
	flex-shrink: 0;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__slot-action {
	font-family: inherit;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	padding: 4px 10px;
	border: 1px solid #E0E4EA;
	background: #fff;
	color: #5B6570;
	cursor: pointer;
	transition: border-color .15s ease, color .15s ease;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__slot-action:hover {
	border-color: #C96442;
	color: #C96442;
}

/* パネル（カレンダー / 時刻 grid 共通ラッパー） */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__panel {
	display: none;
	margin-top: 2px;
	padding: 16px;
	border: 1px solid #C96442;
	background: #fff;
	box-shadow: 0 8px 24px rgba(31, 41, 55, 0.08);
	opacity: 0;
	max-height: 0;
	overflow: hidden;
	transition: max-height .3s cubic-bezier(0.4, 0, 0.2, 1), opacity .2s ease, padding .25s ease;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__panel.is-open {
	display: block;
	opacity: 1;
	max-height: 600px;
}

/* パネル：月見出し + 戻るボタン */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 12px;
	padding-bottom: 10px;
	border-bottom: 1px solid #E0E4EA;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__panel-title {
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	color: #1F2937;
	letter-spacing: 0.04em;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__back {
	font-family: inherit;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	padding: 4px 10px;
	border: 1px solid #E0E4EA;
	background: #fff;
	color: #5B6570;
	cursor: pointer;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__back:hover {
	border-color: #C96442;
	color: #C96442;
}

/* カレンダー grid */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__cal-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__day-header {
	font-family: inherit;
	font-size: 11px;
	font-weight: 600;
	color: #5B6570;
	text-align: center;
	padding: 6px 0;
	letter-spacing: 0;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__day-header--sat { color: #2563EB; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__day-header--sun { color: #DC2626; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__day {
	font-family: inherit;
	font-size: 13px;
	font-weight: 500;
	color: #1F2937;
	background: #fff;
	border: 1px solid #E0E4EA;
	padding: 8px 0;
	text-align: center;
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease, color .15s ease;
	min-width: 0;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__day:hover {
	background: #F5E6D3;
	border-color: #C96442;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__day--sat { color: #2563EB; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__day--sun,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__day--holiday { color: #DC2626; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__day--selected {
	background: #C96442 !important;
	border-color: #C96442 !important;
	color: #fff !important;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__day--disabled,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__day--blank {
	color: #C7CCD3;
	background: #FAFAF7;
	border-color: #EDEEF0;
	pointer-events: none;
	cursor: not-allowed;
}

/* 時刻 grid */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__time-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 6px;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__time {
	font-family: inherit;
	font-size: 13px;
	font-weight: 500;
	color: #1F2937;
	background: #fff;
	border: 1px solid #E0E4EA;
	padding: 8px 0;
	text-align: center;
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease;
	min-width: 0;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__time:hover {
	background: #F5E6D3;
	border-color: #C96442;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__time--disabled {
	color: #C7CCD3;
	background: #FAFAF7;
	border-color: #EDEEF0;
	pointer-events: none;
	cursor: not-allowed;
}
/* Phase 1-D-8：同日複数時刻選択 → 選択中セルをテラコッタでハイライト */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__time--selected {
	background: #C96442 !important;
	border-color: #C96442 !important;
	color: #fff !important;
	font-weight: 600;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__time--selected:hover {
	background: #B95536 !important;
	border-color: #B95536 !important;
}

/* 時刻 grid 上部のヒント文（Phase 1-D-8） */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__hint {
	margin: 0 0 10px;
	padding: 8px 12px;
	font-size: 12px;
	line-height: 1.6;
	color: #5B6570;
	background: #F5E6D3;
	border-left: 0;
	letter-spacing: 0.02em;
}

/* 確定ボタン領域（Phase 1-D-8 / 同日複数時刻選択） */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__panel-footer {
	display: flex;
	justify-content: center;
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid #E0E4EA;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__confirm {
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.06em;
	padding: 10px 28px;
	border: 0;
	background: #C96442;
	color: #fff;
	cursor: pointer;
	min-width: 220px;
	transition: background .15s ease, opacity .15s ease;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__confirm:hover {
	background: #B95536;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__confirm--disabled,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__confirm:disabled {
	background: #C7CCD3 !important;
	color: #fff !important;
	cursor: not-allowed;
	opacity: 0.7;
}

/* panel max-height を確定ボタン分拡張（Phase 1-D-8） */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__panel.is-open {
	max-height: 800px;
}

/* SP 調整 */
@media (max-width: 768px) {
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__panel {
		padding: 12px;
	}
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__cal-grid {
		gap: 3px;
	}
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__day {
		font-size: 12px;
		padding: 7px 0;
	}
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__time-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 5px;
	}
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__time {
		font-size: 14px;
		padding: 10px 0;
	}
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__slot {
		padding: 12px 14px;
		font-size: 13px;
	}
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__slot-num {
		min-width: 56px;
	}
	/* Phase 1-D-8：SP では確定ボタンを 100% 幅化（タップ容易性） */
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__confirm {
		width: 100%;
		min-width: 0;
		padding: 12px 20px;
	}
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__panel-footer {
		margin-top: 12px;
		padding-top: 10px;
	}
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__hint {
		font-size: 11px;
		padding: 6px 10px;
	}
}

/* prefers-reduced-motion: reduce 対応 */
@media (prefers-reduced-motion: reduce) {
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__panel,
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__slot,
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__day,
	.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-datetime-picker__time {
		transition: none;
	}
}


/* =====================================================================
 * §19. /ai/thanks/ サンクスページ専用（v1.4.0 / Phase 1-C-3 / 2026-05-22）
 *
 *   - 送信完了後のクッション。featured-grid（ns_ai 6 本）+ トップ戻り CTA。
 *   - 「AI経営手帖トップに戻る」をテラコッタアウトラインボタン化、
 *     プレーンなリンクで終わらせない（離脱率対策）。
 * ===================================================================== */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-thanks-back {
	text-align: center;
	margin: clamp(36px, 5vw, 56px) 0 clamp(20px, 3vw, 32px);
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-thanks-back a {
	display: inline-block;
	padding: 14px 36px;
	border: 1px solid var(--nsai-primary);
	border-radius: 0;
	color: var(--nsai-primary);
	background: #fff;
	font-family: var(--nsai-font-sans);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-decoration: none !important;
	transition: background .2s ease, color .2s ease;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-thanks-back a:link,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-thanks-back a:visited {
	color: var(--nsai-primary);
	text-decoration: none !important;
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-thanks-back a:hover,
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-thanks-back a:focus {
	background: var(--nsai-primary);
	color: #fff !important;
	text-decoration: none !important;
}

/* =====================================================================
   Utilities — 改行制御 / PC・SP 表示切替（嶋崎が固定ページ post_content から
   <br class="pc-only"> / <br class="sp-only"> や任意要素切替で使えるよう
   /ai/ 配下全体に適用）
   2026-05-30 嶋崎指示で追加（本体 style.css L3743 と同等の振る舞いを /ai/ 側にも）
   ===================================================================== */
.ai-page .pc-only { display: revert !important; }
.ai-page .sp-only { display: none !important; }
@media (max-width: 768px) {
	.ai-page .pc-only { display: none !important; }
	.ai-page .sp-only { display: revert !important; }
}

/* SP では PC 専用の検索アイコンを非表示（A3: SP ハンバーガー単独運用） */
@media (max-width: 768px) {
	.ai-page .ns-ai-header__search--pc { display: none !important; }
}

/* =====================================================================
   B1': SP ハンバーガー リファイン (2026-05-31)
   - 旧「光るドット+グラデ枠+グロー影」(派手・浮く) を全廃
   - PC 検索アイコンボタンと同じ枠・角丸・白背景に統一(意図的で上品)
   - 3本の均等クリーンバー → 開時に滑らかな X
   - 既存 .ns-ai-header__hamburger 系ルールを上書き(スコープ限定)
   ===================================================================== */
.ai-page .ns-ai-header__hamburger {
	width: 40px;
	height: 40px;
	gap: 5px;
	border: 1px solid var(--nsai-border);
	border-radius: 6px;
	background: #fff;
	cursor: pointer;
	transition: border-color .15s ease, background-color .15s ease, transform .12s ease;
	-webkit-tap-highlight-color: transparent;
}
.ai-page .ns-ai-header__hamburger:hover,
.ai-page .ns-ai-header__hamburger:focus-visible {
	border-color: var(--nsai-primary);
	background: #fff;
}
.ai-page .ns-ai-header__hamburger:active {
	transform: scale(0.96);
}

.ai-page .ns-ai-header__hamburger-bar {
	display: block;
	width: 18px;
	height: 2px;
	background: var(--nsai-secondary);
	border-radius: 1px;
	transition: transform .26s cubic-bezier(.4, 0, .2, 1), opacity .18s ease;
	transform-origin: center;
}

/* 開時 (aria-expanded=true): 中央フェード + 上下が滑らかに X */
.ai-page .ns-ai-header__hamburger[aria-expanded="true"] .ns-ai-header__hamburger-bar:nth-child(2) {
	opacity: 0;
}
.ai-page .ns-ai-header__hamburger[aria-expanded="true"] .ns-ai-header__hamburger-bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.ai-page .ns-ai-header__hamburger[aria-expanded="true"] .ns-ai-header__hamburger-bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* reduced motion 対応 */
@media (prefers-reduced-motion: reduce) {
	.ai-page .ns-ai-header__hamburger,
	.ai-page .ns-ai-header__hamburger-bar {
		transition: none !important;
	}
}


/* =====================================================================
   B2: PC 検索ポップアップ (2026-05-30)
   - 旧 /?post_type=ns_ai 遷移バグ廃止
   - 中央上部に降下表示 + backdrop blur + テラコッタ→indigo→violet グラデ枠
   - Cmd+K / Ctrl+K キーボードショートカット
   - 既存 [ns_ai_search] を内側に埋め込み
   - SP は --pc 修飾子で検索アイコン自体が非表示のため popup も出現しない
   ===================================================================== */
.ai-page .ns-ai-search-popup {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: block;
	pointer-events: none;
	opacity: 0;
	transition: opacity .25s ease;
}
.ai-page .ns-ai-search-popup.is-open {
	opacity: 1;
	pointer-events: auto;
}
.ai-page .ns-ai-search-popup__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(31, 41, 55, 0.45);
	-webkit-backdrop-filter: blur(8px) saturate(140%);
	backdrop-filter: blur(8px) saturate(140%);
	opacity: 0;
	transition: opacity .25s ease;
}
.ai-page .ns-ai-search-popup.is-open .ns-ai-search-popup__backdrop {
	opacity: 1;
}

.ai-page .ns-ai-search-popup__panel {
	position: absolute;
	top: 80px;
	left: 50%;
	transform: translate(-50%, -16px);
	width: min(640px, calc(100vw - 32px));
	background: rgba(255, 255, 255, 0.98);
	border-radius: 14px;
	box-shadow:
		0 24px 60px -16px rgba(31, 41, 55, 0.4),
		0 0 0 1px rgba(201, 100, 66, 0.08);
	opacity: 0;
	transition: transform .35s cubic-bezier(.2, .8, .2, 1), opacity .25s ease;
	overflow: hidden;
}
.ai-page .ns-ai-search-popup.is-open .ns-ai-search-popup__panel {
	transform: translate(-50%, 0);
	opacity: 1;
}
/* グラデ枠 (テラコッタ→indigo→violet) */
.ai-page .ns-ai-search-popup__panel::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: 14px;
	padding: 1px;
	background: linear-gradient(135deg, rgba(201, 100, 66, 0.5) 0%, rgba(99, 102, 241, 0.5) 50%, rgba(168, 85, 247, 0.5) 100%);
	-webkit-mask:
		linear-gradient(#fff 0 0) content-box,
		linear-gradient(#fff 0 0);
	mask:
		linear-gradient(#fff 0 0) content-box,
		linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
}

.ai-page .ns-ai-search-popup__head {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 20px 24px 8px;
}
.ai-page .ns-ai-search-popup__heading {
	flex: 1;
	min-width: 0;
}
.ai-page .ns-ai-search-popup__eyebrow {
	display: inline-block;
	font-family: var(--nsai-font-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.24em;
	color: var(--nsai-primary);
	background: linear-gradient(135deg, var(--nsai-primary) 0%, #a855f7 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	margin-bottom: 4px;
}
.ai-page .ns-ai-search-popup__title {
	font-family: var(--nsai-font-sans);
	font-size: 15px;
	font-weight: 700;
	color: var(--nsai-secondary);
	margin: 0;
	line-height: 1.4;
}
.ai-page .ns-ai-search-popup__close {
	flex: none;
	width: 32px;
	height: 32px;
	background: transparent;
	border: 1px solid rgba(31, 41, 55, 0.12);
	border-radius: 6px;
	color: var(--nsai-secondary);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
	padding: 0;
}
.ai-page .ns-ai-search-popup__close svg {
	width: 16px;
	height: 16px;
}
.ai-page .ns-ai-search-popup__close:hover {
	background: rgba(201, 100, 66, 0.08);
	border-color: var(--nsai-primary);
	color: var(--nsai-primary);
}

.ai-page .ns-ai-search-popup__field {
	padding: 8px 24px 16px;
}
/* 内側の [ns_ai_search] スタイル微調整 (popup スコープ) */
.ai-page .ns-ai-search-popup__field .ns-ai-search {
	margin: 0;
}
.ai-page .ns-ai-search-popup__field .ns-ai-search__field {
	border-radius: 10px;
}
.ai-page .ns-ai-search-popup__field .ns-ai-search__input {
	font-size: 16px;
	height: 48px;
}

.ai-page .ns-ai-search-popup__foot {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	padding: 12px 24px 16px;
	background: linear-gradient(135deg, rgba(201, 100, 66, 0.04) 0%, rgba(99, 102, 241, 0.04) 100%);
	border-top: 1px solid rgba(31, 41, 55, 0.06);
}
.ai-page .ns-ai-search-popup__hint {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--nsai-font-mono);
	font-size: 11px;
	color: var(--nsai-muted);
	letter-spacing: 0.04em;
}
.ai-page .ns-ai-search-popup__kbd {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 20px;
	padding: 0 5px;
	font-family: var(--nsai-font-mono);
	font-size: 10px;
	font-weight: 600;
	color: var(--nsai-secondary);
	background: #fff;
	border: 1px solid rgba(31, 41, 55, 0.18);
	border-bottom-width: 2px;
	border-radius: 4px;
	box-shadow: 0 1px 0 rgba(31, 41, 55, 0.04);
}
.ai-page .ns-ai-search-popup__kbd--alt {
	margin-left: -3px;
}
/* Mac/Windows OS 判定で ⌘ or Ctrl 表示切替 (JS 側で data-os 属性付与) */
.ai-page .ns-ai-search-popup[data-os="mac"] .ns-ai-search-popup__kbd--alt,
.ai-page .ns-ai-search-popup[data-os="win"] .ns-ai-search-popup__kbd:not(.ns-ai-search-popup__kbd--alt) {
	display: none;
}

/* SP: popup 自体は機能的に呼ばれないが、念のため非表示保証 */
@media (max-width: 768px) {
	.ai-page .ns-ai-search-popup { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
	.ai-page .ns-ai-search-popup,
	.ai-page .ns-ai-search-popup__backdrop,
	.ai-page .ns-ai-search-popup__panel {
		transition: none !important;
	}
}

/* =====================================================================
   B3: カテゴリ別 横スライドカルーセル [ns_ai_category_carousels] (2026-05-30)
   - AI経営手帖独自デザイン (構造はノーサイド本体参考、見た目はオリジナル)
   - フルワイド構成 + カテゴリごとに帯背景 + 横スクロール + 過去記事一覧リンク
   - 超ハイテク表現: テラコッタグロー / mono タイポ / 微細グラデ枠 / scroll snap
   ===================================================================== */
.ai-page .ns-ai-catcar {
	width: 100%;
	padding: 24px 0 30px;
	background:
		radial-gradient(120% 60% at 50% 0%, rgba(201, 100, 66, 0.05) 0%, transparent 60%),
		linear-gradient(180deg, var(--nsai-bg) 0%, #fff 100%);
}

/* イントロ（冗長なため一旦非表示。再表示時は display を戻す） */
.ai-page .ns-ai-catcar__intro {
	display: none;
	max-width: 1280px;
	margin: 0 auto 56px;
	padding: 0 32px;
}
.ai-page .ns-ai-catcar__intro-inner {
	text-align: left;
	max-width: 720px;
}
.ai-page .ns-ai-catcar__eyebrow {
	font-family: var(--nsai-font-mono);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.32em;
	background: linear-gradient(135deg, var(--nsai-primary) 0%, #6366f1 60%, #a855f7 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	margin: 0 0 12px;
	display: inline-block;
}
.ai-page .ns-ai-catcar__title {
	font-family: var(--nsai-font-sans);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 800;
	color: var(--nsai-secondary);
	letter-spacing: -0.01em;
	line-height: 1.3;
	margin: 0 0 12px;
}
.ai-page .ns-ai-catcar__sub {
	font-family: var(--nsai-font-sans);
	font-size: 14px;
	color: var(--nsai-muted);
	line-height: 1.7;
	margin: 0;
}

/* カテゴリブロック */
.ai-page .ns-ai-catcar__block {
	max-width: 1280px;
	margin: 0 auto 30px;
	padding: 0 32px;
	position: relative;
}
.ai-page .ns-ai-catcar__block:last-child {
	margin-bottom: 0;
}

.ai-page .ns-ai-catcar__block-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 3px;
	padding-bottom: 16px;
	position: relative;
}
/* ハイテク区切り線 (グラデ + dot) */
.ai-page .ns-ai-catcar__block-head::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	height: 1px;
	width: 100%;
	background: linear-gradient(90deg, var(--catcar-color) 0%, var(--catcar-color) 32px, rgba(31, 41, 55, 0.1) 32px, rgba(31, 41, 55, 0.1) 100%);
}
.ai-page .ns-ai-catcar__block-heading {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.ai-page .ns-ai-catcar__block-eyebrow {
	font-family: var(--nsai-font-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.32em;
	color: var(--catcar-color);
	text-transform: uppercase;
}
.ai-page .ns-ai-catcar__block-title {
	font-family: var(--nsai-font-sans);
	font-size: clamp(18px, 2vw, 22px);
	font-weight: 700;
	color: var(--nsai-secondary);
	letter-spacing: -0.005em;
	margin: 0;
	line-height: 1.4;
}

.ai-page .ns-ai-catcar__all {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--nsai-font-sans);
	font-size: 12px;
	font-weight: 600;
	color: var(--nsai-secondary);
	text-decoration: none;
	padding: 6px 4px;
	white-space: nowrap;
	border-bottom: 1px solid transparent;
	transition: color .2s ease, border-color .2s ease, gap .25s ease;
	flex: none;
}
.ai-page .ns-ai-catcar__all svg {
	width: 16px;
	height: 16px;
	transition: transform .25s ease;
}
.ai-page .ns-ai-catcar__all:hover,
.ai-page .ns-ai-catcar__all:focus-visible {
	color: var(--catcar-color);
	border-color: var(--catcar-color);
	gap: 10px;
	text-decoration: none;
}
.ai-page .ns-ai-catcar__all:hover svg,
.ai-page .ns-ai-catcar__all:focus-visible svg {
	transform: translateX(2px);
}

/* Viewport + Track */
.ai-page .ns-ai-catcar__viewport {
	position: relative;
}
.ai-page .ns-ai-catcar__track {
	display: flex;
	gap: 18px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-ms-overflow-style: none;
	padding: 4px 0 24px;
	cursor: grab;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
}
.ai-page .ns-ai-catcar__track::-webkit-scrollbar { display: none; }
.ai-page .ns-ai-catcar__track.is-dragging {
	cursor: grabbing;
	scroll-behavior: auto;
	-webkit-mask-image: none;
	mask-image: none;
}
/* ドラッグ中は user-select / DOM drag を抑止 (click 抑止は JS movedFlag で行う) */
.ai-page .ns-ai-catcar__track.is-dragging,
.ai-page .ns-ai-catcar__track.is-dragging * {
	user-select: none;
	-webkit-user-drag: none;
}

/* Card */
.ai-page .ns-ai-catcar__card {
	flex: 0 0 280px;
	scroll-snap-align: start;
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	position: relative;
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	box-shadow:
		0 1px 0 rgba(31, 41, 55, 0.04),
		0 8px 24px -12px rgba(31, 41, 55, 0.1);
	transition:
		transform .35s cubic-bezier(.2, .8, .2, 1),
		box-shadow .35s cubic-bezier(.2, .8, .2, 1);
}
.ai-page .ns-ai-catcar__card::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: 12px;
	padding: 1px;
	background: linear-gradient(135deg, transparent 0%, var(--catcar-color) 100%);
	-webkit-mask:
		linear-gradient(#fff 0 0) content-box,
		linear-gradient(#fff 0 0);
	mask:
		linear-gradient(#fff 0 0) content-box,
		linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	opacity: 0;
	transition: opacity .3s ease;
	pointer-events: none;
	z-index: 2;
}
.ai-page .ns-ai-catcar__card:hover {
	transform: translateY(-4px);
	box-shadow:
		0 1px 0 rgba(201, 100, 66, 0.12),
		0 16px 36px -12px rgba(31, 41, 55, 0.22);
	text-decoration: none;
}
.ai-page .ns-ai-catcar__card:hover::before {
	opacity: 0.85;
}

/* Media */
.ai-page .ns-ai-catcar__card-media {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: linear-gradient(135deg, var(--nsai-accent) 0%, #fff 100%);
}
.ai-page .ns-ai-catcar__card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s cubic-bezier(.2, .8, .2, 1);
}
.ai-page .ns-ai-catcar__card:hover .ns-ai-catcar__card-img {
	transform: scale(1.04);
}
.ai-page .ns-ai-catcar__card-img-placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--nsai-font-mono);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--catcar-color);
	background:
		radial-gradient(80% 60% at 30% 40%, rgba(201, 100, 66, 0.08) 0%, transparent 60%),
		linear-gradient(135deg, var(--nsai-accent) 0%, #fff 100%);
}
/* グリッド風オーバーレイ (ハイテク感 placeholder) */
.ai-page .ns-ai-catcar__card-img-placeholder::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(0deg, rgba(31, 41, 55, 0.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(31, 41, 55, 0.04) 1px, transparent 1px);
	background-size: 12px 12px;
	pointer-events: none;
}

/* Body */
.ai-page .ns-ai-catcar__card-body {
	padding: 14px 16px 16px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}
.ai-page .ns-ai-catcar__card-tag {
	display: inline-flex;
	align-items: center;
	font-family: var(--nsai-font-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--catcar-color);
	text-transform: uppercase;
	align-self: flex-start;
	padding: 2px 0;
	position: relative;
}
.ai-page .ns-ai-catcar__card-tag::before {
	content: '';
	display: inline-block;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--catcar-color);
	box-shadow: 0 0 4px var(--catcar-color);
	margin-right: 6px;
}
.ai-page .ns-ai-catcar__card-title {
	font-family: var(--nsai-font-sans);
	font-size: 14.5px;
	font-weight: 700;
	color: var(--nsai-secondary);
	line-height: 1.5;
	letter-spacing: -0.005em;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ai-page .ns-ai-catcar__card-date {
	font-family: var(--nsai-font-mono);
	font-size: 11px;
	color: var(--nsai-muted);
	letter-spacing: 0.04em;
	margin-top: auto;
}

/* Nav buttons */
.ai-page .ns-ai-catcar__nav {
	pointer-events: none;
}
.ai-page .ns-ai-catcar__nav-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 40px;
	height: 40px;
	background: #fff;
	border: 1px solid rgba(31, 41, 55, 0.12);
	border-radius: 50%;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--nsai-secondary);
	box-shadow:
		0 4px 16px -4px rgba(31, 41, 55, 0.16),
		0 0 0 1px rgba(31, 41, 55, 0.02);
	transition:
		background .2s ease,
		color .2s ease,
		border-color .2s ease,
		opacity .25s ease,
		transform .2s ease;
	pointer-events: auto;
	z-index: 3;
	padding: 0;
}
.ai-page .ns-ai-catcar__nav-btn svg {
	width: 18px;
	height: 18px;
}
.ai-page .ns-ai-catcar__nav-btn--prev { left: 0; }
.ai-page .ns-ai-catcar__nav-btn--next { right: 0; }
.ai-page .ns-ai-catcar__nav-btn:hover {
	background: var(--catcar-color);
	color: #fff;
	border-color: var(--catcar-color);
}
.ai-page .ns-ai-catcar__nav-btn.is-edge {
	opacity: 0.35;
	pointer-events: none;
}

/* SP 調整 */
@media (max-width: 768px) {
	.ai-page .ns-ai-catcar {
		padding: 14px 0 25px;
	}
	.ai-page .ns-ai-catcar__intro {
		padding: 0 20px;
		margin-bottom: 36px;
	}
	.ai-page .ns-ai-catcar__block {
		padding: 0 20px;
		margin-bottom: 12px;
	}
	.ai-page .ns-ai-catcar__block-head {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}
	.ai-page .ns-ai-catcar__card {
		flex: 0 0 240px;
	}
	.ai-page .ns-ai-catcar__nav-btn {
		display: none;  /* SP はドラッグ/スワイプ操作で十分 */
	}
	.ai-page .ns-ai-catcar__track {
		gap: 14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ai-page .ns-ai-catcar__card,
	.ai-page .ns-ai-catcar__card-img,
	.ai-page .ns-ai-catcar__nav-btn,
	.ai-page .ns-ai-catcar__track {
		transition: none !important;
		scroll-behavior: auto !important;
	}
}

/* =====================================================================
   B4: Hero per-char 超ハイテク タイピング演出 (2026-05-30 / fix v2)
   - eyebrow (BUSINESS LEADER'S JOURNAL) + h1 を 1文字ずつ blur→鮮明 段階fade
   - 完成後: 各文字を index 順に光らせる shimmer-flash
     (旧 bg-clip:text shimmer は子 span が継承できず透明化バグの原因 → 廃止)
   - h1 末尾にテラコッタグロー キャレット (タイピング中点滅→完成で消滅)
   - eyebrow 先行 → h1 順次 (JS 側で trigger 遅延)
   ===================================================================== */
.ai-page .js-nsai-typesplit .nsai-char {
	display: inline-block;
	opacity: 0;
	transform: translateY(10px) scale(0.96);
	filter: blur(6px);
	transition:
		opacity .4s cubic-bezier(.2, .8, .2, 1),
		transform .4s cubic-bezier(.2, .8, .2, 1),
		filter .4s cubic-bezier(.2, .8, .2, 1);
	will-change: opacity, transform, filter;
}
.ai-page .js-nsai-typesplit .nsai-char--space { width: 0.28em; }
.ai-page .js-nsai-typesplit.is-ready .nsai-char {
	opacity: 1;
	transform: translateY(0) scale(1);
	filter: blur(0);
}

/* eyebrow 単色テラコッタ (グラデ廃止: 子 span が継承できないため) */
.ai-page .ns-ai-page__hero-eyebrow.js-nsai-typesplit {
	color: var(--nsai-primary);
}
.ai-page .ns-ai-page__hero-eyebrow.js-nsai-typesplit .nsai-char {
	color: inherit;
}

/* h1 タイトルの char は親色を継承 (既存 secondary) */
.ai-page .ns-ai-page__hero-title.js-nsai-typesplit .nsai-char {
	color: inherit;
}

/* 完成後 per-char flash shimmer (index順に光がスーッと流れる) */
.ai-page .ns-ai-page__hero-eyebrow.js-nsai-typesplit.is-finished .nsai-char {
	animation: nsaiEyebrowFlash .55s ease-out forwards;
	animation-delay: calc(0.035s * var(--char-index, 0));
}
@keyframes nsaiEyebrowFlash {
	0%   { color: var(--nsai-primary); text-shadow: none; }
	45%  { color: #6366f1; text-shadow: 0 0 10px rgba(99, 102, 241, 0.7); }
	100% { color: var(--nsai-primary); text-shadow: none; }
}

.ai-page .ns-ai-page__hero-title.js-nsai-typesplit.is-finished .nsai-char {
	animation: nsaiTitleFlash .65s ease-out forwards;
	animation-delay: calc(0.045s * var(--char-index, 0));
}
@keyframes nsaiTitleFlash {
	0%   { color: var(--nsai-secondary); text-shadow: none; }
	40%  { color: var(--nsai-primary); text-shadow: 0 0 12px rgba(201, 100, 66, 0.75); }
	65%  { color: #6366f1; text-shadow: 0 0 12px rgba(99, 102, 241, 0.65); }
	100% { color: var(--nsai-secondary); text-shadow: none; }
}

/* キャレット (h1 末尾) */
.ai-page .ns-ai-page__hero-title .nsai-caret {
	display: inline-block;
	width: 2px;
	height: 0.85em;
	background: var(--nsai-primary);
	margin-left: 6px;
	vertical-align: -0.05em;
	box-shadow: 0 0 8px rgba(201, 100, 66, 0.65);
	opacity: 0;
	transition: opacity .3s ease;
}
.ai-page .ns-ai-page__hero-title.is-ready .nsai-caret {
	opacity: 1;
	animation: nsaiCaretBlink 0.85s steps(2, start) infinite;
}
.ai-page .ns-ai-page__hero-title.is-finished .nsai-caret {
	opacity: 0;
	animation: none;
}
@keyframes nsaiCaretBlink {
	to { background: transparent; box-shadow: none; }
}

@media (prefers-reduced-motion: reduce) {
	.ai-page .js-nsai-typesplit { visibility: visible !important; }
	.ai-page .js-nsai-typesplit .nsai-char {
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
		transition: none !important;
		animation: none !important;
	}
	.ai-page .ns-ai-page__hero-title .nsai-caret { display: none !important; }
}

/* ============================================================
   about 運営者情報
   親 .ns-ai-page__body-inner(max-width:760px・左右padding:24px)に内包。
   ここで幅・paddingを再指定しない(二重paddingで本文が痩せる／右に余白が出るため)。
   ============================================================ */
.ai-page .ns-ai-about__lead {
	font-family: var(--nsai-font-serif);
	font-size: clamp(17px, 2.1vw, 21px);
	line-height: 1.95;
	letter-spacing: .02em;
	color: var(--nsai-secondary);
	margin: 4px 0 40px;
}
.ai-page .ns-ai-about__section {
	margin: 0 0 44px;
}
.ai-page .ns-ai-about__section:last-child { margin-bottom: 0; }
.ai-page .ns-ai-about__h {
	font-family: var(--nsai-font-serif);
	font-size: clamp(19px, 2.6vw, 24px);
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--nsai-secondary);
	margin: 0 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid rgba(31, 41, 55, .14);
}
.ai-page .ns-ai-about__p {
	font-size: 15.5px;
	line-height: 1.95;
	color: #2D2A26;
	margin: 0 0 16px;
}
.ai-page .ns-ai-about__p:last-child { margin-bottom: 0; }

/* 編集方針 3基準（番号 | タイトル+説明 のエディトリアル横組み行）
   番号とタイトルは baseline で揃え、1 行に並べる。番号は控えめサイズで主張させすぎない。 */
.ai-page .ns-ai-about__principles {
	margin-top: 10px;
	border-top: 1px solid rgba(31, 41, 55, .16);
}
.ai-page .ns-ai-about__principle {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: clamp(14px, 2vw, 22px);
	align-items: baseline;
	padding: clamp(18px, 2.4vw, 26px) 0;
	border-bottom: 1px solid rgba(31, 41, 55, .16);
}
.ai-page .ns-ai-about__principle-no {
	font-family: var(--nsai-font-serif);
	font-size: clamp(21px, 2.2vw, 28px);
	font-weight: 600;
	line-height: 1;
	letter-spacing: .02em;
	color: var(--nsai-primary);
	margin: 0;
	font-feature-settings: "tnum";
	font-variant-numeric: tabular-nums;
}
.ai-page .ns-ai-about__principle-body { min-width: 0; }
.ai-page .ns-ai-about__principle-t {
	font-family: var(--nsai-font-serif);
	font-size: clamp(17px, 2vw, 22px);
	font-weight: 600;
	color: var(--nsai-secondary);
	line-height: 1.4;
	letter-spacing: .01em;
	margin: 0 0 8px;
	white-space: nowrap; /* 折り返し禁止。幅に収まらない端末は JS で自動 fontSize 縮小（1行維持） */
}
.ai-page .ns-ai-about__principle-d {
	font-size: 14px;
	line-height: 1.85;
	color: rgba(45,42,38,.74);
	margin: 0;
}

/* メディア構成 4カテゴリ */
.ai-page .ns-ai-about__cats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
	margin-top: 6px;
}
.ai-page .ns-ai-about__cat {
	background: #fff;
	border: 1px solid rgba(31, 41, 55, .1);
	border-radius: 10px;
	padding: 20px;
}
.ai-page .ns-ai-about__cat-t {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--nsai-font-serif);
	font-size: 16px;
	font-weight: 600;
	color: var(--nsai-secondary);
	margin: 0 0 8px;
}
.ai-page .ns-ai-about__cat-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex: none;
}
.ai-page .ns-ai-about__cat-d {
	font-size: 13.5px;
	line-height: 1.8;
	color: rgba(45,42,38,.72);
	margin: 0;
}

/* 運営会社（簡潔ブロック） */
.ai-page .ns-ai-about__company {
	background: #fff;
	border: 1px solid rgba(31, 41, 55, .1);
	border-radius: 10px;
	padding: 24px;
}
.ai-page .ns-ai-about__company-name {
	font-family: var(--nsai-font-serif);
	font-size: 18px;
	font-weight: 600;
	color: var(--nsai-secondary);
	margin: 0;
	line-height: 1.5;
}
.ai-page .ns-ai-about__company-role {
	font-size: 13px;
	font-weight: 500;
	color: rgba(45,42,38,.62);
	margin: 4px 0 14px;
}
.ai-page .ns-ai-about__company .ns-ai-about__p {
	font-size: 14.5px;
	line-height: 1.9;
	color: rgba(45,42,38,.86);
}
.ai-page .ns-ai-about__company-link {
	margin: 16px 0 0;
}
.ai-page .ns-ai-about__company-link a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 600;
	color: var(--nsai-primary);
	text-decoration: none;
}
.ai-page .ns-ai-about__company-link a:hover { text-decoration: underline; }
.ai-page .ns-ai-about__company-link svg { width: 15px; height: 15px; flex: none; }

@media (max-width: 768px) {
	.ai-page .ns-ai-about__principle { column-gap: 14px; padding: 20px 0; }
	.ai-page .ns-ai-about__principle-no { font-size: 22px; }
	.ai-page .ns-ai-about__cats { grid-template-columns: 1fr; }
	.ai-page .ns-ai-about__section { margin-bottom: 36px; }
}

/* ───── 子ページ共通 prose ルールの飛び火対策（最重要・Rulebook 1-1/1-2） ─────
 * 子ページ本文には共通段落ルール
 *   .ai-page .ns-ai-page--child .ns-ai-page__body-inner p { margin: 0 0 clamp(18-24px) }
 * があり、詳細度 0,3,1。about/CTA はコンポーネント内に <p> を持つため、これに負けて
 *   - CTA サブの margin:0 auto（中央寄せ）が無効化され左寄りになる
 *   - 番号 / 見出し / 各カードの余白が上書きされ行揃え・間隔が崩れる
 * 同じ祖先（.ns-ai-page--child .ns-ai-page__body-inner）を含む 4 クラス（0,4,0）で
 * 各 <p> の余白を再宣言し、確実に勝たせる。max-width 等は飛び火しないため元のまま。 */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-about__lead { margin: 4px 0 40px; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-about__p { margin: 0 0 16px; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-about__p:last-child { margin-bottom: 0; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-about__principle-no { margin: 0; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-about__principle-t { margin: 0 0 8px; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-about__principle-d { margin: 0; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-about__cat-t { margin: 0 0 8px; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-about__cat-d { margin: 0; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-about__company-name { margin: 0; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-about__company-role { margin: 4px 0 14px; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-about__company-link { margin: 16px 0 0; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-page__child-cta-title { margin: 0 0 12px; }
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .ns-ai-page__child-cta-sub { margin: 0 auto 26px; }


/* =============================================================================
 *  記事内 追従見出しピル + 目次オーバーレイ（ns_ai single）
 * ============================================================================= */
.ai-page .ns-ai-single__body h2,
.ai-page .ns-ai-single__body h3 { scroll-margin-top: var(--nsai-toc-offset, 110px); }

.ns-ai-toc-pill {
	position: fixed;
	left: 50%;
	bottom: var(--nsai-toc-pill-bottom, 22px);
	transform: translateX(-50%) translateY(16px);
	z-index: 1200;
	display: flex;
	align-items: center;
	gap: 11px;
	width: max-content;
	max-width: min(92vw, 520px);
	padding: 8px 15px 8px 10px;
	background: rgba(255, 255, 255, 0.82);
	-webkit-backdrop-filter: blur(14px) saturate(1.1);
	backdrop-filter: blur(14px) saturate(1.1);
	border: 1px solid rgba(45, 42, 38, 0.10);
	border-radius: 999px;
	box-shadow: 0 12px 36px rgba(45, 42, 38, 0.16);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.3s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.3s;
	font-family: var(--nsai-font-sans);
}
.ns-ai-toc-pill.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); }
/* 右寄せ修飾子（将来 SP 下部に資料請求/無料相談の追従ボタンが入る場合の共存用） */
.ns-ai-toc-pill--right { left: auto; right: 16px; transform: translateX(0) translateY(16px); }
.ns-ai-toc-pill--right.is-visible { transform: translateX(0) translateY(0); }
.ns-ai-toc-pill:hover { box-shadow: 0 16px 42px rgba(45, 42, 38, 0.22); }

.ns-ai-toc-pill__ring { position: relative; width: 34px; height: 34px; flex: 0 0 auto; }
.ns-ai-toc-pill__ring svg { width: 34px; height: 34px; transform: rotate(-90deg); display: block; }
.ns-ai-toc-pill__ring-bg { fill: none; stroke: rgba(201, 100, 66, 0.18); stroke-width: 3; }
.ns-ai-toc-pill__ring-fg { fill: none; stroke: #C96442; stroke-width: 3; stroke-linecap: round; transition: stroke-dashoffset 0.2s ease; }
.ns-ai-toc-pill__pct { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 700; color: #C96442; }

.ns-ai-toc-pill__body { min-width: 0; display: flex; flex-direction: column; line-height: 1.2; text-align: left; }
.ns-ai-toc-pill__label { font-size: 9px; font-weight: 700; letter-spacing: 0.12em; color: rgba(45, 42, 38, 0.5); }
.ns-ai-toc-pill__current { margin-top: 2px; font-size: 13px; font-weight: 600; color: #2D2A26; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.ns-ai-toc-pill__chev { flex: 0 0 auto; width: 16px; height: 16px; color: rgba(45, 42, 38, 0.42); }

.ns-ai-toc-overlay { position: fixed; inset: 0; z-index: 1300; display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: opacity 0.32s ease, visibility 0.32s; }
.ns-ai-toc-overlay.is-open { opacity: 1; visibility: visible; }
.ns-ai-toc-overlay__backdrop { position: absolute; inset: 0; background: rgba(28, 25, 22, 0.42); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.ns-ai-toc-overlay__panel {
	position: relative;
	width: min(92vw, 560px);
	max-height: 74vh;
	display: flex;
	flex-direction: column;
	background: #FCFBF8;
	border: 1px solid rgba(45, 42, 38, 0.08);
	border-radius: 18px;
	box-shadow: 0 30px 80px rgba(28, 25, 22, 0.28);
	overflow: hidden;
	transform: scale(0.96) translateY(10px);
	opacity: 0;
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.32s ease;
}
.ns-ai-toc-overlay.is-open .ns-ai-toc-overlay__panel { transform: scale(1) translateY(0); opacity: 1; }
.ns-ai-toc-overlay__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 19px 20px 14px; border-bottom: 1px solid rgba(45, 42, 38, 0.08); }
.ns-ai-toc-overlay__heading { display: flex; flex-direction: column; gap: 3px; }
.ns-ai-toc-overlay__eyebrow { font-size: 10px; font-weight: 700; letter-spacing: 0.18em; color: #C96442; }
.ns-ai-toc-overlay__title { margin: 0; font-family: var(--nsai-font-serif); font-size: 19px; font-weight: 600; color: #2D2A26; letter-spacing: 0.02em; }
.ns-ai-toc-overlay__close { flex: 0 0 auto; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(45, 42, 38, 0.14); border-radius: 50%; background: transparent; color: #2D2A26; cursor: pointer; transition: background 0.15s ease, transform 0.2s ease; }
.ns-ai-toc-overlay__close:hover { background: rgba(45, 42, 38, 0.06); transform: rotate(90deg); }

.ns-ai-toc-overlay__list { list-style: none; margin: 0; padding: 10px 12px 18px; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.ns-ai-toc__link { display: flex; gap: 11px; align-items: baseline; text-decoration: none; padding: 10px 12px; border-radius: 10px; color: #2D2A26; transition: background 0.15s ease, color 0.15s ease; }
.ns-ai-toc__link:hover { background: rgba(201, 100, 66, 0.07); }
.ns-ai-toc__num { flex: 0 0 auto; min-width: 22px; font-family: var(--nsai-font-serif); font-size: 12px; font-weight: 700; color: #C96442; }
.ns-ai-toc__text { font-size: 15px; font-weight: 600; line-height: 1.55; }
.ns-ai-toc__item--h3 .ns-ai-toc__link { padding-left: 34px; padding-top: 7px; padding-bottom: 7px; }
.ns-ai-toc__item--h3 .ns-ai-toc__text { font-size: 13.5px; font-weight: 500; color: rgba(45, 42, 38, 0.74); }
.ns-ai-toc__item.is-active > .ns-ai-toc__link { background: rgba(201, 100, 66, 0.10); }
.ns-ai-toc__item.is-active .ns-ai-toc__text { color: #C96442; }
.ns-ai-toc__item.is-active .ns-ai-toc__num { color: #C96442; }

body.ns-ai-no-scroll { overflow: hidden; }

@media (max-width: 600px) {
	.ns-ai-toc-overlay { align-items: flex-end; }
	.ns-ai-toc-overlay__panel { width: 100%; max-height: 82vh; border-radius: 18px 18px 0 0; transform: translateY(100%); }
	.ns-ai-toc-overlay.is-open .ns-ai-toc-overlay__panel { transform: translateY(0); }
	.ns-ai-toc-pill { bottom: var(--nsai-toc-pill-bottom, 14px); padding: 7px 13px 7px 9px; max-width: 95vw; }
	.ns-ai-toc-pill__current { font-size: 12.5px; }
}
@media (prefers-reduced-motion: reduce) {
	.ns-ai-toc-pill, .ns-ai-toc-overlay, .ns-ai-toc-overlay__panel, .ns-ai-toc-pill__ring-fg { transition: none; }
}

/* =============================================================================
 *  お知らせ（[ns_ai_info_list]）— トップ フッター直前の控えめリスト
 * ============================================================================= */
.ai-page .ns-ai-info {
	width: 100%;
	padding: 8px 0 44px;
	background: #fff;
}
.ai-page .ns-ai-info__inner {
	max-width: 880px;
	margin: 0 auto;
	padding: 0 32px;
}
.ai-page .ns-ai-info__panel {
	border: 1px solid var(--nsai-border);
	border-radius: 14px;
	background: linear-gradient(180deg, #fff 0%, var(--nsai-bg) 100%);
	padding: 22px 28px 8px;
}
.ai-page .ns-ai-info__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 6px;
}
.ai-page .ns-ai-info__title {
	font-family: var(--nsai-font-serif);
	font-size: clamp(19px, 2.2vw, 23px);
	font-weight: 600;
	color: var(--nsai-secondary);
	letter-spacing: 0.02em;
	margin: 0;
	line-height: 1.4;
}
.ai-page .ns-ai-info__all {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--nsai-font-sans);
	font-size: 12px;
	font-weight: 600;
	color: var(--nsai-secondary);
	text-decoration: none;
	padding: 6px 2px;
	white-space: nowrap;
	border-bottom: 1px solid transparent;
	transition: color .2s ease, border-color .2s ease, gap .25s ease;
	flex: none;
}
.ai-page .ns-ai-info__all svg { width: 15px; height: 15px; transition: transform .25s ease; }
.ai-page .ns-ai-info__all:hover,
.ai-page .ns-ai-info__all:focus-visible {
	color: var(--nsai-primary);
	border-color: var(--nsai-primary);
	gap: 10px;
	text-decoration: none;
}
.ai-page .ns-ai-info__all:hover svg,
.ai-page .ns-ai-info__all:focus-visible svg { transform: translateX(2px); }

.ai-page .ns-ai-info__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ai-page .ns-ai-info__item { border-top: 1px solid var(--nsai-border); }
.ai-page .ns-ai-info__item:first-child { border-top: none; }
.ai-page .ns-ai-info__link {
	display: flex;
	align-items: baseline;
	gap: 20px;
	padding: 14px 2px;
	text-decoration: none;
}
.ai-page .ns-ai-info__date {
	flex: none;
	min-width: 88px;
	font-family: var(--nsai-font-mono);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--nsai-muted);
	line-height: 1.7;
}
.ai-page .ns-ai-info__text {
	font-family: var(--nsai-font-sans);
	font-size: 15px;
	font-weight: 500;
	color: var(--nsai-body);
	line-height: 1.7;
	transition: color .2s ease;
}
.ai-page .ns-ai-info__link:hover .ns-ai-info__text,
.ai-page .ns-ai-info__link:focus-visible .ns-ai-info__text { color: var(--nsai-primary); }

@media (max-width: 600px) {
	.ai-page .ns-ai-info__inner { padding: 0 18px; }
	.ai-page .ns-ai-info__panel { padding: 18px 18px 4px; border-radius: 12px; }
	.ai-page .ns-ai-info__link { flex-direction: column; gap: 4px; padding: 12px 2px; }
	.ai-page .ns-ai-info__date { min-width: 0; font-size: 11px; }
	.ai-page .ns-ai-info__text { font-size: 14px; }
}

/* ---------- 用語集 独自ミニコラム「Topic」（各用語ページ必須の小ネタ枠） ----------
 *  本文末「関連する用語」直前に置く独自セクション。縦棒/疑似要素content/派手アニメは
 *  使わず、テラコッタ系のクリーム地＋Primary のピルで落ち着いて目立たせる。
 *  本文 h2 の章節罫線（border-top）が効かないよう __body 経由で詳細度を上げて打ち消す。
 */
.ai-page .ns-ai-single__body .ns-topic {
	margin: 2.4em 0;
	padding: 1.3em 1.4em;
	border-radius: 12px;
	background: var(--nsai-accent);
	border: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-single__body .ns-topic__heading {
	display: flex;
	align-items: baseline;
	flex-wrap: nowrap;
	gap: 0.55em;
	margin: 0 0 0.6em;
	padding: 0;
	border-top: none;
	font-size: 19px;
	line-height: 1.55;
	color: var(--nsai-secondary);
}
.ai-page .ns-ai-single__body .ns-topic__label {
	flex: 0 0 auto;
	padding: 0.2em 0.85em;
	font-family: var(--nsai-font-sans);
	font-size: 0.68em;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: #fff;
	background: var(--nsai-primary);
	border-radius: 999px;
}
.ai-page .ns-ai-single__body .ns-topic__body { font-size: 0.98em; line-height: 1.85; }
.ai-page .ns-ai-single__body .ns-topic__body > * + * { margin-top: 1em; }
.ai-page .ns-ai-single__body .ns-topic__body > :last-child { margin-bottom: 0; }

@media (max-width: 600px) {
	.ai-page .ns-ai-single__body .ns-topic { padding: 1.1em 1.1em; }
	.ai-page .ns-ai-single__body .ns-topic__heading { font-size: 17px; }
}

/* ---------- 用語ページの出典ブロック（.ns-sources・控えめ/小さめ・嶋崎方針） ----------
 *  用語集は自分の言葉で語る権威メディア＝外部リンクは最小限（既定0／Tier1を要時のみ1本）。
 *  生URLは出さず「媒体: タイトル」の文字リンクに。外部リンクの別タブ化は g3 が自動付与。
 */
.ai-page .ns-ai-single__body .ns-sources { margin-top: 2.6em; }
.ai-page .ns-ai-single__body .ns-sources h3 {
	font-size: 0.86em;
	color: #8a8a8a;
	font-weight: 600;
	margin-bottom: 0.5em;
	letter-spacing: 0.02em;
}
.ai-page .ns-ai-single__body .ns-sources ul { margin: 0; padding-left: 1.1em; }
.ai-page .ns-ai-single__body .ns-sources li {
	font-size: 0.8em;
	color: #8a8a8a;
	line-height: 1.7;
}
.ai-page .ns-ai-single__body .ns-sources a { color: #8a8a8a; text-decoration: underline; }
.ai-page .ns-ai-single__body .ns-sources a:hover { color: #555; }

/* ---------- 用語ページ 関連用語＋出典 タブ箱（.ns-relbox・横並び/タブ切替・C 嶋崎方針） ----------
 *  本文後半の「関連用語(横並び)」と「出典」を Fallout3大辞典 footer 風のタブ切替に統合。
 *  既定=関連用語、出典は「出典」タブを押すと表示＝初期非表示（離脱/評価流出を抑え、SPの2カラムも不要）。
 *  見た目は最小の「下線テキストタブ」（明朝＋細い区切り線＋アクティブはテラコッタ下線）。
 *  タブ切替JSは inc/ai-functions.php（is_singular(ns_glossary) 時のみ inline 出力）。
 *  プログレッシブ強化＝JS無効時は両パネル表示（JSが .is-js を付けるまで出典を隠さない）。
 */
.ai-page .ns-ai-single__body .ns-relbox { margin-top: 2.8em; }
.ai-page .ns-ai-single__body .ns-relbox__tabs,
.ai-page .ns-ai-single__body .ns-relbox__label {
	display: flex;
	align-items: flex-end;
	gap: 1.5em;
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-single__body .ns-relbox__tab {
	appearance: none;
	-webkit-appearance: none;
	background: none;
	border: 0;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	padding: 0 0 0.55em;
	font-family: var(--nsai-font-serif);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--nsai-muted);
	cursor: pointer;
	transition: color 0.15s ease, border-color 0.15s ease;
}
.ai-page .ns-ai-single__body .ns-relbox__tab:hover { color: var(--nsai-body); }
.ai-page .ns-ai-single__body .ns-relbox__tab.is-active {
	color: var(--nsai-secondary);
	border-bottom-color: var(--nsai-primary);
}
.ai-page .ns-ai-single__body .ns-relbox__tab:focus-visible {
	outline: 2px solid var(--nsai-primary);
	outline-offset: 3px;
	border-radius: 3px;
}
/* 出典0本ページの単一ラベル（タブ無し・見出し体で関連用語の上に置く） */
.ai-page .ns-ai-single__body .ns-relbox__label {
	font-family: var(--nsai-font-serif);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--nsai-secondary);
	padding: 0 0 0.55em;
}
/* パネル（JS有効時のみ非アクティブを隠す＝no-JSは両方表示） */
.ai-page .ns-ai-single__body .ns-relbox__panel { margin-top: 1.15em; }
.ai-page .ns-ai-single__body .ns-relbox.is-js .ns-relbox__panel:not(.is-active) { display: none; }
/* 関連用語＝横並びタグ（折返し・SPでも2カラム不要） */
.ai-page .ns-ai-single__body .ns-relbox__panel[data-panel="related"] {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55em 1.2em;
}
.ai-page .ns-ai-single__body .ns-relbox__term {
	font-size: 0.95em;
	color: var(--nsai-body);
	text-decoration: underline;
	text-decoration-color: var(--nsai-border);
	text-underline-offset: 3px;
	transition: color 0.15s ease, text-decoration-color 0.15s ease;
}
.ai-page .ns-ai-single__body .ns-relbox__term:hover {
	color: var(--nsai-primary);
	text-decoration-color: var(--nsai-primary);
}
/* 出典＝控えめ/小さめ（.ns-sources と同トーン） */
.ai-page .ns-ai-single__body .ns-relbox__panel[data-panel="sources"] {
	display: flex;
	flex-direction: column;
	gap: 0.35em;
}
.ai-page .ns-ai-single__body .ns-relbox__source {
	font-size: 0.8em;
	color: #8a8a8a;
	text-decoration: underline;
	line-height: 1.7;
}
.ai-page .ns-ai-single__body .ns-relbox__source:hover { color: #555; }
@media (max-width: 600px) {
	.ai-page .ns-ai-single__body .ns-relbox__tabs,
	.ai-page .ns-ai-single__body .ns-relbox__label { gap: 1.2em; }
	.ai-page .ns-ai-single__body .ns-relbox__tab,
	.ai-page .ns-ai-single__body .ns-relbox__label { font-size: 16px; }
	.ai-page .ns-ai-single__body .ns-relbox__panel[data-panel="related"] { gap: 0.5em 1em; }
	/* SP: パネル(関連用語/出典 共通)を直上タブへ寄せ、フッターとの間に余白を確保＝所属関係を明確化 */
	.ai-page .ns-ai-single__body .ns-relbox__panel { margin-top: 0.5em; margin-bottom: 1.1em; }
}

/* ---------- 用語ページ FAQ（よくある質問・メタ ns_term_faq 駆動・FAQPage schema と一致） ----------
 *  定義本文の後・関連用語(.ns-relbox)の下に置く Q&A。既定で畳むアコーディオン（details/summary）。
 *  Q&A 本文は初期HTMLに出力済みで details が視覚的に畳むだけ＝遅延読込なし（Google/AIO が取得可・FAQPage valid）。
 *  畳んだ時の可視は summary（見出し＋開閉シェブロン）1行のみ。質問=明朝の小見出し、回答=本文サイズ。
 *  装飾罫線/縦棒/::before content は使わず細い区切り線のみ（relbox と同トーン）。可視テキスト＝FAQPage の text と一致。
 *  展開時は末尾に回遊出口（.ns-ai-faq__exit＝上部関連用語の軽量版・JS充填）を details 内で自動表示。
 *  描画条件＝ns_term_faq が有効データを持つページのみ（テンプレ側で空時は details ごと非出力）。
 */
.ai-page .ns-ai-single__body .ns-ai-faq { margin-top: 1.6em; }
/* summary＝畳んだ時の唯一の可視行。既定の開閉マーカーは消し、機能シェブロンに統一 */
.ai-page .ns-ai-single__body .ns-ai-faq__summary {
	margin: 0;
	padding: 0 0 0.55em;
	border-bottom: 1px solid var(--nsai-border);
	list-style: none;
	cursor: pointer;
}
.ai-page .ns-ai-single__body .ns-ai-faq__summary::-webkit-details-marker { display: none; }
.ai-page .ns-ai-single__body .ns-ai-faq__summary:focus-visible {
	outline: 2px solid var(--nsai-primary);
	outline-offset: 3px;
	border-radius: 3px;
}
.ai-page .ns-ai-single__body .ns-ai-faq__title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	font-family: var(--nsai-font-serif);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.02em;
	color: var(--nsai-secondary);
	margin: 0;
	padding: 0;
}
/* 見出しテキスト＝用語名込み。長い用語は折返し許容（min-width:0 で chevron を押し出さず右固定を維持） */
.ai-page .ns-ai-single__body .ns-ai-faq__title-text { min-width: 0; }
/* 開閉シェブロン＝機能アイコン（border の矢羽根・畳む=下向き/開く=上向き）。装飾縦棒/疑似content 不使用 */
.ai-page .ns-ai-single__body .ns-ai-faq__chevron {
	flex: 0 0 auto;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--nsai-muted);
	border-bottom: 2px solid var(--nsai-muted);
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}
.ai-page .ns-ai-single__body .ns-ai-faq[open] .ns-ai-faq__chevron { transform: rotate(-135deg); }
.ai-page .ns-ai-single__body .ns-ai-faq__summary:hover .ns-ai-faq__title { color: var(--nsai-primary); }
.ai-page .ns-ai-single__body .ns-ai-faq__summary:hover .ns-ai-faq__chevron { border-color: var(--nsai-primary); }
.ai-page .ns-ai-single__body .ns-ai-faq__body { margin: 0; }
.ai-page .ns-ai-single__body .ns-ai-faq__list { margin: 0; padding: 0; }
.ai-page .ns-ai-single__body .ns-ai-faq__item {
	margin: 0;
	padding: 1.15em 0;
	border-bottom: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-single__body .ns-ai-faq__q {
	font-family: var(--nsai-font-serif);
	font-size: 16.5px;
	font-weight: 600;
	line-height: 1.7;
	color: var(--nsai-secondary);
	margin: 0 0 0.5em;
}
.ai-page .ns-ai-single__body .ns-ai-faq__a {
	margin: 0;
	font-size: 15.5px;
	line-height: 1.95;
	color: var(--nsai-body);
}
/* FAQ末尾の回遊出口＝上部関連用語の軽量版（コンパクト1行・上部の棚とは別見た目）。空/未充填は非表示 */
.ai-page .ns-ai-single__body .ns-ai-faq__exit {
	margin-top: 1.3em;
	font-size: 0.92em;
	line-height: 1.9;
}
.ai-page .ns-ai-single__body .ns-ai-faq__exit:empty { display: none; }
.ai-page .ns-ai-single__body .ns-ai-faq__exit-label {
	font-family: var(--nsai-font-serif);
	font-weight: 600;
	color: var(--nsai-secondary);
	margin-right: 0.7em;
}
.ai-page .ns-ai-single__body .ns-ai-faq__exit-sep {
	color: var(--nsai-border);
	margin: 0 0.45em;
}
.ai-page .ns-ai-single__body .ns-ai-faq__exit-term {
	color: var(--nsai-body);
	text-decoration: underline;
	text-decoration-color: var(--nsai-border);
	text-underline-offset: 3px;
	transition: color 0.15s ease, text-decoration-color 0.15s ease;
}
.ai-page .ns-ai-single__body .ns-ai-faq__exit-term:hover {
	color: var(--nsai-primary);
	text-decoration-color: var(--nsai-primary);
}
@media (max-width: 600px) {
	.ai-page .ns-ai-single__body .ns-ai-faq { margin-top: 1.2em; }
	.ai-page .ns-ai-single__body .ns-ai-faq__title { font-size: 19px; }
	.ai-page .ns-ai-single__body .ns-ai-faq__q { font-size: 16px; }
	.ai-page .ns-ai-single__body .ns-ai-faq__exit { font-size: 0.9em; }
}

/* ---------- 用語集 50音インデックス（archive-ns_glossary / [ns_glossary_index]） ----------
 *  検索＋50音ナビを追従ツールバー化（PC:上部sticky一体 / SP:検索は画面下部fixed）。
 *  行ナビ＋行ごとの用語一覧。縦棒/疑似要素content/装飾は使わず明朝＋細い区切り線のみ。
 *  追従オフセットは固定ヘッダー高さ（PC約84px / SP約60px）に合わせた値を採用。
 */
/* 用語集レイアウトの基準インセット（用語テキストの左インセット = リンク左padding）。
   見出し行(__row)の左paddingと共有して「あ」と用語の左端を常に一致させる。 */
.ai-page .ns-ai-archive--glossary { --gloss-inset: 4px; }

/* 件数はタイトル「AI用語集」の右にベースライン揃えで配置（__titlerow でラップ）。
   「現在◯語」＝今後も増える前提の表現。数字はモノスペース tnum の計器的 readout。 */
.ai-page .ns-ai-archive--glossary .ns-ai-archive__titlerow {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 12px;
}
.ai-page .ns-ai-archive--glossary .ns-ai-archive__count {
	display: inline-block;
	margin: 0;
	font-family: var(--nsai-font-mono);
	font-size: 12.5px;
	letter-spacing: 0.02em;
	color: var(--nsai-muted);
	font-feature-settings: "tnum" 1;
	white-space: nowrap;
}

/* 用語集ヘッダーを索引グリッドと同じ container 幅・左端へ揃える。
   header-inner は全アーカイブ共通クラスのため glossary スコープ限定で上書き
   （他アーカイブの中央寄せヘッダーには影響させない）。 */
.ai-page .ns-ai-archive--glossary .ns-ai-archive__header {
	max-width: 1120px;
	padding: 52px 24px 0;
	border-bottom: 0;
}
.ai-page .ns-ai-archive--glossary .ns-ai-archive__header-inner {
	max-width: 720px;
	margin: 0;
}

/* PC(601px以上)のみ：導入ヘッダーとツールバー(検索＋50音ナビ)を中央寄せ＝
   「検索起点の上質なカバー」感。下の用語グリッドは左寄せのまま(中央導入→左グリッド)。
   SP(≤600px)は承認済みの左寄せ現状を維持するため、この min-width で PC 限定にする。 */
@media (min-width: 601px) {
	.ai-page .ns-ai-archive--glossary .ns-ai-archive__header-inner { margin: 0 auto; align-items: center; text-align: center; }
	.ai-page .ns-ai-archive--glossary .ns-ai-archive__titlerow { justify-content: center; }
	.ai-page .ns-ai-archive--glossary .ns-ai-archive__desc { align-self: center; margin: 4px auto 0; }
	.ai-page .ns-ai-glossary-search__field { margin-left: auto; margin-right: auto; }
	.ai-page .ns-ai-glossary-search__status { text-align: center; }
	.ai-page .ns-ai-glossary-index__nav { justify-content: center; }
}

/* ★全幅化の本丸：索引（ツールバー＋50音グループ）に container を付与。
   これが無いと main 直下で左右パディング 0 のまま画面端まで広がる（PC/SP 共通の崩れ）。
   index-wrap は用語集アーカイブ専用クラスなのでスコープ不要。 */
.ai-page .ns-ai-archive__index-wrap {
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 24px 96px;
}

/* PC:検索＋50音ナビを1つの追従ツールバーにまとめてsticky。
   top は追従ヘッダーの実高さに追従させる＝スクロール時ヘッダー高= clamp(52,5.6vw,68)[ロゴ]
   +29px[上下padding14*2+境界1]。+9px の余白で重ならないようにする（嶋崎指摘の重なり解消）。 */
.ai-page .ns-ai-glossary-toolbar {
	position: sticky;
	top: calc(clamp(52px, 5.6vw, 68px) + 38px);
	z-index: 30;
	background: var(--nsai-bg);
	margin-top: 20px;
	padding: 12px 0;
	border-bottom: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-glossary-search { margin: 0 0 12px; }

/* 検索窓：計器/コマンドパレット的なハイテク表現。テラコッタのフォーカスリング＋
   モノスペースの「/」キーキャップ＋精密アイコン。AI生成風の装飾(派手glow/色帯)は使わない。 */
.ai-page .ns-ai-glossary-search__field {
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: 580px;
	padding: 15px 16px;
	background: #fff;
	/* テラコッタ寄りの枠線で「ブランドの検索」として主張を強める（静止時から目立つ） */
	border: 1.5px solid rgba(201, 100, 66, 0.40);
	border-radius: 5px;
	box-shadow: 0 2px 12px rgba(45, 42, 38, 0.08);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.ai-page .ns-ai-glossary-search__field:hover { border-color: rgba(201, 100, 66, 0.62); }
.ai-page .ns-ai-glossary-search__field:focus-within {
	border-color: var(--nsai-primary);
	box-shadow: 0 0 0 3px rgba(201, 100, 66, 0.16), 0 2px 12px rgba(45, 42, 38, 0.09);
}
/* アイコンは静止時からテラコッタ＝「検索窓」だと一目で分かる branded cue（操作前でもハイテク感が出る） */
.ai-page .ns-ai-glossary-search__icon { display: inline-flex; color: var(--nsai-primary); flex: none; transition: color .15s ease; }
.ai-page .ns-ai-glossary-search__icon svg { width: 21px; height: 21px; }
.ai-page .ns-ai-glossary-search__input {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	outline: 0;
	background: transparent;
	font-family: var(--nsai-font-sans);
	font-size: 16px;
	color: var(--nsai-body);
}
/* ブラウザ純正の検索クリア(✕)/装飾を抑止。クリアは自作の「クリア」ボタンに一本化 */
.ai-page .ns-ai-glossary-search__input::-webkit-search-cancel-button,
.ai-page .ns-ai-glossary-search__input::-webkit-search-decoration {
	-webkit-appearance: none;
	appearance: none;
}
/* 「/」キーキャップ風ヒント（"/"で検索にフォーカス＝コマンドパレット的なハイテク signal）。
   未フォーカス・未入力時のみ表示。SP(物理キー無し)は非表示。 */
.ai-page .ns-ai-glossary-search__kbd {
	flex: none;
	font-family: var(--nsai-font-mono);
	font-size: 11px;
	line-height: 1;
	color: var(--nsai-muted);
	background: var(--nsai-bg);
	border: 1px solid var(--nsai-border);
	border-radius: 4px;
	padding: 3px 7px;
	box-shadow: 0 1px 0 rgba(45, 42, 38, 0.10);
}
.ai-page .ns-ai-glossary-search__field:focus-within .ns-ai-glossary-search__kbd,
.ai-page .ns-ai-glossary-search.is-filled .ns-ai-glossary-search__kbd { display: none; }
/* クリア：丸囲み×アイコン＋「クリア」ラベルで操作を明示（素の×より分かりやすく） */
.ai-page .ns-ai-glossary-search__clear {
	display: none;
	align-items: center;
	gap: 5px;
	flex: none;
	padding: 4px 9px 4px 6px;
	border: 0;
	border-radius: 4px;
	background: transparent;
	cursor: pointer;
	color: var(--nsai-muted);
	font-family: var(--nsai-font-sans);
	font-size: 12px;
	line-height: 1;
	transition: color .12s ease, background-color .12s ease;
}
.ai-page .ns-ai-glossary-search__clear svg { width: 17px; height: 17px; flex: none; }
.ai-page .ns-ai-glossary-search__clear:hover,
.ai-page .ns-ai-glossary-search__clear:focus-visible { color: var(--nsai-primary); background: rgba(201, 100, 66, 0.08); }
.ai-page .ns-ai-glossary-search.is-filled .ns-ai-glossary-search__clear { display: inline-flex; }
.ai-page .ns-ai-glossary-search__status {
	margin: 8px 2px 0;
	font-size: 12px;
	color: var(--nsai-muted);
	min-height: 1em;
	font-feature-settings: "tnum" 1;
}

.ai-page .ns-ai-glossary-index__nav { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.ai-page .ns-ai-glossary-index__nav-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.4em;
	padding: 6px 11px;
	font-family: var(--nsai-font-serif);
	font-size: 15px;
	line-height: 1;
	color: var(--nsai-secondary);
	text-decoration: none;
	background: #fff;
	border: 1px solid var(--nsai-border);
	border-radius: 4px;
	transition: background-color .12s ease, color .12s ease, border-color .12s ease;
}
.ai-page .ns-ai-glossary-index__nav-link:hover,
.ai-page .ns-ai-glossary-index__nav-link:focus-visible {
	color: #fff;
	background: var(--nsai-primary);
	border-color: var(--nsai-primary);
}
.ai-page .ns-ai-glossary-index__nav-link[aria-disabled="true"] { opacity: .32; pointer-events: none; }

/* 50音アンカー(#か等)で飛んだ時、見出しが追従ヘッダー＋ツールバーの下に出るオフセット。
   PC=ヘッダー97+ツールバー約146+余白。SPは下記メディアで小さい値に上書き。 */
.ai-page .ns-ai-glossary-index__group { margin: 0 0 8px; scroll-margin-top: 256px; }
.ai-page .ns-ai-glossary-index__group[hidden] { display: none; }
.ai-page .ns-ai-glossary-index__row {
	font-family: var(--nsai-font-serif);
	font-size: 20px;
	font-weight: 600;
	color: var(--nsai-primary);
	margin: 0 0 3px;
	/* 左paddingを --gloss-inset にして用語テキスト(リンク左padding)と左端を揃える */
	padding: 0 0 0 var(--gloss-inset);
	border-bottom: 1px solid var(--nsai-border);
}
.ai-page .ns-ai-glossary-index__row-count {
	font-family: var(--nsai-font-sans);
	font-size: 12px;
	font-weight: 400;
	color: var(--nsai-muted);
	margin-left: 8px;
	font-feature-settings: "tnum" 1;
}
.ai-page .ns-ai-glossary-index__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
	gap: 0 28px;
}
/* li を flex 化して <a> を行（グリッド行）の高さまで伸ばす＝隣接カラムで下罫線が
   一直線に揃う。用語名が2行に折り返しても罫線がガタつかない（台帳＝手帖の整列感）。 */
.ai-page .ns-ai-glossary-index__item { margin: 0; display: flex; min-width: 0; }
.ai-page .ns-ai-glossary-index__item[hidden] { display: none; }
.ai-page .ns-ai-glossary-index__link {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 2px 8px;
	padding: 2px var(--gloss-inset);
	text-decoration: none;
	color: var(--nsai-body);
	border-bottom: 1px solid var(--nsai-border);
	transition: color .12s ease;
}
.ai-page .ns-ai-glossary-index__link:hover .ns-ai-glossary-index__term,
.ai-page .ns-ai-glossary-index__link:focus-visible .ns-ai-glossary-index__term { color: var(--nsai-primary); }
/* min-width:0 で長い用語名/読みがセル内で折り返す（狭幅の横はみ出し防止） */
.ai-page .ns-ai-glossary-index__term { font-size: 15.5px; line-height: 1.55; min-width: 0; overflow-wrap: anywhere; }
.ai-page .ns-ai-glossary-index__reading { font-size: 11.5px; color: var(--nsai-muted); min-width: 0; overflow-wrap: anywhere; }
.ai-page .ns-ai-glossary-index__empty { color: var(--nsai-muted); }
.ai-page .ns-ai-glossary-index__noresult { display: none; color: var(--nsai-muted); font-size: 14px; padding: 24px 2px; }
.ai-page .ns-ai-glossary-index.is-empty .ns-ai-glossary-index__noresult { display: block; }

@media (max-width: 600px) {
	/* SP も container を効かせて左右パディングを確保（余白0の崩れを解消）。
	   ヘッダー／索引で同じ 16px に揃える。50音ナビの margin:0 -16px はこの 16px 前提。 */
	.ai-page .ns-ai-archive--glossary .ns-ai-archive__header { padding: 32px 16px 0; }
	.ai-page .ns-ai-archive--glossary .ns-ai-archive__header-inner { max-width: none; }
	.ai-page .ns-ai-archive__index-wrap { padding: 0 16px 24px; }
	/* SP は2カラム。minmax(0,1fr) で長い用語名も列内に収め、項目内は縦積み（用語→読み）。 */
	.ai-page .ns-ai-glossary-index__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
	/* align-items:stretch で用語/読み span をセル幅に合わせる＝長語が flex-start のまま
	   max-content で右へはみ出さず、セル内で折り返す（テキストは既定で左寄せのまま）。 */
	.ai-page .ns-ai-glossary-index__link { flex-direction: column; align-items: stretch; gap: 1px; padding: 3px var(--gloss-inset); }
	.ai-page .ns-ai-glossary-index__term { font-size: 14px; line-height: 1.5; width: 100%; }
	.ai-page .ns-ai-glossary-index__reading { font-size: 10.5px; width: 100%; }
	/* SP は基準インセットを 2px に（見出しと用語の左端は引き続き自動で一致）。
	   検索の「/」キーキャップは物理キー無しのため非表示。下部fixed検索ぶんの余白も確保。 */
	.ai-page .ns-ai-archive--glossary { --gloss-inset: 2px; padding-bottom: 104px; }
	.ai-page .ns-ai-glossary-search__kbd { display: none; }
	/* SP:ツールバー追従は解除。50音ナビだけ上部sticky、検索は画面下部にfixed追従 */
	.ai-page .ns-ai-glossary-toolbar { position: static; margin-top: 16px; padding: 0; border-bottom: 0; }
	.ai-page .ns-ai-glossary-index__nav {
		position: sticky;
		top: var(--nsai-gloss-stick-top-sp, 60px);
		z-index: 30;
		margin: 0 -16px;
		padding: 12px 16px;
		background: var(--nsai-bg);
		border-bottom: 1px solid var(--nsai-border);
	}
	/* SP:画面下部の固定検索。白いバー＋余白は無駄なので排除し、フィールド単体を「浮かせる」。
	   バーは透明・最小padで、フィールド自身が白塗り＋強い影で content の上に浮く。 */
	.ai-page .ns-ai-glossary-search {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 50;
		margin: 0;
		display: flex;
		flex-direction: column-reverse;
		gap: 6px;
		padding: 0 12px calc(12px + env(safe-area-inset-bottom));
		background: transparent;
		border-top: 0;
		box-shadow: none;
	}
	.ai-page .ns-ai-glossary-search__field {
		max-width: none;
		background: #fff;
		/* content の上に浮く＝強めの影。枠線はテラコッタ(base継承)で主張も担保。 */
		box-shadow: 0 6px 24px rgba(45, 42, 38, 0.20);
	}
	.ai-page .ns-ai-glossary-search__status {
		margin: 0;
		align-self: center;
		padding: 3px 10px;
		background: rgba(255, 255, 255, 0.92);
		border-radius: 4px;
	}
	/* SPアンカーオフセットは小さく（追従ヘッダー＋50音ナビ分のみ） */
	.ai-page .ns-ai-glossary-index__group { scroll-margin-top: 124px; }
	/* 用語集アーカイブのSPは下部固定検索が主導線。コンタクトFABと重なるためFABを非表示
	   （単一ページ/他ページのFABは維持） */
	.ai-page.post-type-archive-ns_glossary .ns-ai-contact-fab { display: none; }
}

/* =============================================================================
 *  用語タグ archive  .ns-ai-archive--gcat / .ns-gcat-*  （taxonomy-ns_glossary_cat.php）
 * =============================================================================
 *  親=配下の子ごとにセクション分け / 子=50音順の単一リスト。用語リンクは索引クラス
 *  (.ns-ai-glossary-index__*) を流用。テラコッタ基調・縦棒/派手装飾なし(§4-4)。
 * ========================================================================== */
.ai-page .ns-ai-archive--gcat .ns-gcat__title {
	font-size: clamp(20px, 2.5vw, 28px);
	line-height: 1.55;
	color: var(--nsai-secondary);
}
.ai-page .ns-gcat__lead {
	font-family: var(--nsai-font-sans);
	font-size: 14.5px;
	line-height: 1.9;
	color: rgba(45, 42, 38, 0.78);
	margin: 6px 0 0;
	align-self: stretch;
	max-width: 64ch;
}
.ai-page .ns-gcat__count {
	font-family: var(--nsai-font-sans);
	font-size: 12.5px;
	font-feature-settings: "tnum" 1;
	letter-spacing: 0.06em;
	color: var(--nsai-muted);
	margin-top: 2px;
}
.ai-page .ns-gcat { --gloss-inset: 4px; }
.ai-page .ns-gcat-section { margin: 0 0 30px; }
.ai-page .ns-gcat-section:last-child { margin-bottom: 0; }
.ai-page .ns-gcat-section__title {
	font-family: var(--nsai-font-serif);
	font-size: 19px;
	font-weight: 600;
	color: var(--nsai-primary);
	margin: 0 0 6px;
	padding: 0 0 6px var(--gloss-inset);
	border-bottom: 1px solid var(--nsai-border);
	display: flex;
	align-items: baseline;
	gap: 10px;
}
.ai-page .ns-gcat-section__count {
	font-family: var(--nsai-font-sans);
	font-size: 12px;
	font-weight: 400;
	color: var(--nsai-muted);
	font-feature-settings: "tnum" 1;
}
.ai-page .ns-gcat-section__desc {
	font-family: var(--nsai-font-sans);
	font-size: 13.5px;
	line-height: 1.85;
	color: rgba(45, 42, 38, 0.7);
	margin: 0 0 12px;
	padding: 0 0 0 var(--gloss-inset);
	max-width: 64ch;
}

/* 用語single：所属タグ（用語カテゴリ）をヘッダのバッジ右に併置＝控えめなテキストリンク（丸角バッジ/派手装飾なし）。
   PCは1行、SPは badge の下へ自然に折り返す。旧・本文下部 footer の上罫線/上余白は使わない。 */
.ai-page .ns-ai-single--glossary .ns-ai-single__cat-meta {
	flex-wrap: wrap;       /* 収まらなければタグ群を次行へ。H1を大きく押し下げないよう row-gap は最小 */
	column-gap: 12px;      /* badge ↔ タグ群の間隔（無駄に空けない） */
	row-gap: 6px;
}
.ai-page .ns-gcat-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 12px;         /* 横を詰めて1行に乗りやすく */
	min-width: 0;
}
.ai-page .ns-gcat-tag {
	display: inline-flex;
	align-items: baseline;
	gap: 3px;
	font-family: var(--nsai-font-sans);
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--nsai-secondary);
	text-decoration: none;
	transition: color .12s ease;
}
.ai-page .ns-gcat-tag__hash { color: var(--nsai-primary); font-weight: 600; }
.ai-page .ns-gcat-tag:hover,
.ai-page .ns-gcat-tag:focus-visible { color: var(--nsai-primary); }
.ai-page .ns-gcat-tag:hover .ns-gcat-tag__term,
.ai-page .ns-gcat-tag:focus-visible .ns-gcat-tag__term { text-decoration: underline; text-underline-offset: 2px; }

@media (max-width: 600px) {
	.ai-page .ns-ai-archive--gcat .ns-ai-archive__header { padding: 32px 16px 0; }
	.ai-page .ns-ai-archive--gcat .ns-ai-archive__header-inner { max-width: none; }
	.ai-page .ns-gcat { --gloss-inset: 2px; }
	.ai-page .ns-gcat-section__title { font-size: 17px; }
}

/* =============================================================================
 *  追従お問い合わせ FAB + モーダル  .ns-ai-contact-fab / .ns-ai-contact-modal
 * =============================================================================
 *  画面右下に追従するお問い合わせボタン。クリックでモーダルに無料相談フォームを表示。
 *  - 記事(ns_ai single)で追従目次ピル(.ns-ai-toc-pill)が DOM にある間は非表示（記事閲覧優先）。
 *  - モーダル展開中もボタンは退避。SP は画面下に寄せて配置（記事閲覧の邪魔をしない）。
 *  - 配色はサイトトーン（ダーク #1F2937 / テラコッタ）に調和。
 * ========================================================================== */
.ns-ai-contact-fab {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 1100;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 13px 20px;
	border: none;
	border-radius: 12px;
	background: var(--nsai-secondary);
	color: #fff;
	font-family: var(--nsai-font-sans);
	font-size: 14.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
	cursor: pointer;
	box-shadow: 0 10px 28px rgba(31, 41, 55, 0.28);
	transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.25s ease, opacity 0.25s ease, filter 0.2s ease;
}
.ns-ai-contact-fab:hover { transform: translateY(-2px); filter: brightness(1.12); box-shadow: 0 14px 34px rgba(31, 41, 55, 0.36); }
.ns-ai-contact-fab:focus-visible { outline: 2px solid var(--nsai-primary); outline-offset: 3px; }
.ns-ai-contact-fab__icon { width: 20px; height: 20px; flex: none; }
.ns-ai-contact-fab__label { white-space: nowrap; }
.ns-ai-contact-fab__label--sp { display: none; }

/* 記事閲覧時=追従目次ピルが DOM に存在する間／モーダル展開中は FAB を退避 */
body:has(.ns-ai-toc-pill) .ns-ai-contact-fab { opacity: 0; visibility: hidden; pointer-events: none; }
body:has(.ns-ai-contact-modal.is-open) .ns-ai-contact-fab { opacity: 0; pointer-events: none; }

@media (max-width: 760px) {
	.ns-ai-contact-fab { right: 14px; bottom: 14px; padding: 11px 15px; gap: 7px; border-radius: 11px; font-size: 13px; }
	.ns-ai-contact-fab__icon { width: 18px; height: 18px; }
	.ns-ai-contact-fab__label--pc { display: none; }
	.ns-ai-contact-fab__label--sp { display: inline; }
}
@media (prefers-reduced-motion: reduce) {
	.ns-ai-contact-fab { transition: opacity 0.2s ease; }
	.ns-ai-contact-fab:hover { transform: none; }
}

.ns-ai-contact-modal {
	position: fixed;
	inset: 0;
	z-index: 1300;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px 16px;
}
.ns-ai-contact-modal[hidden] { display: none; }
.ns-ai-contact-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(31, 41, 55, 0.5);
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
	opacity: 0;
	transition: opacity 0.3s ease;
}
.ns-ai-contact-modal.is-open .ns-ai-contact-modal__backdrop { opacity: 1; }
.ns-ai-contact-modal__panel {
	position: relative;
	width: 100%;
	max-width: 680px;
	max-height: 90vh;
	overflow: auto;
	background: var(--nsai-bg);
	border-radius: 14px;
	box-shadow: 0 24px 60px rgba(31, 41, 55, 0.36);
	opacity: 0;
	transform: translateY(16px) scale(0.98);
	transition: opacity 0.3s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
	-webkit-overflow-scrolling: touch;
}
.ns-ai-contact-modal.is-open .ns-ai-contact-modal__panel { opacity: 1; transform: translateY(0) scale(1); }
.ns-ai-contact-modal__close {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 5;
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: none;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	color: var(--nsai-secondary);
	cursor: pointer;
	box-shadow: 0 2px 10px rgba(31, 41, 55, 0.18);
	transition: background 0.2s ease;
}
.ns-ai-contact-modal__close:hover { background: #fff; }
.ns-ai-contact-modal__close:focus-visible { outline: 2px solid var(--nsai-primary); outline-offset: 2px; }
.ns-ai-contact-modal__body { padding: 0; }
/* ヘッダー：何のフォームかを明示し信頼感を確保。PC基準 */
.ns-ai-contact-modal__header {
	padding: 30px 56px 18px 36px;
	border-bottom: 1px solid var(--nsai-border);
}
.ns-ai-contact-modal__header .ns-ai-contact-modal__title {
	margin: 0;
	font-family: var(--nsai-font-sans);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.02em;
	color: var(--nsai-secondary);
}
.ns-ai-contact-modal__header .ns-ai-contact-modal__lead {
	margin: 7px 0 0;
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--nsai-muted);
}
/* モーダル内でページ用ラッパーを流用するためページ余白を打ち消し、左右にゆとりを確保 */
.ai-page .ns-ai-contact-modal .ns-ai-page--child.ns-ai-contact-modal__body { padding: 18px 36px 30px; background: transparent; }
.ai-page .ns-ai-contact-modal .ns-ai-page--child .ns-ai-page__body-inner { max-width: 100%; }
@media (max-width: 760px) {
	.ns-ai-contact-modal { padding: 0; }
	.ns-ai-contact-modal__panel { max-width: 100%; max-height: 100vh; max-height: 100dvh; height: 100%; border-radius: 0; }
	/* SP：ヘッダー・本文とも余白を控えめに最適化 */
	.ns-ai-contact-modal__header { padding: 22px 54px 13px 20px; }
	.ns-ai-contact-modal__header .ns-ai-contact-modal__title { font-size: 17px; }
	.ns-ai-contact-modal__header .ns-ai-contact-modal__lead { font-size: 12.5px; margin-top: 5px; }
	.ai-page .ns-ai-contact-modal .ns-ai-page--child.ns-ai-contact-modal__body { padding: 16px 20px 24px; }
}
@media (prefers-reduced-motion: reduce) {
	.ns-ai-contact-modal__panel { transition: opacity 0.2s ease; transform: none; }
	.ns-ai-contact-modal.is-open .ns-ai-contact-modal__panel { transform: none; }
}

/* reCAPTCHA v3 バッジ非表示(帰属表記はフォーム内テキストで担保) */
.grecaptcha-badge { visibility: hidden !important; }
/* reCAPTCHA帰属表記(バッジ非表示のため規約準拠でフォーム内に表示)
   本文共通の body-inner p(0,3,1)が margin-top を0上書きするため、フォーム用ルールと同じ詳細度(0,5,0)で勝たせる */
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-recaptcha-note {
	margin: 28px 0 0;
	font-size: 8px;
	line-height: 1.7;
	text-align: center;
	color: var(--nsai-muted);
}
.ai-page .ns-ai-page--child .ns-ai-page__body-inner .wpcf7-form .ns-ai-recaptcha-note a {
	color: inherit;
	text-decoration: underline;
}

/* =====================================================================
   トップ改修(2026-06-03): featured-grid「最新の記事」の縦伸び解消
   - カテゴリを画像左上・日付を画像右下(半透明背景)へ重ねる
   - 画像とタイトルを近づけ、本文をタイトル中心に圧縮
   - カルーセル見出しは SP でも「すべての記事を見る」をカテゴリ名の右に維持
   ===================================================================== */
.ai-page .ns-ai-card--featured-hero .ns-ai-card__media,
.ai-page .ns-ai-card--featured-sub .ns-ai-card__media { position: relative; }
.ai-page .ns-ai-card__media-cat {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	font-size: 9px;
	padding: 3px 7px 2px;
}
.ai-page .ns-ai-card__media-cat[data-slug="news"]       { background: rgba(201, 100, 66, 0.7); }
.ai-page .ns-ai-card__media-cat[data-slug="practice"]   { background: rgba(31, 41, 55, 0.6); }
.ai-page .ns-ai-card__media-cat[data-slug="industries"] { background: rgba(140, 90, 60, 0.68); }
.ai-page .ns-ai-card__media-cat[data-slug="blog"]       { background: rgba(94, 107, 82, 0.68); }
.ai-page .ns-ai-card__media-date {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 2;
	font-family: var(--nsai-font-sans);
	font-size: 11px;
	letter-spacing: 0.06em;
	font-feature-settings: "tnum" 1;
	color: #fff;
	background: rgba(31, 41, 55, 0.55);
	padding: 3px 8px;
}
/* 画像とタイトルを近づける(本文の余白を圧縮) */
.ai-page .ns-ai-card--featured-sub .ns-ai-card__media { margin-bottom: 8px; }
.ai-page .ns-ai-card--featured-hero .ns-ai-card__body,
.ai-page .ns-ai-card--featured-sub .ns-ai-card__body { padding-top: 0; }
.ai-page .ns-ai-card--featured-hero .ns-ai-card__title,
.ai-page .ns-ai-card--featured-sub .ns-ai-card__title { margin-top: 0; }

@media (max-width: 768px) {
	/* Req1: SP でもカテゴリ名の右に「すべての記事を見る」を維持(縦伸び防止) */
	.ai-page .ns-ai-catcar__block-head {
		flex-direction: row;
		align-items: flex-end;
		gap: 12px;
	}
	.ai-page .ns-ai-catcar__block-heading { min-width: 0; }
	.ai-page .ns-ai-catcar__all { font-size: 11px; padding: 4px 2px; }
	/* SP: featured も画像とタイトルを詰める */
	.ai-page .ns-ai-card--featured-hero .ns-ai-card__title,
	.ai-page .ns-ai-card--featured-sub .ns-ai-card__title { margin-top: 0; }
}


/* ---- featured-sub 横スクロール化(hero不変) + カルーセル日付オーバーレイ(2026-06-03 追補) ---- */
/* カルーセルカード: 日付を画像右下へ重ねる(トップ最新記事と統一) */
.ai-page .ns-ai-catcar__card-media .ns-ai-catcar__card-date {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 2;
	margin: 0;
	color: #fff;
	background: rgba(31, 41, 55, 0.55);
	padding: 3px 8px;
	font-size: 11px;
	letter-spacing: 0.04em;
}
/* hero とサブの間隔(旧グリッド gap の代替) */
.ai-page .ns-ai-featured__hero { margin-bottom: clamp(20px, 2.4vw, 32px); }
/* サブ記事: PC=1行 横スクロール(SPは2行) */
.ai-page .ns-ai-featured__subs {
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	scrollbar-width: none;          /* ネイティブバーは隠し独自レールへ集約 */
	padding-bottom: 4px;
	cursor: grab;
}
.ai-page .ns-ai-featured__subs.is-dragging {
	cursor: grabbing;
	user-select: none;
}
.ai-page .ns-ai-featured__subs-track {
	display: grid;
	grid-auto-flow: column;
	grid-template-rows: 1fr;
	grid-auto-columns: clamp(200px, 21vw, 244px);
	gap: clamp(14px, 1.6vw, 20px);
	align-items: start;
}
.ai-page .ns-ai-featured__subs .ns-ai-card--featured-sub { scroll-snap-align: start; }
.ai-page .ns-ai-featured__subs::-webkit-scrollbar { width: 0; height: 0; display: none; }

/* ---------------------------------------------------------------------------
   最新の記事 サブ横スクローラ: 独自「進捗レール」操作UI(計器型)
   ネイティブバーを隠し、可動thumb付きレール + 極小フラット矢印に置換。
   thumb幅=可視割合 / 位置=スクロール進捗。JSが overflow を検知した時(is-scrollable)
   だけ表示し、件数が少なく横にあふれない時は出さない。
--------------------------------------------------------------------------- */
.ai-page .ns-ai-featured__rail {
	display: none;
	align-items: center;
	gap: 12px;
	margin-top: 14px;
	padding: 0 2px;
}
.ai-page .ns-ai-featured.is-scrollable .ns-ai-featured__rail { display: flex; }

.ai-page .ns-ai-featured__rail-track {
	position: relative;
	flex: 1 1 auto;
	height: 2px;
	background: rgba(31, 41, 55, 0.12);
	border-radius: 999px;
	cursor: pointer;
	touch-action: none;
}
.ai-page .ns-ai-featured__rail-thumb {
	position: absolute;
	top: 50%;
	left: 0;
	width: 32px;
	min-width: 28px;
	height: 6px;
	transform: translate(0, -50%);
	background: var(--nsai-primary);
	border-radius: 999px;
	cursor: grab;
}
.ai-page .ns-ai-featured.is-railing .ns-ai-featured__rail-track,
.ai-page .ns-ai-featured.is-railing .ns-ai-featured__rail-thumb { cursor: grabbing; }

.ai-page .ns-ai-featured__arrow {
	flex: 0 0 auto;
	width: 26px;
	height: 26px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--nsai-secondary);
	cursor: pointer;
	border-radius: 7px;
	transition: color .18s ease, background .18s ease, opacity .2s ease;
}
.ai-page .ns-ai-featured__arrow svg { width: 16px; height: 16px; }
.ai-page .ns-ai-featured__arrow:hover { color: var(--nsai-primary); background: rgba(31, 41, 55, 0.05); }
.ai-page .ns-ai-featured__arrow.is-edge { opacity: 0.26; pointer-events: none; }

@media (max-width: 768px) {
	/* SP: サブ記事を2行で横スクロール(1スクロールコンテナ=2行ごと一括スクロール) */
	.ai-page .ns-ai-featured__subs-track {
		grid-template-rows: repeat(2, auto);
		grid-auto-columns: clamp(124px, 38vw, 156px);
		gap: 12px 10px;
	}
	/* SP: スワイプ主体。矢印は隠し、レールは進捗指標+thumbドラッグとして残す */
	.ai-page .ns-ai-featured__rail { gap: 0; margin-top: 12px; }
	.ai-page .ns-ai-featured__arrow { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.ai-page .ns-ai-featured__subs { scroll-behavior: auto; }
	.ai-page .ns-ai-featured__arrow { transition: none; }
}


/* =============================================================================
 *  AI用語集 導線（2026-06-04）
 *  PCグローバルナビ pill / SP フィーチャーカード / トップ スポットライトパネル。
 *  いずれも記事カテゴリと並列に見せず、件数の mono readout で「AI用語集感」を出す。
 *  テラコッタ #C96442 + ネイビー #1F2937 のブランド内で、glow/装飾svg/縦罫線を使わない。
 * ============================================================================= */

/* --- PC グローバルナビ：用語集 pill（カテゴリのテキストリンクと別格） --- */
.ai-page .ns-ai-nav__list { align-items: center; }
.ai-page .ns-ai-nav__item--glossary { margin: 0; }
.ai-page .ns-ai-glosslink {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 8px 6px 13px;
	border: 1px solid color-mix(in srgb, var(--nsai-primary) 40%, var(--nsai-border));
	border-radius: 4px;
	background: color-mix(in srgb, var(--nsai-primary) 6%, #fff);
	font-family: var(--nsai-font-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--nsai-secondary);
	text-decoration: none;
	line-height: 1;
	transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.ai-page .ns-ai-glosslink__count {
	font-family: var(--nsai-font-mono);
	font-size: 11px;
	font-weight: 700;
	font-feature-settings: "tnum" 1;
	letter-spacing: 0;
	color: var(--nsai-primary);
	background: color-mix(in srgb, var(--nsai-primary) 12%, #fff);
	border-radius: 3px;
	padding: 3px 6px;
	line-height: 1;
}
.ai-page .ns-ai-glosslink:hover,
.ai-page .ns-ai-glosslink:focus-visible {
	border-color: var(--nsai-primary);
	background: color-mix(in srgb, var(--nsai-primary) 12%, #fff);
	color: var(--nsai-primary);
	text-decoration: none;
}
.ai-page .ns-ai-glosslink:hover .ns-ai-glosslink__count,
.ai-page .ns-ai-glosslink:focus-visible .ns-ai-glosslink__count {
	background: var(--nsai-primary);
	color: #fff;
}

/* --- SP メニュー：用語集フィーチャーカード（カテゴリ行と別格・ネイビー） --- */
.ai-page .ns-ai-mobile__glossary {
	display: block;
	margin: 0 0 20px;
	padding: 16px 16px 15px;
	border-radius: 8px;
	text-decoration: none;
	background:
		radial-gradient(130% 130% at 100% 0%, rgba(201, 100, 66, 0.32) 0%, transparent 55%),
		linear-gradient(135deg, #25303f 0%, #1F2937 100%);
	border: 1px solid rgba(201, 100, 66, 0.42);
	box-shadow: 0 8px 24px rgba(31, 41, 55, 0.18);
}
.ai-page .ns-ai-mobile__glossary-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 0 0 9px;
}
.ai-page .ns-ai-mobile__glossary-eyebrow {
	font-family: var(--nsai-font-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.28em;
	color: var(--nsai-primary);
}
.ai-page .ns-ai-mobile__glossary-count {
	font-family: var(--nsai-font-mono);
	font-size: 18px;
	font-weight: 700;
	font-feature-settings: "tnum" 1;
	color: #fff;
	line-height: 1;
}
.ai-page .ns-ai-mobile__glossary-count span {
	font-size: 11px;
	font-weight: 600;
	color: var(--nsai-accent);
	margin-left: 2px;
}
.ai-page .ns-ai-mobile__glossary-name {
	display: block;
	font-family: var(--nsai-font-serif);
	font-size: 19px;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: #fff;
	margin: 0 0 4px;
}
.ai-page .ns-ai-mobile__glossary-desc {
	display: block;
	font-family: var(--nsai-font-sans);
	font-size: 12px;
	line-height: 1.6;
	color: rgba(245, 230, 211, 0.78);
}

/* --- トップ：AI用語集 スポットライトパネル（featured と catcar の区切り） --- */
.ai-page .ns-ai-glosspromo {
	max-width: 1120px;
	margin: clamp(28px, 3.5vw, 44px) auto;
	padding: 0 clamp(16px, 3vw, 28px);
}
.ai-page .ns-ai-glosspromo__panel {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(24px, 3vw, 44px);
	align-items: center;
	padding: clamp(28px, 3.4vw, 44px);
	border-radius: 14px;
	background:
		radial-gradient(130% 120% at 100% 0%, rgba(201, 100, 66, 0.22) 0%, transparent 52%),
		linear-gradient(135deg, #25303f 0%, #1F2937 60%, #181f29 100%);
	border: 1px solid rgba(201, 100, 66, 0.28);
	box-shadow: 0 18px 50px rgba(24, 31, 41, 0.26);
	overflow: hidden;
}
/* lead はグリッド：PCは「title」を全幅・その下に「count（左）｜cta（右）」を同一行に並べる */
.ai-page .ns-ai-glosspromo__lead {
	min-width: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-areas:
		"eyebrow eyebrow"
		"title   title"
		"count   cta"
		"desc    desc";
	align-items: center;
	column-gap: 20px;
	row-gap: 14px;
}
.ai-page .ns-ai-glosspromo__eyebrow {
	grid-area: eyebrow;
	font-family: var(--nsai-font-mono);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.34em;
	color: var(--nsai-primary);
	margin: 0;
}
.ai-page .ns-ai-glosspromo__title {
	grid-area: title;
	font-family: var(--nsai-font-serif);
	font-size: clamp(26px, 3.4vw, 38px);
	font-weight: 600;
	letter-spacing: 0.04em;
	color: #fff;
	line-height: 1.2;
	margin: 0;
}
.ai-page .ns-ai-glosspromo__count {
	grid-area: count;
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 0;
}
.ai-page .ns-ai-glosspromo__count-num {
	font-family: var(--nsai-font-mono);
	font-size: clamp(34px, 4.6vw, 52px);
	font-weight: 700;
	font-feature-settings: "tnum" 1;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	color: var(--nsai-primary);
	letter-spacing: -0.01em;
	transition: text-shadow .6s ease;
}
/* 収録数カウントアップ（17b）：JS有効時のみ開始前を伏せ、スクロールインで現出。完了時にやわらかな発光 */
.ai-page .ns-ai-glosspromo__count.nsai-cu {
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .7s cubic-bezier(.22, .61, .36, 1), transform .7s cubic-bezier(.22, .61, .36, 1);
}
.ai-page .ns-ai-glosspromo__count.nsai-cu.is-inview {
	opacity: 1;
	transform: none;
}
.ai-page .ns-ai-glosspromo__count.is-done .ns-ai-glosspromo__count-num {
	text-shadow: 0 0 22px color-mix(in srgb, var(--nsai-primary) 42%, transparent);
}
.ai-page .ns-ai-glosspromo__count-unit {
	font-family: var(--nsai-font-sans);
	font-size: 14px;
	font-weight: 600;
	color: var(--nsai-accent);
	letter-spacing: 0.06em;
}
.ai-page .ns-ai-glosspromo__desc {
	grid-area: desc;
	font-family: var(--nsai-font-sans);
	font-size: 14px;
	line-height: 1.8;
	color: rgba(245, 230, 211, 0.82);
	margin: 0;
	max-width: 34em;
}
/* CTA：左スペーサー(18px)｜テキスト(中央)｜→(18px) の3列で、テキストをボタン中央に・矢印は右端に固定 */
.ai-page .ns-ai-glosspromo__cta {
	grid-area: cta;
	justify-self: end;
	display: grid;
	grid-template-columns: 18px 1fr 18px;
	align-items: center;
	column-gap: 8px;
	width: fit-content;
	margin: 0;
	padding: 12px 22px;
	border-radius: 6px;
	background: var(--nsai-primary);
	color: #fff;
	font-family: var(--nsai-font-sans);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
	transition: background-color .18s ease;
}
.ai-page .ns-ai-glosspromo__cta span { grid-column: 2; text-align: center; }
.ai-page .ns-ai-glosspromo__cta svg { grid-column: 3; width: 18px; height: 18px; }
.ai-page .ns-ai-glosspromo__cta:hover,
.ai-page .ns-ai-glosspromo__cta:focus-visible {
	background: color-mix(in srgb, var(--nsai-primary) 86%, #000);
	color: #fff;
	text-decoration: none;
}
.ai-page .ns-ai-glosspromo__showcase { min-width: 0; }
.ai-page .ns-ai-glosspromo__showcase-cap {
	font-family: var(--nsai-font-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.28em;
	color: rgba(245, 230, 211, 0.55);
	margin: 0 0 12px;
}
.ai-page .ns-ai-glosspromo__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	padding: 0;
	margin: 0;
}
.ai-page .ns-ai-glosspromo__chip-item { margin: 0; }
.ai-page .ns-ai-glosspromo__chip {
	display: inline-block;
	padding: 7px 12px;
	border-radius: 4px;
	border: 1px solid rgba(245, 230, 211, 0.18);
	background: rgba(255, 255, 255, 0.04);
	font-family: var(--nsai-font-sans);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: rgba(245, 230, 211, 0.9);
	text-decoration: none;
	line-height: 1.3;
	transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.ai-page .ns-ai-glosspromo__chip:hover,
.ai-page .ns-ai-glosspromo__chip:focus-visible {
	border-color: var(--nsai-primary);
	background: color-mix(in srgb, var(--nsai-primary) 20%, transparent);
	color: #fff;
	text-decoration: none;
}
@media (max-width: 768px) {
	.ai-page .ns-ai-glosspromo__panel {
		grid-template-columns: 1fr;
		gap: 22px;
		border-radius: 12px;
	}
	/* SP：タイトルの右に収録数／本文は全幅／CTAは全幅で最下段 */
	.ai-page .ns-ai-glosspromo__lead {
		grid-template-areas:
			"eyebrow eyebrow"
			"title   count"
			"desc    desc"
			"cta     cta";
		align-items: baseline;
		column-gap: 12px;
	}
	/* SP：CTAをleadの横幅いっぱい＋少し大きく（テキスト中央・→右端は共通） */
	.ai-page .ns-ai-glosspromo__cta {
		justify-self: stretch;
		width: 100%;
		font-size: 15.5px;
		padding: 14px 22px;
	}
}


/* =============================================================================
 *  フッター直前 信頼バンド（2026-06-04）
 *  ABOUT(EEAT)+無料相談CTA / いま読まれている用語（直近3日の人気・薄い間は新着補完）。
 *  黒フッターの直上に明るい暖色バンドを置き、記事カードで終わる密度を断つ休符。
 * ============================================================================= */
.ai-page .ns-ai-aboutband {
	width: 100%;
	background: linear-gradient(180deg, #fff 0%, #F7F1E8 100%);
	border-top: 1px solid var(--nsai-border);
	padding: clamp(32px, 4vw, 48px) 0;
}
.ai-page .ns-ai-aboutband__inner {
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 clamp(16px, 3vw, 28px);
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.82fr);
	gap: clamp(28px, 4.5vw, 64px);
	align-items: start;
}
.ai-page .ns-ai-aboutband__eyebrow {
	font-family: var(--nsai-font-mono);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.32em;
	color: var(--nsai-primary);
	margin: 0 0 10px;
}
.ai-page .ns-ai-aboutband__title {
	font-family: var(--nsai-font-serif);
	font-size: clamp(20px, 2.4vw, 26px);
	font-weight: 600;
	letter-spacing: 0.03em;
	color: var(--nsai-secondary);
	line-height: 1.35;
	margin: 0 0 14px;
}
.ai-page .ns-ai-aboutband__text {
	font-family: var(--nsai-font-sans);
	font-size: 14px;
	line-height: 1.85;
	color: var(--nsai-body);
	margin: 0 0 14px;
	max-width: 40em;
}
.ai-page .ns-ai-aboutband__meta {
	font-family: var(--nsai-font-sans);
	font-size: 13px;
	font-weight: 600;
	color: var(--nsai-secondary);
	letter-spacing: 0.02em;
	margin: 0;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px;
}
.ai-page .ns-ai-aboutband__meta-sep { color: var(--nsai-border); }
.ai-page .ns-ai-aboutband__meta-link {
	color: var(--nsai-primary);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color .15s ease;
}
.ai-page .ns-ai-aboutband__meta-link:hover,
.ai-page .ns-ai-aboutband__meta-link:focus-visible {
	border-bottom-color: var(--nsai-primary);
	text-decoration: none;
}
/* 右：いま読まれている用語（ledger=用語名 左・読み 右） */
.ai-page .ns-ai-aboutband__trending-head {
	display: flex;
	align-items: baseline;
	gap: 12px;
	flex-wrap: wrap;
	margin: 0 0 8px;
}
.ai-page .ns-ai-aboutband__eyebrow--trending { margin: 0; }
.ai-page .ns-ai-aboutband__trending-title {
	font-family: var(--nsai-font-serif);
	font-size: 16px;
	font-weight: 600;
	color: var(--nsai-secondary);
	letter-spacing: 0.03em;
	margin: 0;
}
.ai-page .ns-ai-aboutband__list {
	list-style: none;
	padding: 0;
	margin: 0 0 14px;
}
.ai-page .ns-ai-aboutband__item { border-bottom: 1px solid var(--nsai-border); }
.ai-page .ns-ai-aboutband__item:first-child { border-top: 1px solid var(--nsai-border); }
.ai-page .ns-ai-aboutband__link {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 8px 2px;
	text-decoration: none;
	min-width: 0;
	transition: padding-left .15s ease;
}
.ai-page .ns-ai-aboutband__link:hover,
.ai-page .ns-ai-aboutband__link:focus-visible {
	padding-left: 6px;
	text-decoration: none;
}
.ai-page .ns-ai-aboutband__term {
	font-family: var(--nsai-font-sans);
	font-size: 14px;
	font-weight: 600;
	color: var(--nsai-secondary);
	letter-spacing: 0.01em;
	overflow-wrap: anywhere;
	transition: color .15s ease;
}
.ai-page .ns-ai-aboutband__link:hover .ns-ai-aboutband__term,
.ai-page .ns-ai-aboutband__link:focus-visible .ns-ai-aboutband__term {
	color: var(--nsai-primary);
}
.ai-page .ns-ai-aboutband__reading {
	font-family: var(--nsai-font-mono);
	font-size: 11px;
	font-weight: 500;
	color: var(--nsai-muted);
	letter-spacing: 0;
	white-space: nowrap;
	margin-left: auto;
	flex-shrink: 0;
}
.ai-page .ns-ai-aboutband__all {
	font-family: var(--nsai-font-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: var(--nsai-body);
	text-decoration: none;
	border-bottom: 1px solid var(--nsai-border);
	padding: 0 0 4px;
	transition: color .15s ease, border-color .15s ease;
}
.ai-page .ns-ai-aboutband__all:hover,
.ai-page .ns-ai-aboutband__all:focus-visible {
	color: var(--nsai-primary);
	border-bottom-color: var(--nsai-primary);
	text-decoration: none;
}
@media (max-width: 768px) {
	.ai-page .ns-ai-aboutband__inner {
		grid-template-columns: 1fr;
		gap: 28px;
	}
}
