/*
Theme Name: 看護けあ
Theme URI: https://kangocare.com
Author: Kangocare
Description: 看護師転職アフィリエイトサイト「看護けあ」専用テーマ。収益最大化を目的に、CTA配置・SEO構造・ページ表示速度を最適化。
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL v2 or later
Text Domain: kangocare
*/

/* ===== Design tokens ===== */
:root {
	--kc-primary:    #e84e7a;        /* 看護師サイトらしい温かみのあるピンク */
	--kc-primary-d:  #c2375f;
	--kc-accent:     #4ab8a8;        /* 信頼感のある柔らかいティール */
	--kc-ink:        #1f2330;
	--kc-text:       #3a3f4c;
	--kc-muted:      #6b7280;
	--kc-line:       #e9eaee;
	--kc-bg:         #fafbfc;
	--kc-bg-soft:    #fff5f8;
	--kc-radius:     14px;
	--kc-shadow:     0 4px 20px rgba(31,35,48,.06);
	--kc-shadow-h:   0 8px 32px rgba(31,35,48,.12);
	--kc-font-disp:  "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
	--kc-font-body:  "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", sans-serif;
}

/* ===== Reset / base ===== */
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
	margin:0;
	font-family:var(--kc-font-body);
	color:var(--kc-text);
	background:var(--kc-bg);
	line-height:1.8;
	font-size:16px;
	-webkit-font-smoothing:antialiased;
}
img { max-width:100%; height:auto; display:block; }
a { color:var(--kc-primary-d); text-decoration:none; }
a:hover { text-decoration:underline; }

/* ===== Layout ===== */
.kc-container { max-width:1100px; margin:0 auto; padding:0 20px; }
.kc-main-grid {
	display:grid;
	grid-template-columns:minmax(0,1fr) 320px;
	gap:48px;
	padding:40px 0;
}
@media (max-width:980px) {
	.kc-main-grid { grid-template-columns:1fr; gap:32px; padding:20px 0; }
}

/* ===== Header ===== */
.kc-header {
	background:#fff;
	border-bottom:1px solid var(--kc-line);
	position:sticky;
	top:0;
	z-index:100;
	box-shadow:0 1px 0 rgba(0,0,0,.02);
}
.kc-header-inner {
	display:flex;
	align-items:center;
	justify-content:space-between;
	height:64px;
}
.kc-logo {
	font-family:var(--kc-font-disp);
	font-size:24px;
	font-weight:700;
	color:var(--kc-ink);
	letter-spacing:.05em;
}
.kc-logo a { color:inherit; text-decoration:none; }
.kc-logo .kc-logo-mark {
	display:inline-block;
	width:32px; height:32px;
	background:var(--kc-primary);
	border-radius:50%;
	vertical-align:middle;
	margin-right:8px;
	position:relative;
}
.kc-logo .kc-logo-mark::after {
	content:"";
	position:absolute;
	top:50%; left:50%;
	width:16px; height:16px;
	transform:translate(-50%,-50%);
	background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'><path d='M12 21s-7-4.5-9.5-10C.5 6.5 4 3 7.5 3c2 0 3.5 1 4.5 2.5C13 4 14.5 3 16.5 3 20 3 23.5 6.5 21.5 11 19 16.5 12 21 12 21z'/></svg>") no-repeat center / contain;
}
.kc-nav ul {
	display:flex;
	gap:24px;
	margin:0; padding:0;
	list-style:none;
}
.kc-nav a {
	color:var(--kc-ink);
	font-weight:500;
	font-size:14px;
}
.kc-mobile-toggle {
	display:none;
	background:none;
	border:0;
	cursor:pointer;
	font-size:24px;
}
@media (max-width:780px) {
	.kc-nav { display:none; }
	.kc-nav.open {
		display:block;
		position:absolute;
		top:64px; left:0; right:0;
		background:#fff;
		border-top:1px solid var(--kc-line);
		padding:16px 20px;
	}
	.kc-nav.open ul { flex-direction:column; gap:12px; }
	.kc-mobile-toggle { display:block; }
}

/* ===== Hero ===== */
.kc-hero {
	background:
		radial-gradient(ellipse at 20% 0%, #ffe3ec 0%, transparent 50%),
		radial-gradient(ellipse at 90% 100%, #d6f0ec 0%, transparent 50%),
		linear-gradient(180deg, #fff 0%, var(--kc-bg-soft) 100%);
	padding:60px 0 80px;
	position:relative;
	overflow:hidden;
}
.kc-hero::before {
	content:"";
	position:absolute;
	inset:0;
	background-image:radial-gradient(circle, rgba(232,78,122,.04) 1px, transparent 1px);
	background-size:24px 24px;
	pointer-events:none;
}
.kc-hero-inner {
	position:relative;
	max-width:780px;
	margin:0 auto;
	text-align:center;
}
.kc-hero h1 {
	font-family:var(--kc-font-disp);
	font-size:clamp(28px, 5vw, 44px);
	line-height:1.4;
	color:var(--kc-ink);
	margin:0 0 16px;
	font-weight:700;
}
.kc-hero h1 em {
	font-style:normal;
	color:var(--kc-primary);
	background:linear-gradient(transparent 60%, #ffe3ec 60%);
}
.kc-hero p {
	font-size:17px;
	color:var(--kc-muted);
	margin:0 0 24px;
}
.kc-hero-trust {
	display:inline-flex;
	gap:24px;
	background:#fff;
	border:1px solid var(--kc-line);
	border-radius:999px;
	padding:10px 24px;
	font-size:13px;
	color:var(--kc-muted);
	box-shadow:var(--kc-shadow);
}
.kc-hero-trust strong { color:var(--kc-primary); font-size:16px; margin-right:4px; }

/* ===== Cards / posts ===== */
.kc-section-title {
	font-family:var(--kc-font-disp);
	font-size:24px;
	color:var(--kc-ink);
	margin:0 0 20px;
	padding-left:14px;
	border-left:4px solid var(--kc-primary);
	font-weight:700;
}

.kc-post-grid {
	display:grid;
	grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
	gap:24px;
}
.kc-post-card {
	background:#fff;
	border-radius:var(--kc-radius);
	overflow:hidden;
	box-shadow:var(--kc-shadow);
	transition:transform .25s ease, box-shadow .25s ease;
	display:flex;
	flex-direction:column;
}
.kc-post-card:hover {
	transform:translateY(-4px);
	box-shadow:var(--kc-shadow-h);
}
.kc-post-card-thumb {
	aspect-ratio:16/9;
	background:#f0f0f0;
	overflow:hidden;
}
.kc-post-card-thumb img {
	width:100%; height:100%;
	object-fit:cover;
	transition:transform .4s ease;
}
.kc-post-card:hover .kc-post-card-thumb img { transform:scale(1.05); }
.kc-post-card-body {
	padding:20px;
	flex:1;
	display:flex;
	flex-direction:column;
}
.kc-post-card-cat {
	display:inline-block;
	background:var(--kc-bg-soft);
	color:var(--kc-primary-d);
	font-size:11px;
	font-weight:600;
	padding:3px 10px;
	border-radius:99px;
	margin-bottom:10px;
	width:fit-content;
}
.kc-post-card h3 {
	margin:0 0 10px;
	font-size:16px;
	line-height:1.5;
	color:var(--kc-ink);
	font-weight:700;
}
.kc-post-card h3 a { color:inherit; text-decoration:none; }
.kc-post-card h3 a:hover { color:var(--kc-primary); }
.kc-post-card-meta {
	margin-top:auto;
	font-size:12px;
	color:var(--kc-muted);
}

/* ===== Single post ===== */
.kc-single {
	background:#fff;
	border-radius:var(--kc-radius);
	padding:40px;
	box-shadow:var(--kc-shadow);
}
@media (max-width:600px) { .kc-single { padding:24px 18px; } }

.kc-single h1 {
	font-family:var(--kc-font-disp);
	font-size:clamp(22px, 4vw, 32px);
	line-height:1.5;
	color:var(--kc-ink);
	margin:0 0 16px;
}
.kc-single-meta {
	display:flex;
	gap:16px;
	font-size:13px;
	color:var(--kc-muted);
	margin-bottom:24px;
	padding-bottom:24px;
	border-bottom:1px solid var(--kc-line);
}
.kc-content h2 {
	font-family:var(--kc-font-disp);
	font-size:24px;
	color:var(--kc-ink);
	margin:48px 0 20px;
	padding:14px 20px;
	background:linear-gradient(90deg, var(--kc-bg-soft), transparent);
	border-left:5px solid var(--kc-primary);
	border-radius:0 6px 6px 0;
}
.kc-content h3 {
	font-size:20px;
	color:var(--kc-ink);
	margin:36px 0 16px;
	padding-bottom:8px;
	border-bottom:2px dotted var(--kc-line);
}
.kc-content p { margin:0 0 1.6em; }
.kc-content ul, .kc-content ol { margin:0 0 1.6em; padding-left:1.6em; }
.kc-content li { margin-bottom:.5em; }
.kc-content a { border-bottom:1px solid currentColor; }
.kc-content blockquote {
	margin:1.6em 0;
	padding:20px 24px;
	background:var(--kc-bg-soft);
	border-radius:var(--kc-radius);
	border-left:4px solid var(--kc-primary);
	font-style:normal;
	color:var(--kc-text);
}
.kc-content table {
	width:100%;
	border-collapse:collapse;
	margin:1.6em 0;
	font-size:14px;
}
.kc-content th, .kc-content td {
	padding:12px;
	border:1px solid var(--kc-line);
	text-align:left;
}
.kc-content th { background:var(--kc-bg-soft); }

/* ===== TOC ===== */
.kc-toc {
	background:#fafbfc;
	border:1px solid var(--kc-line);
	border-radius:var(--kc-radius);
	padding:20px 24px;
	margin:24px 0 32px;
}
.kc-toc-title {
	font-weight:700;
	color:var(--kc-ink);
	margin-bottom:10px;
}
.kc-toc ol { margin:0; padding-left:1.4em; }
.kc-toc a { color:var(--kc-text); }

/* ===== Sidebar ===== */
.kc-sidebar { font-size:14px; }
.kc-widget {
	background:#fff;
	border-radius:var(--kc-radius);
	padding:20px;
	margin-bottom:24px;
	box-shadow:var(--kc-shadow);
}
.kc-widget h3 {
	margin:0 0 16px;
	font-size:15px;
	color:var(--kc-ink);
	padding-bottom:8px;
	border-bottom:2px solid var(--kc-primary);
	display:inline-block;
}
.kc-widget ul { list-style:none; padding:0; margin:0; }
.kc-widget li { margin-bottom:12px; padding-bottom:12px; border-bottom:1px dashed var(--kc-line); }
.kc-widget li:last-child { border-bottom:0; }

/* ===== Footer ===== */
.kc-footer {
	background:var(--kc-ink);
	color:#cfd1d9;
	padding:48px 0 24px;
	margin-top:80px;
	font-size:14px;
}
.kc-footer a { color:#fff; }
.kc-footer-grid {
	display:grid;
	grid-template-columns:1.5fr 1fr 1fr;
	gap:40px;
	margin-bottom:32px;
}
@media (max-width:780px) { .kc-footer-grid { grid-template-columns:1fr; gap:24px; } }
.kc-footer h4 { color:#fff; margin:0 0 12px; font-size:14px; }
.kc-footer ul { list-style:none; padding:0; margin:0; }
.kc-footer ul li { margin-bottom:8px; }
.kc-footer-copy {
	border-top:1px solid #2c3142;
	padding-top:20px;
	text-align:center;
	font-size:12px;
	color:#7d8190;
}

/* =====================================================
   プラグインショートコード用スタイル
   ===================================================== */

/* CTAボタン */
.kc-btn-wrap {
	margin:28px 0;
	text-align:center;
}
.kc-btn {
	display:inline-flex;
	flex-direction:column;
	align-items:center;
	gap:4px;
	min-width:280px;
	padding:18px 40px;
	background:linear-gradient(180deg, var(--kc-primary) 0%, var(--kc-primary-d) 100%);
	color:#fff !important;
	text-decoration:none !important;
	font-weight:700;
	border-radius:99px;
	box-shadow:0 6px 0 #962948, 0 12px 24px rgba(232,78,122,.25);
	transition:transform .15s ease, box-shadow .15s ease;
	position:relative;
}
.kc-btn::before {
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(180deg, rgba(255,255,255,.2), transparent);
	border-radius:99px;
	pointer-events:none;
}
.kc-btn:hover {
	transform:translateY(2px);
	box-shadow:0 4px 0 #962948, 0 8px 16px rgba(232,78,122,.25);
	text-decoration:none !important;
}
.kc-btn-text { font-size:18px; }
.kc-btn-sub { font-size:12px; font-weight:500; opacity:.95; }
.kc-btn-note { display:block; margin-top:8px; color:var(--kc-muted); font-size:12px; }

/* 案件カード */
.kc-card {
	position:relative;
	background:#fff;
	border:1px solid var(--kc-line);
	border-radius:var(--kc-radius);
	padding:28px;
	margin:24px 0;
	box-shadow:var(--kc-shadow);
}
.kc-card-rank {
	position:absolute;
	top:-12px; left:24px;
	background:#777;
	color:#fff;
	padding:4px 14px;
	border-radius:99px;
	font-size:12px;
	font-weight:700;
}
.kc-rank-1 { background:linear-gradient(135deg, #f5c518, #d49d00); }
.kc-rank-2 { background:linear-gradient(135deg, #c0c0c0, #888); }
.kc-rank-3 { background:linear-gradient(135deg, #cd7f32, #8b5a2b); }

.kc-card-header {
	display:grid;
	grid-template-columns:120px 1fr;
	gap:20px;
	align-items:center;
	margin-bottom:16px;
}
.kc-card-header img { border-radius:8px; }
.kc-card-title h3 {
	margin:0 0 6px;
	font-size:20px;
	color:var(--kc-ink);
}
.kc-tagline {
	margin:0 0 6px;
	color:var(--kc-primary-d);
	font-size:13px;
	font-weight:600;
}
.kc-stars-icon {
	color:#f5c518;
	letter-spacing:1px;
}
.kc-stars-num {
	margin-left:6px;
	color:var(--kc-muted);
	font-size:13px;
}
@media (max-width:520px) {
	.kc-card-header { grid-template-columns:1fr; text-align:center; }
}

.kc-features {
	list-style:none;
	padding:0;
	margin:0 0 16px;
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
	gap:6px 14px;
}
.kc-features li {
	font-size:13px;
	color:var(--kc-text);
	padding-left:18px;
	position:relative;
}
.kc-features li::before {
	content:"✓";
	position:absolute; left:0;
	color:var(--kc-accent);
	font-weight:700;
}

.kc-procons {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:16px;
	margin:16px 0;
}
.kc-pros, .kc-cons {
	padding:14px 18px;
	border-radius:8px;
	font-size:13px;
}
.kc-pros { background:#eafaf6; border:1px solid #c8ebe1; }
.kc-cons { background:#fff5f5; border:1px solid #f0d0d0; }
.kc-pros h4, .kc-cons h4 { margin:0 0 8px; font-size:13px; }
.kc-pros h4 { color:var(--kc-accent); }
.kc-cons h4 { color:#c44; }
.kc-pros ul, .kc-cons ul { margin:0; padding-left:1.2em; }
@media (max-width:560px) { .kc-procons { grid-template-columns:1fr; } }

/* 比較表 */
.kc-compare-wrap { overflow-x:auto; margin:24px 0; }
.kc-compare {
	width:100%;
	border-collapse:separate;
	border-spacing:0;
	min-width:680px;
	background:#fff;
	border-radius:var(--kc-radius);
	overflow:hidden;
	box-shadow:var(--kc-shadow);
}
.kc-compare th {
	background:var(--kc-ink);
	color:#fff;
	padding:14px;
	font-size:13px;
	font-weight:600;
}
.kc-compare td {
	padding:16px 14px;
	border-bottom:1px solid var(--kc-line);
	vertical-align:middle;
	font-size:13px;
}
.kc-compare td strong { display:block; font-size:15px; color:var(--kc-ink); }
.kc-compare td small { color:var(--kc-muted); font-size:12px; }
.kc-compare-rating { text-align:center; }
.kc-compare-btn {
	display:inline-block;
	padding:8px 18px;
	background:var(--kc-primary);
	color:#fff !important;
	border-radius:99px;
	font-weight:700;
	font-size:13px;
	text-decoration:none !important;
	white-space:nowrap;
}
.kc-compare-btn:hover { background:var(--kc-primary-d); }

/* 二択CTA */
.kc-dual-cta {
	background:linear-gradient(135deg, #fff5f8 0%, #fff 100%);
	border:2px solid var(--kc-primary);
	border-radius:var(--kc-radius);
	padding:32px;
	margin:40px 0;
}
.kc-dual-cta-head { text-align:center; margin-bottom:24px; }
.kc-dual-cta-badge {
	display:inline-block;
	background:var(--kc-primary);
	color:#fff;
	padding:4px 14px;
	border-radius:99px;
	font-size:11px;
	font-weight:700;
	margin-bottom:8px;
	letter-spacing:.1em;
}
.kc-dual-cta h3 {
	font-family:var(--kc-font-disp);
	margin:0 0 10px;
	color:var(--kc-ink);
	font-size:22px;
}
.kc-dual-cta-head p {
	margin:0;
	color:var(--kc-muted);
	font-size:14px;
}
.kc-dual-cta-body {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:20px;
}
@media (max-width:760px) { .kc-dual-cta-body { grid-template-columns:1fr; } }
.kc-dual-cta-body .kc-card { margin:0; }

/* 口コミ */
.kc-review {
	background:#fff;
	border:1px solid var(--kc-line);
	border-radius:var(--kc-radius);
	padding:20px 24px;
	margin:20px 0;
	border-left:5px solid var(--kc-accent);
}
.kc-review-head {
	display:flex;
	align-items:center;
	gap:12px;
	margin-bottom:10px;
	flex-wrap:wrap;
}
.kc-review-head strong { color:var(--kc-ink); }
.kc-review-service {
	font-size:11px;
	background:var(--kc-bg-soft);
	color:var(--kc-primary-d);
	padding:2px 8px;
	border-radius:99px;
}
.kc-review-body p { margin:0; font-size:14px; }

/* フローティングCTA */
.kc-floating-cta {
	position:fixed;
	left:0; right:0; bottom:0;
	background:#fff;
	border-top:2px solid var(--kc-primary);
	padding:12px 16px;
	display:flex;
	align-items:center;
	gap:12px;
	z-index:99;
	box-shadow:0 -4px 20px rgba(0,0,0,.1);
	animation:kcSlideUp .3s ease-out;
}
@keyframes kcSlideUp {
	from { transform:translateY(100%); }
	to   { transform:translateY(0); }
}
.kc-floating-msg {
	flex:1;
	display:flex;
	flex-direction:column;
	font-size:12px;
	color:var(--kc-muted);
}
.kc-floating-msg strong { color:var(--kc-ink); font-size:14px; }
.kc-floating-btn {
	background:var(--kc-primary);
	color:#fff !important;
	padding:12px 20px;
	border-radius:99px;
	font-weight:700;
	font-size:14px;
	text-decoration:none !important;
	white-space:nowrap;
	box-shadow:0 4px 12px rgba(232,78,122,.3);
}
.kc-floating-close {
	background:transparent;
	border:0;
	font-size:20px;
	color:var(--kc-muted);
	cursor:pointer;
	padding:4px 8px;
}

/* ページネーション */
.kc-pagination {
	display:flex;
	justify-content:center;
	gap:6px;
	margin:40px 0;
}
.kc-pagination a, .kc-pagination span {
	min-width:38px;
	height:38px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border-radius:8px;
	background:#fff;
	color:var(--kc-text);
	border:1px solid var(--kc-line);
	font-size:14px;
	text-decoration:none;
}
.kc-pagination .current {
	background:var(--kc-primary);
	color:#fff;
	border-color:var(--kc-primary);
}

/* パンくず */
.kc-breadcrumb {
	font-size:12px;
	color:var(--kc-muted);
	margin-bottom:16px;
}
.kc-breadcrumb a { color:var(--kc-muted); }
.kc-breadcrumb .sep { margin:0 6px; }
