/*
 * components.css
 *
 * Step16（UI/UXデザイン刷新）で追加。
 * サイト全体で共有するCSS変数（色・余白・角丸・影）と、
 * カード・ボタン・バッジ・セクション見出し等の共通
 * コンポーネントクラスを定義する。
 *
 * デザイン方向性：「情報を並べるサイト」から「AIコンシェルジュが
 * 商品選びを手伝うサイト」へ。信頼感・AIサービス感・比較サイトの
 * 安心感を優先し、派手な演出は避ける。
 *
 * 本ファイルはHTML構造やデータ取得ロジックを一切含まない、
 * 純粋なスタイル定義のみのファイルである。
 */

:root {
	/* ---- カラー：AIブルー系をメインに、比較・おすすめ用のアクセントを追加 ---- */
	--kb-color-primary: #2451e0;
	--kb-color-primary-dark: #17347e;
	--kb-color-primary-light: #eef3ff;
	--kb-color-accent: #12b886;
	--kb-color-accent-light: #e6faf4;
	--kb-color-warning: #b8860b;
	--kb-color-warning-bg: #fdf6e3;
	--kb-color-text: #1a1d29;
	--kb-color-text-muted: #6b7280;
	--kb-color-bg: #ffffff;
	--kb-color-bg-subtle: #f7f8fb;
	--kb-color-border: #e6e8ee;

	/* ---- 余白スケール ---- */
	--kb-space-xs: 8px;
	--kb-space-sm: 12px;
	--kb-space-md: 20px;
	--kb-space-lg: 32px;
	--kb-space-xl: 56px;
	--kb-space-2xl: 88px;

	/* ---- 角丸・影 ---- */
	--kb-radius-sm: 8px;
	--kb-radius-md: 14px;
	--kb-radius-lg: 20px;
	--kb-radius-pill: 999px;
	--kb-shadow-sm: 0 1px 2px rgba(20, 24, 40, 0.06);
	--kb-shadow-md: 0 4px 16px rgba(20, 24, 40, 0.08);
	--kb-shadow-lg: 0 12px 32px rgba(20, 24, 40, 0.12);

	/* ---- フォントサイズ ---- */
	--kb-font-size-sm: 0.85rem;
	--kb-font-size-base: 1rem;
	--kb-font-size-lg: 1.15rem;
	--kb-font-size-xl: 1.6rem;
	--kb-font-size-2xl: 2.1rem;
}

/* ---- ベースコンテナ ---- */

.kb-container {
	max-width: 1040px;
	margin: 0 auto;
	padding: 0 var(--kb-space-md);
}

.kb-section {
	margin: var(--kb-space-2xl) 0;
}

.kb-section--tight {
	margin: var(--kb-space-xl) 0;
}

/* ---- セクション見出し（section-title.php）---- */

.kb-section-title {
	text-align: center;
	margin-bottom: var(--kb-space-lg);
}

.kb-section-title__eyebrow {
	display: inline-block;
	font-size: var(--kb-font-size-sm);
	font-weight: 700;
	color: var(--kb-color-primary);
	letter-spacing: 0.04em;
	margin-bottom: 6px;
}

.kb-section-title__heading {
	font-size: var(--kb-font-size-xl);
	margin: 0 0 8px;
	color: var(--kb-color-text);
}

.kb-section-title__lead {
	color: var(--kb-color-text-muted);
	font-size: var(--kb-font-size-base);
	max-width: 560px;
	margin: 0 auto;
}

/* ---- 共通カード ---- */

.kb-card {
	background: var(--kb-color-bg);
	border: 1px solid var(--kb-color-border);
	border-radius: var(--kb-radius-md);
	box-shadow: var(--kb-shadow-sm);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

a.kb-card {
	display: block;
	text-decoration: none;
	color: inherit;
}

a.kb-card:hover {
	box-shadow: var(--kb-shadow-md);
	transform: translateY(-2px);
}

.kb-card--flat {
	box-shadow: none;
}

.kb-grid {
	display: grid;
	gap: var(--kb-space-md);
}

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

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

.kb-grid--auto {
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

/* ---- 共通ボタン ---- */

.kb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 14px 28px;
	border-radius: var(--kb-radius-pill);
	font-weight: 700;
	font-size: var(--kb-font-size-base);
	text-decoration: none;
	cursor: pointer;
	border: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
	line-height: 1.2;
}

.kb-btn:hover {
	transform: translateY(-1px);
}

.kb-btn--primary {
	background: var(--kb-color-primary);
	color: #fff;
	box-shadow: var(--kb-shadow-md);
}

.kb-btn--secondary {
	background: #fff;
	color: var(--kb-color-primary);
	border: 1.5px solid var(--kb-color-primary);
}

.kb-btn--accent {
	background: var(--kb-color-accent);
	color: #fff;
}

.kb-btn--block {
	display: flex;
	width: 100%;
}

.kb-btn--lg {
	padding: 16px 36px;
	font-size: var(--kb-font-size-lg);
}

/* ---- バッジ ---- */

.kb-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 12px;
	border-radius: var(--kb-radius-pill);
	font-size: 0.75rem;
	font-weight: 700;
}

.kb-badge--ai {
	background: var(--kb-color-primary-light);
	color: var(--kb-color-primary);
}

.kb-badge--info {
	background: var(--kb-color-bg-subtle);
	color: var(--kb-color-text-muted);
	border: 1px solid var(--kb-color-border);
}

.kb-badge--accent {
	background: var(--kb-color-accent-light);
	color: var(--kb-color-accent);
}

.kb-badge--tag {
	background: var(--kb-color-bg-subtle);
	color: var(--kb-color-text-muted);
}

/* ---- 結論・警告カード ---- */

.kb-verdict-card {
	background: linear-gradient(135deg, var(--kb-color-primary-light) 0%, #ffffff 100%);
	border: 1px solid var(--kb-color-primary-light);
	border-radius: var(--kb-radius-lg);
	padding: var(--kb-space-lg);
}

.kb-good-card {
	background: var(--kb-color-accent-light);
	border-radius: var(--kb-radius-md);
	padding: var(--kb-space-md);
}

.kb-warning-card {
	background: var(--kb-color-warning-bg);
	border-radius: var(--kb-radius-md);
	padding: var(--kb-space-md);
	color: #6b5416;
}

/* ---- レスポンシブ（モバイル最優先） ---- */

@media (max-width: 767px) {
	:root {
		--kb-space-2xl: 48px;
		--kb-space-xl: 32px;
	}

	.kb-grid--2,
	.kb-grid--3 {
		grid-template-columns: 1fr;
	}

	.kb-btn {
		width: 100%;
	}

	.kb-section-title__heading {
		font-size: var(--kb-font-size-lg);
	}
}
