/*
Theme Name: Takapi Child Refined
Theme URI: https://108takapi.jp/
Template: takapi
Author: 株式会社トラスト
Author URI: https://108takapi.jp/
Description: 週刊TAKAPIテーマ（Takapi）の子テーマ・デザイン改善版。takapi-child を複製し、余白・文字の強弱・行間を整理して洗練させたもの。切り戻す場合は takapi-child を有効化する。
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: takapi-child
*/

/* ============================================================
   デザイントークン（改善版で追加）
   配色はブランドのまま。余白8pxスケール・文字の強弱・行間・
   線の濃さを一貫させて「窮屈さ」を解消する。
   ここで定義した変数を各所で参照する。
   ============================================================ */
:root{
    /* 余白スケール（8px基準） */
    --sp-1:4px;  --sp-2:8px;  --sp-3:12px; --sp-4:16px;
    --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:60px; --sp-9:80px;

    /* テキスト階層（黒一辺倒をやめて強弱をつける） */
    --tk-ink:#14181f;      /* 見出し・主要テキスト */
    --tk-ink-2:#3d4652;    /* 本文 */
    --tk-muted:#8a93a1;    /* 日付・補助 */

    /* 線（淡く） */
    --tk-line:#e8ecf1;
    --tk-line-strong:#14181f;

    /* 面 */
    --tk-soft:#f6f8fb;
    --tk-blue-soft:#eef4fc; /* カテゴリピル等の淡い青 */

    /* 角丸 */
    --tk-radius:10px;
    --tk-radius-lg:14px;
}

/* ============================================
   子テーマのカスタムCSSはこのファイルに記述する
   （親テーマの style.css / header.css / front-page.css /
     footer.css より後に読み込まれる）
   ============================================ */

/* --------------------------------------------
   トップおすすめ枠（takapi-top-recommend プラグイン）
   デスクトップで内側が max-width:1000px に制限され、
   他エリア（コンテナ実質1140px）より狭いため合わせる。
   プラグインのインラインCSSより後に出力されないため、
   クラス2つで詳細度を上げて上書きする。
   -------------------------------------------- */
@media (min-width: 901px) {
	.takapi-top-recommend .takapi-top-recommend-inner {
		max-width: 1140px;
		grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
	}

	/* 横に広がる分、高さも少し増やしてバランスを取る */
	.takapi-top-recommend .takapi-top-recommend-main,
	.takapi-top-recommend .takapi-top-recommend-main img,
	.takapi-top-recommend .takapi-top-recommend-main > .takapi-top-recommend-noimage {
		min-height: 400px;
	}
}

/* --------------------------------------------
   注目NEWS枠（takapi-pickup-posts プラグイン）A案
   黒枠の入れ子をやめてフラットに。
   スマホは「左サムネ・右タイトル」の横並びリスト化。
   プラグインのインラインCSSより優先させるため、
   ID（#takapi-pickup-posts）で詳細度を上げて上書きする。
   タイトル文字列はプラグイン設定値をそのまま表示。
   -------------------------------------------- */

/* ===== 共通（PC・スマホ） ===== */
#takapi-pickup-posts {
	background: #fff;
	border: 0;
}

/* 見出し：青帯をやめ、PICKUPバッジ＋黒下線の左寄せに */
#takapi-pickup-posts h2 {
	align-items: center;
	background: none;
	border-bottom: 2px solid var(--takapi-text, #111);
	color: var(--takapi-text, #111);
	display: flex;
	font-family: inherit;
	font-size: 22px;
	font-weight: 800;
	gap: 10px;
	letter-spacing: .02em;
	line-height: 1.3;
	padding: 0 0 10px;
	text-align: left;
}

#takapi-pickup-posts h2::before {
	background: var(--takapi-blue, #0057bd);
	border-radius: 3px;
	color: #fff;
	content: "PICKUP";
	flex-shrink: 0;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	line-height: 1;
	padding: 5px 8px;
}

/* サムネの「アイキャッチ」プレースホルダーを控えめに */
#takapi-pickup-posts .takapi-pickup-thumb {
	background: #eef1f6;
	color: #8a94a6;
	font-size: 14px;
}

/* ピックアップは編集部の選定枠なのでNEWバッジは出さない
   （おすすめ枠 top-recommend と同じ扱い） */
#takapi-pickup-posts .takapi-new-badge {
	display: none !important;
}

#takapi-pickup-posts .takapi-pickup-thumb span {
	transform: none;
}

/* ===== PC（901px〜）：3カラム維持で枠線だけ軽量化 ===== */
@media (min-width: 901px) {
	#takapi-pickup-posts .takapi-pickup-grid {
		gap: 28px;
		padding: 22px 0 0;
	}

	#takapi-pickup-posts .takapi-pickup-card {
		border: 1px solid var(--takapi-border, #e5eaf1);
		border-radius: 10px;
		overflow: hidden;
	}

	#takapi-pickup-posts .takapi-pickup-thumb {
		border-bottom: 1px solid var(--takapi-border, #e5eaf1);
	}

	#takapi-pickup-posts .takapi-pickup-card h3 {
		display: -webkit-box;
		font-size: 16px;
		font-weight: 700;
		line-height: 1.55;
		min-height: 0;
		overflow: hidden;
		padding: 14px 16px 16px;
		text-align: left;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
	}
}

/* ===== スマホ（〜900px）：横並びリスト＋番号バッジ ===== */
@media (max-width: 900px) {
	#takapi-pickup-posts {
		border: 0;
		margin: 26px 0 30px;
	}

	#takapi-pickup-posts h2 {
		font-size: 18px;
	}

	#takapi-pickup-posts .takapi-pickup-grid {
		counter-reset: takapi-pickup;
		display: flex;
		flex-direction: column;
		gap: 0;
		padding: 2px 0 0;
	}

	#takapi-pickup-posts .takapi-pickup-card {
		align-items: center;
		border: 0;
		border-bottom: 1px solid var(--takapi-border, #e5eaf1);
		border-radius: 0;
		counter-increment: takapi-pickup;
		display: flex;
		gap: 12px;
		padding: 14px 0;
	}

	#takapi-pickup-posts .takapi-pickup-card:last-child {
		border-bottom: 0;
		padding-bottom: 6px;
	}

	#takapi-pickup-posts .takapi-pickup-thumb {
		aspect-ratio: 16 / 10;
		border: 0;
		border-radius: 8px;
		flex-shrink: 0;
		font-size: 12px;
		overflow: hidden;
		position: relative;
		width: 128px;
	}

	/* 左上の番号バッジ（1〜3） */
	#takapi-pickup-posts .takapi-pickup-thumb::after {
		align-items: center;
		background: var(--takapi-blue, #0057bd);
		border-radius: 8px 0 8px 0;
		color: #fff;
		content: counter(takapi-pickup);
		display: flex;
		font-family: Arial, Helvetica, sans-serif;
		font-size: 12px;
		font-weight: 900;
		height: 22px;
		justify-content: center;
		left: 0;
		position: absolute;
		top: 0;
		width: 22px;
		z-index: 1;
	}

	#takapi-pickup-posts .takapi-pickup-card h3 {
		display: -webkit-box;
		flex: 1;
		font-size: 14.5px;
		font-weight: 700;
		line-height: 1.5;
		min-height: 0;
		min-width: 0;
		overflow: hidden;
		padding: 0;
		text-align: left;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
	}
}

/* --------------------------------------------
   記事一覧カード（トップ＝.takapi-news-grid／
   新着一覧・カテゴリ一覧・検索結果＝.takapi-card-grid）
   カードは子テーマ版 takapi_child_post_card() の出力。
   ・タイトル3行省略（PC・スマホ共通）
   ・カテゴリは日付横の青テキスト
   ・NEWバッジ（new-badgeプラグイン）を小型チップ化
   ・スマホ（768px以下）は「左サムネ・右タイトル」の横並びリスト
   -------------------------------------------- */

/* ===== 共通（トークン適用） ===== */
/* サムネの角丸をトークン化（親は6px） */
.takapi-news-grid .takapi-post-thumb,
.takapi-card-grid .takapi-post-thumb {
	border-radius: var(--tk-radius);
}

/* カード見出し：900→700に落として強弱をつける／行間ゆったり。
   ここが「窮屈さ」解消の本丸。 */
.takapi-news-grid .takapi-post-title,
.takapi-card-grid .takapi-post-title {
	color: var(--tk-ink);
	display: -webkit-box;
	font-size: 16.5px;
	font-weight: 700;
	line-height: 1.62;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.takapi-news-grid .takapi-post-meta,
.takapi-card-grid .takapi-post-meta {
	align-items: center;
	color: var(--tk-muted);
	display: flex;
	font-size: 12px;
	font-weight: 700;
	gap: 9px;
	margin: 0;
}

/* カテゴリ：テキスト＋「｜」区切り → 淡い青のピル */
.takapi-news-grid .takapi-post-cat,
.takapi-card-grid .takapi-post-cat {
	background: var(--tk-blue-soft);
	border-radius: 999px;
	color: var(--takapi-blue, #0057bd);
	font-weight: 800;
	padding: 3px 9px;
}

.takapi-news-grid .takapi-post-meta .takapi-post-date,
.takapi-card-grid .takapi-post-meta .takapi-post-date {
	color: var(--tk-muted);
	display: inline;
	font-size: inherit;
	font-weight: inherit;
}

/* NEWバッジ：大きなスタンプ → 小さな赤チップ */
.takapi-news-grid .takapi-new-badge,
.takapi-card-grid .takapi-new-badge {
	background: var(--takapi-red, #d52b22);
	border: 0;
	border-radius: 3px;
	color: #fff;
	font-size: 11px;
	font-style: normal;
	font-weight: 900;
	left: 6px;
	letter-spacing: .05em;
	min-width: 0;
	padding: 4px 6px;
	text-shadow: none;
	top: 6px;
	transform: none;
}

/* ===== セクションの区切り（トークン適用） =====
   余白（--sp-8=60px）でしっかり間を取り、見出し行は淡い線＋
   丸みのあるアクセントバーで軽やかに区切る。 */
.takapi-front-page .takapi-news-section {
	margin-top: var(--sp-8);
}

.takapi-front-page .takapi-news-section:first-of-type {
	margin-top: var(--sp-6);
}

.takapi-front-page .takapi-section-head {
	border-bottom: 1px solid var(--tk-line);
	margin-bottom: var(--sp-5);
	padding-bottom: var(--sp-3);
}

/* 見出しの縦棒：四角い5px → 丸みのある4px。文字も少し軽く。 */
.takapi-front-page .takapi-section-head h2,
.takapi-page-title {
	border-left: 0;
	color: var(--tk-ink);
	letter-spacing: .01em;
	padding-left: 15px;
	position: relative;
}

.takapi-front-page .takapi-section-head h2::before,
.takapi-page-title::before {
	background: var(--takapi-blue, #0057bd);
	border-radius: 2px;
	bottom: 4px;
	content: "";
	left: 0;
	position: absolute;
	top: 4px;
	width: 4px;
}

/* 「一覧を見る」リンクを控えめに */
.takapi-front-page .takapi-section-head a {
	color: var(--takapi-blue, #0057bd);
	font-size: 13px;
	font-weight: 800;
}

/* アーカイブ・検索の見出し余白も同じリズムに */
.takapi-content-layout .takapi-page-title {
	margin-bottom: var(--sp-6);
	padding-bottom: var(--sp-3);
	border-bottom: 1px solid var(--tk-line);
}

/* セクション中間のSNSフォロー枠も同じリズムに */
.takapi-front-page .takapi-sns-follow--front {
	margin-top: var(--sp-8);
}

@media (max-width: 768px) {
	.takapi-front-page .takapi-news-section {
		margin-top: var(--sp-7);
	}

	.takapi-front-page .takapi-news-section:first-of-type {
		margin-top: var(--sp-5);
	}

	.takapi-front-page .takapi-sns-follow--front {
		margin-top: var(--sp-7);
	}

	.takapi-front-page .takapi-section-head {
		margin-bottom: var(--sp-4);
	}
}

/* ===== PC（769px〜）：カードの余白をゆったり ===== */
@media (min-width: 769px) {
	.takapi-news-grid,
	.takapi-content-layout .takapi-card-grid {
		gap: 34px 28px;
	}

	.takapi-news-grid .takapi-post-title,
	.takapi-card-grid .takapi-post-title {
		margin: 14px 0 10px;
	}
}

/* ===== スマホ（〜768px）：横並びリスト ===== */
@media (max-width: 768px) {
	.takapi-front-page .takapi-news-grid,
	.takapi-content-layout .takapi-card-grid {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.takapi-front-page .takapi-news-grid .takapi-post-card,
	.takapi-content-layout .takapi-card-grid .takapi-post-card {
		align-items: center;
		border-bottom: 1px solid var(--takapi-border, #e5eaf1);
		display: flex;
		gap: 12px;
		padding: 13px 0;
	}

	.takapi-front-page .takapi-news-grid .takapi-post-card:last-child,
	.takapi-content-layout .takapi-card-grid .takapi-post-card:last-child {
		border-bottom: 0;
	}

	.takapi-front-page .takapi-news-grid .takapi-post-thumb,
	.takapi-content-layout .takapi-card-grid .takapi-post-thumb {
		aspect-ratio: 16 / 10;
		border-radius: var(--tk-radius);
		flex-shrink: 0;
		width: 128px;
	}

	.takapi-front-page .takapi-news-grid .takapi-post-body,
	.takapi-content-layout .takapi-card-grid .takapi-post-body {
		display: flex;
		flex: 1;
		flex-direction: column;
		gap: 7px;
		min-width: 0;
	}

	.takapi-front-page .takapi-news-grid .takapi-post-title,
	.takapi-content-layout .takapi-card-grid .takapi-post-title {
		font-size: 14.5px;
		font-weight: 700;
		line-height: 1.55;
		margin: 0;
	}

	.takapi-front-page .takapi-news-grid .takapi-post-meta,
	.takapi-content-layout .takapi-card-grid .takapi-post-meta {
		font-size: 11px;
		gap: 7px;
	}

	.takapi-front-page .takapi-news-grid .takapi-post-cat,
	.takapi-content-layout .takapi-card-grid .takapi-post-cat {
		padding: 2px 8px;
	}

	.takapi-front-page .takapi-news-grid .takapi-new-badge,
	.takapi-content-layout .takapi-card-grid .takapi-new-badge {
		font-size: 9px;
		left: 0;
		padding: 3px 5px;
		border-radius: 8px 0 6px 0;
		top: 0;
	}
}

/* --------------------------------------------
   記事ページ：本文の可読性（トークン適用）
   ニュース記事は読ませる画面なので行間・字色・見出し間隔を最優先で調整
   -------------------------------------------- */
.takapi-entry-title {
	color: var(--tk-ink);
	font-size: 30px; /* 親の34pxから少し下げて洗練 */
	letter-spacing: .01em;
	line-height: 1.42;
}

@media (max-width: 680px) {
	.takapi-entry-title {
		font-size: 25px; /* 親のモバイル27pxから少し下げる */
	}
}

.takapi-entry-meta {
	color: var(--tk-muted);
}

.takapi-entry-content {
	color: var(--tk-ink-2);
	line-height: 1.95;
}

.takapi-entry-content p {
	margin: 0 0 1.7em;
}

/* 見出しアクセント（A案：ブルーバー）。トップ・アーカイブの見出しと統一。 */
.takapi-entry-content h2 {
	color: var(--tk-ink);
	font-size: 22px;
	font-weight: 800;
	letter-spacing: .01em;
	line-height: 1.5;
	margin-top: 2.2em;
	padding-left: 15px;
	position: relative;
}

.takapi-entry-content h2::before {
	background: var(--takapi-blue, #0057bd);
	border-radius: 3px;
	bottom: 4px;
	content: "";
	left: 0;
	position: absolute;
	top: 4px;
	width: 5px;
}

.takapi-entry-content h3 {
	color: var(--tk-ink);
	font-size: 18px;
	font-weight: 800;
	letter-spacing: .01em;
	line-height: 1.5;
	margin-top: 1.9em;
	padding-left: 13px;
	position: relative;
}

.takapi-entry-content h3::before {
	background: #9db8de; /* 淡いブルーでH2と階層差をつける */
	border-radius: 2px;
	bottom: 4px;
	content: "";
	left: 0;
	position: absolute;
	top: 4px;
	width: 3px;
}

/* 編集部まとめ 要点ボックス（the_contentフィルタ takapi_child_summary_box の出力） */
.takapi-entry-content .takapi-summary-box {
	background: var(--tk-soft);
	border: 1px solid var(--tk-line);
	border-radius: var(--tk-radius);
	margin: 2.4em 0;
	padding: 20px 24px 22px;
}

.takapi-entry-content .takapi-summary-box h1,
.takapi-entry-content .takapi-summary-box h2,
.takapi-entry-content .takapi-summary-box h3 {
	border-bottom: 2px solid var(--takapi-blue, #0057bd);
	color: var(--takapi-blue-dark, #00469a);
	font-size: 18px;
	margin: 0 0 14px;
	padding: 0 0 10px;
}

/* ボックス内見出しは A案のバーを消す */
.takapi-entry-content .takapi-summary-box h1::before,
.takapi-entry-content .takapi-summary-box h2::before,
.takapi-entry-content .takapi-summary-box h3::before {
	display: none;
}

.takapi-entry-content .takapi-summary-box p {
	margin: 0 0 .9em;
}

.takapi-entry-content .takapi-summary-box p:last-child {
	margin-bottom: 0;
}

/* 引用 */
.takapi-entry-content blockquote {
	background: var(--tk-blue-soft);
	border-left: 4px solid var(--takapi-blue, #0057bd);
	border-radius: 0 8px 8px 0;
	color: var(--tk-ink);
	margin: 1.8em 0;
	padding: 14px 18px;
}

.takapi-entry-content blockquote p:last-child {
	margin-bottom: 0;
}

/* リスト */
.takapi-entry-content ul,
.takapi-entry-content ol {
	margin: 1.3em 0;
	padding-left: 1.4em;
}

.takapi-entry-content li {
	line-height: 1.85;
	margin: .5em 0;
}

.takapi-entry-content ul li::marker {
	color: var(--takapi-blue, #0057bd);
}

/* 本文内リンク（段落・リスト内のみ。ボタンや関連記事などUI部品には波及させない） */
.takapi-entry-content p a,
.takapi-entry-content li a {
	color: var(--takapi-blue, #0057bd);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

.takapi-entry-content p a:hover,
.takapi-entry-content li a:hover {
	color: var(--takapi-blue-dark, #00469a);
}

/* 記事内Q&Aの自動整形（the_contentフィルタ takapi_child_format_qa の出力） */
.takapi-entry-content .takapi-qa-item {
	border: 1px solid var(--tk-line);
	border-radius: var(--tk-radius);
	margin: 0 0 14px;
	overflow: hidden;
}

.takapi-entry-content .takapi-qa-q,
.takapi-entry-content .takapi-qa-a {
	align-items: flex-start;
	display: flex;
	gap: 12px;
	padding: 15px 18px;
}

.takapi-entry-content .takapi-qa-q {
	background: var(--tk-blue-soft);
	color: var(--tk-ink);
	font-weight: 800;
	line-height: 1.6;
}

.takapi-entry-content .takapi-qa-a {
	color: var(--tk-ink-2);
	line-height: 1.85;
}

.takapi-qa-badge {
	align-items: center;
	border-radius: 50%;
	display: flex;
	flex-shrink: 0;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
	font-weight: 900;
	height: 26px;
	justify-content: center;
	line-height: 1;
	margin-top: 2px;
	width: 26px;
}

.takapi-qa-badge-q {
	background: var(--takapi-blue, #0057bd);
	color: #fff;
}

.takapi-qa-badge-a {
	background: #fff;
	border: 1.5px solid var(--takapi-blue, #0057bd);
	color: var(--takapi-blue, #0057bd);
}

.takapi-qa-text {
	flex: 1;
	min-width: 0;
}

/* --------------------------------------------
   記事ページ：前後記事ナビ＋「記事一覧に戻る」ボタン
   （子テーマ single.php の出力）
   -------------------------------------------- */

/* 本文とナビの間隔を詰める（親は margin-bottom:70px） */
.single .takapi-entry {
	margin-bottom: 34px;
}

.takapi-entry-nav {
	margin: 0 auto 70px;
	max-width: 860px;
	padding: 0 20px;
}

.takapi-entry-nav-grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* 前の記事がない場合も「次の記事」を右側に置く */
.takapi-entry-nav-item.takapi-next {
	grid-column: 2;
	text-align: right;
}

.takapi-entry-nav-item.takapi-prev {
	grid-column: 1;
}

.takapi-entry-nav-item {
	border: 1px solid var(--takapi-border, #e5eaf1);
	border-radius: 10px;
	color: var(--takapi-text, #111);
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 14px 16px;
	text-decoration: none;
	transition: border-color .2s ease, background .2s ease;
}

.takapi-entry-nav-item:hover {
	background: var(--takapi-soft, #f5f8fc);
	border-color: var(--takapi-blue, #0057bd);
}

.takapi-entry-nav-label {
	color: var(--takapi-blue, #0057bd);
	font-size: 12px;
	font-weight: 900;
}

.takapi-entry-nav-title {
	display: -webkit-box;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.takapi-entry-back {
	margin-top: 22px;
	text-align: center;
}

.takapi-entry-back a {
	border: 1px solid var(--takapi-text, #111);
	border-radius: 999px;
	color: var(--takapi-text, #111);
	display: inline-flex;
	font-size: 14px;
	font-weight: 800;
	padding: 11px 34px;
	text-decoration: none;
	transition: background .2s ease, color .2s ease;
}

.takapi-entry-back a:hover {
	background: var(--takapi-blue, #0057bd);
	border-color: var(--takapi-blue, #0057bd);
	color: #fff;
}

/* スマホ：前後ナビを縦積みに */
@media (max-width: 680px) {
	.takapi-entry-nav {
		padding: 0 16px;
	}

	.takapi-entry-nav-grid {
		grid-template-columns: 1fr;
	}

	.takapi-entry-nav-item.takapi-next {
		grid-column: auto;
		text-align: right;
	}

	.takapi-entry-nav-item.takapi-prev {
		grid-column: auto;
	}

	.takapi-entry-back a {
		display: flex;
		justify-content: center;
	}
}

/* --------------------------------------------
   SNS：フローティングシェアバーの停止＋フォロー枠
   -------------------------------------------- */

/* sns-share-buttons プラグインの画面下固定バーを非表示
   （コンテンツに常時被さるため。本番ではプラグイン停止を推奨） */
.sns-share-bar {
	display: none !important;
}

/* 公式SNSフォロー枠（トップ中央・フッター・記事下で共用） */
.takapi-sns-follow {
	align-items: center;
	border: 1px solid var(--takapi-border, #e5eaf1);
	border-radius: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 14px 24px;
	justify-content: space-between;
	padding: 20px 24px;
}

.takapi-sns-follow-label {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
}

.takapi-sns-follow-title {
	color: var(--takapi-text, #111);
	font-size: 16px;
	font-weight: 900;
}

.takapi-sns-follow-sub {
	color: var(--takapi-muted, #667085);
	font-size: 12.5px;
	font-weight: 700;
}

.takapi-sns-follow-icons {
	display: flex;
	gap: 12px;
}

.takapi-sns-icon {
	align-items: center;
	border-radius: 50%;
	color: #fff;
	display: flex;
	height: 44px;
	justify-content: center;
	text-decoration: none;
	transition: opacity .2s ease, transform .2s ease;
	width: 44px;
}

.takapi-sns-icon:hover {
	opacity: .85;
	transform: translateY(-2px);
}

.takapi-sns-icon svg {
	height: 20px;
	width: 20px;
}

.takapi-sns-icon--line {
	background: #06c755;
}

.takapi-sns-icon--x {
	background: #0f1419;
}

.takapi-sns-icon--instagram {
	background: radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
}

.takapi-sns-icon--tiktok {
	background: #010101;
}

/* トップ中央：セクションの合間に置くので背景色で区切る */
.takapi-sns-follow--front {
	background: var(--takapi-soft, #f5f8fc);
	border: 0;
	margin-top: 42px;
}

/* 記事下：本文と同じ幅に */
.takapi-entry-follow {
	margin: 0 auto 34px;
	max-width: 860px;
	padding: 0 20px;
}

/* フッター：背景写真の上に置くので白背景で浮かせる */
.takapi-sns-follow--footer {
	background: rgba(255, 255, 255, .93);
	margin: 26px 0 30px;
}

@media (max-width: 680px) {
	.takapi-sns-follow {
		justify-content: center;
		text-align: center;
	}

	.takapi-sns-follow-label {
		align-items: center;
	}

	.takapi-entry-follow {
		padding: 0 16px;
	}
}

/* --------------------------------------------
   広告主募集ページ（専用テンプレート）
   -------------------------------------------- */

.takapi-ad-page {
	padding-bottom: 70px;
}

/* ヒーロー */
.takapi-ad-hero {
	background: linear-gradient(135deg, var(--takapi-blue-dark, #00469a) 0%, var(--takapi-blue, #0057bd) 55%, #1976f3 100%);
	color: #fff;
	padding: 64px 20px 58px;
	text-align: center;
}

.takapi-ad-hero-inner {
	margin: 0 auto;
	max-width: 760px;
}

.takapi-ad-hero-label {
	color: var(--takapi-yellow, #ffc928);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
	font-weight: 900;
	letter-spacing: .22em;
	margin: 0 0 14px;
}

.takapi-ad-hero-title {
	font-size: 38px;
	font-weight: 900;
	line-height: 1.35;
	margin: 0 0 18px;
}

.takapi-ad-hero-lead {
	color: rgba(255, 255, 255, .92);
	font-size: 16px;
	font-weight: 700;
	line-height: 2;
	margin: 0 0 30px;
}

/* ボタン共通 */
.takapi-ad-button {
	align-items: center;
	border-radius: 999px;
	display: inline-flex;
	font-size: 16px;
	font-weight: 900;
	gap: 10px;
	padding: 15px 40px;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease;
}

.takapi-ad-button--yellow {
	background: var(--takapi-yellow, #ffc928);
	box-shadow: 0 6px 18px rgba(0, 0, 0, .18);
	color: #111;
}

.takapi-ad-button:hover {
	box-shadow: 0 10px 24px rgba(0, 0, 0, .22);
	transform: translateY(-2px);
}

/* セクション共通 */
.takapi-ad-section {
	margin-top: 56px;
}

.takapi-ad-heading {
	border-left: 5px solid var(--takapi-blue, #0057bd);
	font-size: 26px;
	font-weight: 900;
	line-height: 1.25;
	margin: 0 0 22px;
	padding-left: 12px;
}

.takapi-ad-caption {
	color: var(--takapi-muted, #667085);
	font-size: 14px;
	font-weight: 700;
	margin: 16px 0 0;
}

/* 掲載メニュー */
.takapi-ad-menu-grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.takapi-ad-menu-item {
	align-items: center;
	border: 1px solid var(--takapi-border, #e5eaf1);
	border-radius: 12px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 22px 12px 18px;
	text-align: center;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.takapi-ad-menu-item:hover {
	border-color: var(--takapi-blue, #0057bd);
	box-shadow: 0 6px 16px rgba(0, 87, 189, .08);
}

.takapi-ad-menu-icon {
	align-items: center;
	background: var(--takapi-soft, #f5f8fc);
	border-radius: 50%;
	color: var(--takapi-blue, #0057bd);
	display: flex;
	height: 52px;
	justify-content: center;
	width: 52px;
}

.takapi-ad-menu-icon svg {
	height: 24px;
	width: 24px;
}

.takapi-ad-menu-label {
	font-size: 14px;
	font-weight: 800;
}

/* 発信ジャンル */
.takapi-ad-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.takapi-ad-chips li {
	background: var(--takapi-soft, #f5f8fc);
	border-radius: 999px;
	color: var(--takapi-blue-dark, #00469a);
	font-size: 14px;
	font-weight: 800;
	padding: 10px 20px;
}

/* CTA */
.takapi-ad-cta {
	background: var(--takapi-soft, #f5f8fc);
	border-radius: 16px;
	padding: 44px 28px;
	text-align: center;
}

.takapi-ad-cta-title {
	font-size: 24px;
	font-weight: 900;
	margin: 0 0 14px;
}

.takapi-ad-cta-text {
	color: var(--takapi-text, #111);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.9;
	margin: 0 auto 20px;
	max-width: 620px;
}

.takapi-ad-checklist {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
}

.takapi-ad-checklist li {
	background: #fff;
	border: 1px solid var(--takapi-border, #e5eaf1);
	border-radius: 999px;
	font-size: 13.5px;
	font-weight: 800;
	padding: 9px 18px;
}

.takapi-ad-checklist li::before {
	color: var(--takapi-blue, #0057bd);
	content: "✓ ";
	font-weight: 900;
}

.takapi-ad-note {
	color: var(--takapi-muted, #667085);
	font-size: 12.5px;
	font-weight: 700;
	margin: 24px 0 0;
}

/* スマホ */
@media (max-width: 680px) {
	.takapi-ad-hero {
		padding: 44px 16px 42px;
	}

	.takapi-ad-hero-title {
		font-size: 26px;
	}

	.takapi-ad-hero-lead {
		font-size: 14px;
		text-align: left;
	}

	.takapi-ad-section {
		margin-top: 42px;
	}

	.takapi-ad-heading {
		font-size: 22px;
	}

	.takapi-ad-menu-grid {
		gap: 10px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.takapi-ad-cta {
		padding: 32px 18px;
	}

	.takapi-ad-cta-title {
		font-size: 20px;
	}

	.takapi-ad-cta-text {
		text-align: left;
	}

	.takapi-ad-button {
		display: flex;
		justify-content: center;
	}
}

/* --------------------------------------------
   /blog/（新着記事一覧）：注目NEWSと記事一覧の境界を明確に
   pickupプラグインが「新着記事」見出しと一覧の間に差し込まれ、
   一覧に見出しが無く全部が注目枠の記事に見えてしまう。
   flexのorderで pickup を最上部の特集ブロックに、
   「新着記事」見出しを一覧の直上へ置き直して区切る。
   -------------------------------------------- */
.blog .takapi-content-layout > section {
	display: flex;
	flex-direction: column;
}

.blog .takapi-content-layout > section > .takapi-pickup-posts {
	order: 0;
	margin: 0 0 var(--sp-8);
}

.blog .takapi-content-layout > section > .takapi-page-title {
	order: 1;
}

.blog .takapi-content-layout > section > .takapi-card-grid {
	order: 2;
}

.blog .takapi-content-layout > section > .takapi-pagination {
	order: 3;
}

/* --------------------------------------------
   サイドバーの追従（デスクトップのみ）
   長い一覧ページで右側が余白になるのを防ぐため、
   サイドバー（＝一番下のウィジェットエリア）をスクロール追従させる。
   ヘッダーは非追従なので top は小さめでよい。
   グリッドの引き伸ばしを止める align-self:start が肝。
   -------------------------------------------- */
@media (min-width: 1025px) {
	.takapi-content-layout .takapi-sidebar {
		position: sticky;
		top: 20px;
		align-self: start;
	}
}

/* ============================================================
   フッター刷新（子テーマ footer.php・.tk-footer*）
   モダンな濃紺。親テーマの .takapi-footer は使用しない。
   ============================================================ */
.tk-footer{ background:#0b1b33; color:#fff; }

.tk-footer-accent{
	height:3px;
	background:linear-gradient(90deg, #3d8bfd, #1f5fd0 60%, var(--takapi-yellow, #ffc928));
}

.tk-footer-inner{ margin:0 auto; max-width:1180px; padding:52px 20px 26px; }

.tk-footer-grid{
	display:grid;
	gap:44px;
	grid-template-columns:1.7fr 1fr 1.1fr 1.3fr;
}

/* ブランド列 */
.tk-footer-logo{
	font-family:Arial, Helvetica, sans-serif;
	font-size:28px; font-style:italic; font-weight:900; letter-spacing:.02em; margin:0;
}
.tk-footer-logo span{ color:#3d8bfd; }
.tk-footer-tag{ color:#9fb0c8; font-size:13px; line-height:1.8; margin:12px 0 0; }
.tk-footer-mission{ color:#cdd7e6; font-size:13px; line-height:1.9; margin:14px 0 0; max-width:300px; }

.tk-footer-sns{ display:flex; gap:12px; margin-top:22px; }
.tk-footer-sns .tk-sns{
	align-items:center; background:rgba(255,255,255,.08); border-radius:50%;
	color:#fff; display:flex; height:42px; justify-content:center; text-decoration:none;
	transition:transform .2s ease, background .2s ease; width:42px;
}
.tk-footer-sns .tk-sns:hover{ transform:translateY(-3px); }
.tk-footer-sns .tk-sns svg{ height:19px; width:19px; }
.tk-footer-sns .tk-sns--line:hover{ background:#06c755; }
.tk-footer-sns .tk-sns--x:hover{ background:#000; }
.tk-footer-sns .tk-sns--instagram:hover{ background:radial-gradient(circle at 30% 110%, #fdf497, #fd5949 45%, #d6249f 60%, #285aeb 90%); }
.tk-footer-sns .tk-sns--tiktok:hover{ background:#000; }

/* ナビ列 */
.tk-footer-col h2{
	border-bottom:1px solid rgba(255,255,255,.12); color:#fff; font-size:13px; font-weight:800;
	letter-spacing:.08em; margin:0 0 18px; padding-bottom:10px; position:relative;
}
.tk-footer-col h2::after{
	background:#3d8bfd; bottom:-1px; content:""; height:2px; left:0; position:absolute; width:32px;
}
.tk-footer-col ul{ list-style:none; margin:0; padding:0; }
.tk-footer-col li{ margin:0; }
.tk-footer-col a{ color:#9fb0c8; font-size:14px; text-decoration:none; transition:color .18s ease; }
.tk-footer-col a:hover{ color:#fff; }

/* 広告CTAカード（align-self:start で高さを内容に合わせる＝下の余白防止） */
.tk-footer-cta{
	align-self:start; background:#122542; border:1px solid rgba(255,255,255,.12);
	border-radius:12px; padding:22px 20px;
}
.tk-footer-cta h2{ color:#fff; font-size:15px; font-weight:900; margin:0 0 8px; }
.tk-footer-cta p{ color:#9fb0c8; font-size:13.5px; line-height:1.8; margin:0 0 16px; }
.tk-footer-cta a{
	align-items:center; background:var(--takapi-yellow, #ffc928); border-radius:999px; color:#14181f;
	display:flex; font-size:14px; font-weight:900; gap:8px; justify-content:center;
	padding:12px 16px; text-decoration:none; transition:transform .2s ease;
}
.tk-footer-cta a:hover{ transform:translateY(-2px); }

/* ボトムバー */
.tk-footer-bottom{
	align-items:center; border-top:1px solid rgba(255,255,255,.12); display:flex;
	flex-wrap:wrap; gap:12px; justify-content:space-between; margin-top:40px; padding-top:22px;
}
.tk-footer-copy{ color:#9fb0c8; font-size:12.5px; margin:0; }
.tk-footer-bottom-links span,
.tk-footer-bottom-links a{ color:#9fb0c8; font-size:12.5px; text-decoration:none; }
.tk-footer-bottom-links a:hover{ color:#fff; }

/* タブレット〜スマホ：2列。ブランドと広告CTAは全幅、
   サイト情報とカテゴリーは横並び（2列）にする。 */
@media (max-width:900px){
	.tk-footer-grid{ grid-template-columns:1fr 1fr; gap:32px 28px; }
	.tk-footer-brand{ grid-column:1 / -1; }
	.tk-footer-cta{ grid-column:1 / -1; }
}
@media (max-width:600px){
	.tk-footer-inner{ padding:40px 16px 24px; }
	.tk-footer-grid{ gap:26px 18px; } /* 2列は維持したまま余白だけ調整 */
	.tk-footer-bottom{ align-items:flex-start; flex-direction:column; }
}

/* ============================================================
   タレコミ/コメント ボタン（takapi-article-engagement プラグイン）
   本文リンク装飾の波及を止めた上で、配色を整える。
   タレコミ＝ブランド青の主ボタン／コメント＝淡青の副ボタン。
   ============================================================ */
.takapi-engagement-action,
.takapi-entry-content .takapi-engagement-action {
	text-decoration: none;
	font-weight: 800;
	border-radius: 8px;
}

.takapi-engagement-tarekomi,
.takapi-entry-content .takapi-engagement-tarekomi {
	background: var(--takapi-blue, #0057bd);
	color: #fff;
}

.takapi-engagement-tarekomi:hover,
.takapi-entry-content .takapi-engagement-tarekomi:hover {
	background: var(--takapi-blue-dark, #00469a);
	color: #fff;
}

.takapi-engagement-comment-link,
.takapi-entry-content .takapi-engagement-comment-link {
	background: var(--tk-blue-soft, #eef4fc);
	border: 1px solid #cfe0f6;
	color: var(--takapi-blue, #0057bd);
}

.takapi-engagement-comment-link:hover,
.takapi-entry-content .takapi-engagement-comment-link:hover {
	background: #e2eefb;
	color: var(--takapi-blue-dark, #00469a);
}

/* ============================================================
   関連記事（takapi-postseven-related）タイトル
   3行省略＋文字サイズ小さめ＋太字控えめ。
   ============================================================ */
.takapi-postseven-related-card h3 {
	display: -webkit-box;
	font-size: 15.5px;
	font-weight: 700;
	line-height: 1.55;
	overflow: hidden;
	padding-left: 0; /* A案見出しバーの波及を打ち消す */
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

/* A案見出しの青バー(::before)が関連記事タイトルに乗らないようにする */
.takapi-postseven-related-card h3::before {
	display: none;
}

/* 関連記事のサムネ・タイトルリンクに本文リンクの下線が乗らないよう明示 */
.takapi-entry-content .takapi-postseven-related-thumb,
.takapi-entry-content .takapi-postseven-related-card a {
	text-decoration: none;
}

/* ============================================================
   いいね / リアルタイム訪問者数（takapi-live-reactions プラグイン）
   プラグインは 440px以下で縦積みになるため、スマホでも
   「同じ幅の2カードを横並び」にする（2等分グリッド）。
   本文内に出力されるため .takapi-entry-content で詳細度を確保。
   ============================================================ */
/* 2つのボックス（いいね／訪問者数）を常に等幅にする（グリッド1fr 1fr・全サイズ共通）。
   プラグインの flex（like=148px・visitors=210px の非等幅）を打ち消す。 */
.takapi-entry-content .takapi-live-reactions,
.takapi-live-reactions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.takapi-entry-content .takapi-live-reactions > *,
.takapi-live-reactions > * {
	flex: initial;
	min-width: 0;
	width: auto;
}

/* スマホは全幅で2等分 */
@media (max-width: 600px) {
	.takapi-entry-content .takapi-live-reactions,
	.takapi-live-reactions {
		max-width: none;
	}
}

/* ============================================================
   記事内の投稿埋め込み（takapi-wide-embed-cards）外側フレーム
   太い黒枠をやめ、角丸＋淡い枠＋やわらかい影の洗練カードに。
   （内側iframeの黒枠は functions.php の embed_head フックで解除）
   ============================================================ */
.takapi-entry-content .takapi-wide-embed-frame,
.takapi-wide-embed-frame {
	border: 1px solid var(--tk-line, #e8ecf1);
	border-radius: 12px;
	box-shadow: 0 6px 22px rgba(16, 24, 40, .09);
	overflow: hidden;
}

/* いいね/訪問者数：デスクトップは中央寄せ（左寄せだと右に空きが出て間延びするため） */
@media (min-width: 601px) {
	.takapi-entry-content .takapi-live-reactions,
	.takapi-live-reactions {
		justify-content: center;
		margin-left: auto;
		margin-right: auto;
	}
}

/* ============================================================
   お問い合わせページ（page-contact.php・Contact Form 7）
   中央寄せ1カラム＋カード。スタイルは .takapi-contact 配下に隔離。
   ============================================================ */
.takapi-contact {
	padding: 48px 20px 72px;
}

.takapi-contact-inner {
	margin: 0 auto;
	max-width: 780px;
}

.takapi-contact-head {
	margin-bottom: 28px;
	text-align: center;
}

.takapi-contact-title {
	color: var(--tk-ink, #14181f);
	display: inline-block;
	font-size: 30px;
	font-weight: 900;
	margin: 0 0 14px;
	padding-bottom: 12px;
	position: relative;
}

.takapi-contact-title::after {
	background: var(--takapi-blue, #0057bd);
	border-radius: 2px;
	bottom: 0;
	content: "";
	height: 3px;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	width: 48px;
}

.takapi-contact-lead {
	color: var(--tk-ink-2, #3d4652);
	font-size: 15px;
	line-height: 1.9;
	margin: 0;
}

.takapi-contact-card {
	background: #fff;
	border: 1px solid var(--tk-line, #e8ecf1);
	border-radius: 14px;
	box-shadow: 0 6px 22px rgba(16, 24, 40, .06);
	padding: 34px 32px;
}

/* --- Contact Form 7 フィールド --- */
.takapi-contact .wpcf7-form p {
	margin: 0 0 20px;
}

.takapi-contact .wpcf7-form label {
	color: var(--tk-ink, #14181f);
	display: block;
	font-size: 14px;
	font-weight: 800;
}

.takapi-contact .wpcf7-form-control-wrap {
	display: block;
	margin-top: 8px;
}

.takapi-contact input.wpcf7-text,
.takapi-contact input.wpcf7-email,
.takapi-contact textarea.wpcf7-textarea {
	background: #fbfcfe;
	border: 1px solid #d6dde6;
	border-radius: 8px;
	box-sizing: border-box;
	color: var(--tk-ink, #14181f);
	font-size: 15px;
	padding: 12px 14px;
	transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
	width: 100%;
}

.takapi-contact input.wpcf7-text:focus,
.takapi-contact input.wpcf7-email:focus,
.takapi-contact textarea.wpcf7-textarea:focus {
	background: #fff;
	border-color: var(--takapi-blue, #0057bd);
	box-shadow: 0 0 0 3px rgba(0, 87, 189, .12);
	outline: none;
}

.takapi-contact textarea.wpcf7-textarea {
	min-height: 168px;
	resize: vertical;
}

/* --- 送信ボタン --- */
.takapi-contact .wpcf7-submit {
	background: var(--takapi-blue, #0057bd);
	border: 0;
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	font-size: 16px;
	font-weight: 800;
	margin-top: 4px;
	padding: 14px 40px;
	transition: background .2s ease, transform .2s ease;
	width: 100%;
}

.takapi-contact .wpcf7-submit:hover {
	background: var(--takapi-blue-dark, #00469a);
	transform: translateY(-1px);
}

/* --- バリデーション表示 --- */
.takapi-contact .wpcf7-not-valid-tip {
	color: var(--takapi-red, #d52b22);
	font-size: 12.5px;
	margin-top: 5px;
}

.takapi-contact input.wpcf7-not-valid,
.takapi-contact textarea.wpcf7-not-valid {
	border-color: var(--takapi-red, #d52b22);
}

.takapi-contact .wpcf7-response-output {
	border-radius: 8px;
	font-size: 14px;
	margin: 16px 0 0;
	padding: 12px 14px;
}

/* 問い合わせページにシェアボタンは不要 */
.takapi-contact .sharedaddy {
	display: none;
}

@media (max-width: 600px) {
	.takapi-contact {
		padding: 32px 16px 56px;
	}
	.takapi-contact-card {
		padding: 24px 18px;
	}
	.takapi-contact-title {
		font-size: 25px;
	}
}

/* ============================================================
   パンくずリスト（takapi_child_breadcrumbs の出力）
   ============================================================ */
.takapi-breadcrumb{ margin:16px auto 2px; }
.takapi-breadcrumb ol{
	align-items:center; color:var(--tk-muted,#8a93a1); display:flex; flex-wrap:wrap;
	font-size:12.5px; gap:6px; list-style:none; margin:0; padding:0;
}
.takapi-breadcrumb li{ align-items:center; display:flex; gap:6px; min-width:0; }
.takapi-breadcrumb li:not(:first-child)::before{ color:#c3ccd8; content:"\203A"; }
.takapi-breadcrumb a{ color:var(--tk-ink-2,#3d4652); text-decoration:none; }
.takapi-breadcrumb a:hover{ color:var(--takapi-blue,#0057bd); }
.takapi-breadcrumb .is-current span{
	color:var(--tk-muted,#8a93a1); display:inline-block; max-width:56vw;
	overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
/* 記事ページは本文幅(860px)に合わせる */
.single .takapi-breadcrumb{ max-width:860px; }

/* ============================================================
   404ページ（子テーマ 404.php）
   ============================================================ */
.takapi-404{ padding:64px 20px 88px; text-align:center; }
.takapi-404-inner{ margin:0 auto; max-width:600px; }
.takapi-404-code{
	color:var(--takapi-blue,#0057bd); font-family:Arial,Helvetica,sans-serif;
	font-size:88px; font-weight:900; letter-spacing:.02em; line-height:1; margin:0;
}
.takapi-404-title{ color:var(--tk-ink,#14181f); font-size:24px; font-weight:900; margin:14px 0 12px; }
.takapi-404-text{ color:var(--tk-ink-2,#3d4652); font-size:14.5px; line-height:1.9; margin:0 0 28px; }
.takapi-404-search{ margin:0 auto 28px; max-width:440px; }
.takapi-404-search .takapi-search-form{ display:flex; gap:8px; }
.takapi-404-search input[type="search"]{
	background:#fbfcfe; border:1px solid #d6dde6; border-radius:8px; box-sizing:border-box;
	flex:1; font-size:15px; min-width:0; padding:11px 14px;
}
.takapi-404-search input[type="search"]:focus{
	background:#fff; border-color:var(--takapi-blue,#0057bd);
	box-shadow:0 0 0 3px rgba(0,87,189,.12); outline:none;
}
.takapi-404-search button{
	background:var(--takapi-blue,#0057bd); border:0; border-radius:8px; color:#fff;
	cursor:pointer; font-weight:800; padding:0 20px;
}
.takapi-404-search button:hover{ background:var(--takapi-blue-dark,#00469a); }
.takapi-404-cats{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin:0 0 32px; }
.takapi-404-cat{
	background:var(--tk-blue-soft,#eef4fc); border-radius:999px; color:var(--takapi-blue,#0057bd);
	font-size:13.5px; font-weight:800; padding:8px 18px; text-decoration:none; transition:background .15s ease;
}
.takapi-404-cat:hover{ background:#e2eefb; }
.takapi-404-home{
	align-items:center; background:var(--takapi-blue,#0057bd); border-radius:999px; color:#fff;
	display:inline-flex; font-size:15px; font-weight:800; padding:13px 34px; text-decoration:none;
	transition:background .2s ease, transform .2s ease;
}
.takapi-404-home:hover{ background:var(--takapi-blue-dark,#00469a); transform:translateY(-2px); }

/* ============================================================
   ページネーション（親 .takapi-pagination を微調整）
   ============================================================ */
.takapi-pagination .nav-links{ gap:6px; justify-content:center; }
.takapi-pagination a,
.takapi-pagination span{ border-radius:8px; justify-content:center; min-width:40px; }

/* ============================================================
   トップへ戻るボタン（footer.php・JS制御）
   ============================================================ */
.takapi-totop{
	align-items:center; background:var(--takapi-blue,#0057bd); border:0; border-radius:50%;
	bottom:18px; box-shadow:0 6px 18px rgba(16,24,40,.22); color:#fff; cursor:pointer;
	display:flex; font-size:20px; height:46px; justify-content:center; line-height:1;
	position:fixed; right:18px; transition:background .2s ease, transform .2s ease; width:46px; z-index:90;
}
.takapi-totop:hover{ background:var(--takapi-blue-dark,#00469a); transform:translateY(-2px); }
.takapi-totop[hidden]{ display:none; }
@media (max-width:600px){
	.takapi-totop{ bottom:14px; height:42px; right:14px; width:42px; }
}
