/*
Theme Name: SWELL CHILD (婚活レポ)
Template: swell
Version: 2026.09.12
Description: 婚活レポ 用の子テーマ。配色・スマホ向け調整（本部 designs/konkatsu.css）＋追従バー・カード（サイト側 designs/child_theme）。
*/
/* 婚活レポ — 配色: 競合（相談所公式）はピンク・赤が多い。あえて外して「冷静な比較サイト」の立ち位置を色で示す
   スマホファーストの土台は designs/_base_mobile.css と同じ内容をこの下に含む（子テーマ1枚で完結させるため） */
:root {
  --color_main: #2d5a4a;
  --color_text: #2b2b2b;
  --color_link: #2d5a4a;
  --color_htag: #2d5a4a;
  --color_bg: #fdfaf7;
  --color_gradient1: #2d5a4a;
  --color_gradient2: #4a7d69;
  --color_deep01: #e8927c;   /* ボタン・強調 */
  --color_deep02: #c9a227;      /* 見出しの下線 */
  --color_deep03: #c9a227;      /* 結論ボックス */
  --color_deep04: #8a8a8a;
  --color_pale01: #fdeee9; --color_pale02: #fdf6e3; --color_pale03: #eaf3ee; --color_pale04: #f0f0f0;
  --color_light01: #f3bfae; --color_light02: #e8d493; --color_light03: #a8ccb8; --color_light04: #cfcfcf;
}
body { background: var(--color_bg); font-family: "Hiragino Mincho ProN", "Noto Serif JP", serif; }
.l-footer { background: var(--color_main); color: #fff; }
.l-footer a { color: #fff; }
.c-widget__title { border-left: 6px solid var(--color_deep01); }

/* 3サイト共通のスマホファースト土台。各サイトの CSS の先頭で読み込む前提で、
   色は CSS 変数（--color_main 等）を各サイト側で上書きする。
   根拠: 競合実測（data/scout/*/mobile_deep.json）と docs/サイト運用仕様_3サイト_2026-09-10.md */

/* --- 本文の読みやすさ（1行22文字・iPhone標準幅を基準） --- */
.post_content { font-size: 16px; line-height: 1.9; letter-spacing: .01em; }
.post_content p { margin-bottom: 1.1em; }

/* --- 見出し: スマホで「章の切れ目」がひと目で分かる太さにする --- */
.post_content h2 {
  font-size: 1.28em; line-height: 1.5; padding: .7em .8em;
  border-left: 6px solid var(--color_deep01); background: #fff; border-radius: 4px; margin-top: 2.4em;
  color: var(--color_htag) !important;
}
.post_content h3 {
  font-size: 1.1em; line-height: 1.55; padding-bottom: .35em;
  border-bottom: 2px solid var(--color_deep02); margin-top: 2em; color: var(--color_htag) !important;
}

/* SWELL 標準の見出し装飾（塗りつぶし・白文字）を無効化 */
.post_content h2::before, .post_content h2::after { display: none !important; }

/* --- ボタン: 画面幅いっぱい・指で押しやすい高さ --- */
.swell-block-button__link,
.is-style-btn_normal .swell-block-button__link,
.is-style-btn_shiny .swell-block-button__link {
  display: flex; align-items: center; justify-content: center;
  width: 100%; min-height: 56px; padding: 1em 1.2em;
  background: var(--color_deep01) !important; color: #fff !important;
  border-radius: 8px; font-weight: 700; font-size: 1.02em;
}
.swell-block-button { margin: 1.6em 0 .6em; }
/* ボタンの下の注意書き（料金は変わる等） */
.cta-note { font-size: .8em; color: #777; margin-top: -.2em; margin-bottom: 1.8em; line-height: 1.7; }

/* --- 表: スマホではみ出さないよう横スクロールの箱に入れる --- */
.post_content .wp-block-table,
.post_content figure.wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.post_content table { font-size: .92em; }
/* 段落の最後の数文字（「す。」など）だけが次の行に落ちないようにする（2026-10-03） */
.post_content p { text-wrap: pretty; }
.post_content table th { background: var(--color_main); color: #fff; }
.post_content table td, .post_content table th { padding: .6em .7em; }

/* --- 目次: スマホでは記事の地図。開いた状態で見せる --- */
.p-toc { font-size: .94em; }
.p-toc__title { font-weight: 700; }

/* --- 画像: 角丸で本文となじませる。図解は文字が読めるよう幅いっぱい --- */
.post_content img { border-radius: 6px; }
.post_content figure { margin: 1.6em 0; }

/* --- 記事のポイント・結論のボックス --- */
.point-box, .lesson-box {
  border-radius: 8px; padding: 1.1em 1.2em; margin: 1.6em 0; line-height: 1.85;
}
.point-box { background: var(--color_pale02); border: 1px solid var(--color_light02); }
.lesson-box { background: var(--color_pale03); border-left: 5px solid var(--color_deep03); }

/* --- ファーストビュー: 大きなヒーローを置かず、記事本文をすぐ見せる --- */
.p-mainVisual { display: none; }
.l-header { border-bottom: 3px solid var(--color_main); }

/* --- スマホ幅での微調整 --- */
@media (max-width: 599px) {
  .post_content { font-size: 16px; }
  .post_content h2 { font-size: 1.2em; margin-top: 2em; }
  .post_content h3 { font-size: 1.05em; }
  .l-content { padding-left: 0; padding-right: 0; }
}



/* ===== サイト側の追加（designs/child_theme/style.css）===== */
:root {
	--kr-green: #2d5a4a;
	--kr-green-mid: #3f7561;
	--kr-coral: #e8927c;
	--kr-coral-light: #f0a893;
	--kr-cream: #FDFAF7;
	--kr-text: #26241F;
	--kr-muted: #63605A;
	--kr-line: rgba(45, 90, 74, .22);
	--kr-fill: rgba(45, 90, 74, .06);
	--kr-agebar-h: 58px;
}

/* =========================================================
 * (a) スマホだけの追従バー「年代で選ぶ：20代｜30代｜40代〜」
 *     - functions.php の kr_age_bar が出力する <nav class="kr-agebar">
 *     - PC（960px 以上）は非表示。SWELL の PC ブレークポイントに合わせる
 * ========================================================= */
.kr-agebar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9990;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .2em;
	height: var(--kr-agebar-h);
	padding: 0 .6em env(safe-area-inset-bottom, 0);
	padding-bottom: env(safe-area-inset-bottom, 0);
	background: var(--kr-green);
	color: var(--kr-cream);
	box-shadow: 0 -2px 10px rgba(0, 0, 0, .18);
	font-size: 15px;
	line-height: 1;
}
.kr-agebar__label {
	font-weight: 700;
	letter-spacing: .04em;
	margin-right: .5em;
	font-size: .9em;
	opacity: .92;
}
.kr-agebar__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 3.6em;
	min-height: 40px;
	padding: 0 .7em;
	border-radius: 999px;
	background: var(--kr-coral);
	color: #2A1A14 !important;
	font-weight: 800;
	text-decoration: none !important;
}
.kr-agebar__link:active { background: var(--kr-coral-light); }
.kr-agebar__sep { opacity: .55; font-size: .9em; }

/* バーの高さぶん、ページの下に余白を空ける（本文やフッターが隠れないように） */
body.kr-has-agebar { padding-bottom: calc(var(--kr-agebar-h) + env(safe-area-inset-bottom, 0)); }

/* SWELL の「トップへ戻る」ボタン・CTA などの固定部品をバーの上へ逃がす */
body.kr-has-agebar #pagetop,
body.kr-has-agebar .p-fixBtnWrap,
body.kr-has-agebar .c-fixBtn {
	bottom: calc(var(--kr-agebar-h) + 12px) !important;
}

/* SWELL の固定フッターメニュー（fix_bottom_menu）を使っている場合は、二重にしないでこちらを消す */
body:has(#fix_bottom_menu) .kr-agebar { display: none; }
body:has(#fix_bottom_menu).kr-has-agebar { padding-bottom: 0; }

/* PC では出さない */
@media (min-width: 960px) {
	.kr-agebar { display: none; }
	body.kr-has-agebar { padding-bottom: 0; }
	body.kr-has-agebar #pagetop,
	body.kr-has-agebar .p-fixBtnWrap,
	body.kr-has-agebar .c-fixBtn { bottom: 20px !important; }
}

/* =========================================================
 * (b) 相談所1社ごとのカード（料金・地域・向く人・ボタン）
 *     - src/konkatsu_data_blocks.py / swell_decorator.py が出す部品用の共通クラス
 *     - 既存の表（.fm-tbl）はインライン指定で完結しているので、ここでは「カード型」だけを定義
 * ========================================================= */
.kr-card {
	border: 1px solid var(--kr-line);
	border-radius: 10px;
	background: #fff;
	padding: 1em 1.1em 1.1em;
	margin: 0 0 1.2em;
	color: var(--kr-text);
}
.kr-card__head {
	display: flex;
	align-items: center;
	gap: .6em;
	margin: 0 0 .5em;
}
.kr-card__rank {
	flex: 0 0 auto;
	width: 1.9em;
	height: 1.9em;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--kr-green), var(--kr-green-mid));
	color: var(--kr-cream);
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: .9em;
}
.kr-card__name {
	margin: 0;
	font-size: 1.08em;
	font-weight: 800;
	color: var(--kr-green);
}
.kr-card__tag {
	display: inline-block;
	font-size: .72em;
	background: var(--kr-fill);
	color: var(--kr-green);
	border: 1px solid var(--kr-line);
	border-radius: 3px;
	padding: .15em .5em;
	margin-left: .4em;
	vertical-align: middle;
}
.kr-card__rows {
	width: 100%;
	border-collapse: collapse;
	font-size: .88em;
	margin: .4em 0 .6em;
}
.kr-card__rows th,
.kr-card__rows td {
	border-top: 1px solid var(--kr-line);
	padding: .5em .2em;
	text-align: left;
	vertical-align: top;
}
.kr-card__rows th {
	width: 6.5em;
	color: var(--kr-green);
	font-weight: 700;
	white-space: nowrap;
}
.kr-card__fit {
	font-size: .88em;
	color: var(--kr-muted);
	line-height: 1.8;
	margin: .3em 0 .8em;
}
.kr-card__date { font-size: .76em; color: #8B8880; margin: 0 0 .6em; }
.kr-card__btn {
	display: block;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	background: linear-gradient(135deg, var(--kr-coral), var(--kr-coral-light));
	color: #2A1A14 !important;
	font-weight: 700;
	text-decoration: none !important;
	border-radius: 8px;
	padding: .95em 1.2em;
	min-height: 52px;
	letter-spacing: .03em;
}
.kr-card__btn:hover { filter: brightness(1.04); }

/* =========================================================
 * (c) サイドバーの部品（wp_setup.py が置くブロックウィジェット）
 * ========================================================= */
.kr-side-banner {
	transition: box-shadow .15s ease, transform .15s ease;
}
.kr-side-banner:hover {
	box-shadow: 0 6px 18px rgba(45, 90, 74, .18);
	transform: translateY(-1px);
}
.kr-side--ages a:hover {
	background: var(--kr-fill) !important;
}
/* 人気の記事（最新の投稿ブロック）を、サムネ＋タイトルの縦並びに */
.kr-popular.wp-block-latest-posts { list-style: none; padding: 0; margin: 0 0 1.6em; }
.kr-popular.wp-block-latest-posts li {
	display: flex;
	align-items: center;
	gap: .7em;
	padding: .55em 0;
	border-bottom: 1px solid var(--kr-line);
}
.kr-popular.wp-block-latest-posts li:last-child { border-bottom: 0; }
.kr-popular .wp-block-latest-posts__featured-image { flex: 0 0 72px; margin: 0; }
.kr-popular .wp-block-latest-posts__featured-image img {
	width: 72px; height: 72px; object-fit: cover; border-radius: 6px;
}
.kr-popular li > a {
	font-size: .9em;
	line-height: 1.6;
	color: var(--kr-text);
	text-decoration: none;
	font-weight: 600;
}
.kr-popular li > a:hover { color: var(--kr-green); text-decoration: underline; }

/* 記事内のハブ導線（publisher.py の kr-hub）: リンク色を主色に固定 */
.kr-hub a { color: var(--kr-green); }
.kr-hub--end a:hover { background: var(--kr-fill); }
