/*
 * AI Content Ops Theme — メインスタイルシート
 *
 * デザイン方針：白ベース・余白広め・カード型・スマホ最適化・
 * note/SaaSサイトのようなクリーンな印象（詳細は design_direction.md 参照）。
 */

:root {
	--aico-main-color: #1f2937;
	--aico-accent-color: #2563eb;
	--aico-bg: #f7f8fa;
	--aico-card-bg: #ffffff;
	--aico-border: #e5e7eb;
	--aico-text: #1f2937;
	--aico-text-muted: #6b7280;
	--aico-radius: 10px;
	--aico-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
	--aico-max-width: 1120px;
	/* v1.2.0: デザインプリセット用トークン（既定値=Clean SaaS相当） */
	--aico-button-radius: 999px;
	--aico-heading-font: inherit;
	--aico-heading-weight: 700;
	--aico-spacing-multiplier: 1;
}

/* ---------- リセット・基本 ---------- */

*, *::before, *::after {
	box-sizing: border-box;
}

/* v1.6.0/v1.6.1: モバイル横はみ出し防止の安全網。個別の原因（幅指定ミス等）を直すのが
   本筋だが、意図しない要素が横にはみ出しても画面全体が横スクロールしない
   ようにしておく（各要素自体の見た目・レイアウトには影響しない）。
   overflow-x:clip は hidden と異なり新しいスクロールコンテナを作らないため、
   position:stickyのヘッダー等への副作用がない。未対応ブラウザ向けにhiddenも残す */
html {
	overflow-x: hidden;
	overflow-x: clip;
	/* v1.7.1: overflow-x:clipは要素自身の描画上のはみ出しは防ぐが、トラックパッドの
	   横スワイプ等でページ末端に達した際のブラウザの弾性（rubber-band）挙動や
	   戻る/進むスワイプナビゲーションの誘発までは防がない。これが実際の横方向の
	   はみ出し（scrollWidth > clientWidth）が無くても「謎のスクロール」に見える
	   一因のため、最後の安全網としてoverscroll-behavior-xも併用する
	   （ページ内の縦スクロールやスライダー自体の操作性には影響しない） */
	overscroll-behavior-x: none;
}

body {
	margin: 0;
	background: var(--aico-bg);
	color: var(--aico-text);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Noto Sans JP", sans-serif;
	line-height: 1.8;
	font-size: 16px;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
	overflow-x: clip;
	overscroll-behavior-x: none;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--aico-accent-color);
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

h1, h2, h3, h4 {
	color: var(--aico-main-color);
	line-height: 1.4;
	margin: 0 0 0.6em;
	font-family: var(--aico-heading-font);
	font-weight: var(--aico-heading-weight);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
}

/* ---------- v1.4.0: アクセシビリティ（スキップリンク・フォーカス表示） ---------- */

.aico-skip-link.screen-reader-text:focus {
	position: fixed;
	top: 8px;
	left: 8px;
	width: auto;
	height: auto;
	clip: auto;
	z-index: 9999;
	background: var(--aico-main-color);
	color: #ffffff;
	padding: 10px 20px;
	border-radius: 6px;
	font-weight: 600;
	text-decoration: none;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
.aico-menu-toggle:focus-visible,
.aico-card-thumb-link:focus-visible {
	outline: 3px solid var(--aico-accent-color);
	outline-offset: 2px;
}

.aico-button:focus-visible {
	outline: 3px solid var(--aico-main-color);
	outline-offset: 3px;
}

.aico-container {
	max-width: var(--aico-max-width);
	margin: 0 auto;
	padding: 0 20px;
}

/* v1.6.0: ランディングページ・LP風セクション用の全幅ユーティリティ。
   ブロックの「追加CSSクラス」欄に aico-fullwidth を指定すると、
   .aico-container の幅制限を超えて画面いっぱいに背景を広げられる
   （中身のテキスト幅までは広げない用途には aico-fullwidth-inner を子要素に付与） */
.aico-fullwidth {
	width: 100vw;
	max-width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	/* v1.6.1: 縦スクロールバーの分だけ100vwが実際の表示幅より広くなる環境があるため、
	   このブロック自身にも横はみ出しを許さない自己完結のクリップを持たせておく
	   （html/bodyの安全網だけに頼らない）
	   v1.7.2: overflow-xのみ指定でoverflow-yを省略すると、CSS仕様上overflow-yも
	   暗黙にautoへ変換され、意図しない縦スクロールコンテナ化を招くおそれがあるため
	   overflow-yをvisibleに明示する */
	overflow-x: hidden;
	overflow-x: clip;
	overflow-y: visible;
}

.aico-fullwidth-inner {
	max-width: var(--aico-max-width);
	margin: 0 auto;
	padding: 0 20px;
}

@media (max-width: 782px) {
	.aico-fullwidth {
		width: 100%;
		left: 0;
		right: 0;
		margin-left: 0;
		margin-right: 0;
	}
}

/* ---------- ヘッダー ---------- */

.aico-header {
	background: var(--aico-card-bg);
	border-bottom: 1px solid var(--aico-border);
}

.aico-header-inner {
	max-width: var(--aico-max-width);
	margin: 0 auto;
	padding: 16px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

/* v1.7.1: サイト名を単なるテキストリンクではなく「ロゴタイプ」風に見せる。
   バッジ（サイト名の先頭1文字、CSSのみで作る角丸バッジ）＋太字ワードマーク＋
   タグライン（WordPressの「キャッチフレーズ」設定があれば表示）の3点構成。
   外部画像・外部フォントは使用しない。ブランド固有の文言はテーマ側にハードコードせず、
   すべてbloginfo()から取得するため、HUBLO以外のサイト名で使っても自然に機能する */
.aico-site-brand {
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	min-width: 0;
}

.aico-brand-badge {
	flex: none;
	width: 34px;
	height: 34px;
	border-radius: 9px;
	background: linear-gradient(135deg, var(--aico-accent-color) 0%, #0ea5e9 100%);
	color: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 1.05rem;
	line-height: 1;
}

.aico-site-brand-text {
	display: flex;
	flex-direction: column;
	line-height: 1.15;
	min-width: 0;
}

.aico-site-title {
	font-size: 1.25rem;
	font-weight: 800;
	letter-spacing: 0.01em;
	color: var(--aico-main-color);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.aico-site-tagline {
	font-size: 0.7rem;
	font-weight: 600;
	color: var(--aico-text-muted);
	margin-top: 2px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* モバイルはヘッダー幅が限られるため、タグラインは非表示にしてコンパクトに保つ
   （メニュー開閉ボタン・ヘッダーCTAとの干渉を避ける） */
@media (max-width: 480px) {
	.aico-site-tagline {
		display: none;
	}
	.aico-brand-badge {
		width: 30px;
		height: 30px;
		font-size: 0.92rem;
		border-radius: 8px;
	}
	.aico-site-title {
		font-size: 1.08rem;
	}
}

/* v1.6.1: メニューとヘッダーCTAを1つのグループにまとめ、ヘッダー全体が折り返す際も
   「メニュー本体だけ折り返してCTAだけが取り残されて左端に落ちる」ことがないようにする。
   .aico-header-innerからは1つのflexアイテムとして扱われるため、幅が足りない場合は
   このグループごと次の行へ折り返す（CTAがメニューの右端に自然に並ぶ） */
.aico-header-nav-group {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 20px;
}

.aico-menu-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	width: 44px;
	height: 44px;
	background: none;
	border: 1px solid var(--aico-border);
	border-radius: 6px;
	cursor: pointer;
}

.aico-menu-toggle-bar {
	display: block;
	width: 18px;
	height: 2px;
	margin: 0 auto;
	background: var(--aico-main-color);
}

.aico-primary-nav .aico-menu,
.aico-footer-menu {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	margin: 0;
	padding: 0;
}

.aico-primary-nav a,
.aico-footer-menu a {
	display: inline-block;
	padding: 10px 2px;
	color: var(--aico-text);
	font-weight: 500;
}

.aico-primary-nav a:hover,
.aico-footer-menu a:hover {
	color: var(--aico-accent-color);
}

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

.aico-hero {
	background: linear-gradient(180deg, #ffffff 0%, var(--aico-bg) 100%);
	padding: calc(64px * var(--aico-spacing-multiplier)) 20px;
	text-align: center;
	border-bottom: 1px solid var(--aico-border);
}

.aico-hero-inner {
	max-width: 720px;
	margin: 0 auto;
}

.aico-hero-title {
	font-size: 2rem;
	margin-bottom: 0.5em;
}

.aico-hero-desc {
	color: var(--aico-text-muted);
	font-size: 1.05rem;
	margin-bottom: 1.6em;
}

/* ---------- ボタン ---------- */

.aico-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 28px;
	border-radius: var(--aico-button-radius);
	font-weight: 600;
	text-decoration: none;
	transition: opacity 0.15s ease;
}

.aico-button:hover {
	opacity: 0.88;
	text-decoration: none;
}

.aico-button-accent {
	background: var(--aico-accent-color);
	color: #ffffff;
}

.aico-button-affiliate {
	background: var(--aico-accent-color);
	color: #ffffff;
	width: 100%;
	max-width: 420px;
	text-align: center;
	box-shadow: var(--aico-shadow);
}

.aico-affiliate-button-wrap {
	text-align: center;
	margin: 1.5em 0;
}

/* ---------- セクション・カードグリッド ---------- */

.aico-section {
	margin: calc(48px * var(--aico-spacing-multiplier)) 0;
}

.aico-section-title {
	font-size: 1.4rem;
	border-left: 4px solid var(--aico-accent-color);
	padding-left: 12px;
	margin-bottom: 1em;
}

.aico-section-title a {
	color: inherit;
}

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

.aico-card {
	background: var(--aico-card-bg);
	border: 1px solid var(--aico-border);
	border-radius: var(--aico-radius);
	overflow: hidden;
	box-shadow: var(--aico-shadow);
	display: flex;
	flex-direction: column;
}

.aico-card-thumb-link {
	display: block;
}

.aico-card-thumb {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--aico-bg);
}

.aico-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.aico-card-thumb-placeholder {
	background: linear-gradient(135deg, #eef2ff 0%, #f7f8fa 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}

.aico-card-thumb-placeholder::after {
	content: '';
	width: 36px;
	height: 36px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a5b4d8' stroke-width='1.5'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='8.5' cy='10' r='1.5'/%3E%3Cpath d='M21 16l-5-5-4 4-3-3-6 6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	opacity: 0.8;
}

.aico-card-updated-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	background: #ffffff;
	color: var(--aico-accent-color);
	font-size: 0.7rem;
	font-weight: 700;
	padding: 3px 10px;
	border-radius: 999px;
	box-shadow: var(--aico-shadow);
}

.aico-card-thumb-link {
	position: relative;
}

.aico-card-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 8px 0 0;
}

.aico-tag-sm {
	padding: 2px 10px;
	font-size: 0.75rem;
}

.aico-card-footer-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid var(--aico-border);
	font-size: 0.78rem;
	color: var(--aico-text-muted);
}

.aico-card-body {
	padding: calc(18px * var(--aico-spacing-multiplier)) calc(20px * var(--aico-spacing-multiplier)) calc(22px * var(--aico-spacing-multiplier));
	flex: 1;
	display: flex;
	flex-direction: column;
}

.aico-card-meta {
	font-size: 0.8rem;
	color: var(--aico-text-muted);
	display: flex;
	gap: 10px;
	margin-bottom: 8px;
}

.aico-card-category {
	color: var(--aico-accent-color);
	font-weight: 600;
}

.aico-card-title {
	font-size: 1.05rem;
	margin: 0 0 0.5em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.aico-card-title a {
	color: var(--aico-main-color);
	text-decoration: none;
}

.aico-card-title a:hover {
	color: var(--aico-accent-color);
}

.aico-card-excerpt {
	font-size: 0.9rem;
	color: var(--aico-text-muted);
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* ---------- レイアウト（サイドバーあり/なし） ---------- */

.aico-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: calc(40px * var(--aico-spacing-multiplier));
	padding: calc(40px * var(--aico-spacing-multiplier)) 20px;
}

.aico-layout.has-sidebar {
	grid-template-columns: minmax(0, 1fr) 300px;
}

.aico-primary {
	min-width: 0;
}

.aico-archive-title {
	font-size: 1.6rem;
}

.aico-archive-description {
	color: var(--aico-text-muted);
	margin-bottom: 1.5em;
}

/* ---------- サイドバー ---------- */

.aico-sidebar {
	min-width: 0;
}

.aico-widget {
	background: var(--aico-card-bg);
	border: 1px solid var(--aico-border);
	border-radius: var(--aico-radius);
	padding: 20px;
	margin-bottom: 24px;
}

.aico-widget-title {
	font-size: 1rem;
	margin-bottom: 0.8em;
}

.aico-widget ul {
	margin: 0;
	padding-left: 1.2em;
}

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

.aico-breadcrumb {
	margin: 20px 0;
	font-size: 0.85rem;
	color: var(--aico-text-muted);
}

.aico-breadcrumb ol {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
}

.aico-breadcrumb li:not(:last-child)::after {
	content: '/';
	margin-left: 6px;
	color: var(--aico-border);
}

/* ---------- 個別記事 ---------- */

.aico-single-title {
	font-size: 1.9rem;
}

.aico-single-thumb {
	margin: 24px 0;
	border-radius: var(--aico-radius);
	overflow: hidden;
}

.aico-single-content {
	font-size: 1.02rem;
}

.aico-single-content h2 {
	margin-top: 1.8em;
	font-size: 1.4rem;
}

.aico-single-content h3 {
	margin-top: 1.5em;
	font-size: 1.2rem;
}

.aico-single-content img {
	border-radius: var(--aico-radius);
}

/* ---------- タグ一覧 ---------- */

.aico-tag-list {
	margin: 1.5em 0;
	font-size: 0.9rem;
}

.aico-tag-list-label {
	color: var(--aico-text-muted);
	margin-right: 6px;
}

.aico-tag {
	display: inline-block;
	background: var(--aico-bg);
	border: 1px solid var(--aico-border);
	border-radius: 999px;
	padding: 4px 12px;
	margin: 0 6px 6px 0;
	font-size: 0.85rem;
	color: var(--aico-text);
}

.aico-tag:hover {
	color: var(--aico-accent-color);
	text-decoration: none;
}

/* ---------- 著者プロフィール ---------- */

.aico-author-box {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	background: var(--aico-card-bg);
	border: 1px solid var(--aico-border);
	border-radius: var(--aico-radius);
	padding: 20px;
	margin: 32px 0;
}

.aico-author-avatar img {
	border-radius: 50%;
}

.aico-author-name {
	font-weight: 700;
	margin: 0 0 0.4em;
}

.aico-author-bio {
	color: var(--aico-text-muted);
	margin: 0;
	font-size: 0.92rem;
}

/* ---------- 関連記事 ---------- */

.aico-related-posts {
	margin: 48px 0;
}

/* ---------- 内部リンクカード ---------- */

.aico-link-card {
	display: flex;
	gap: 16px;
	align-items: center;
	background: var(--aico-card-bg);
	border: 1px solid var(--aico-border);
	border-radius: var(--aico-radius);
	padding: 16px;
	margin: 1.5em 0;
	box-shadow: var(--aico-shadow);
	color: inherit;
	text-decoration: none;
}

.aico-link-card:hover {
	border-color: var(--aico-accent-color);
	text-decoration: none;
}

.aico-link-card-thumb {
	flex: 0 0 96px;
	width: 96px;
	height: 72px;
	border-radius: 6px;
	overflow: hidden;
}

.aico-link-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.aico-link-card-body {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.aico-link-card-label {
	font-size: 0.75rem;
	color: var(--aico-accent-color);
	font-weight: 700;
}

.aico-link-card-title {
	font-weight: 700;
	color: var(--aico-main-color);
	margin: 2px 0;
}

.aico-link-card-excerpt {
	font-size: 0.85rem;
	color: var(--aico-text-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* ---------- 注意書きボックス ---------- */

.aico-notice {
	border-radius: var(--aico-radius);
	padding: 16px 20px;
	margin: 1.5em 0;
	border-left: 4px solid var(--aico-border);
	background: var(--aico-bg);
}

.aico-notice p {
	margin: 0;
}

.aico-notice-info {
	border-left-color: var(--aico-accent-color);
	background: #eff6ff;
}

.aico-notice-warning {
	border-left-color: #d97706;
	background: #fffbeb;
}

/* ---------- メリット/デメリットボックス ---------- */

.aico-pros-cons {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin: 1.5em 0;
}

.aico-pros,
.aico-cons {
	background: var(--aico-card-bg);
	border-radius: var(--aico-radius);
	padding: 18px 20px;
	border-left: 4px solid var(--aico-border);
}

.aico-pros {
	border-left-color: #16a34a;
}

.aico-cons {
	border-left-color: #dc2626;
}

.aico-pros h4,
.aico-cons h4 {
	margin-top: 0;
	font-size: 1rem;
}

.aico-pros ul,
.aico-cons ul {
	margin: 0;
	padding-left: 1.2em;
}

/* ---------- CTAボックス ---------- */

.aico-cta-box {
	background: var(--aico-card-bg);
	border: 1px solid var(--aico-border);
	border-radius: var(--aico-radius);
	padding: 28px;
	text-align: center;
	margin: 2em 0;
}

.aico-cta-title {
	font-size: 1.2rem;
	font-weight: 700;
	margin: 0 0 0.4em;
	color: var(--aico-main-color);
}

.aico-cta-desc {
	color: var(--aico-text-muted);
	margin: 0 0 1.2em;
}

/* ---------- 比較表風スタイル ---------- */

table.aico-compare-table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5em 0;
}

table.aico-compare-table th,
table.aico-compare-table td {
	border: 1px solid var(--aico-border);
	padding: 10px 14px;
	text-align: left;
}

table.aico-compare-table th {
	background: #eef2ff;
	color: var(--aico-main-color);
}

table.aico-compare-table td.aico-highlight {
	color: var(--aico-accent-color);
	font-weight: 700;
}

/* v1.7.1: 料金表・比較表は列数が多く（プラン/価格/こんな方に/含まれる内容など）、
   幅の狭いスマホでは表全体が画面幅を超えることがある。html/bodyのoverflow-x:clip
   （横スクロール安全網）がそのはみ出し分を黙って切り取ってしまうため、対策前は
   最後の列（含まれる内容等）がスマホ実機では一切見えない状態になっていた。
   表の外側（wp-block-tableのfigure）自体を横スクロール可能なコンテナにし、
   はみ出し分を「見えないまま消える」のではなく「横スクロールで見られる」状態にする */
figure.wp-block-table.aico-compare-table {
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
}

@media (max-width: 600px) {
	figure.wp-block-table.aico-compare-table table.aico-compare-table {
		min-width: 560px;
	}
}

/* ---------- ページネーション ---------- */

.aico-pagination {
	margin-top: 32px;
}

.aico-pagination .page-numbers {
	display: inline-block;
	padding: 8px 14px;
	margin-right: 6px;
	border: 1px solid var(--aico-border);
	border-radius: 6px;
	color: var(--aico-text);
	text-decoration: none;
}

.aico-pagination .page-numbers.current {
	background: var(--aico-accent-color);
	border-color: var(--aico-accent-color);
	color: #ffffff;
}

/* ---------- 404 ---------- */

.aico-404-box {
	text-align: center;
	padding: 80px 20px;
	max-width: 560px;
	margin: 0 auto;
}

.aico-404-code {
	font-size: 3rem;
	font-weight: 800;
	color: var(--aico-accent-color);
	margin: 0;
}

.aico-404-actions {
	margin: 1.5em 0;
}

.aico-404-search {
	margin-top: 1.5em;
}

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

.search-form {
	display: flex;
	gap: 8px;
}

.search-form .search-field {
	flex: 1;
	padding: 10px 14px;
	border: 1px solid var(--aico-border);
	border-radius: 6px;
}

.search-form .search-submit {
	padding: 10px 20px;
	border-radius: 6px;
	border: none;
	background: var(--aico-accent-color);
	color: #ffffff;
	cursor: pointer;
}

/* ---------- コメント ---------- */

.aico-comments {
	margin: 48px 0;
}

.aico-comments-title {
	font-size: 1.3rem;
}

.aico-comment-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.aico-comment-list .comment-body {
	background: var(--aico-card-bg);
	border: 1px solid var(--aico-border);
	border-radius: var(--aico-radius);
	padding: 16px 20px;
	margin-bottom: 16px;
}

.aico-comment-list ol.children {
	list-style: none;
	padding-left: 24px;
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	max-width: 480px;
	padding: 10px 14px;
	border: 1px solid var(--aico-border);
	border-radius: 6px;
	font-family: inherit;
}

.comment-form textarea {
	max-width: 100%;
}

.comment-form .form-submit input {
	padding: 10px 24px;
	border-radius: 999px;
	border: none;
	background: var(--aico-accent-color);
	color: #ffffff;
	cursor: pointer;
	font-weight: 600;
}

/* ---------- フッター ---------- */

.aico-footer {
	background: var(--aico-card-bg);
	border-top: 1px solid var(--aico-border);
	margin-top: 48px;
}

.aico-footer-inner {
	max-width: var(--aico-max-width);
	margin: 0 auto;
	padding: 32px 20px;
	text-align: center;
}

.aico-footer-nav {
	margin-bottom: 16px;
}

.aico-footer-text {
	color: var(--aico-text-muted);
	font-size: 0.85rem;
	margin: 0;
}

/* ---------- v1.1.0: 更新日表示・見出しサブ・記事数 ---------- */

.aico-card-updated {
	color: var(--aico-accent-color);
}

.aico-section-title-sub {
	font-size: 1.15rem;
	margin: 2em 0 0.8em;
}

.aico-archive-count {
	color: var(--aico-text-muted);
	font-size: 0.88rem;
}

/* ---------- v1.1.0: 注目カテゴリ・タグ別トピック（ピル表示） ---------- */

.aico-topic-pill-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.aico-topic-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--aico-card-bg);
	border: 1px solid var(--aico-border);
	border-radius: 999px;
	padding: 8px 16px;
	font-weight: 600;
	color: var(--aico-main-color);
}

.aico-topic-pill:hover {
	border-color: var(--aico-accent-color);
	color: var(--aico-accent-color);
	text-decoration: none;
}

.aico-topic-pill-tag {
	font-weight: 500;
}

.aico-topic-pill-count {
	font-size: 0.78rem;
	color: var(--aico-text-muted);
	background: var(--aico-bg);
	border-radius: 999px;
	padding: 1px 8px;
}

/* ---------- v1.1.0: 次に読む記事 ---------- */

.aico-next-read {
	display: block;
	background: var(--aico-card-bg);
	border: 1px solid var(--aico-border);
	border-left: 4px solid var(--aico-accent-color);
	border-radius: var(--aico-radius);
	padding: 16px 20px;
	margin: 2em 0;
	color: inherit;
}

.aico-next-read:hover {
	text-decoration: none;
	border-color: var(--aico-accent-color);
}

.aico-next-read-label {
	display: block;
	font-size: 0.78rem;
	color: var(--aico-accent-color);
	font-weight: 700;
	margin-bottom: 4px;
}

.aico-next-read-title {
	font-weight: 700;
	color: var(--aico-main-color);
}

/* ---------- v1.1.0: もっと見る（関連カテゴリ・関連タグ） ---------- */

.aico-discover-more {
	margin: 48px 0;
}

.aico-discover-block {
	margin-bottom: 24px;
}

/* ---------- v1.1.0: アーカイブページ用CTA ---------- */

.aico-archive-cta {
	margin-top: 40px;
}

/* ---------- v1.1.0: 運営改善CTA・Proモジュール紹介CTA（トップページ、初期状態は非表示） ---------- */

.aico-pro-cta-box {
	background: var(--aico-bg);
	border: 1px dashed var(--aico-border);
	border-radius: var(--aico-radius);
	padding: 24px 28px;
	text-align: center;
}

.aico-pro-cta-title {
	font-weight: 700;
	color: var(--aico-main-color);
	margin: 0 0 0.5em;
}

.aico-pro-cta-desc {
	color: var(--aico-text-muted);
	font-size: 0.92rem;
	margin: 0;
}

/* ---------- v1.1.0: アフィリエイトボタンの複数デザイン ---------- */

.aico-button-affiliate-solid {
	background: var(--aico-accent-color);
	color: #ffffff;
}

.aico-button-affiliate-outline {
	background: transparent;
	color: var(--aico-accent-color);
	border: 2px solid var(--aico-accent-color);
	box-shadow: none;
}

.aico-button-affiliate-ghost {
	background: var(--aico-bg);
	color: var(--aico-main-color);
	box-shadow: none;
	border: 1px solid var(--aico-border);
}

/* ---------- v1.1.0: ランキングカード ---------- */

.aico-ranking-card {
	display: flex;
	gap: 18px;
	align-items: flex-start;
	background: var(--aico-card-bg);
	border: 1px solid var(--aico-border);
	border-radius: var(--aico-radius);
	padding: 20px;
	margin: 1.5em 0;
	box-shadow: var(--aico-shadow);
}

.aico-ranking-rank {
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--aico-accent-color);
	color: #ffffff;
	border-radius: 50%;
	font-weight: 800;
}

.aico-ranking-title {
	font-weight: 700;
	color: var(--aico-main-color);
	margin: 0 0 0.3em;
}

.aico-ranking-desc {
	color: var(--aico-text-muted);
	margin: 0 0 0.8em;
	font-size: 0.92rem;
}

/* ---------- v1.1.0: レビュー枠 ---------- */

.aico-review-box {
	background: var(--aico-card-bg);
	border: 1px solid var(--aico-border);
	border-radius: var(--aico-radius);
	padding: 20px;
	margin: 1.5em 0;
}

.aico-review-title {
	font-weight: 700;
	margin: 0 0 0.5em;
}

.aico-review-stars {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-bottom: 0.6em;
}

.aico-star {
	width: 16px;
	height: 16px;
	background-color: var(--aico-border);
	clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}

.aico-star-full {
	background-color: #f59e0b;
}

.aico-star-half {
	background: linear-gradient(90deg, #f59e0b 50%, var(--aico-border) 50%);
}

.aico-review-score {
	margin-left: 6px;
	font-weight: 700;
	color: var(--aico-main-color);
	font-size: 0.9rem;
}

.aico-review-summary {
	color: var(--aico-text);
	font-size: 0.95rem;
}

/* ---------- v1.1.0: おすすめ商品枠 ---------- */

.aico-recommend-box {
	display: flex;
	gap: 18px;
	background: var(--aico-card-bg);
	border: 1px solid var(--aico-border);
	border-radius: var(--aico-radius);
	padding: 20px;
	margin: 1.5em 0;
	box-shadow: var(--aico-shadow);
}

.aico-recommend-thumb {
	flex: 0 0 140px;
	width: 140px;
	border-radius: 6px;
	overflow: hidden;
}

.aico-recommend-title {
	font-weight: 700;
	color: var(--aico-main-color);
	margin: 0 0 0.4em;
}

.aico-recommend-desc {
	color: var(--aico-text-muted);
	margin: 0 0 0.8em;
	font-size: 0.92rem;
}

/* ---------- v1.1.0: FAQ風ボックス ---------- */

.aico-faq-item {
	border: 1px solid var(--aico-border);
	border-radius: var(--aico-radius);
	padding: 16px 20px;
	margin: 1em 0;
	background: var(--aico-card-bg);
}

.aico-faq-question {
	font-weight: 700;
	color: var(--aico-main-color);
	margin: 0 0 0.5em;
}

.aico-faq-question::before {
	content: 'Q. ';
	color: var(--aico-accent-color);
}

.aico-faq-answer {
	color: var(--aico-text);
	font-size: 0.95rem;
}

/* ---------- v1.1.0: 手順ステップ ---------- */

.aico-steps {
	list-style: none;
	margin: 1.5em 0;
	padding: 0;
	counter-reset: aico-step;
}

.aico-step-item {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	margin-bottom: 16px;
}

.aico-step-number {
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--aico-accent-color);
	color: #ffffff;
	border-radius: 50%;
	font-size: 0.85rem;
	font-weight: 700;
}

.aico-step-text {
	padding-top: 3px;
}

/* ---------- v1.1.0: 口コミ風ボックス ---------- */

.aico-testimonial-box {
	background: var(--aico-bg);
	border-left: 4px solid var(--aico-border);
	border-radius: var(--aico-radius);
	padding: 18px 22px;
	margin: 1.5em 0;
}

.aico-testimonial-body {
	font-style: italic;
	color: var(--aico-text);
}

.aico-testimonial-name {
	margin: 0.6em 0 0;
	color: var(--aico-text-muted);
	font-size: 0.88rem;
	font-style: normal;
}

/* ---------- v1.1.0: まとめCTA ---------- */

.aico-summary-cta-title {
	font-size: 1.3rem;
}

/* ---------- v1.1.0: 固定ページテンプレート ---------- */

.aico-primary-full {
	max-width: 780px;
	margin: 0 auto;
}

/* ---------- v1.2.0: ヘッダーレイアウト・固定ヘッダー ---------- */

.aico-header-layout-center-logo .aico-header-inner {
	flex-direction: column;
	text-align: center;
}

.aico-header-layout-center-logo .aico-primary-nav .aico-menu {
	justify-content: center;
}

.aico-header-cta {
	white-space: nowrap;
}

.aico-sticky-header .aico-header {
	position: sticky;
	top: 0;
	z-index: 50;
}

/* ---------- v1.2.0: フッターウィジェット・フッターCTA ---------- */

.aico-footer-widgets {
	display: grid;
	grid-template-columns: repeat(var(--aico-footer-columns, 1), 1fr);
	gap: 24px;
	margin-bottom: 24px;
	text-align: left;
}

.aico-footer-columns-1 { --aico-footer-columns: 1; }
.aico-footer-columns-2 { --aico-footer-columns: 2; }
.aico-footer-columns-3 { --aico-footer-columns: 3; }
.aico-footer-columns-4 { --aico-footer-columns: 4; }

.aico-footer-cta {
	margin-bottom: 24px;
}

/* ---------- v1.2.0: スマホ下部固定CTA ---------- */

.aico-mobile-bottom-cta {
	display: none;
}

/* ---------- v1.2.0: CTA枠（記事上/中/下/カテゴリ） ---------- */

.aico-cta-slot {
	margin: 2em 0;
}

/* ---------- v1.2.0: 自動目次 ---------- */

.aico-toc {
	background: var(--aico-card-bg);
	border: 1px solid var(--aico-border);
	border-radius: var(--aico-radius);
	padding: 20px 24px;
	margin: 0 0 2em;
}

.aico-toc-title {
	font-weight: 700;
	color: var(--aico-main-color);
	margin: 0 0 0.6em;
}

.aico-toc-list {
	margin: 0;
	padding-left: 1.2em;
}

.aico-toc-list .aico-toc-level-3 {
	list-style-type: circle;
	margin-left: 1.2em;
}

/* ---------- v1.2.0: 記事カードレイアウト切り替え ---------- */

/* 画像大きめカード */
.aico-card-layout-large-image .aico-card-thumb {
	aspect-ratio: 16 / 11;
}

.aico-card-layout-large-image .aico-card-thumb-placeholder::after {
	width: 56px;
	height: 56px;
}

/* 横長カード */
.aico-card-layout-horizontal .aico-card {
	flex-direction: row;
}

.aico-card-layout-horizontal .aico-card-thumb-link {
	flex: 0 0 220px;
	width: 220px;
}

.aico-card-layout-horizontal .aico-card-thumb {
	aspect-ratio: auto;
	height: 100%;
}

.aico-card-layout-horizontal .aico-card-body {
	flex: 1;
}

/* コンパクトカード */
.aico-card-layout-compact .aico-card {
	flex-direction: row;
	align-items: center;
}

.aico-card-layout-compact .aico-card-thumb-link {
	flex: 0 0 96px;
	width: 96px;
}

.aico-card-layout-compact .aico-card-thumb {
	aspect-ratio: 1 / 1;
}

.aico-card-layout-compact .aico-card-body {
	padding: 12px 16px;
}

.aico-card-layout-compact .aico-card-excerpt,
.aico-card-layout-compact .aico-card-tags {
	display: none;
}

/* ランキング風カード */
.aico-card-layout-ranking .aico-card-grid {
	counter-reset: aico-card-rank;
}

.aico-card-layout-ranking .aico-card {
	counter-increment: aico-card-rank;
	position: relative;
}

.aico-card-layout-ranking .aico-card-thumb-link::before {
	content: counter(aico-card-rank);
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 1;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--aico-accent-color);
	color: #ffffff;
	font-weight: 800;
	border-radius: 50%;
}

/* データベース風カード */
.aico-card-layout-database .aico-card {
	flex-direction: row;
	align-items: center;
	border-radius: 4px;
}

.aico-card-layout-database .aico-card-thumb-link {
	flex: 0 0 64px;
	width: 64px;
}

.aico-card-layout-database .aico-card-thumb {
	aspect-ratio: 1 / 1;
}

.aico-card-layout-database .aico-card-body {
	padding: 8px 14px;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 10px;
}

.aico-card-layout-database .aico-card-title {
	margin: 0;
	font-size: 0.95rem;
	order: 1;
}

.aico-card-layout-database .aico-card-meta {
	margin: 0;
	order: 2;
}

.aico-card-layout-database .aico-card-excerpt,
.aico-card-layout-database .aico-card-tags,
.aico-card-layout-database .aico-card-footer-meta {
	display: none;
}

/* ---------- v1.2.0: 販売サイト向けページテンプレート ---------- */

.aico-page-eyebrow {
	color: var(--aico-accent-color);
	font-weight: 700;
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	margin: 0 0 0.5em;
	text-transform: uppercase;
}

.aico-editor-hint {
	font-size: 0.85rem;
}

/* ---------- v1.3.0: コンテンツハブ・ピラーページ風レイアウト ---------- */

.aico-hub,
.aico-pillar {
	margin: 2em 0;
}

.aico-hub-header {
	margin-bottom: 1.5em;
}

.aico-hub-title {
	font-size: 1.6rem;
	margin-bottom: 0.3em;
}

.aico-hub-title a {
	color: var(--aico-main-color);
	text-decoration: none;
}

.aico-hub-description {
	color: var(--aico-text-muted);
}

.aico-hub-count {
	color: var(--aico-text-muted);
	font-size: 0.88rem;
}

.aico-hub-section {
	margin: 2em 0;
}

/* ---------- v1.3.0: 初期セットアップウィザード ---------- */

.aico-wizard-wrap fieldset {
	background: var(--aico-card-bg, #ffffff);
	border: 1px solid var(--aico-border, #e5e7eb);
	border-radius: 8px;
	padding: 16px 20px;
	max-width: 640px;
	margin-bottom: 16px;
}

.aico-wizard-radio,
.aico-wizard-checkbox {
	display: inline-block;
	padding: 6px 0;
}

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

@media (max-width: 900px) {
	.aico-card-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.aico-layout.has-sidebar {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.aico-menu-toggle {
		display: flex;
	}

	.aico-header-nav-group {
		width: 100%;
		order: 3;
	}

	.aico-primary-nav {
		display: none;
		width: 100%;
	}

	.aico-primary-nav.is-open {
		display: block;
	}

	.aico-primary-nav .aico-menu {
		flex-direction: column;
		gap: 12px;
	}

	/* v1.6.1: スマホ幅ではヘッダーCTAボタンを表示しない（メニュー内の該当リンク、
	   および既存のスマホ下部固定CTAが同じ役割を担うため、ヘッダー内で重複させない） */
	.aico-header-cta {
		display: none;
	}

	.aico-card-grid {
		grid-template-columns: 1fr;
	}

	.aico-pros-cons {
		grid-template-columns: 1fr;
	}

	.aico-hero-title {
		font-size: 1.5rem;
	}

	.aico-layout {
		padding: 24px 16px;
	}

	.aico-ranking-card,
	.aico-recommend-box {
		flex-direction: column;
	}

	.aico-recommend-thumb {
		width: 100%;
	}

	/* v1.2.0: スマホ幅ではカードレイアウトを1列の縦積みに統一する */
	.aico-card-layout-horizontal .aico-card,
	.aico-card-layout-compact .aico-card,
	.aico-card-layout-database .aico-card {
		flex-direction: column;
	}

	.aico-card-layout-horizontal .aico-card-thumb-link,
	.aico-card-layout-compact .aico-card-thumb-link,
	.aico-card-layout-database .aico-card-thumb-link {
		width: 100%;
		flex: none;
	}

	.aico-card-layout-database .aico-card-body {
		flex-direction: column;
		align-items: flex-start;
	}

	/* v1.2.0: スマホ下部固定CTA */
	.aico-mobile-bottom-cta {
		display: block;
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 60;
		background: var(--aico-card-bg);
		border-top: 1px solid var(--aico-border);
		padding: 10px 16px;
		text-align: center;
	}

	.aico-mobile-bottom-cta .aico-cta-box {
		margin: 0;
		padding: 0;
		border: none;
		background: none;
		box-shadow: none;
	}

	.aico-mobile-bottom-cta .aico-cta-title,
	.aico-mobile-bottom-cta .aico-cta-desc {
		display: none;
	}
}
