/* ===== Lumina design tokens ===== */
:root{
	--accent:#cb77ce;        /* メインカラー */
	--accent-deep:#a64fa9;   /* 濃いアクセント（価格・hover・リンク） */
	--accent-pale:#f7eaf7;   /* 淡色背景 */
	--accent-pale2:#fbf4fb;
	--ink:#2c2528;           /* テキスト */
	--ink-soft:#6f6366;
	--card:#fffdfd;
	--line:#ece1e2;
	--serif:'Noto Serif JP',serif;
	--sans:'Noto Sans JP',sans-serif;
}

/* ===== Base typography & color ===== */
body{ font-family:var(--sans); color:var(--ink); }
h1,h2,h3,h4,.is-style-headline{ font-family:var(--serif); }

/* リンク・アクセント */
a{ color:var(--accent-deep); }
a:hover{ color:var(--accent); }

/* SWELLの主要アクセント箇所をLuminaカラーへ上書き
   （SWELLのCSS変数を子テーマ側で再定義） */
:root{
	--color_main:#cb77ce;
	--color_link:#a64fa9;
}

/* H2見出しの装飾・色はSWELL本体に任せる（メインカラーは Task2 の --color_main で反映される）。
   ::before/::after に背景色を当てると、SWELLのH2デザインによっては見出しが紫一色に潰れるため指定しない。 */

/* ===== 都道府県記事：クリニック見出し ===== */
/* クリニック名などの通常H3のみ装飾。FAQ（SIMPLE BLOG DESIGN）の h3.faq_q と
   クリニックカードの院名見出し（.lumina-cl-card__name）は除外して、SBDの「Q」アイコン装飾や
   カードの見た目（旧pタグ時と同一の外観。詳細はclinic.css側のリセットも参照）と競合させない。 */
.single .post_content h3:not(.faq_q):not(.lumina-cl-card__name){
	font-family:var(--serif);
	background:var(--accent-pale);
	border-left:4px solid var(--accent);
	border-radius:0 10px 10px 0;
	padding:12px 16px;
}

/* ===== 試作：クリニックを section-group ごとにカード化 =====
   記事側で各クリニックを <div class="section-group"> で囲んでいる場合に、
   1院＝1枚のカードに見せる。section-group が無い記事には影響しない。 */
.single .post_content .section-group{
	border:1px solid var(--line);
	border-radius:16px;
	padding:22px 22px 24px;
	margin:0 0 24px;
	background:var(--card);
	box-shadow:0 6px 18px rgba(60,40,45,.06);
}
.single .post_content .section-group > h3:first-child,
.single .post_content .section-group > h3:not(.faq_q):first-child{ margin-top:0; }

/* ===== 比較表（本文内 table）===== */
.post_content table{
	border-collapse:collapse;
	border-radius:12px;
	overflow:hidden;
	font-size:.92em;
}
.post_content table th{
	background:var(--ink);
	color:#f6ecee;
	font-weight:600;
}
.post_content table td,
.post_content table th{ padding:11px 10px; }
.post_content table tr:nth-child(even) td{ background:var(--accent-pale2); }
.post_content table td strong,
.post_content table td b{ color:var(--accent-deep); }

/* アイキャッチ・タイトル部と本文の間隔（SWELL既定はmargin-top:4em） */
.l-mainContent__inner > .post_content{ margin-top:2.5em !important; }

/* ===== 記事見出し：SWELLの塗りバンドをやめて Lumina スタイル（明朝＋短い紫バー）に ===== */
.post_content h2{
	background:transparent !important;
	border:none !important;
	box-shadow:none !important;
	color:var(--ink) !important;
	font-family:var(--serif);
	font-weight:700;
	font-size:1.3rem;
	padding:0 !important;
	margin:2.4em 0 .9em;
	border-radius:0 !important;
}
.post_content h2::before{ content:none !important; }
.post_content h2::after{
	content:"" !important;
	display:block !important;
	position:static !important;
	width:100% !important;
	height:3px !important;
	background:var(--accent) !important;
	border:none !important;
	border-radius:2px !important;
	margin:9px 0 0 !important;
}

/* ===== CTAボタン：SIMPLE BLOG DESIGN の .jump を温存して化粧直し ===== */
/* data-id/data-label と onClick挙動は触らず、見た目だけ上書き */
.post_content .jump{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:6px;
	cursor:pointer;
	text-align:center;
	padding:14px 22px;
	border-radius:999px;
	background:var(--accent);
	color:#fff !important;
	font-weight:700;
	box-shadow:0 8px 20px rgba(203,119,206,.38);
	transition:transform .15s, box-shadow .15s, background .15s;
}
.post_content .jump:hover{
	background:var(--accent-deep);
	transform:translateY(-1px);
	box-shadow:0 10px 24px rgba(166,79,169,.42);
}
.post_content .jump::after{ content:"→"; }

/* 比較表（table）のセル内のジャンプリンク（クリニック名など）はCTAボタン化しない。
   表内では通常のテキストリンクに戻す（紫pill・「→」・影を解除）。 */
.post_content table .jump{ display:inline; width:auto; padding:0; margin:0; background:none; color:var(--accent-deep); border-radius:0; box-shadow:none; font-weight:600; }
.post_content table .jump::after{ content:none; }
.post_content table .jump:hover{ background:none; color:var(--accent); box-shadow:none; transform:none; text-decoration:underline; }

/* ===== Block patterns ===== */
.lumina-card{ border:1px solid var(--line); border-radius:18px; padding:16px; background:var(--card); }
.lumina-card__head{ display:flex; gap:12px; align-items:center; }
.lumina-card__logo{ width:54px; height:54px; flex:none; display:flex; align-items:center; justify-content:center; border-radius:12px; background:var(--accent-pale); color:var(--accent-deep); font-family:var(--serif); }
.lumina-card__name{ font-family:var(--serif); font-weight:700; margin:0; }
.lumina-card__meta{ font-size:.8em; color:var(--ink-soft); margin:.2em 0 0; }
.lumina-card__price{ display:flex; align-items:baseline; gap:8px; margin-top:14px; padding:12px 14px; background:var(--accent-pale); border-radius:12px; }
.lumina-card__price b{ font-family:var(--serif); font-size:1.4em; color:var(--accent-deep); }
.lumina-card__price em{ margin-left:auto; font-style:normal; font-size:.78em; color:var(--ink-soft); }
.lumina-card__tags{ display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.lumina-card__tags span{ font-size:.72em; padding:4px 9px; border-radius:999px; background:#f6f1f1; color:#6f5f60; }
.lumina-card__tags .is-main{ color:var(--accent-deep); background:var(--accent-pale); border:1px solid #f0d9f0; font-weight:700; }
.lumina-card__cta{ margin-top:14px; }

.lumina-area-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.lumina-area-grid a{ text-decoration:none; text-align:center; background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px 6px; font-family:var(--serif); color:var(--ink); }
.lumina-area-grid a:hover{ border-color:var(--accent); }

/* ===== Top page ===== */
.lumina-top{ font-family:var(--sans); color:var(--ink); }

/* ヘッダー */
.lumina-top__header{ display:flex; align-items:center; justify-content:space-between; padding:14px 18px; }
.lumina-top__logo-name{ font-family:var(--serif); font-size:19px; font-weight:600; letter-spacing:.06em; color:var(--ink); }
.lumina-top__logo-sub{ font-size:9px; letter-spacing:.22em; color:var(--accent-deep); font-weight:700; }

/* ヒーロー */
.lumina-top .hero{ background:linear-gradient(180deg,var(--accent-pale) 0%,var(--accent-pale2) 100%); text-align:center; padding:40px 20px; border-radius:24px; }
.lumina-top .hero h1{ font-family:var(--serif); font-size:clamp(1.6rem,5vw,2.2rem); line-height:1.5; font-weight:600; color:var(--ink); margin:0; }
.lumina-top .hero .lead-tag{ color:var(--accent-deep); font-weight:700; letter-spacing:.16em; font-size:.9rem; margin-bottom:12px; }
.lumina-top .hero__desc{ font-size:0.95rem; color:var(--ink-soft); line-height:1.8; margin-top:14px; }

/* 検索ボックス（入力欄＋右端の紫アイコンボタン：SWELL検索ライク） */
.lumina-top .search-box{ display:flex; align-items:stretch; background:#fff; border:1px solid #e6d8e6; border-radius:10px; max-width:480px; margin:22px auto 0; overflow:hidden; box-shadow:0 6px 18px rgba(203,119,206,.12); }
.lumina-top .search-box__input{ flex:1; min-width:0; border:0; background:transparent; outline:none; font-size:.95rem; color:var(--ink); font-family:var(--sans); padding:12px 16px; }
.lumina-top .search-box__input::placeholder{ color:#a6989b; }
.lumina-top .search-box__btn{ flex:none; display:flex; align-items:center; justify-content:center; border:0; cursor:pointer; background:var(--accent); color:#fff; padding:0 16px; margin:4px; border-radius:8px; transition:background .15s; }
.lumina-top .search-box__btn:hover{ background:var(--accent-deep); }
.lumina-top .search-box__btn svg{ display:block; }

/* セクション共通 */
.lumina-top__section{ padding:24px 22px 8px; }
.lumina-top .section-title{ font-family:var(--serif); font-weight:700; font-size:1.3rem; color:var(--ink); margin:0 0 4px; }
.lumina-top .section-title + .rule{ width:30px; height:3px; background:var(--accent); border-radius:2px; margin:6px 0 16px; }
.lumina-top__region-note{ font-size:.7rem; color:#9a8d90; margin:0 0 14px; }

/* 人気エリアグリッド — 院数バッジ */
.lumina-area-grid__name{ font-family:var(--serif); font-size:1.2rem; color:var(--ink); font-weight:600; }
.lumina-area-grid__count{ font-size:.85rem; color:var(--accent-deep); margin-top:4px; }

/* 地方から探す */
.lumina-region{ border:1px solid var(--line); border-radius:14px; margin-bottom:10px; overflow:hidden; background:#fff; }
.lumina-region__head{ padding:14px 16px; font-size:1.05rem; font-weight:600; color:var(--ink); background:var(--accent-pale2); }
.lumina-region__prefs{ display:flex; flex-wrap:wrap; gap:8px; padding:12px 16px 16px; }
.lumina-region__prefs a{ text-decoration:none; font-size:.95rem; color:#5b4f52; background:#faf1f3; border:1px solid #f1dde2; border-radius:8px; padding:9px 14px; transition:background .15s, border-color .15s; }
.lumina-region__prefs a:hover{ background:var(--accent-pale); border-color:var(--accent); color:var(--accent-deep); }

/* WHY GENTLEMAX PRO */
.lumina-top .why{ background:var(--ink); color:#f6ecee; border-radius:18px; padding:24px; margin:20px 22px 0; }
.lumina-top .why .why__label{ color:#e6b9c4; letter-spacing:.18em; font-weight:700; font-size:.78rem; margin-bottom:8px; }
.lumina-top .why .why__heading{ font-family:var(--serif); font-size:1.35rem; font-weight:600; line-height:1.6; margin:0; color:#f6ecee; }
.lumina-top .why .why__body{ font-size:.95rem; color:#c9bcbf; line-height:1.8; margin-top:10px; margin-bottom:0; }

/* フッター */
.lumina-top__footer{ padding:24px 22px 28px; text-align:center; }
.lumina-top__footer-logo{ font-family:var(--serif); font-size:.9rem; letter-spacing:.06em; color:var(--ink); }
.lumina-top__footer-sub{ font-size:.58rem; letter-spacing:.2em; color:var(--accent-deep); vertical-align:middle; margin-left:4px; }
.lumina-top__footer-note{ font-size:.65rem; color:#a6989b; margin-top:8px; line-height:1.8; }

/* トップHTMLのh2をSWELL/本文h2装飾から隔離（固定ページ本文に貼るため） */
.post_content .lumina-top h2{
	border:0;
	padding:0;
	background:none;
}
.post_content .lumina-top h2::before,
.post_content .lumina-top h2::after{
	content:none;
}

/* レスポンシブ */
@media (max-width:600px){
	.lumina-area-grid{ grid-template-columns:repeat(3,1fr); }
	.lumina-top .hero{ border-radius:16px; }
	.lumina-top .why{ margin:20px 12px 0; }
}

/* ===== FAQ ===== */
.lumina-faq{ display:flex; flex-direction:column; gap:10px; }
.lumina-qa{ border:1px solid var(--line); border-radius:12px; padding:14px 16px; background:#fff; }
.lumina-qa__q{ font-weight:700; color:var(--accent-deep); margin:0 0 6px; }
.lumina-qa__q::before{ content:"Q. "; }
.lumina-qa__a::before{ content:"A. "; font-weight:700; color:var(--ink-soft); }

/* ===== 記事下 都道府県ナビ ===== */
.lumina-prefnav{ margin-top:36px; padding:20px; border:1px solid var(--line); border-radius:16px; background:var(--accent-pale2); }
.lumina-prefnav__title{ font-family:var(--serif); font-weight:700; margin:0 0 12px; }
.lumina-prefnav__list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:8px 16px; }
.lumina-prefnav__list a{ font-size:.9em; }
@media (min-width:768px){ .lumina-prefnav__list{ grid-template-columns:repeat(3,1fr); } }
/* 近隣県ナビ：県名チップのグリッド（モックの都道府県グリッドと同トーン） */
.lumina-prefnav__list--chips{ grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:8px; }
/* SWELLの箇条書きマーカー（・）を打ち消す */
.post_content .lumina-prefnav__list,
.post_content .lumina-prefnav__list li{ list-style:none !important; padding-left:0 !important; }
.post_content .lumina-prefnav__list li::before{ content:none !important; }
.post_content .lumina-prefnav__list li::marker{ content:none; }
.lumina-prefnav__list--chips li{ margin:0; }
.lumina-prefnav__list--chips a{ display:block; text-align:center; background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px 4px; font-family:var(--serif); font-weight:700; font-size:.95em; color:var(--ink); text-decoration:none; transition:border-color .15s, color .15s, transform .15s; }
.lumina-prefnav__list--chips a:hover{ border-color:var(--accent); color:var(--accent-deep); transform:translateY(-1px); }
@media (min-width:768px){ .lumina-prefnav__list--chips{ grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); } }

/* ===== Mobile fine-tuning ===== */
@media (max-width:600px){
	.post_content .jump{ width:100%; }
	.lumina-card__price{ flex-wrap:wrap; }
	.lumina-prefnav__list{ grid-template-columns:repeat(2,1fr); }
}
