/**
 * Water Karute Theme — main.css
 * グリッド、カード、フォーム、ユーティリティ
 *
 * @package water-karute-theme
 * @since   1.2.0 (Batch 12: パフォーマンス・アクセシビリティ・モバイル)
 */

/* ==========================================================================
   スキップリンク（アクセシビリティ: Batch 12）
   ========================================================================== */

.skip-link {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.skip-link:focus {
	background-color: var(--color-primary);
	clip: auto !important;
	clip-path: none;
	color: var(--color-white);
	display: block;
	font-size: var(--font-size-sm);
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100001;
}

/* ==========================================================================
   投稿グリッド
   ========================================================================== */

.wkc-post-grid {
	display: grid;
	gap: var(--space-lg);
}

@media (min-width: 768px) {
	.wkc-post-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.wkc-post-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ==========================================================================
   カードコンポーネント (.wkc-card)
   ========================================================================== */

.wkc-card {
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	transition: box-shadow var(--transition-base), transform var(--transition-base);
	display: flex;
	flex-direction: column;
}

.wkc-card:hover {
	box-shadow: var(--shadow-md);
	transform: translateY(-2px);
}

.wkc-card__thumbnail img {
	width: 100%;
	height: 200px;
	object-fit: cover;
}

.wkc-card__body {
	padding: var(--space-lg);
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
}

.wkc-card__header {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
}

.wkc-card__title {
	font-size: var(--font-size-lg);
	font-weight: 700;
	line-height: var(--line-height-tight);
}

.wkc-card__title a {
	color: var(--color-text);
	text-decoration: none;
}

.wkc-card__title a:hover {
	color: var(--color-primary);
}

.wkc-card__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-sm);
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
}

.wkc-card__excerpt {
	flex: 1;
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
	line-height: var(--line-height-base);
}

.wkc-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: var(--space-sm);
}

.wkc-card__date {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
}

/* 業者カード */
.wkc-card--contractor .wkc-card__title {
	font-size: var(--font-size-xl);
	color: var(--color-primary);
}

/* 口コミカード */
.wkc-card--review {
	border-left: 4px solid var(--color-primary);
}

/* ==========================================================================
   星評価
   ========================================================================== */

.wkc-stars {
	display: inline-flex;
	gap: 2px;
	font-size: var(--font-size-xl);
	line-height: 1;
}

.wkc-stars__display {
	color: #CCCCCC;
	position: relative;
	display: inline-block;
	letter-spacing: 2px;
}

.wkc-stars__fill {
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
	color: var(--color-warning);
	white-space: nowrap;
}

/* data-score="X.X" による幅制御は JS で設定 */

/* ==========================================================================
   ボタン (.wkc-btn)
   ========================================================================== */

.wkc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-xs);
	padding: var(--space-md) var(--space-xl);
	border-radius: var(--border-radius);
	font-size: var(--font-size-base);
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	border: 2px solid transparent;
	transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.wkc-btn:focus-visible {
	outline: 3px solid var(--color-primary);
	outline-offset: 2px;
}

/* プライマリ */
.wkc-btn--primary {
	background-color: var(--color-primary);
	color: var(--color-white);
	border-color: var(--color-primary);
}

.wkc-btn--primary:hover {
	background-color: var(--color-secondary);
	border-color: var(--color-secondary);
	color: var(--color-white);
	text-decoration: none;
}

/* アクセント（注意・高額警告CTA）: アンバー背景×暗色テキスト */
.wkc-btn--accent {
	background-color: var(--color-accent);
	color: var(--color-text);
	border-color: var(--color-accent);
}

.wkc-btn--accent:hover {
	background-color: #D97706;
	border-color: #D97706;
	color: var(--color-text);
	text-decoration: none;
}

/* アウトライン */
.wkc-btn--outline {
	background-color: transparent;
	color: var(--color-primary);
	border-color: var(--color-primary);
}

.wkc-btn--outline:hover {
	background-color: var(--color-primary);
	color: var(--color-white);
	text-decoration: none;
}

/* サイズ */
.wkc-btn--sm {
	padding: var(--space-xs) var(--space-md);
	font-size: var(--font-size-sm);
}

.wkc-btn--lg {
	padding: var(--space-lg) var(--space-2xl);
	font-size: var(--font-size-lg);
	border-radius: var(--border-radius-lg);
}

/* ==========================================================================
   フォーム
   ========================================================================== */

.wkc-form-group {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
	margin-bottom: var(--space-lg);
}

.wkc-form-label {
	font-size: var(--font-size-sm);
	font-weight: 600;
	color: var(--color-text);
}

.wkc-form-label .required {
	color: var(--color-danger);
	margin-left: 4px;
}

.wkc-form-input,
.wkc-form-select,
.wkc-form-textarea {
	width: 100%;
	padding: var(--space-sm) var(--space-md);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	font-size: var(--font-size-base);
	font-family: inherit;
	color: var(--color-text);
	background-color: var(--color-white);
	transition: border-color var(--transition-fast);
}

.wkc-form-input:focus,
.wkc-form-select:focus,
.wkc-form-textarea:focus {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.15);
}

.wkc-form-textarea {
	min-height: 120px;
	resize: vertical;
}

.wkc-form-helper {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
}

.wkc-form-error {
	font-size: var(--font-size-xs);
	color: var(--color-danger);
}

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

.nav-links {
	display: flex;
	justify-content: center;
	gap: var(--space-sm);
	margin-top: var(--space-xl);
	flex-wrap: wrap;
}

.nav-links .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding-inline: var(--space-sm);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	font-size: var(--font-size-sm);
	color: var(--color-text);
	text-decoration: none;
	transition: background-color var(--transition-fast), color var(--transition-fast);
}

.nav-links .page-numbers:hover,
.nav-links .page-numbers.current {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

/* ==========================================================================
   エントリーコンテンツ（記事本文）
   ========================================================================== */

.entry-content,
.entry-summary {
	line-height: var(--line-height-base);
	color: var(--color-text);
}

.entry-content h2,
.entry-content h3,
.entry-content h4 {
	font-weight: 700;
	line-height: var(--line-height-tight);
	margin-block: var(--space-xl) var(--space-md);
}

.entry-content h2 {
	font-size: var(--font-size-xl);
	border-left: 5px solid var(--color-primary);
	padding-left: var(--space-md);
}

.entry-content h3 {
	font-size: var(--font-size-lg);
	border-bottom: 2px solid var(--color-border);
	padding-bottom: var(--space-xs);
}

.entry-content h4 {
	font-size: var(--font-size-base);
}

.entry-content p {
	margin-bottom: var(--space-md);
}

.entry-content ul,
.entry-content ol {
	margin-bottom: var(--space-md);
	padding-left: var(--space-xl);
}

.entry-content ul {
	list-style: disc;
}

.entry-content ol {
	list-style: decimal;
}

.entry-content li {
	margin-bottom: var(--space-xs);
}

.entry-content a {
	color: var(--color-primary);
	text-decoration: underline;
}

.entry-content a:hover {
	color: var(--color-secondary);
}

.entry-content blockquote {
	border-left: 4px solid var(--color-primary);
	background-color: var(--color-bg);
	padding: var(--space-md) var(--space-lg);
	margin-block: var(--space-lg);
	border-radius: 0 var(--border-radius) var(--border-radius) 0;
	font-style: italic;
}

.entry-content table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: var(--space-lg);
	font-size: var(--font-size-sm);
}

.entry-content th,
.entry-content td {
	padding: var(--space-sm) var(--space-md);
	border: 1px solid var(--color-border);
	text-align: left;
}

.entry-content th {
	background-color: var(--color-primary);
	color: var(--color-white);
	font-weight: 700;
}

.entry-content tr:nth-child(even) td {
	background-color: var(--color-bg);
}

/* ==========================================================================
   バッジ・ラベル
   ========================================================================== */

.wkc-badge {
	display: inline-flex;
	align-items: center;
	padding: 2px var(--space-sm);
	border-radius: 100px;
	font-size: var(--font-size-xs);
	font-weight: 600;
	line-height: 1.4;
}

.wkc-badge--primary {
	background-color: var(--color-primary);
	color: var(--color-white);
}

.wkc-badge--success {
	background-color: var(--color-success);
	color: var(--color-white);
}

.wkc-badge--warning {
	background-color: var(--color-warning);
	color: var(--color-text);
}

.wkc-badge--outline {
	background-color: transparent;
	border: 1px solid var(--color-primary);
	color: var(--color-primary);
}

/* ==========================================================================
   404 ページ
   ========================================================================== */

.wkc-404-search {
	margin-block: var(--space-xl);
}

.wkc-404-search h2,
.wkc-404-links h2 {
	font-size: var(--font-size-lg);
	margin-bottom: var(--space-md);
	color: var(--color-primary);
}

.wkc-404-nav {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	margin-bottom: var(--space-lg);
	list-style: none;
}

.wkc-404-nav a {
	display: inline-block;
	padding: var(--space-xs) var(--space-md);
	background-color: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	font-size: var(--font-size-sm);
	color: var(--color-text);
	text-decoration: none;
}

.wkc-404-nav a:hover {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

/* ==========================================================================
   ユーティリティ
   ========================================================================== */

.u-text-center  { text-align: center; }
.u-text-left    { text-align: left; }
.u-text-right   { text-align: right; }
.u-mt-0  { margin-top: 0; }
.u-mt-sm { margin-top: var(--space-sm); }
.u-mt-md { margin-top: var(--space-md); }
.u-mt-lg { margin-top: var(--space-lg); }
.u-mt-xl { margin-top: var(--space-xl); }
.u-mb-0  { margin-bottom: 0; }
.u-mb-sm { margin-bottom: var(--space-sm); }
.u-mb-md { margin-bottom: var(--space-md); }
.u-mb-lg { margin-bottom: var(--space-lg); }
.u-mb-xl { margin-bottom: var(--space-xl); }
.u-hidden { display: none !important; }

@media (max-width: 767px) {
	.u-hidden-mobile { display: none !important; }
}

@media (min-width: 768px) {
	.u-hidden-desktop { display: none !important; }
}

/* ==========================================================================
   シングル投稿スタイル
   ========================================================================== */

.wkc-single-post,
.wkc-page {
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	padding: var(--space-xl);
}

.entry-header {
	margin-bottom: var(--space-xl);
}

.entry-title {
	font-size: var(--font-size-2xl);
	font-weight: 700;
	line-height: var(--line-height-tight);
	color: var(--color-text);
	margin-bottom: var(--space-md);
}

.entry-meta {
	display: flex;
	align-items: center;
	gap: var(--space-md);
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
}

.post-thumbnail {
	margin-bottom: var(--space-xl);
	border-radius: var(--border-radius);
	overflow: hidden;
}

.post-thumbnail img {
	width: 100%;
	height: auto;
}

.entry-footer {
	margin-top: var(--space-xl);
	padding-top: var(--space-lg);
	border-top: 1px solid var(--color-border);
	display: flex;
	gap: var(--space-md);
	flex-wrap: wrap;
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
}

/* ポストナビ */
.post-navigation {
	margin-block: var(--space-xl);
}

.post-navigation .nav-links {
	display: grid;
	gap: var(--space-md);
	justify-content: initial;
}

@media (min-width: 768px) {
	.post-navigation .nav-links {
		grid-template-columns: 1fr 1fr;
	}
}

.post-navigation .nav-previous,
.post-navigation .nav-next {
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	padding: var(--space-md);
}

.post-navigation .nav-previous a,
.post-navigation .nav-next a {
	color: var(--color-primary);
	font-weight: 600;
}

/* ==========================================================================
   ページヘッダー (archive / search)
   ========================================================================== */

.page-header .search-query {
	color: var(--color-accent);
}

/* ==========================================================================
   星評価 (.wkc-star-rating)
   Batch 06 追加 — render_stars() の出力に対応するスタイル
   ========================================================================== */

.wkc-star-rating {
	display: inline-flex;
	align-items: center;
	gap: 1px;
	font-size: 1.25em;
	line-height: 1;
	vertical-align: middle;
}

.wkc-star {
	display: inline-block;
	line-height: 1;
}

.wkc-star--filled {
	color: var(--color-warning);
}

.wkc-star--half {
	color: var(--color-warning);
	opacity: 0.6;
}

.wkc-star--empty {
	color: #CCCCCC;
}

/* ==========================================================================
   評価バー (.wkc-rating-bar)
   ========================================================================== */

.wkc-rating-bar {
	display: grid;
	grid-template-columns: 100px 1fr 40px;
	align-items: center;
	gap: var(--space-sm);
	margin-bottom: var(--space-sm);
}

.wkc-rating-bar__label {
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
	text-align: right;
	white-space: nowrap;
}

.wkc-rating-bar__track {
	height: 10px;
	background-color: var(--color-border);
	border-radius: 100px;
	overflow: hidden;
}

.wkc-rating-bar__fill {
	height: 100%;
	background: linear-gradient(90deg, var(--color-primary) 0%, #00AAFF 100%);
	border-radius: 100px;
	transition: width 0.4s ease;
}

.wkc-rating-bar__value {
	font-size: var(--font-size-sm);
	font-weight: 700;
	color: var(--color-primary);
	text-align: left;
}

@media (max-width: 480px) {
	.wkc-rating-bar {
		grid-template-columns: 80px 1fr 36px;
		gap: var(--space-xs);
	}
}

/* ==========================================================================
   バッジ拡張 (.wkc-badge--emergency / --estimate / --pr)
   ========================================================================== */

.wkc-badge--emergency {
	background-color: var(--color-danger);
	color: var(--color-white);
}

.wkc-badge--estimate {
	background-color: var(--color-success);
	color: var(--color-white);
}

.wkc-badge--pr {
	background-color: var(--color-accent);
	color: var(--color-white);
	font-size: 10px;
	padding: 1px 6px;
	border-radius: 3px;
	letter-spacing: 0.05em;
}

/* ==========================================================================
   業者カード拡張 (.wkc-card--contractor)
   ========================================================================== */

.wkc-card--contractor {
	position: relative;
}

.wkc-card__pr-ribbon {
	position: absolute;
	top: var(--space-sm);
	right: var(--space-sm);
	z-index: 1;
}

.wkc-card__badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	margin-bottom: var(--space-xs);
}

.wkc-card__rating {
	display: flex;
	align-items: center;
	gap: var(--space-xs);
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
}

.wkc-card__avg-value {
	font-weight: 700;
	color: var(--color-text);
	font-size: var(--font-size-base);
}

.wkc-card__review-count {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
}

.wkc-card__location {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	margin-top: var(--space-xs);
}

.wkc-card__location-pref,
.wkc-card__location-muni {
	color: var(--color-primary);
	text-decoration: none;
}

.wkc-card__location-pref:hover,
.wkc-card__location-muni:hover {
	text-decoration: underline;
}

.wkc-card--pr {
	border-color: var(--color-accent);
	box-shadow: 0 0 0 2px rgba(255, 102, 0, 0.15);
}

/* ==========================================================================
   口コミカード (.wkc-review-card)
   ========================================================================== */

.wkc-review-card {
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-left: 4px solid var(--color-primary);
	border-radius: var(--border-radius);
	padding: var(--space-lg);
	margin-bottom: var(--space-lg);
}

.wkc-review-card__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: var(--space-sm);
	margin-bottom: var(--space-md);
}

.wkc-review-card__rating {
	display: flex;
	align-items: center;
	gap: var(--space-xs);
}

.wkc-review-card__overall-value {
	font-size: var(--font-size-lg);
	font-weight: 700;
	color: var(--color-warning);
}

.wkc-review-card__author {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 2px;
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
}

.wkc-review-card__nickname {
	font-weight: 600;
	color: var(--color-text);
}

.wkc-review-card__date {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
}

.wkc-review-card__bars {
	margin-bottom: var(--space-md);
	padding: var(--space-md);
	background-color: var(--color-bg);
	border-radius: var(--border-radius);
}

.wkc-review-card__body {
	font-size: var(--font-size-base);
	line-height: var(--line-height-base);
	color: var(--color-text);
	margin-bottom: var(--space-md);
}

.wkc-review-card__short,
.wkc-review-card__full {
	margin-bottom: var(--space-sm);
}

.wkc-review-card__toggle {
	margin-top: var(--space-xs);
}

.wkc-review-card__work-info {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-md);
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	border-top: 1px solid var(--color-border);
	padding-top: var(--space-sm);
}

.wkc-review-card__work-date,
.wkc-review-card__invoice {
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
}

@media (max-width: 767px) {
	.wkc-review-card__header {
		flex-direction: column;
	}
	.wkc-review-card__author {
		align-items: flex-start;
	}
}

/* ==========================================================================
   業者ヒーロー (.wkc-contractor-hero)
   ========================================================================== */

.wkc-contractor-hero {
	background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
	color: var(--color-white);
	border-radius: var(--border-radius-lg);
	padding: var(--space-xl) var(--space-2xl);
	margin-bottom: var(--space-xl);
	position: relative;
	overflow: hidden;
}

.wkc-contractor-hero__pr-banner {
	position: absolute;
	top: var(--space-sm);
	right: var(--space-md);
}

.wkc-contractor-hero__inner {
	display: flex;
	align-items: flex-start;
	gap: var(--space-xl);
}

.wkc-contractor-hero__logo {
	flex-shrink: 0;
}

.wkc-contractor-hero__logo-img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: var(--border-radius);
	background-color: var(--color-white);
}

.wkc-contractor-hero__info {
	flex: 1;
	min-width: 0;
}

.wkc-contractor-hero__name {
	font-size: var(--font-size-2xl);
	font-weight: 700;
	color: var(--color-white);
	margin-bottom: var(--space-sm);
	line-height: var(--line-height-tight);
}

.wkc-contractor-hero__badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	margin-bottom: var(--space-sm);
}

.wkc-contractor-hero__rating {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	flex-wrap: wrap;
}

.wkc-contractor-hero__avg-value {
	font-size: var(--font-size-xl);
	font-weight: 700;
	color: var(--color-warning);
}

.wkc-contractor-hero__review-count {
	font-size: var(--font-size-sm);
	color: rgba(255, 255, 255, 0.8);
}

@media (max-width: 767px) {
	.wkc-contractor-hero {
		padding: var(--space-lg);
	}
	.wkc-contractor-hero__inner {
		flex-direction: column;
		gap: var(--space-md);
	}
	.wkc-contractor-hero__name {
		font-size: var(--font-size-xl);
	}
}

/* ==========================================================================
   業者詳細セクション共通
   ========================================================================== */

.wkc-contractor-section {
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	padding: var(--space-xl);
	margin-bottom: var(--space-xl);
}

.wkc-section-title {
	font-size: var(--font-size-xl);
	font-weight: 700;
	color: var(--color-primary);
	border-left: 5px solid var(--color-primary);
	padding-left: var(--space-md);
	margin-bottom: var(--space-lg);
	display: flex;
	align-items: center;
	gap: var(--space-sm);
}

.wkc-section-title__count {
	font-size: var(--font-size-sm);
	font-weight: 400;
	color: var(--color-text-muted);
}

/* ==========================================================================
   基本情報テーブル (.wkc-info-table)
   ========================================================================== */

.wkc-info-table {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.wkc-info-table__row {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: var(--space-md);
	padding: var(--space-sm) 0;
	border-bottom: 1px solid var(--color-border);
}

.wkc-info-table__row:last-child {
	border-bottom: none;
}

.wkc-info-table__label {
	font-size: var(--font-size-sm);
	font-weight: 600;
	color: var(--color-text-light);
	padding-top: 2px;
}

.wkc-info-table__value {
	font-size: var(--font-size-base);
	color: var(--color-text);
	word-break: break-all;
}

.wkc-info-table__value a {
	color: var(--color-primary);
	word-break: break-all;
}

@media (max-width: 767px) {
	.wkc-info-table__row {
		grid-template-columns: 1fr;
		gap: var(--space-xs);
		padding: var(--space-md) 0;
	}
}

/* ==========================================================================
   評価詳細セクション (.wkc-rating-detail)
   ========================================================================== */

.wkc-rating-detail__overall {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	margin-bottom: var(--space-lg);
	flex-wrap: wrap;
}

.wkc-rating-detail__overall-value {
	font-size: var(--font-size-2xl);
	font-weight: 700;
	color: var(--color-warning);
}

.wkc-rating-detail__overall-label {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
}

.wkc-rating-detail__bars {
	max-width: 560px;
}

/* ==========================================================================
   アーカイブ2カラムレイアウト (.wkc-archive-layout)
   ========================================================================== */

.wkc-archive-layout {
	display: grid;
	gap: var(--space-xl);
	margin-top: var(--space-lg);
}

@media (min-width: 1024px) {
	.wkc-archive-layout {
		grid-template-columns: 240px 1fr;
		align-items: start;
	}
}

.wkc-filter-sidebar {
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	padding: var(--space-lg);
}

.wkc-filter-sidebar__title {
	font-size: var(--font-size-lg);
	font-weight: 700;
	color: var(--color-primary);
	margin-bottom: var(--space-md);
	padding-bottom: var(--space-sm);
	border-bottom: 2px solid var(--color-primary);
}

.wkc-filter-group {
	margin-bottom: var(--space-lg);
}

.wkc-filter-group__label {
	font-size: var(--font-size-sm);
	font-weight: 600;
	color: var(--color-text-light);
	margin-bottom: var(--space-sm);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.wkc-filter-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.wkc-filter-list__item {
	border-bottom: 1px solid var(--color-border);
}

.wkc-filter-list__item:last-child {
	border-bottom: none;
}

.wkc-filter-list__link {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: var(--space-xs) var(--space-sm);
	font-size: var(--font-size-sm);
	color: var(--color-text);
	text-decoration: none;
	border-radius: var(--border-radius);
	transition: background-color var(--transition-fast), color var(--transition-fast);
}

.wkc-filter-list__link:hover,
.wkc-filter-list__link--active {
	background-color: var(--color-primary);
	color: var(--color-white);
}

.wkc-filter-list__count {
	font-size: var(--font-size-xs);
	color: inherit;
	opacity: 0.7;
}

.wkc-filter-empty {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	padding: var(--space-xs) 0;
}

/* 業者グリッド */
.wkc-contractor-grid {
	display: grid;
	gap: var(--space-lg);
}

@media (min-width: 600px) {
	.wkc-contractor-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.wkc-archive-layout .wkc-contractor-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ==========================================================================
   市区町村リスト (.wkc-municipality-list)
   ========================================================================== */

.wkc-municipality-links {
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	padding: var(--space-xl);
	margin-bottom: var(--space-xl);
}

.wkc-municipality-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	list-style: none;
	padding: 0;
	margin: 0;
}

.wkc-municipality-list__link {
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	padding: var(--space-xs) var(--space-md);
	background-color: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: 100px;
	font-size: var(--font-size-sm);
	color: var(--color-text);
	text-decoration: none;
	transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.wkc-municipality-list__link:hover {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

.wkc-municipality-list__count {
	font-size: var(--font-size-xs);
	color: inherit;
	opacity: 0.7;
}

/* ==========================================================================
   水道局情報 (.wkc-water-authority)
   ========================================================================== */

.wkc-water-authority {
	background-color: #EEF4FB;
	border: 1px solid var(--color-border);
	border-left: 5px solid var(--color-primary);
	border-radius: var(--border-radius);
	padding: var(--space-xl);
	margin-bottom: var(--space-xl);
}

.wkc-water-authority__inner {
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
}

.wkc-water-authority__name,
.wkc-water-authority__phone,
.wkc-water-authority__url {
	font-size: var(--font-size-base);
	color: var(--color-text);
}

.wkc-water-authority__phone a,
.wkc-water-authority__url a {
	color: var(--color-primary);
}

/* ==========================================================================
   PR枠ブロック (.wkc-pr-block)
   ========================================================================== */

.wkc-pr-block {
	background-color: #FFF8F3;
	border: 1px dashed var(--color-accent);
	border-radius: var(--border-radius);
	padding: var(--space-lg);
	margin-bottom: var(--space-xl);
}

.wkc-pr-block__label {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	margin-bottom: var(--space-md);
}

.wkc-pr-block__body {
	font-size: var(--font-size-base);
	color: var(--color-text);
}

/* ==========================================================================
   地図埋め込み (.wkc-map-embed)
   ========================================================================== */

.wkc-map-embed {
	border-radius: var(--border-radius);
	overflow: hidden;
	line-height: 0;
}

.wkc-map-embed iframe {
	display: block;
	width: 100%;
	min-height: 300px;
}

/* ==========================================================================
   口コミ投稿CTA (.wkc-review-cta / .wkc-review-cta-block)
   ========================================================================== */

.wkc-review-cta {
	background-color: #F0F6FF;
	border-color: var(--color-primary);
}

.wkc-review-cta-block {
	background: linear-gradient(135deg, #004499 0%, var(--color-primary) 100%);
	border-radius: var(--border-radius-lg);
	padding: var(--space-2xl);
	margin-top: var(--space-xl);
	text-align: center;
	color: var(--color-white);
}

.wkc-review-cta-block__title {
	font-size: var(--font-size-xl);
	font-weight: 700;
	color: var(--color-white);
	margin-bottom: var(--space-md);
}

.wkc-review-cta-block__body {
	font-size: var(--font-size-base);
	color: rgba(255, 255, 255, 0.85);
	margin-bottom: var(--space-lg);
}

/* ==========================================================================
   no-results
   ========================================================================== */

.wkc-no-results {
	padding: var(--space-2xl) var(--space-xl);
	text-align: center;
	background-color: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
}

.wkc-no-results p {
	font-size: var(--font-size-lg);
	color: var(--color-text-muted);
	margin-bottom: var(--space-lg);
}

.wkc-no-reviews {
	padding: var(--space-xl);
	text-align: center;
	color: var(--color-text-muted);
	background-color: var(--color-bg);
	border-radius: var(--border-radius);
}

/* ==========================================================================
   口コミ一覧 (.wkc-review-list)
   ========================================================================== */

.wkc-review-list {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}

/* ==========================================================================
   業者アーカイブセクション
   ========================================================================== */

.wkc-contractor-archive-section {
	margin-bottom: var(--space-2xl);
}

.wkc-recent-reviews {
	margin-bottom: var(--space-2xl);
}

/* ==========================================================================
   絞り込み検索フォーム (.wkc-search-form)  Batch 07
   ========================================================================== */

.wkc-search-form {
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	padding: var(--space-xl);
	margin-bottom: var(--space-xl);
}

.wkc-search-form__row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-md);
	margin-bottom: var(--space-md);
}

.wkc-search-form__group {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
	flex: 1 1 180px;
}

.wkc-search-form__label {
	font-size: var(--font-size-sm);
	font-weight: 600;
	color: var(--color-text-light);
}

.wkc-search-form__select {
	width: 100%;
	padding: var(--space-sm) var(--space-md);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	font-size: var(--font-size-base);
	font-family: inherit;
	background-color: var(--color-white);
	color: var(--color-text);
	transition: border-color var(--transition-fast);
}

.wkc-search-form__select:focus {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.15);
}

.wkc-search-form__row--options {
	align-items: flex-end;
}

.wkc-search-form__checkboxes {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-md);
	align-items: center;
	padding-bottom: var(--space-xs);
}

.wkc-search-form__checkbox-label {
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	font-size: var(--font-size-sm);
	cursor: pointer;
}

.wkc-search-form__group--orderby {
	flex: 1 1 200px;
}

.wkc-search-form__submit {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	align-items: center;
	padding-top: var(--space-sm);
	border-top: 1px solid var(--color-border);
}

@media (max-width: 767px) {
	.wkc-search-form__group {
		flex: 1 1 100%;
	}
}

/* ==========================================================================
   トップランキング (.wkc-top-ranking)  Batch 07
   ========================================================================== */

.wkc-top-ranking__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}

.wkc-top-ranking__item {
	display: flex;
	align-items: stretch;
	gap: var(--space-md);
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	overflow: hidden;
	transition: box-shadow var(--transition-base);
}

.wkc-top-ranking__item:hover {
	box-shadow: var(--shadow-md);
}

/* 1〜3 位は金銀銅色のアクセント */
.wkc-top-ranking__item[data-rank="1"] {
	border-left: 6px solid #FFD700;
}
.wkc-top-ranking__item[data-rank="2"] {
	border-left: 6px solid #C0C0C0;
}
.wkc-top-ranking__item[data-rank="3"] {
	border-left: 6px solid #CD7F32;
}

.wkc-top-ranking__rank {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 56px;
	padding: var(--space-md);
	background-color: var(--color-bg);
}

.wkc-top-ranking__rank-num {
	font-size: var(--font-size-2xl);
	font-weight: 700;
	color: var(--color-primary);
	line-height: 1;
}

.wkc-top-ranking__rank-label {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
}

.wkc-top-ranking__item[data-rank="1"] .wkc-top-ranking__rank-num { color: #B8860B; }
.wkc-top-ranking__item[data-rank="2"] .wkc-top-ranking__rank-num { color: #808080; }
.wkc-top-ranking__item[data-rank="3"] .wkc-top-ranking__rank-num { color: #8B4513; }

.wkc-top-ranking__card {
	flex: 1;
}

/* カード内のボーダー/背景は親から継承するため上書き */
.wkc-top-ranking__card .wkc-card {
	border: none;
	box-shadow: none;
	border-radius: 0;
}

.wkc-top-ranking__card .wkc-card:hover {
	transform: none;
}

/* ==========================================================================
   Batch 12: パフォーマンス・アクセシビリティ・モバイル追加スタイル
   ========================================================================== */

/* will-change: ホバーアニメーションのある要素のみに限定 */
.wkc-card:hover {
	will-change: transform, box-shadow;
}

/* アスペクト比による CLS 対策 */
.wkc-card__thumbnail,
.post-thumbnail {
	aspect-ratio: 3 / 2;
	overflow: hidden;
}

.wkc-card__thumbnail img,
.post-thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* アクセントボタン: #F59E0B × 暗色テキストで WCAG AA 4.5:1 確保済み */

/* タッチターゲット最小 48×48px（モバイル）
   ボタン・ナビリンク・フォームコントロールに適用 */
.wkc-btn,
.menu-toggle,
.primary-nav a,
.nav-links .page-numbers,
.wkc-filter-list__link,
.wkc-municipality-list__link {
	min-height: 48px;
	min-width: 48px;
}

/* ページネーションの最小タッチターゲット補正 */
.nav-links .page-numbers {
	min-height: 48px;
	min-width: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* ハンバーガーメニュー z-index: モーダル(9999)より下、ヘッダー(1000)より上 */
.menu-toggle {
	z-index: 1001;
	position: relative;
}

#mobile-nav {
	z-index: 999;
}

/* 業者カードグリッド: モバイル1列、タブレット2列、デスクトップ3列 */
.wkc-contractor-grid {
	grid-template-columns: 1fr;
}

@media (min-width: 600px) {
	.wkc-contractor-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1200px) {
	.wkc-contractor-grid--full {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* 口コミカード評価バー: モバイルで縦スタック表示 */
@media (max-width: 767px) {
	.wkc-rating-bar {
		grid-template-columns: 1fr;
		grid-template-rows: auto auto auto;
	}

	.wkc-rating-bar__label {
		text-align: left;
	}

	.wkc-rating-bar__value {
		text-align: left;
	}
}

/* 評価スター aria-label 対応 — スクリーンリーダー向け */
.wkc-star-rating[aria-label] {
	speak: auto;
}

/* レスポンシブ埋め込み（add_theme_support('responsive-embeds')）*/
.wp-embed-responsive .wp-block-embed__wrapper::before {
	content: none;
}

/* ==========================================================================
   P1: 業者詳細ページ強化（タグ・指定工事店バッジ・情報信頼性）
   ========================================================================== */

/* タグリスト */
.wkc-tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
}

.wkc-tag {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	background-color: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: 100px;
	font-size: var(--font-size-sm);
	color: var(--color-text);
	line-height: 1.4;
	white-space: nowrap;
}

.wkc-tag--link {
	text-decoration: none;
	transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.wkc-tag--link:hover {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

/* 水道局指定工事店バッジ */
.wkc-badge--designated {
	background-color: #1A6B1A;
	color: var(--color-white);
}

/* 掲載情報についてセクション */
.wkc-info-reliability {
	background-color: #FAFAFA;
}

.wkc-info-reliability .wkc-section-title {
	color: var(--color-text-light);
	font-size: var(--font-size-lg);
	border-left-color: var(--color-text-muted);
}

.wkc-info-reliability__note {
	margin-top: var(--space-md);
	padding: var(--space-md);
	background-color: var(--color-bg);
	border-left: 3px solid var(--color-border);
	border-radius: 0 var(--border-radius) var(--border-radius) 0;
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	line-height: var(--line-height-base);
}

/* ==========================================================================
   P2: 地域SEOハブ — taxonomy-municipality / taxonomy-prefecture
   ========================================================================== */

/* ヒーローセクション */
.wkc-local-hero {
	background: linear-gradient(135deg, #EBF5FB 0%, #D6EAF8 100%);
	border-radius: var(--border-radius-lg);
	padding: var(--space-xl) var(--space-lg);
	margin-bottom: var(--space-xl);
}

.wkc-local-hero__breadcrumb {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	margin-bottom: var(--space-sm);
}

.wkc-local-hero__breadcrumb a {
	color: var(--color-primary);
	text-decoration: none;
}

.wkc-local-hero__breadcrumb a:hover {
	text-decoration: underline;
}

.wkc-local-hero__title {
	font-size: clamp(1.5rem, 4vw, 2rem);
	font-weight: 700;
	color: var(--color-text);
	margin: 0 0 var(--space-sm);
}

.wkc-local-hero__desc {
	color: var(--color-text-light);
	margin-bottom: var(--space-md);
	line-height: var(--line-height-base);
}

.wkc-local-hero__stats {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
}

.wkc-hero-stat {
	display: flex;
	align-items: center;
	gap: 6px;
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	padding: 6px 14px;
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
}

.wkc-hero-stat__num {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--color-primary);
}

/* セクションリード文 */
.wkc-section-lead {
	color: var(--color-text-light);
	margin-bottom: var(--space-md);
	line-height: var(--line-height-base);
}

/* もっと見るリンク */
.wkc-section-more {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: var(--space-md);
	color: var(--color-primary);
	text-decoration: none;
	font-size: var(--font-size-sm);
	font-weight: 600;
}

.wkc-section-more:hover {
	text-decoration: underline;
}

/* 業者選定ガイドグリッド */
.wkc-guide-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--space-md);
	margin-top: var(--space-md);
}

.wkc-guide-card {
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius-lg);
	padding: var(--space-md);
}

.wkc-guide-card__icon {
	font-size: 1.8rem;
	margin-bottom: var(--space-xs);
}

.wkc-guide-card__title {
	font-size: var(--font-size-base);
	font-weight: 700;
	color: var(--color-text);
	margin-bottom: var(--space-xs);
}

.wkc-guide-card__body {
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
	line-height: var(--line-height-base);
}

/* 料金相場テーブル */
.wkc-price-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--font-size-sm);
	margin-top: var(--space-md);
}

.wkc-price-table th,
.wkc-price-table td {
	padding: 10px 14px;
	border: 1px solid var(--color-border);
	text-align: left;
	vertical-align: middle;
}

.wkc-price-table thead th {
	background-color: var(--color-bg);
	font-weight: 700;
	color: var(--color-text);
}

.wkc-price-table tbody tr:nth-child(even) {
	background-color: #FAFAFA;
}

.wkc-price-table td:last-child {
	color: var(--color-primary);
	font-weight: 600;
	white-space: nowrap;
}

/* 指定工事店確認 番号付きリスト */
.wkc-numbered-list {
	list-style: none;
	counter-reset: wkc-step;
	margin-top: var(--space-md);
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
}

.wkc-numbered-list__item {
	counter-increment: wkc-step;
	display: flex;
	gap: var(--space-sm);
	align-items: flex-start;
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	padding: var(--space-sm) var(--space-md);
}

.wkc-numbered-list__item::before {
	content: counter(wkc-step);
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	height: 28px;
	background-color: var(--color-primary);
	color: var(--color-white);
	border-radius: 50%;
	font-size: var(--font-size-sm);
	font-weight: 700;
	flex-shrink: 0;
}

/* 高額請求チェックリスト */
.wkc-checklist {
	list-style: none;
	margin-top: var(--space-md);
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
}

.wkc-checklist__item {
	display: flex;
	align-items: flex-start;
	gap: var(--space-sm);
	padding: var(--space-sm) var(--space-md);
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	font-size: var(--font-size-sm);
	line-height: var(--line-height-base);
}

.wkc-checklist__item::before {
	content: '✓';
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	background-color: #E8F5E9;
	color: #2E7D32;
	border-radius: 50%;
	font-size: 11px;
	font-weight: 700;
	flex-shrink: 0;
	margin-top: 1px;
}

/* 大きいタグ（対応トラブル種別） */
.wkc-tag-list--lg {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	margin-top: var(--space-md);
}

.wkc-tag--lg {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	font-size: var(--font-size-base);
	color: var(--color-text);
	text-decoration: none;
	transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

.wkc-tag--lg:hover {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

.wkc-tag__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	background-color: var(--color-bg);
	border-radius: 100px;
	font-size: 11px;
	font-weight: 700;
	color: var(--color-text-muted);
	padding: 0 5px;
}

.wkc-tag--lg:hover .wkc-tag__count {
	background-color: rgba(255,255,255,0.25);
	color: var(--color-white);
}

/* 近隣エリアリンク */
.wkc-neighborhood {
	margin-top: var(--space-md);
}

.wkc-neighborhood__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	margin-top: var(--space-sm);
}

.wkc-neighborhood__link {
	display: inline-flex;
	align-items: center;
	padding: 6px 14px;
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	font-size: var(--font-size-sm);
	color: var(--color-primary);
	text-decoration: none;
	transition: background-color var(--transition-fast), color var(--transition-fast);
}

.wkc-neighborhood__link:hover {
	background-color: var(--color-primary);
	color: var(--color-white);
	border-color: var(--color-primary);
}

/* 都道府県ページ — 市区町村タイルグリッド */
.wkc-muni-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: var(--space-sm);
	margin-top: var(--space-md);
}

.wkc-muni-tile {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px 14px;
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	text-decoration: none;
	color: var(--color-text);
	font-size: var(--font-size-sm);
	transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.wkc-muni-tile:hover {
	border-color: var(--color-primary);
	background-color: #EBF5FB;
	color: var(--color-primary);
}

.wkc-muni-tile__count {
	font-size: 11px;
	color: var(--color-text-muted);
	background-color: var(--color-bg);
	border-radius: 100px;
	padding: 2px 7px;
}

@media (max-width: 480px) {
	.wkc-local-hero {
		padding: var(--space-lg) var(--space-md);
	}

	.wkc-guide-grid {
		grid-template-columns: 1fr;
	}

	.wkc-price-table {
		font-size: 12px;
	}

	.wkc-price-table th,
	.wkc-price-table td {
		padding: 7px 10px;
	}

	.wkc-muni-grid {
		grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
	}
}

/* ==========================================================================
   P3: トラブル種別クラスター — taxonomy-trouble_type
   ========================================================================== */

/* 緊急度バッジ */
.wkc-urgency-badge {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	border-radius: 100px;
	font-size: var(--font-size-sm);
	font-weight: 700;
	line-height: 1.4;
}

.wkc-urgency-badge--high {
	background-color: #FDEDEC;
	color: #C0392B;
	border: 1px solid #F1948A;
}

.wkc-urgency-badge--medium {
	background-color: #FEF9E7;
	color: #B7770D;
	border: 1px solid #F9E79F;
}

.wkc-urgency-badge--low {
	background-color: #EBF5FB;
	color: #1A6B9A;
	border: 1px solid #AED6F1;
}

.wkc-urgency-badge--price {
	background-color: #E9F7EF;
	color: #1A6B1A;
	border: 1px solid #A9DFBF;
}

/* ヒーローバッジ行 */
.wkc-local-hero__badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	margin-bottom: var(--space-sm);
}

/* アクティブタグ（現在のトラブル種別） */
.wkc-tag--lg-active {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
	cursor: default;
}

.wkc-tag--lg-active .wkc-tag__count {
	background-color: rgba(255,255,255,0.25);
	color: var(--color-white);
}

/* 料金免責事項 */
.wkc-price-disclaimer {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	margin-top: var(--space-sm);
}

/* セクション背景バリアント（コンパクト） */
.wkc-section--compact {
	padding-top: var(--space-sm);
	padding-bottom: var(--space-sm);
}

/* テーブルレスポンシブ wrapper */
.wkc-table-responsive {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

@media (max-width: 480px) {
	.wkc-urgency-badge {
		font-size: 11px;
		padding: 3px 10px;
	}
}

/* ==========================================================================
   P4: トップページ / 業者一覧ページ / 口コミフォーム
   ========================================================================== */

/* トップページ ヒーロー */
.wkc-top-hero {
	background: linear-gradient(135deg, #EBF5FB 0%, #D6EAF8 50%, #FDFEFE 100%);
	padding: var(--space-xl) 0;
	text-align: center;
	margin-bottom: 0;
}

.wkc-top-hero__title {
	font-size: clamp(1.4rem, 4vw, 2rem);
	font-weight: 700;
	color: var(--color-text);
	margin: 0 0 var(--space-md);
	line-height: 1.4;
}

.wkc-top-hero__lead {
	max-width: 680px;
	margin: 0 auto var(--space-lg);
	font-size: var(--font-size-lg);
	color: var(--color-text-light);
	line-height: var(--line-height-loose);
}

.wkc-top-hero__stats {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-sm);
}

/* クイックナビグリッド */
.wkc-quicknav__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--space-md);
}

.wkc-quicknav__card {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
	padding: var(--space-md) var(--space-lg);
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius-lg);
	text-decoration: none;
	color: var(--color-text);
	transition: box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.wkc-quicknav__card:hover {
	box-shadow: 0 4px 16px rgba(0,0,0,0.10);
	border-color: var(--color-primary);
}

.wkc-quicknav__card--area   { border-top: 3px solid #2980B9; }
.wkc-quicknav__card--trouble { border-top: 3px solid #E67E22; }
.wkc-quicknav__card--price   { border-top: 3px solid #27AE60; }
.wkc-quicknav__card--check   { border-top: 3px solid #8E44AD; }
.wkc-quicknav__card--review  { border-top: 3px solid #E74C3C; }
.wkc-quicknav__card--policy  { border-top: 3px solid var(--color-text-muted); }

.wkc-quicknav__icon {
	font-size: 1.6rem;
}

.wkc-quicknav__label {
	font-size: var(--font-size-lg);
	font-weight: 700;
	color: var(--color-text);
}

.wkc-quicknav__sub {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
}

.wkc-quicknav__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: var(--space-xs);
}

.wkc-quicknav__tag {
	display: inline-flex;
	padding: 4px 10px;
	background-color: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: 100px;
	font-size: var(--font-size-sm);
	color: var(--color-text);
	text-decoration: none;
	transition: background-color var(--transition-fast), color var(--transition-fast);
}

.wkc-quicknav__tag:hover {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

.wkc-quicknav__tag--more {
	color: var(--color-primary);
	font-weight: 600;
}

/* アーカイブ ツールバー */
.wkc-archive-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-sm);
	margin-bottom: var(--space-md);
	padding-bottom: var(--space-sm);
	border-bottom: 1px solid var(--color-border);
	flex-wrap: wrap;
}

.wkc-archive-toolbar__count {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	margin: 0;
}

.wkc-sort-links {
	display: flex;
	gap: var(--space-xs);
	flex-wrap: wrap;
}

.wkc-sort-link {
	display: inline-flex;
	padding: 4px 12px;
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	font-size: var(--font-size-sm);
	text-decoration: none;
	color: var(--color-text-light);
	transition: border-color var(--transition-fast), color var(--transition-fast);
}

.wkc-sort-link:hover {
	border-color: var(--color-primary);
	color: var(--color-primary);
}

.wkc-sort-link--active {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

.wkc-sort-link--disabled {
	opacity: 0.45;
	cursor: not-allowed;
	pointer-events: none;
}

/* 比較軸フィルターバッジ */
.wkc-filter-badge-group {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.wkc-filter-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	font-size: var(--font-size-sm);
	color: var(--color-text);
	text-decoration: none;
	transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.wkc-filter-badge:hover {
	border-color: var(--color-primary);
	color: var(--color-primary);
}

.wkc-filter-badge--active {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

/* 掲載準備中バッジ・カード */
.wkc-badge--pending {
	background-color: #FEF9E7;
	color: #B7770D;
	border: 1px solid #F9E79F;
	border-radius: var(--border-radius);
	padding: 2px 8px;
	font-size: var(--font-size-sm);
	font-weight: 600;
}

.wkc-card--pending {
	opacity: 0.85;
}

.wkc-card__pending-note {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	margin: var(--space-xs) 0 0;
	font-style: italic;
}

/* CTA ボタングループ */
.wkc-cta-box__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	justify-content: center;
	margin-top: var(--space-md);
}

/* 口コミフォーム 開示事項 */
.wkc-review-disclosure {
	background-color: #EBF5FB;
	border: 1px solid #AED6F1;
	border-radius: var(--border-radius-lg);
	padding: var(--space-md) var(--space-lg);
	margin-bottom: var(--space-md);
}

.wkc-review-disclosure__list {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
}

.wkc-review-disclosure__item {
	display: flex;
	gap: var(--space-sm);
	align-items: flex-start;
	font-size: var(--font-size-sm);
	line-height: var(--line-height-base);
	color: var(--color-text-light);
}

.wkc-review-disclosure__icon {
	font-size: 1.1rem;
	flex-shrink: 0;
	margin-top: 1px;
}

@media (max-width: 480px) {
	.wkc-top-hero {
		padding: var(--space-lg) 0;
	}

	.wkc-top-hero__lead {
		font-size: var(--font-size-base);
	}

	.wkc-quicknav__grid {
		grid-template-columns: 1fr 1fr;
	}

	.wkc-archive-toolbar {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ==========================================================================
   P5: 収益化透明性・景品表示法対応
   ========================================================================== */

/* ヒーローのPRバナー強化 */
.wkc-contractor-hero__pr-banner {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	padding: 8px var(--space-md);
	background-color: #FEF9E7;
	border-bottom: 1px solid #F9E79F;
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
}

.wkc-pr-banner__note {
	flex: 1;
}

.wkc-pr-banner__link {
	color: var(--color-primary);
	text-decoration: underline;
	margin-left: var(--space-xs);
}

/* PR開示ブロック強化 */
.wkc-pr-block {
	border: 2px solid #F9E79F;
	border-radius: var(--border-radius-lg);
	background-color: #FFFDE7;
	margin-bottom: var(--space-lg);
	overflow: hidden;
}

.wkc-pr-block__disclosure {
	display: flex;
	gap: var(--space-sm);
	align-items: flex-start;
	padding: var(--space-md) var(--space-lg);
	background-color: #FEF9E7;
	border-bottom: 1px solid #F9E79F;
}

.wkc-pr-block__disclosure-text {
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
	line-height: var(--line-height-base);
	margin: 0;
}

.wkc-pr-block__disclosure-text a {
	color: var(--color-primary);
}

.wkc-pr-block__body {
	padding: var(--space-md) var(--space-lg);
}

/* フッター透明性ノート */
.footer-transparency {
	background-color: #F5F5F5;
	border-top: 1px solid var(--color-border);
	padding: var(--space-sm) 0;
}

.footer-transparency__text {
	font-size: 11px;
	color: var(--color-text-muted);
	line-height: 1.6;
	margin: 0;
	text-align: center;
}

.footer-transparency__link {
	color: var(--color-primary);
	text-decoration: underline;
	margin: 0 var(--space-xs);
}

/* フッターポリシーリンク */
.footer-policy-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs) var(--space-md);
	justify-content: center;
	margin-bottom: var(--space-sm);
}

.footer-policy-links a {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	text-decoration: none;
}

.footer-policy-links a:hover {
	color: var(--color-primary);
	text-decoration: underline;
}

/* 広告掲載ポリシーページ用テーブル */
.wkc-policy-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--font-size-sm);
	margin: var(--space-md) 0;
}

.wkc-policy-table th,
.wkc-policy-table td {
	padding: 10px 14px;
	border: 1px solid var(--color-border);
	text-align: left;
	vertical-align: top;
}

.wkc-policy-table thead th {
	background-color: var(--color-bg);
	font-weight: 700;
}

.wkc-policy-table tbody tr:nth-child(even) {
	background-color: #FAFAFA;
}

/* 重要ポイントハイライトボックス */
.wkc-policy-highlight {
	background-color: #EBF5FB;
	border: 1px solid #AED6F1;
	border-left: 4px solid var(--color-primary);
	border-radius: 0 var(--border-radius) var(--border-radius) 0;
	padding: var(--space-md) var(--space-lg);
	margin: var(--space-md) 0;
	font-size: var(--font-size-sm);
	line-height: var(--line-height-base);
}

.wkc-policy-highlight strong {
	display: block;
	margin-bottom: var(--space-xs);
	color: var(--color-primary);
	font-size: var(--font-size-base);
}

@media (max-width: 480px) {
	.wkc-contractor-hero__pr-banner {
		flex-wrap: wrap;
	}

	.footer-policy-links {
		flex-direction: column;
		align-items: center;
		gap: var(--space-xs);
	}

	.footer-transparency__text {
		text-align: left;
	}
}

/* ==========================================================================
   P11 カルテ感デザイン v2.0
   ブランド刷新: 青緑・濃紺・アンバー限定 / 診断票スタイルカード
   ========================================================================== */

/* ── カラーユーティリティ ───────────────────────────────────── */
.wkc-text-primary { color: var(--color-primary); }
.wkc-text-trust   { color: var(--color-secondary); }
.wkc-text-muted   { color: var(--color-text-muted); }
.wkc-bg-subtle    { background: var(--color-bg); }

/* ── 業者カード：診断票スタイル ────────────────────────────── */

/* 左タブストライプ（カルテ感の核） */
.wkc-card--contractor {
	border-left: 5px solid var(--color-karute-tab);
	border-radius: 0 var(--border-radius) var(--border-radius) 0;
}

/* 指定工事店：濃紺タブ */
.wkc-card--contractor.wkc-card--designated-card {
	border-left-color: var(--color-trust-badge);
}

/* PR業者：アンバータブ */
.wkc-card--contractor.wkc-card--pr {
	border-left-color: var(--color-pr-badge);
}

/* 口コミ0件（準備中）：グレータブ・半透明 */
.wkc-card--contractor.wkc-card--pending {
	border-left-color: var(--color-pending-tab);
	background: #FAFBFC;
}

/* ── カルテスコアブロック ───────────────────────────────────── */

.wkc-karute-score {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	padding: var(--space-sm) var(--space-md);
	margin: var(--space-sm) 0;
}

.wkc-karute-score__num {
	font-size: var(--font-size-xl);
	font-weight: 700;
	color: var(--color-primary);
	line-height: 1;
	min-width: 2.2ch;
}

.wkc-karute-score__stars {
	flex: 1;
	color: var(--color-warning);
	font-size: var(--font-size-sm);
}

.wkc-karute-score__count {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	white-space: nowrap;
}

/* 口コミ0件スコアブロック */
.wkc-karute-score--empty {
	background: #F0F4F7;
	border-style: dashed;
	justify-content: center;
	flex-direction: column;
	text-align: center;
	gap: 2px;
	padding: var(--space-md);
}

.wkc-karute-score__empty-label {
	font-size: var(--font-size-sm);
	font-weight: 700;
	color: var(--color-primary);
	letter-spacing: 0.04em;
}

.wkc-karute-score__empty-sub {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	line-height: 1.5;
}

/* ── バッジシステム刷新 ─────────────────────────────────────── */

/* 指定工事店バッジ：濃紺 */
.wkc-badge--designated {
	background-color: var(--color-trust-badge);
	color: var(--color-white);
	border: none;
}

/* PRバッジ：アンバー（注意喚起色） */
.wkc-badge--pr {
	background-color: var(--color-pr-badge);
	color: var(--color-white);
	border: none;
}

/* 準備中バッジ：グレー */
.wkc-badge--pending {
	background-color: #E8EFF3;
	color: var(--color-text-muted);
	border: 1px solid var(--color-border);
}

/* 緊急対応バッジ：アンバー */
.wkc-badge--emergency {
	background-color: var(--color-warning);
	color: var(--color-white);
	border: none;
}

/* 無料見積もりバッジ：青緑系 */
.wkc-badge--estimate {
	background-color: #E3F2F8;
	color: var(--color-primary-dark);
	border: 1px solid #B3D4E0;
}

/* ── ボタン刷新 ─────────────────────────────────────────────── */

.wkc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-xs);
	padding: var(--space-sm) var(--space-lg);
	border-radius: var(--border-radius);
	font-size: var(--font-size-sm);
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	border: 2px solid transparent;
	transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
	line-height: var(--line-height-tight);
}

.wkc-btn--primary {
	background: var(--color-primary);
	color: var(--color-white);
	border-color: var(--color-primary);
}
.wkc-btn--primary:hover {
	background: var(--color-primary-dark);
	border-color: var(--color-primary-dark);
	color: var(--color-white);
}

.wkc-btn--secondary {
	background: var(--color-secondary);
	color: var(--color-white);
	border-color: var(--color-secondary);
}
.wkc-btn--secondary:hover {
	background: var(--color-primary-dark);
	border-color: var(--color-primary-dark);
	color: var(--color-white);
}

.wkc-btn--outline {
	background: transparent;
	color: var(--color-primary);
	border-color: var(--color-primary);
}
.wkc-btn--outline:hover {
	background: var(--color-primary);
	color: var(--color-white);
}

.wkc-btn--sm {
	padding: var(--space-xs) var(--space-md);
	font-size: var(--font-size-xs);
}

.wkc-btn--warning {
	background: var(--color-warning);
	color: var(--color-white);
	border-color: var(--color-warning);
}
.wkc-btn--warning:hover {
	background: #C87A18;
	border-color: #C87A18;
	color: var(--color-white);
}

/* ── ヒーロー・ページヘッダー刷新 ─────────────────────────────── */

/* トップページヒーロー（上書き）*/
.wkc-top-hero {
	background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
	color: var(--color-white);
	padding: var(--space-2xl) 0;
	text-align: center;
}

/* 地域・トラブルヒーロー */
.wkc-local-hero {
	background: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary) 100%);
	color: var(--color-white);
}

/* ── セクション区切り ─────────────────────────────────────────── */

/* カルテ感：セクションヘッダーに左ボーダーアクセント */
.wkc-section-heading {
	border-left: 4px solid var(--color-primary);
	padding-left: var(--space-md);
	font-size: var(--font-size-lg);
	font-weight: 700;
	color: var(--color-secondary);
	margin-bottom: var(--space-md);
}

/* 信頼・安心セクションのハイライト */
.wkc-trust-highlight {
	background: linear-gradient(90deg, #EAF4F8 0%, var(--color-white) 100%);
	border-left: 4px solid var(--color-trust-badge);
	padding: var(--space-md) var(--space-lg);
	border-radius: 0 var(--border-radius) var(--border-radius) 0;
	margin: var(--space-md) 0;
}

/* ── ナビ・フィルター刷新 ─────────────────────────────────────── */

.wkc-sort-link {
	color: var(--color-primary);
	text-decoration: underline;
	font-size: var(--font-size-sm);
}
.wkc-sort-link:hover { color: var(--color-primary-dark); }

.wkc-sort-link--active {
	font-weight: 700;
	color: var(--color-secondary);
	text-decoration: none;
}

.wkc-sort-link--disabled {
	color: var(--color-text-muted);
	text-decoration: none;
	cursor: default;
}

/* フィルターバッジ */
.wkc-filter-badge {
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	padding: var(--space-xs) var(--space-md);
	border: 1px solid var(--color-border);
	border-radius: 999px;
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
	text-decoration: none;
	transition: all var(--transition-fast);
	background: var(--color-white);
}
.wkc-filter-badge:hover {
	border-color: var(--color-primary);
	color: var(--color-primary);
}
.wkc-filter-badge--active {
	border-color: var(--color-primary);
	background: var(--color-primary);
	color: var(--color-white);
}

/* ── フッター刷新 ──────────────────────────────────────────────── */

#site-footer {
	background: var(--color-secondary);
	color: rgba(255,255,255,0.85);
}

.footer-bottom {
	background: var(--color-primary-dark);
}

.footer-transparency {
	background: rgba(255,255,255,0.08);
	border-top: 1px solid rgba(255,255,255,0.15);
}

/* ── 空状態（0件）の汎用スタイル ─────────────────────────────── */

.wkc-empty-state {
	text-align: center;
	padding: var(--space-2xl) var(--space-lg);
	color: var(--color-text-muted);
}

.wkc-empty-state__icon {
	font-size: 2.5rem;
	margin-bottom: var(--space-sm);
	opacity: 0.5;
}

.wkc-empty-state__title {
	font-size: var(--font-size-lg);
	font-weight: 700;
	color: var(--color-text-light);
	margin-bottom: var(--space-sm);
}

.wkc-empty-state__body {
	font-size: var(--font-size-sm);
	margin-bottom: var(--space-lg);
}

/* ── レスポンシブ (P11) ─────────────────────────────────────── */
@media (max-width: 480px) {
	.wkc-karute-score {
		flex-wrap: wrap;
	}
	.wkc-karute-score__num {
		font-size: var(--font-size-lg);
	}
	.wkc-trust-highlight {
		padding: var(--space-sm) var(--space-md);
	}
}

/* ==========================================================================
   P12 トップページ ファーストビュー v2.0
   ========================================================================== */

/* ── ヒーロー：ヘッディング ─────────────────────────────────── */

.wkc-top-hero__heading {
	max-width: 780px;
	margin: 0 auto var(--space-xl);
	text-align: center;
}

.wkc-top-hero__title {
	font-size: clamp(1.5rem, 4vw, 2.2rem);
	font-weight: 900;
	line-height: 1.3;
	color: var(--color-white);
	margin-bottom: var(--space-md);
	letter-spacing: -0.01em;
}

.wkc-top-hero__lead {
	font-size: var(--font-size-lg);
	color: rgba(255,255,255,0.9);
	line-height: 1.7;
}

.wkc-top-hero__lead strong {
	color: var(--color-white);
	border-bottom: 2px solid var(--color-warning);
	padding-bottom: 1px;
}

/* ── ヒーロー：メインCTA ────────────────────────────────────── */

.wkc-top-hero__cta {
	display: flex;
	justify-content: center;
	gap: var(--space-md);
	flex-wrap: wrap;
	margin-bottom: var(--space-lg);
}

.wkc-btn--hero {
	padding: 14px 32px;
	font-size: var(--font-size-lg);
	font-weight: 700;
	border-radius: var(--border-radius-lg);
	border: 2px solid transparent;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: var(--space-sm);
	transition: transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}

.wkc-btn--hero:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}

.wkc-btn--hero-primary {
	background: var(--color-white);
	color: var(--color-primary-dark);
}

.wkc-btn--hero-primary:hover {
	background: #E8F4F8;
	color: var(--color-primary-dark);
}

.wkc-btn--hero-outline {
	background: rgba(255,255,255,0.15);
	color: var(--color-white);
	border-color: rgba(255,255,255,0.7);
}

.wkc-btn--hero-outline:hover {
	background: rgba(255,255,255,0.25);
	color: var(--color-white);
}

/* ── ヒーロー：サブ導線ピル ─────────────────────────────────── */

.wkc-top-hero__subnav {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-sm);
	justify-content: center;
	margin-bottom: var(--space-xl);
}

.wkc-top-hero__subnav-label {
	font-size: var(--font-size-xs);
	color: rgba(255,255,255,0.65);
	white-space: nowrap;
}

.wkc-subnav-pill {
	display: inline-block;
	padding: 4px 14px;
	border: 1px solid rgba(255,255,255,0.45);
	border-radius: 999px;
	font-size: var(--font-size-xs);
	color: rgba(255,255,255,0.9);
	text-decoration: none;
	background: rgba(255,255,255,0.1);
	transition: background var(--transition-fast), color var(--transition-fast);
}

.wkc-subnav-pill:hover {
	background: rgba(255,255,255,0.25);
	color: var(--color-white);
}

/* ── ヒーロー：3つの安心バッジ ─────────────────────────────── */

.wkc-trust-badges {
	display: flex;
	justify-content: center;
	gap: var(--space-md);
	flex-wrap: wrap;
	margin-bottom: var(--space-xl);
}

.wkc-trust-badge {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	background: rgba(255,255,255,0.14);
	border: 1px solid rgba(255,255,255,0.3);
	border-radius: var(--border-radius);
	padding: var(--space-sm) var(--space-md);
	backdrop-filter: blur(4px);
}

.wkc-trust-badge__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	background: var(--color-success);
	color: var(--color-white);
	border-radius: 50%;
	font-size: 12px;
	font-weight: 700;
	flex-shrink: 0;
}

.wkc-trust-badge__text {
	font-size: var(--font-size-sm);
	color: var(--color-white);
	font-weight: 500;
	line-height: 1.3;
}

/* ── ヒーロー：実績カウント ─────────────────────────────────── */

.wkc-top-hero__stats {
	display: flex;
	justify-content: center;
	gap: var(--space-2xl);
	border-top: 1px solid rgba(255,255,255,0.2);
	padding-top: var(--space-lg);
}

.wkc-hero-stat {
	text-align: center;
}

.wkc-hero-stat__num {
	display: block;
	font-size: var(--font-size-2xl);
	font-weight: 900;
	color: var(--color-white);
	line-height: 1;
	margin-bottom: 4px;
}

.wkc-hero-stat__label {
	display: block;
	font-size: var(--font-size-xs);
	color: rgba(255,255,255,0.7);
}

/* ── サイト説明グリッド（Section 4） ────────────────────────── */

.wkc-section--trust {
	background: linear-gradient(180deg, var(--color-bg) 0%, var(--color-white) 100%);
}

.wkc-trust-about-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-lg);
}

@media (min-width: 768px) {
	.wkc-trust-about-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.wkc-trust-about-card {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-top: 3px solid var(--color-primary);
	border-radius: 0 0 var(--border-radius) var(--border-radius);
	padding: var(--space-lg) var(--space-md);
	text-align: center;
}

.wkc-trust-about-card__icon {
	font-size: 2rem;
	margin-bottom: var(--space-sm);
}

.wkc-trust-about-card__title {
	font-size: var(--font-size-base);
	font-weight: 700;
	color: var(--color-secondary);
	margin-bottom: var(--space-sm);
}

.wkc-trust-about-card p {
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
	line-height: 1.7;
}

/* ── レスポンシブ (P12) ─────────────────────────────────────── */
@media (max-width: 600px) {
	.wkc-top-hero__title {
		font-size: 1.4rem;
	}
	.wkc-btn--hero {
		width: 100%;
		justify-content: center;
		font-size: var(--font-size-base);
		padding: 12px 24px;
	}
	.wkc-trust-badges {
		flex-direction: column;
		align-items: stretch;
	}
	.wkc-trust-badge {
		justify-content: flex-start;
	}
	.wkc-top-hero__stats {
		gap: var(--space-lg);
	}
	.wkc-hero-stat__num {
		font-size: var(--font-size-xl);
	}
	.wkc-trust-about-grid {
		grid-template-columns: 1fr 1fr;
	}
}

/* ==========================================================================
   P13 ランキング表示条件 v2.0
   0件=情報確認中 / 1-2件=順位なし / 3件+=ランク付き / 確認済みバッジ
   ========================================================================== */

/* ── 順位バッジ ─────────────────────────────────────────────── */

.wkc-card--ranked {
	position: relative;
}

.wkc-rank-badge {
	position: absolute;
	top: 0;
	left: 0;
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 700;
	color: var(--color-white);
	background: var(--color-secondary);
	border-radius: 0 0 var(--border-radius) 0;
	z-index: 1;
	line-height: 1;
}

/* 1〜3位は特別色 */
.wkc-rank-badge--1 { background: #8B6914; } /* ゴールド */
.wkc-rank-badge--2 { background: #607080; } /* シルバー */
.wkc-rank-badge--3 { background: #7A4D2F; } /* ブロンズ */

/* ── 確認済みバッジ ─────────────────────────────────────────── */

.wkc-badge--verified {
	background: #D4EFDF;
	color: #1A5E3C;
	border: 1px solid #A9DFBF;
	font-weight: 700;
}

/* 評価集計中バッジ */
.wkc-badge--low-review {
	background: #EAF0F5;
	color: var(--color-text-muted);
	border: 1px solid var(--color-border);
	font-size: var(--font-size-xs);
}

/* 情報確認中バッジ */
.wkc-badge--unconfirmed {
	background: #F0F4F7;
	color: var(--color-text-muted);
	border: 1px dashed var(--color-border);
}

/* ── 情報確認中カード専用スタイル ───────────────────────────── */

.wkc-card--unranked {
	opacity: 0.82;
	border-left-color: var(--color-pending-tab);
}

.wkc-card__unconfirmed-note {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	margin-top: var(--space-xs);
}

/* ── セクションラベル（グループ区切り） ──────────────────────── */

.wkc-contractor-section-label {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	margin: var(--space-xl) 0 var(--space-md);
	border-bottom: 2px solid var(--color-primary);
	padding-bottom: var(--space-sm);
}

.wkc-contractor-section-label--secondary {
	border-bottom-color: var(--color-border);
}

.wkc-contractor-section-label--pending {
	border-bottom-color: var(--color-pending-tab);
	margin-top: var(--space-2xl);
}

.wkc-section-label__text {
	font-size: var(--font-size-base);
	font-weight: 700;
	color: var(--color-secondary);
}

.wkc-contractor-section-label--secondary .wkc-section-label__text {
	color: var(--color-text-light);
}

.wkc-contractor-section-label--pending .wkc-section-label__text {
	color: var(--color-text-muted);
}

.wkc-section-label__rule {
	font-size: var(--font-size-xs);
	font-weight: 400;
	color: var(--color-text-muted);
}

/* ==========================================================================
   P14 業者カード情報密度強化 v3.0
   実請求額・対応トラブル・エリア・基本料金・3導線フッター
   ========================================================================== */

/* ── 実請求額ハイライトボックス ─────────────────────────────── */

.wkc-card__avg-charge {
	display: flex;
	align-items: baseline;
	gap: var(--space-xs);
	background: #EAF4F8;
	border: 1px solid #B3D4E0;
	border-radius: var(--border-radius);
	padding: var(--space-xs) var(--space-md);
	margin: var(--space-sm) 0;
}

.wkc-card__avg-charge__label {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	white-space: nowrap;
}

.wkc-card__avg-charge__value {
	font-size: var(--font-size-lg);
	font-weight: 700;
	color: var(--color-primary-dark);
	line-height: 1;
}

.wkc-card__avg-charge__note {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
}

/* ── 情報行（対応・エリア・料金）────────────────────────────── */

.wkc-card__info-rows {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: var(--space-sm) 0;
}

.wkc-card__info-row {
	display: flex;
	align-items: flex-start;
	gap: var(--space-xs);
	font-size: var(--font-size-xs);
	line-height: 1.5;
}

.wkc-card__info-label {
	flex-shrink: 0;
	min-width: 48px;
	color: var(--color-text-muted);
	font-weight: 600;
	background: #F0F4F7;
	border-radius: 3px;
	padding: 1px 6px;
	text-align: center;
}

.wkc-card__info-value {
	color: var(--color-text-light);
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.wkc-card__info-more {
	color: var(--color-text-muted);
}

/* ── 特徴ピル ──────────────────────────────────────────────── */

.wkc-card__features {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	margin-top: var(--space-sm);
}

.wkc-feature-pill {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	padding: 2px 10px;
	border-radius: 999px;
	font-size: var(--font-size-xs);
	font-weight: 500;
	background: #EAF0F5;
	color: var(--color-text-light);
	border: 1px solid var(--color-border);
	white-space: nowrap;
}

.wkc-feature-pill--emergency {
	background: #FEF3E2;
	color: #8B5500;
	border-color: #F5C985;
}

/* ── 3導線フッター ──────────────────────────────────────────── */

.wkc-card__footer--3col {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: var(--space-xs);
	padding: var(--space-sm) var(--space-md);
	border-top: 1px solid var(--color-border);
	background: #FAFBFC;
}

.wkc-card__footer--3col .wkc-btn--sm {
	text-align: center;
	justify-content: center;
	padding: var(--space-xs) var(--space-xs);
	font-size: 11px;
}

.wkc-card__footer--2col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-xs);
	padding: var(--space-sm) var(--space-md);
	border-top: 1px solid var(--color-border);
	background: #FAFBFC;
}

/* ── レスポンシブ (P14) ─────────────────────────────────────── */
@media (max-width: 480px) {
	.wkc-card__footer--3col {
		grid-template-columns: 1fr 1fr;
	}
	.wkc-card__footer--3col .wkc-btn:last-child {
		grid-column: 1 / -1;
	}
	.wkc-card__info-value {
		white-space: normal;
	}
}

/* ==========================================================================
   P15: 3ステップ検索ウィザード + トラブルアイコン導線
   ========================================================================== */

/* ── ウィザードコンテナ ──────────────────────────────────────── */
.wkc-search-wizard {
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--border-radius, 8px);
	margin-bottom: 1.5rem;
	overflow: hidden;
}

/* ── 各ステップ (<details>) ─────────────────────────────────── */
.wkc-search-step {
	border-bottom: 1px solid var(--color-border, #E2E8F0);
}
.wkc-search-step:last-of-type {
	border-bottom: none;
}

/* ── ステップヘッダー (<summary>) ───────────────────────────── */
.wkc-search-step__summary {
	list-style: none;
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: .875rem 1.25rem;
	cursor: pointer;
	user-select: none;
	background: #f6f9fb;
}
.wkc-search-step__summary::-webkit-details-marker { display: none; }

.wkc-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	background: var(--color-primary, #0E7490);
	color: #fff;
	font-size: .78rem;
	font-weight: 700;
	flex-shrink: 0;
}

.wkc-step-label {
	font-weight: 600;
	font-size: .95rem;
	color: var(--color-secondary, #164E63);
	flex: 1;
}

.wkc-step-active {
	font-size: .75rem;
	background: var(--color-primary, #0E7490);
	color: #fff;
	padding: .2rem .65rem;
	border-radius: 12px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 130px;
}

.wkc-step-arrow {
	font-size: .65rem;
	color: #aaa;
	flex-shrink: 0;
	transition: transform .2s;
}
details[open] > .wkc-search-step__summary .wkc-step-arrow {
	transform: rotate(180deg);
}

/* ── ステップボディ ──────────────────────────────────────────── */
.wkc-search-step__body {
	padding: 1rem 1.25rem;
}

/* ── エリアピル ─────────────────────────────────────────────── */
.wkc-area-pills {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	margin-bottom: .75rem;
}
.wkc-area-pills:last-child { margin-bottom: 0; }
.wkc-area-pills--muni { padding-top: .5rem; border-top: 1px dashed var(--color-border, #E2E8F0); }

.wkc-area-pill {
	display: inline-block;
	padding: .35rem .85rem;
	border: 1.5px solid var(--color-primary, #0E7490);
	border-radius: 20px;
	font-size: .85rem;
	color: var(--color-primary, #0E7490);
	text-decoration: none;
	transition: background .15s, color .15s;
	white-space: nowrap;
}
.wkc-area-pill:hover,
.wkc-area-pill--active {
	background: var(--color-primary, #0E7490);
	color: #fff;
	font-weight: 600;
}

.wkc-area-pill--sm {
	font-size: .8rem;
	padding: .25rem .65rem;
	border-color: #aac8d4;
	color: var(--color-secondary, #164E63);
}
.wkc-area-pill--sm:hover,
.wkc-area-pill--sm.wkc-area-pill--active {
	background: var(--color-primary, #0E7490);
	border-color: var(--color-primary, #0E7490);
	color: #fff;
}

/* ── トラブルアイコングリッド ────────────────────────────────── */
.wkc-trouble-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: .625rem;
}

.wkc-trouble-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .35rem;
	padding: .75rem .4rem .65rem;
	background: #f5f9fb;
	border: 2px solid transparent;
	border-radius: 8px;
	text-decoration: none;
	text-align: center;
	transition: border-color .15s, background .15s, transform .1s;
}
.wkc-trouble-tile:hover {
	border-color: var(--color-primary, #0E7490);
	background: #eef5f9;
	transform: translateY(-1px);
}
.wkc-trouble-tile--active {
	border-color: var(--color-primary, #0E7490);
	background: #ddeef6;
}

.wkc-trouble-tile__icon {
	font-size: 1.75rem;
	line-height: 1;
}

.wkc-trouble-tile__label {
	font-size: .7rem;
	color: var(--color-secondary, #164E63);
	font-weight: 500;
	line-height: 1.3;
	word-break: keep-all;
}

/* ── 条件バッジ ─────────────────────────────────────────────── */
.wkc-condition-badges {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.wkc-condition-badge {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .45rem 1rem;
	border: 1.5px solid #aac8d4;
	border-radius: 24px;
	font-size: .85rem;
	color: var(--color-secondary, #164E63);
	text-decoration: none;
	white-space: nowrap;
	transition: background .15s, border-color .15s, color .15s;
}
.wkc-condition-badge:hover {
	border-color: var(--color-primary, #0E7490);
	color: var(--color-primary, #0E7490);
}
.wkc-condition-badge--active {
	background: var(--color-primary, #0E7490);
	border-color: var(--color-primary, #0E7490);
	color: #fff;
	font-weight: 600;
}

/* ── ウィザードフッター（リセットリンク） ───────────────────── */
.wkc-search-wizard__footer {
	padding: .625rem 1.25rem;
	background: #f6f9fb;
	border-top: 1px solid var(--color-border, #E2E8F0);
	text-align: right;
}
.wkc-search-reset {
	font-size: .8rem;
	color: #999;
	text-decoration: none;
}
.wkc-search-reset:hover {
	color: var(--color-primary, #0E7490);
	text-decoration: underline;
}

/* ── 空状態メッセージ ───────────────────────────────────────── */
.wkc-search-empty {
	font-size: .875rem;
	color: #999;
	padding: .25rem 0;
	margin: 0;
}

/* ── デスクトップ: 3列横並び・全ステップ常時展開 ────────────── */
@media (min-width: 768px) {
	.wkc-search-wizard {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		align-items: start;
	}
	.wkc-search-step {
		border-bottom: none;
		border-right: 1px solid var(--color-border, #E2E8F0);
		height: 100%;
	}
	.wkc-search-step:last-of-type {
		border-right: none;
	}
	.wkc-search-wizard__footer {
		grid-column: 1 / -1;
		border-top: 1px solid var(--color-border, #E2E8F0);
	}
	/* 折りたたみを常時展開状態に固定 */
	.wkc-search-step .wkc-search-step__body {
		display: block !important;
	}
	.wkc-step-arrow { display: none; }
	.wkc-search-step__summary { cursor: default; pointer-events: none; }
}

/* ── スマホ: アイコングリッドを4列維持 ─────────────────────── */
@media (max-width: 767px) {
	.wkc-trouble-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: .4rem;
	}
	.wkc-trouble-tile__icon { font-size: 1.5rem; }
	.wkc-trouble-tile__label { font-size: .65rem; }
	.wkc-trouble-tile { padding: .6rem .3rem .55rem; }
}

/* ==========================================================================
   P17: 信頼・ポリシーバッジ（4つの透明性ページへのリンク）
   ========================================================================== */

/* ── バッジ行コンテナ ────────────────────────────────────────── */
.wkc-policy-badge-row {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: .75rem;
	margin: 1.5rem 0 .5rem;
}

/* ── 各バッジ ────────────────────────────────────────────────── */
.wkc-policy-badge {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	padding: .75rem 1rem;
	background: #fff;
	border: 1.5px solid var(--color-border, #E2E8F0);
	border-radius: 8px;
	text-decoration: none;
	transition: border-color .15s, box-shadow .15s, transform .1s;
}

.wkc-policy-badge:hover {
	border-color: var(--color-primary, #0E7490);
	box-shadow: 0 2px 8px rgba(26,107,138,.12);
	transform: translateY(-1px);
}

.wkc-policy-badge__icon {
	font-size: 1.4rem;
	flex-shrink: 0;
	line-height: 1;
	margin-top: 1px;
}

.wkc-policy-badge__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.wkc-policy-badge__title {
	font-size: .82rem;
	font-weight: 700;
	color: var(--color-secondary, #164E63);
	line-height: 1.3;
}

.wkc-policy-badge__desc {
	font-size: .7rem;
	color: #888;
	line-height: 1.4;
}

/* ── フッター内バッジ帯 ──────────────────────────────────────── */
.footer-policy-badges {
	background: #f6f9fb;
	border-top: 1px solid var(--color-border, #E2E8F0);
	padding: 1.25rem 0;
}

.footer-policy-badges .wkc-policy-badge-row {
	margin: 0;
}

.footer-policy-badges .wkc-policy-badge {
	background: #fff;
	border-color: #E2E8F0;
}

/* ── フォーム内バッジ ────────────────────────────────────────── */
.wkc-review-form-section .wkc-policy-badge-row {
	margin-top: 1.25rem;
}

/* ── トップページ Section4 バッジ ───────────────────────────── */
.wkc-trust-policy-badges-wrap {
	margin-top: var(--space-lg, 2rem);
}

.wkc-trust-policy-badges-wrap .wkc-policy-badge {
	background: rgba(255,255,255,.85);
}

/* ── 業者詳細ページ バッジ ──────────────────────────────────── */
.wkc-contractor-trust-links {
	border-top: 1px dashed var(--color-border, #E2E8F0);
	padding-top: var(--space-md, 1rem);
}

/* ── レスポンシブ ────────────────────────────────────────────── */
@media (max-width: 767px) {
	.wkc-policy-badge-row {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 400px) {
	.wkc-policy-badge-row {
		grid-template-columns: 1fr;
	}
	.wkc-policy-badge__desc { display: none; }
}

/* ============================================================
   P18: 業者詳細カルテデザイン
   ============================================================ */

/* ── カルテドキュメント外枠 ─────────────────────────────────── */
.wkc-karute-doc {
	background: #fff;
	border: 2px solid var(--color-primary, #0E7490);
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 0;
}

.wkc-karute-doc__head {
	background: var(--color-secondary, #164E63);
	color: #fff;
	padding: 1.5rem 1.75rem 1.25rem;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: .75rem;
}

.wkc-karute-logo {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	background: rgba(255,255,255,.15);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
}

.wkc-karute-doc__head-body {
	flex: 1 1 0;
	min-width: 0;
}

.wkc-karute-label {
	display: inline-block;
	font-size: .65rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	background: var(--color-accent, #F59E0B);
	color: #fff;
	padding: .15em .6em;
	border-radius: 3px;
	margin-bottom: .4rem;
}

.wkc-karute-name {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.25;
	margin: 0 0 .5rem;
	color: #fff;
}

.wkc-karute-badges {
	display: flex;
	flex-wrap: wrap;
	gap: .375rem;
}

.wkc-karute-badge {
	font-size: .7rem;
	font-weight: 600;
	padding: .2em .65em;
	border-radius: 3px;
	background: rgba(255,255,255,.15);
	color: #e8f4f8;
	border: 1px solid rgba(255,255,255,.25);
}

.wkc-karute-badge--accent {
	background: var(--color-accent, #F59E0B);
	border-color: var(--color-accent, #F59E0B);
	color: #fff;
}

/* ── 4-stat グリッド ────────────────────────────────────────── */
.wkc-karute-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-left: 2px solid var(--color-primary, #0E7490);
	border-right: 2px solid var(--color-primary, #0E7490);
}

.wkc-karute-stat {
	padding: 1.125rem .875rem;
	text-align: center;
	border-right: 1px solid var(--color-border, #E2E8F0);
	background: #f8fbfd;
}

.wkc-karute-stat:last-child {
	border-right: none;
}

.wkc-karute-stat__label {
	font-size: .7rem;
	color: #777;
	margin-bottom: .35rem;
	display: block;
	line-height: 1.3;
}

.wkc-karute-stat__value {
	font-size: 1.6rem;
	font-weight: 800;
	color: var(--color-secondary, #164E63);
	line-height: 1;
	display: block;
}

.wkc-karute-stat__value--accent {
	color: var(--color-accent, #F59E0B);
}

.wkc-karute-stat__unit {
	font-size: .75rem;
	font-weight: 400;
	color: #888;
	margin-left: .15em;
}

.wkc-karute-stat__sub {
	font-size: .65rem;
	color: #aaa;
	display: block;
	margin-top: .25rem;
}

/* ── CTA行 ──────────────────────────────────────────────────── */
.wkc-karute-cta {
	display: flex;
	gap: .75rem;
	padding: 1rem 1.75rem;
	background: #fff;
	border: 2px solid var(--color-primary, #0E7490);
	border-top: none;
	border-radius: 0 0 6px 6px;
	flex-wrap: wrap;
	align-items: center;
}

.wkc-btn--karute-primary {
	display: inline-flex;
	align-items: center;
	gap: .375rem;
	padding: .625rem 1.25rem;
	background: var(--color-primary, #0E7490);
	color: #fff;
	border-radius: 5px;
	font-size: .875rem;
	font-weight: 600;
	text-decoration: none;
	transition: background .15s;
}

.wkc-btn--karute-primary:hover {
	background: var(--color-secondary, #164E63);
	color: #fff;
}

.wkc-btn--karute-secondary {
	display: inline-flex;
	align-items: center;
	gap: .375rem;
	padding: .625rem 1.25rem;
	background: #fff;
	color: var(--color-primary, #0E7490);
	border: 2px solid var(--color-primary, #0E7490);
	border-radius: 5px;
	font-size: .875rem;
	font-weight: 600;
	text-decoration: none;
	transition: background .15s, color .15s;
}

.wkc-btn--karute-secondary:hover {
	background: var(--color-primary, #0E7490);
	color: #fff;
}

.wkc-karute-phone {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: .375rem;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--color-secondary, #164E63);
	text-decoration: none;
}

.wkc-karute-phone:hover {
	color: var(--color-accent, #F59E0B);
}

/* ── カルテ区切り線 ─────────────────────────────────────────── */
.wkc-karute-divider {
	border: none;
	border-top: 2px dashed var(--color-border, #E2E8F0);
	margin: 1.75rem 0;
}

/* ── カルテセクション共通 ───────────────────────────────────── */
.wkc-karute-section {
	margin-bottom: 0;
}

.wkc-karute-section__title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--color-secondary, #164E63);
	border-left: 4px solid var(--color-primary, #0E7490);
	padding: .25rem 0 .25rem .75rem;
	margin: 0 0 1.25rem;
}

/* ── 基本情報テーブル ───────────────────────────────────────── */
.wkc-info-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .9rem;
}

.wkc-info-table th,
.wkc-info-table td {
	padding: .6rem .875rem;
	text-align: left;
	border-bottom: 1px solid var(--color-border, #E2E8F0);
	vertical-align: top;
}

.wkc-info-table th {
	width: 8rem;
	font-weight: 600;
	color: #666;
	background: #f8fbfd;
	white-space: nowrap;
}

.wkc-info-table td {
	color: var(--color-text, #333);
}

/* ── 評価内訳 ───────────────────────────────────────────────── */
.wkc-breakdown-list {
	display: flex;
	flex-direction: column;
	gap: .625rem;
}

.wkc-breakdown-row {
	display: grid;
	grid-template-columns: 7rem 1fr 3rem;
	align-items: center;
	gap: .75rem;
}

.wkc-breakdown-row__label {
	font-size: .85rem;
	color: #555;
	font-weight: 500;
}

.wkc-breakdown-row__stars {
	display: flex;
	gap: 1px;
	align-items: center;
}

.wkc-star-chr {
	font-size: 1.1rem;
	line-height: 1;
}

.wkc-star-chr--full {
	color: var(--color-accent, #F59E0B);
}

.wkc-star-chr--half {
	color: var(--color-accent, #F59E0B);
	opacity: .6;
}

.wkc-star-chr--empty {
	color: #ddd;
}

.wkc-breakdown-row__score {
	font-size: .875rem;
	font-weight: 700;
	color: var(--color-secondary, #164E63);
	text-align: right;
}

.wkc-breakdown-row__score--na {
	color: #bbb;
	font-weight: 400;
}

/* ── 請求額分布バーチャート ─────────────────────────────────── */
.wkc-charge-dist-list {
	display: flex;
	flex-direction: column;
	gap: .75rem;
}

.wkc-charge-band {
	display: grid;
	grid-template-columns: 8rem 1fr 3.5rem;
	align-items: center;
	gap: .75rem;
}

.wkc-charge-band__label {
	font-size: .82rem;
	color: #555;
	white-space: nowrap;
}

.wkc-charge-band__bar-wrap {
	background: #eef3f6;
	border-radius: 4px;
	height: 20px;
	overflow: hidden;
}

.wkc-charge-band__bar-fill {
	height: 100%;
	background: var(--color-primary, #0E7490);
	border-radius: 4px;
	transition: width .3s ease;
	min-width: 2px;
}

.wkc-charge-band__count {
	font-size: .82rem;
	font-weight: 700;
	color: var(--color-secondary, #164E63);
	text-align: right;
}

.wkc-charge-no-data {
	font-size: .875rem;
	color: #aaa;
	text-align: center;
	padding: 1.5rem 0;
}

/* ── レスポンシブ (P18) ─────────────────────────────────────── */
@media (max-width: 767px) {
	.wkc-karute-doc__head {
		padding: 1.125rem 1rem 1rem;
	}

	.wkc-karute-name {
		font-size: 1.2rem;
	}

	.wkc-karute-stats {
		grid-template-columns: repeat(2, 1fr);
	}

	.wkc-karute-stat {
		padding: .875rem .625rem;
	}

	.wkc-karute-stat:nth-child(2) {
		border-right: none;
	}

	.wkc-karute-stat:nth-child(3) {
		border-top: 1px solid var(--color-border, #E2E8F0);
	}

	.wkc-karute-stat:nth-child(4) {
		border-top: 1px solid var(--color-border, #E2E8F0);
		border-right: none;
	}

	.wkc-karute-stat__value {
		font-size: 1.3rem;
	}

	.wkc-karute-cta {
		padding: .875rem 1rem;
		gap: .5rem;
	}

	.wkc-karute-phone {
		margin-left: 0;
		font-size: 1rem;
	}

	.wkc-breakdown-row {
		grid-template-columns: 6rem 1fr 2.5rem;
		gap: .5rem;
	}

	.wkc-charge-band {
		grid-template-columns: 6.5rem 1fr 2.5rem;
		gap: .5rem;
	}

	.wkc-info-table th {
		width: 6rem;
	}
}

/* ============================================================
   P20: スマホ固定下部CTA
   ============================================================ */

/* デフォルト非表示（PC では通常CTAを使用） */
.wkc-sticky-cta {
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 200;
	background: #fff;
	border-top: 2px solid var(--color-primary, #0E7490);
	padding: 10px 12px;
	/* iPhone ホームバー対応 */
	padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
	gap: 8px;
	box-shadow: 0 -3px 16px rgba(0, 0, 0, .1);
}

@media (max-width: 767px) {
	.wkc-sticky-cta {
		display: flex;
		align-items: stretch;
	}

	/* コンテンツが隠れないよう余白確保 */
	body {
		padding-bottom: 72px;
	}

	/* WP管理バー表示時はやや高い位置に */
	.admin-bar .wkc-sticky-cta {
		bottom: 0;
	}
}

/* ── ボタン共通 ─────────────────────────────────────────────── */
.wkc-sticky-cta__btn {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .3em;
	padding: .625rem .5rem;
	border-radius: 5px;
	font-size: .82rem;
	font-weight: 700;
	line-height: 1.25;
	text-decoration: none;
	text-align: center;
	border: 2px solid transparent;
	transition: background .15s, color .15s, border-color .15s;
	/* タッチターゲット最低 44px */
	min-height: 44px;
}

.wkc-sticky-cta__icon {
	font-size: .9em;
	flex-shrink: 0;
}

/* プライマリ（塗り） */
.wkc-sticky-cta__btn--primary {
	background: var(--color-primary, #0E7490);
	color: #fff;
	border-color: var(--color-primary, #0E7490);
}

.wkc-sticky-cta__btn--primary:hover,
.wkc-sticky-cta__btn--primary:focus {
	background: var(--color-primary-dark, #164E63);
	border-color: var(--color-primary-dark, #164E63);
	color: #fff;
}

/* セカンダリ（枠線） */
.wkc-sticky-cta__btn--secondary {
	background: #fff;
	color: var(--color-primary, #0E7490);
	border-color: var(--color-primary, #0E7490);
}

.wkc-sticky-cta__btn--secondary:hover,
.wkc-sticky-cta__btn--secondary:focus {
	background: var(--color-primary, #0E7490);
	color: #fff;
}

/* ゴースト（公式サイトなど任意リンク） */
.wkc-sticky-cta__btn--ghost {
	background: #fff;
	color: var(--color-text-light, #475569);
	border-color: var(--color-border, #E2E8F0);
	font-size: .75rem;
	flex: 0 1 auto;
	padding-left: .625rem;
	padding-right: .625rem;
}

/* ============================================================
   P21: トップページ Section 2〜7 追加スタイル
   ============================================================ */

/* Section共通: "もっと見る"リンク行 */
.wkc-section-more {
	text-align: center;
	margin-top: var(--space-lg, 2rem);
}

/* Section 2: トラブル別ナビグリッド */
.wkc-trouble-nav-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: .75rem;
}

.wkc-trouble-nav-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
	padding: 1.125rem .5rem;
	background: #fff;
	border: 1.5px solid var(--color-border, #E2E8F0);
	border-radius: 8px;
	text-decoration: none;
	color: var(--color-text, #0F172A);
	transition: border-color .15s, box-shadow .15s, transform .15s;
}

.wkc-trouble-nav-item:hover {
	border-color: var(--color-primary, #0E7490);
	box-shadow: 0 2px 10px rgba(14, 116, 144, .12);
	transform: translateY(-2px);
	color: var(--color-primary, #0E7490);
}

.wkc-trouble-nav-item__icon {
	font-size: 2rem;
	line-height: 1;
}

.wkc-trouble-nav-item__label {
	font-size: .8rem;
	font-weight: 600;
	text-align: center;
	line-height: 1.3;
}

/* Section 3: エリアから探す */
.wkc-area-section__prefs {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	margin-bottom: 1.75rem;
}

.wkc-area-section__pref-btn {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .75rem 1.25rem;
	background: #fff;
	border: 2px solid var(--color-primary, #0E7490);
	border-radius: 6px;
	text-decoration: none;
	color: var(--color-primary, #0E7490);
	font-weight: 700;
	font-size: .9rem;
	transition: background .15s, color .15s;
}

.wkc-area-section__pref-btn:hover {
	background: var(--color-primary, #0E7490);
	color: #fff;
}

.wkc-area-section__pref-btn--more {
	border-style: dashed;
	border-color: var(--color-border, #E2E8F0);
	color: var(--color-text-muted, #64748B);
	font-weight: 500;
}

.wkc-area-section__pref-btn--more:hover {
	background: var(--color-bg, #F8FAFC);
	color: var(--color-text, #0F172A);
}

.wkc-area-section__pref-count {
	font-size: .75rem;
	font-weight: 400;
	opacity: .75;
}

.wkc-area-section__sub {
	border-top: 1px dashed var(--color-border, #E2E8F0);
	padding-top: 1.25rem;
}

.wkc-area-section__sub-label {
	font-size: .82rem;
	font-weight: 600;
	color: var(--color-text-muted, #64748B);
	margin: 0 0 .75rem;
}

.wkc-area-section__pills {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

/* Section 4: 特徴カードグリッド（3列）*/
.wkc-feature-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
	margin-bottom: 1.75rem;
}

.wkc-feature-card {
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 8px;
	padding: 1.5rem 1.25rem;
	text-align: center;
}

.wkc-feature-card__icon {
	font-size: 2.25rem;
	display: block;
	margin-bottom: .75rem;
}

.wkc-feature-card__title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--color-secondary, #164E63);
	margin: 0 0 .75rem;
}

.wkc-feature-card__body {
	font-size: .875rem;
	color: var(--color-text-light, #475569);
	line-height: 1.7;
	margin: 0;
	text-align: left;
}

/* Section 5: 口コミ募集中（0件フォールバック）*/
.wkc-recruit-reviews {
	text-align: center;
	padding: 3rem 1.5rem;
	background: var(--color-bg, #F8FAFC);
	border: 2px dashed var(--color-border, #E2E8F0);
	border-radius: 10px;
}

.wkc-recruit-reviews__icon {
	font-size: 2.5rem;
	display: block;
	margin-bottom: .75rem;
}

.wkc-recruit-reviews__lead {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--color-secondary, #164E63);
	margin: 0 0 .5rem;
}

.wkc-recruit-reviews__sub {
	font-size: .9rem;
	color: var(--color-text-light, #475569);
	margin: 0 0 1.5rem;
	line-height: 1.7;
}

.wkc-review-card__amount {
	font-size: .78rem;
	background: #FEF3C7;
	color: #92400E;
	padding: .15em .5em;
	border-radius: 3px;
}

/* Section 6: 高額請求ガイド 2列 */
.wkc-guide-two-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}

.wkc-guide-block {
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 8px;
	padding: 1.5rem;
}

.wkc-guide-block__title {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: 1rem;
	font-weight: 700;
	color: var(--color-secondary, #164E63);
	margin: 0 0 1rem;
	padding-bottom: .75rem;
	border-bottom: 2px solid var(--color-border, #E2E8F0);
}

.wkc-guide-block__icon {
	font-size: 1.1rem;
	flex-shrink: 0;
}

.wkc-guide-block__body {
	font-size: .875rem;
	color: var(--color-text-light, #475569);
	line-height: 1.7;
	margin: 0 0 .875rem;
}

.wkc-guide-block__list {
	font-size: .85rem;
	color: var(--color-text-light, #475569);
	padding-left: 1.25rem;
	margin: 0 0 1rem;
	line-height: 1.8;
}

/* レスポンシブ (P21) */
@media (max-width: 1023px) {
	.wkc-trouble-nav-grid { grid-template-columns: repeat(3, 1fr); }
	.wkc-guide-two-col    { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
	.wkc-trouble-nav-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: .5rem;
	}
	.wkc-trouble-nav-item {
		padding: .875rem .375rem;
	}
	.wkc-trouble-nav-item__icon  { font-size: 1.6rem; }
	.wkc-trouble-nav-item__label { font-size: .72rem; }
	.wkc-feature-grid {
		grid-template-columns: 1fr;
		gap: .875rem;
	}
	.wkc-feature-card {
		text-align: left;
		display: flex;
		gap: 1rem;
		align-items: flex-start;
		padding: 1.125rem;
	}
	.wkc-feature-card__icon {
		font-size: 1.75rem;
		margin-bottom: 0;
		flex-shrink: 0;
	}
	.wkc-area-section__pref-btn {
		padding: .625rem 1rem;
		font-size: .85rem;
	}
}

/* ============================================================
   P22: 4段階ランキングUI + 0件カード改修
   ============================================================ */

/* ── 0件カード: 口コミ募集中 ────────────────────────────────── */
.wkc-card--pending {
	border-left: 4px solid var(--color-pending-tab, #A0B4BE);
	opacity: .92;
}

.wkc-card__area-line {
	font-size: .85rem;
	color: var(--color-text-light, #475569);
	margin: .25rem 0 .875rem;
}

.wkc-card__pending-message {
	background: var(--color-bg, #F8FAFC);
	border: 1px dashed var(--color-border, #E2E8F0);
	border-radius: 6px;
	padding: .875rem 1rem;
	margin: .5rem 0 .875rem;
}

.wkc-card__pending-message__main {
	font-size: .875rem;
	font-weight: 600;
	color: var(--color-text, #0F172A);
	margin: 0 0 .25rem;
}

.wkc-card__pending-message__sub {
	font-size: .82rem;
	color: var(--color-text-muted, #64748B);
	margin: 0;
	line-height: 1.6;
}

/* ── 暫定評価カード（3〜9件）────────────────────────────────── */
.wkc-card--provisional {
	border-left: 4px solid var(--color-warning, #F59E0B);
}

.wkc-badge--provisional {
	background: #FEF3C7;
	color: #92400E;
	border: 1px solid #FDE68A;
}

.wkc-karute-score__provisional-note {
	font-size: .68rem;
	color: var(--color-text-muted, #64748B);
	display: block;
	margin-top: .15rem;
}

/* ── 評価集計中スコア（1〜2件）──────────────────────────────── */
.wkc-karute-score--collecting {
	display: flex;
	align-items: center;
	gap: .5rem;
}

.wkc-karute-score__collecting-label {
	font-size: .82rem;
	font-weight: 600;
	color: var(--color-text-muted, #64748B);
	background: #f0f4f8;
	padding: .2em .65em;
	border-radius: 4px;
}

/* ── 基本情報確認中バッジ ────────────────────────────────────── */
.wkc-badge--unconfirmed {
	background: #f0f4f8;
	color: var(--color-text-muted, #64748B);
	border: 1px solid var(--color-border, #E2E8F0);
	font-size: .7rem;
}

/* ── 口コミ募集中バッジ ─────────────────────────────────────── */
.wkc-badge--pending {
	background: #EFF6FF;
	color: #1E40AF;
	border: 1px solid #BFDBFE;
}

/* ── アーカイブ: 暫定評価セクションラベル ─────────────────── */
.wkc-contractor-section-label--provisional {
	border-left-color: var(--color-warning, #F59E0B);
}

.wkc-contractor-section-label--provisional .wkc-section-label__text {
	color: #92400E;
}

/* ============================================================
   P23: カルテカード（医療カルテ／信用スコア風）
   ============================================================ */

/* ── カード外枠 ─────────────────────────────────────────────── */
.wkc-karute-card {
	position: relative;
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 12px;
	overflow: hidden;
	transition: box-shadow .2s;
}

.wkc-karute-card:hover {
	box-shadow: 0 4px 16px rgba(14,116,144,.10);
}

.wkc-karute-card--provisional {
	border-left: 4px solid var(--color-warning, #F59E0B);
}

.wkc-karute-card--pr {
	border-top: 3px solid var(--color-pr-badge, #B45309);
}

/* ── カード本体 ─────────────────────────────────────────────── */
.wkc-karute-card__body {
	padding: 14px 16px 10px;
}

/* ── バッジ行 ───────────────────────────────────────────────── */
.wkc-karute-card__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin-bottom: 8px;
}

/* 請求額データありバッジ */
.wkc-badge--charge {
	background: #ECFDF5;
	color: #065F46;
	border: 1px solid #A7F3D0;
	font-size: .7rem;
}

/* ── 業者名タイトル ──────────────────────────────────────────── */
.wkc-karute-card__title {
	font-size: 1.08rem;
	font-weight: 700;
	margin: 0 0 8px;
	line-height: 1.35;
}

.wkc-karute-card__title a {
	color: var(--color-text, #0F172A);
	text-decoration: none;
}

.wkc-karute-card__title a:hover {
	color: var(--color-primary, #0E7490);
}

/* ── カルテ統計ブロック（請求額中央値・確認済み件数）─────────── */
.wkc-karute-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 0;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 8px;
	margin: 10px 0;
	overflow: hidden;
}

.wkc-karute-stats__item {
	padding: 8px 12px;
	background: var(--color-bg, #F8FAFC);
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.wkc-karute-stats__item + .wkc-karute-stats__item {
	border-left: 1px solid var(--color-border, #E2E8F0);
}

.wkc-karute-stats__label {
	font-size: .68rem;
	color: var(--color-text-muted, #64748B);
	font-weight: 500;
	white-space: nowrap;
}

.wkc-karute-stats__value {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--color-primary, #0E7490);
	line-height: 1.2;
}

.wkc-karute-stats__unit {
	font-size: .72rem;
	font-weight: 400;
	color: var(--color-text-muted, #64748B);
}

/* 外部調査数・最終調査日はやや小さめ・グレー系 */
.wkc-karute-stats__item--ext .wkc-karute-stats__value,
.wkc-karute-stats__item--date .wkc-karute-stats__value {
	font-size: 0.9rem;
	color: var(--color-text-muted, #64748B);
}

/* ── 情報行（対応・エリア）──────────────────────────────────── */
.wkc-karute-card__info-rows {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 8px 0;
}

.wkc-karute-card__info-row {
	display: flex;
	align-items: baseline;
	gap: 6px;
	font-size: .82rem;
	line-height: 1.45;
}

.wkc-karute-card__info-label {
	flex-shrink: 0;
	font-size: .7rem;
	font-weight: 600;
	color: var(--color-text-muted, #64748B);
	background: #f0f4f8;
	padding: .1em .55em;
	border-radius: 3px;
}

.wkc-karute-card__info-value {
	color: var(--color-text, #0F172A);
	flex: 1;
}

.wkc-karute-card__info-more {
	font-size: .72rem;
	color: var(--color-text-muted, #64748B);
}

/* ── 特徴ピル ───────────────────────────────────────────────── */
.wkc-karute-card__features {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 8px;
}

/* ── フッター（2ボタン）────────────────────────────────────── */
.wkc-karute-card__footer {
	border-top: 1px solid var(--color-border, #E2E8F0);
	padding: 10px 16px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

/* ── ランクバッジ位置調整 ──────────────────────────────────── */
.wkc-karute-card .wkc-rank-badge {
	position: absolute;
	top: 0;
	right: 0;
}

/* ============================================================
   P24: 診断票スタイル（single-contractor.php）
   ============================================================ */

/* ── コンテナ ─────────────────────────────────────────────── */
.wkc-shindan-container {
	max-width: 780px;
	padding-top: 24px;
	padding-bottom: 48px;
}

/* ── 診断票ヘッダー（カルテボックス）──────────────────────── */
.wkc-shindan-header {
	margin-bottom: 24px;
}

.wkc-shindan-header__logo {
	margin-bottom: 12px;
}

.wkc-shindan-header__logo-img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: 8px;
	border: 1px solid var(--color-border, #E2E8F0);
}

.wkc-shindan-header__karte-box {
	border: 2px solid var(--color-primary, #0E7490);
	border-radius: 12px;
	padding: 20px 24px;
	background: #fff;
	position: relative;
}

.wkc-shindan-header__label-row {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 6px;
}

.wkc-shindan-header__doc-label {
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .08em;
	color: var(--color-primary, #0E7490);
	text-transform: uppercase;
	background: #E0F2F7;
	padding: .2em .75em;
	border-radius: 3px;
}

.wkc-shindan-header__name {
	font-size: 1.4rem;
	font-weight: 800;
	color: var(--color-text, #0F172A);
	margin: 0 0 10px;
	line-height: 1.3;
}

.wkc-shindan-header__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin-bottom: 14px;
}

/* 統計サマリー（dl形式）*/
.wkc-shindan-summary {
	display: flex;
	flex-direction: column;
	gap: 0;
	border-top: 1px solid var(--color-border, #E2E8F0);
	padding-top: 12px;
	margin: 0;
}

.wkc-shindan-summary__row {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 5px 0;
	font-size: .9rem;
	border-bottom: 1px dashed #EDF2F7;
}

.wkc-shindan-summary__row:last-child {
	border-bottom: none;
}

.wkc-shindan-summary__row dt {
	flex-shrink: 0;
	min-width: 108px;
	font-size: .78rem;
	font-weight: 600;
	color: var(--color-text-muted, #64748B);
}

.wkc-shindan-summary__row dd {
	display: flex;
	align-items: baseline;
	gap: 6px;
	margin: 0;
	font-weight: 700;
	color: var(--color-text, #0F172A);
}

.wkc-shindan-summary__row dd strong {
	font-size: 1.15rem;
	color: var(--color-primary, #0E7490);
}

.wkc-shindan-summary__stars {
	font-size: .85rem;
}

.wkc-shindan-summary__count,
.wkc-shindan-summary__note {
	font-size: .75rem;
	font-weight: 400;
	color: var(--color-text-muted, #64748B);
}

.wkc-shindan-summary__empty {
	font-size: .82rem;
	font-weight: 400;
	color: var(--color-text-muted, #64748B);
}

/* ── CTA ──────────────────────────────────────────────────── */
.wkc-shindan-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 16px;
}

/* ── セクション共通 ────────────────────────────────────────── */
.wkc-shindan-section {
	border-top: 2px solid var(--color-border, #E2E8F0);
	padding: 28px 0 8px;
	margin-bottom: 8px;
}

.wkc-shindan-section__title {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--color-text, #0F172A);
	margin: 0 0 18px;
}

.wkc-shindan-section__title--meta {
	font-size: .9rem;
	color: var(--color-text-muted, #64748B);
}

.wkc-shindan-section__subtitle {
	font-size: .95rem;
	font-weight: 700;
	margin: 24px 0 12px;
	color: var(--color-text, #0F172A);
}

.wkc-shindan-section__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--color-primary, #0E7490);
	color: #fff;
	font-size: .78rem;
	font-weight: 700;
	flex-shrink: 0;
}

.wkc-shindan-section__count {
	font-size: .82rem;
	font-weight: 400;
	color: var(--color-text-muted, #64748B);
	margin-left: 4px;
}

.wkc-shindan-section__note {
	font-size: .78rem;
	color: var(--color-text-muted, #64748B);
	margin-top: 10px;
}

.wkc-shindan-section--form {
	border-top: 1px dashed var(--color-border, #E2E8F0);
	padding-top: 24px;
}

/* ── 評価サマリー（比較表スタイル）────────────────────────── */
.wkc-shindan-rating-table {
	display: flex;
	flex-direction: column;
	gap: 0;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 8px;
	overflow: hidden;
}

.wkc-shindan-rating-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px;
	background: #fff;
	border-bottom: 1px solid var(--color-border, #E2E8F0);
	transition: background .15s;
}

.wkc-shindan-rating-row:last-child {
	border-bottom: none;
}

.wkc-shindan-rating-row:first-child {
	background: var(--color-bg, #F8FAFC);
	font-weight: 700;
}

.wkc-shindan-rating-row__label {
	flex-shrink: 0;
	min-width: 96px;
	font-size: .85rem;
	font-weight: 600;
	color: var(--color-text, #0F172A);
}

.wkc-shindan-rating-row__stars {
	flex: 1;
	display: flex;
	gap: 1px;
	font-size: 1rem;
}

.wkc-shindan-rating-row__value {
	flex-shrink: 0;
	font-size: .9rem;
	font-weight: 700;
	color: var(--color-primary, #0E7490);
	min-width: 28px;
	text-align: right;
}

/* ── 請求額分布（ヒストグラム）────────────────────────────── */
.wkc-shindan-charge-dist {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.wkc-shindan-charge-row {
	display: grid;
	grid-template-columns: 140px 1fr 36px;
	align-items: center;
	gap: 10px;
}

.wkc-shindan-charge-row__label {
	font-size: .82rem;
	color: var(--color-text, #0F172A);
	white-space: nowrap;
}

.wkc-shindan-charge-row__track {
	height: 14px;
	background: #EDF2F7;
	border-radius: 7px;
	overflow: hidden;
}

.wkc-shindan-charge-row__fill {
	height: 100%;
	background: var(--color-primary, #0E7490);
	border-radius: 7px;
	min-width: 6px;
	transition: width .4s ease;
}

.wkc-shindan-charge-row__count {
	font-size: .8rem;
	font-weight: 600;
	color: var(--color-text-muted, #64748B);
	text-align: right;
	white-space: nowrap;
}

/* ── 基本情報テーブル ─────────────────────────────────────── */
.wkc-shindan-info-table {
	display: flex;
	flex-direction: column;
	gap: 0;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 8px;
	overflow: hidden;
	margin: 0;
}

.wkc-shindan-info-table--compact {
	border: none;
	border-radius: 0;
	font-size: .82rem;
}

.wkc-shindan-info-row {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 0;
	border-bottom: 1px solid var(--color-border, #E2E8F0);
}

.wkc-shindan-info-row:last-child {
	border-bottom: none;
}

.wkc-shindan-info-row dt {
	padding: 9px 12px;
	background: var(--color-bg, #F8FAFC);
	font-size: .78rem;
	font-weight: 600;
	color: var(--color-text-muted, #64748B);
	align-self: start;
}

.wkc-shindan-info-row dd {
	padding: 9px 12px;
	font-size: .88rem;
	color: var(--color-text, #0F172A);
	margin: 0;
	line-height: 1.55;
}

.wkc-shindan-unconfirmed {
	font-size: .78rem;
	color: var(--color-text-muted, #64748B);
	background: #f0f4f8;
	padding: .15em .6em;
	border-radius: 4px;
}

/* ── 口コミフィルターバー ──────────────────────────────────── */
.wkc-shindan-review-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 16px;
}

.wkc-review-filter-btn {
	padding: 5px 12px;
	font-size: .8rem;
	font-weight: 600;
	color: var(--color-text-muted, #64748B);
	background: #f0f4f8;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 20px;
	cursor: pointer;
	transition: all .15s;
	white-space: nowrap;
}

.wkc-review-filter-btn:hover,
.wkc-review-filter-btn--active {
	background: var(--color-primary, #0E7490);
	color: #fff;
	border-color: var(--color-primary, #0E7490);
}

/* ── 口コミ空欄 ────────────────────────────────────────────── */
.wkc-shindan-empty-reviews {
	padding: 24px 0;
	text-align: center;
}

.wkc-shindan-empty-reviews__main {
	font-weight: 600;
	color: var(--color-text, #0F172A);
	margin: 0 0 6px;
}

.wkc-shindan-empty-reviews__sub {
	font-size: .85rem;
	color: var(--color-text-muted, #64748B);
	margin: 0;
}

/* ── マップ ─────────────────────────────────────────────────── */
.wkc-shindan-map {
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid var(--color-border, #E2E8F0);
}

/* ── レスポンシブ ──────────────────────────────────────────── */
@media (max-width: 480px) {
	.wkc-shindan-header__name { font-size: 1.15rem; }
	.wkc-shindan-header__karte-box { padding: 16px; }
	.wkc-shindan-summary__row dt { min-width: 88px; }
	.wkc-shindan-charge-row { grid-template-columns: 110px 1fr 30px; }
	.wkc-shindan-info-row { grid-template-columns: 90px 1fr; }
}

/* ============================================================
   P25: クイックフィルター（3秒検索UI）
   ============================================================ */

/* ── ラッパー ────────────────────────────────────────────── */
.wkc-qf {
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 14px;
	padding: 0;
	margin-bottom: 24px;
	overflow: hidden;
}

/* ── セクション共通 ──────────────────────────────────────── */
.wkc-qf__section {
	padding: 16px 18px;
	border-bottom: 1px solid var(--color-border, #E2E8F0);
}

.wkc-qf__section:last-of-type {
	border-bottom: none;
}

.wkc-qf__section-label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: .78rem;
	font-weight: 700;
	color: var(--color-text-muted, #64748B);
	letter-spacing: .04em;
	margin: 0 0 10px;
}

.wkc-qf__step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--color-primary, #0E7490);
	color: #fff;
	font-size: .72rem;
	font-weight: 700;
	flex-shrink: 0;
}

.wkc-qf__active-label {
	font-size: .78rem;
	font-weight: 600;
	color: var(--color-primary, #0E7490);
	background: #E0F2F7;
	padding: .15em .6em;
	border-radius: 10px;
}

.wkc-qf__empty {
	font-size: .82rem;
	color: var(--color-text-muted, #64748B);
	margin: 0;
}

/* ── A. トラブルアイコングリッド ─────────────────────────── */
.wkc-qf-trouble-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 6px;
}

.wkc-qf-trouble-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 10px 4px;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 10px;
	text-decoration: none;
	background: var(--color-bg, #F8FAFC);
	transition: all .15s;
	cursor: pointer;
}

.wkc-qf-trouble-tile:hover {
	border-color: var(--color-primary, #0E7490);
	background: #E0F2F7;
}

.wkc-qf-trouble-tile--active {
	border-color: var(--color-primary, #0E7490);
	background: var(--color-primary, #0E7490);
}

.wkc-qf-trouble-tile--active .wkc-qf-trouble-tile__label {
	color: #fff;
}

.wkc-qf-trouble-tile__icon {
	font-size: 1.5rem;
	line-height: 1;
}

.wkc-qf-trouble-tile__label {
	font-size: .7rem;
	font-weight: 600;
	color: var(--color-text, #0F172A);
	text-align: center;
	line-height: 1.3;
	word-break: keep-all;
}

/* ── B. エリアピル ───────────────────────────────────────── */
.wkc-qf-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 0;
}

.wkc-qf-pills--muni {
	margin-top: 8px;
	padding-top: 8px;
	border-top: 1px dashed var(--color-border, #E2E8F0);
}

.wkc-qf-pill {
	display: inline-block;
	padding: 5px 14px;
	font-size: .82rem;
	font-weight: 600;
	color: var(--color-text, #0F172A);
	background: var(--color-bg, #F8FAFC);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 20px;
	text-decoration: none;
	transition: all .15s;
}

.wkc-qf-pill:hover {
	border-color: var(--color-primary, #0E7490);
	color: var(--color-primary, #0E7490);
}

.wkc-qf-pill--active {
	background: var(--color-primary, #0E7490);
	color: #fff;
	border-color: var(--color-primary, #0E7490);
}

.wkc-qf-pill--sm {
	font-size: .76rem;
	padding: 4px 10px;
}

/* ── C. 条件バッジ ───────────────────────────────────────── */
.wkc-qf-conditions {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.wkc-qf-cond {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 6px 14px;
	font-size: .82rem;
	font-weight: 600;
	color: var(--color-text, #0F172A);
	background: var(--color-bg, #F8FAFC);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 20px;
	text-decoration: none;
	transition: all .15s;
}

.wkc-qf-cond:hover {
	border-color: var(--color-primary, #0E7490);
	color: var(--color-primary, #0E7490);
}

.wkc-qf-cond--active {
	background: var(--color-primary, #0E7490);
	color: #fff;
	border-color: var(--color-primary, #0E7490);
}

/* ── リセット行 ──────────────────────────────────────────── */
.wkc-qf__reset-row {
	padding: 10px 18px;
	border-top: 1px solid var(--color-border, #E2E8F0);
	background: #FFFBEB;
}

.wkc-qf__reset {
	font-size: .8rem;
	color: var(--color-danger, #DC2626);
	font-weight: 600;
	text-decoration: none;
}

.wkc-qf__reset:hover {
	text-decoration: underline;
}

/* ── レスポンシブ ──────────────────────────────────────────── */
@media (max-width: 480px) {
	.wkc-qf-trouble-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 4px;
	}
	.wkc-qf-trouble-tile {
		padding: 8px 2px;
	}
	.wkc-qf-trouble-tile__icon { font-size: 1.25rem; }
	.wkc-qf-trouble-tile__label { font-size: .65rem; }
	.wkc-qf__section { padding: 14px 14px; }
}

@media (min-width: 640px) {
	.wkc-qf-trouble-grid {
		grid-template-columns: repeat(8, 1fr);
	}
}

/* ============================================================
   P26: 信頼ナビ + ポリシーページスタイル
   ============================================================ */

/* ── 信頼ナビラッパー ──────────────────────────────────────── */
.wkc-trust-nav {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 2px solid var(--color-border, #E2E8F0);
}

.wkc-trust-nav__heading {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .08em;
	color: var(--color-text-muted, #64748B);
	text-transform: uppercase;
	margin: 0 0 14px;
	display: flex;
	align-items: center;
	gap: 8px;
}

.wkc-trust-nav__heading::before {
	content: '';
	display: inline-block;
	width: 16px;
	height: 3px;
	background: var(--color-primary, #0E7490);
	border-radius: 2px;
}

/* 業者詳細・フォームページでのコンパクト表示 */
.wkc-contractor-trust-links .wkc-trust-nav {
	margin-top: 24px;
	border-top: 1px solid var(--color-border, #E2E8F0);
}

/* ── ポリシーページ共通スタイル ──────────────────────────── */
.wkc-policy-page {
	max-width: 760px;
	font-size: .95rem;
	line-height: 1.8;
	color: var(--color-text, #0F172A);
}

.wkc-policy-page__updated {
	font-size: .78rem;
	color: var(--color-text-muted, #64748B);
	margin-bottom: 24px;
}

.wkc-policy-page h2 {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--color-secondary, #164E63);
	margin: 32px 0 12px;
	padding-bottom: 6px;
	border-bottom: 2px solid var(--color-primary, #0E7490);
}

.wkc-policy-page p,
.wkc-policy-page ul,
.wkc-policy-page ol {
	margin: 0 0 14px;
}

.wkc-policy-page ul,
.wkc-policy-page ol {
	padding-left: 1.5em;
}

.wkc-policy-page li {
	margin-bottom: 6px;
}

/* リード文ボックス */
.wkc-policy-page__lead {
	background: var(--color-bg, #F8FAFC);
	border-left: 4px solid var(--color-primary, #0E7490);
	padding: 14px 18px;
	border-radius: 0 8px 8px 0;
	margin-bottom: 24px;
}

.wkc-policy-page__lead p { margin: 0; }

.wkc-policy-page__lead--trust {
	border-left-color: var(--color-success, #059669);
	background: #F0FDF4;
}

/* ポリシーテーブル */
.wkc-policy-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .88rem;
	margin-bottom: 18px;
}

.wkc-policy-table th,
.wkc-policy-table td {
	padding: 9px 12px;
	border: 1px solid var(--color-border, #E2E8F0);
	text-align: left;
	vertical-align: top;
}

.wkc-policy-table th {
	background: var(--color-bg, #F8FAFC);
	font-weight: 700;
	color: var(--color-text-muted, #64748B);
	font-size: .78rem;
}

.wkc-policy-table tr:nth-child(even) td {
	background: #FAFBFC;
}

.wkc-policy-table--danger tr td:first-child {
	color: var(--color-danger, #DC2626);
	font-weight: 600;
}

/* チェックリスト */
.wkc-policy-list {
	list-style: none;
	padding-left: 0;
}

.wkc-policy-list--good li::before {
	content: '✓ ';
	color: var(--color-success, #059669);
	font-weight: 700;
}

.wkc-policy-list--bad li::before {
	content: '✗ ';
	color: var(--color-danger, #DC2626);
	font-weight: 700;
}

/* 注意書き */
.wkc-policy-page__note {
	font-size: .82rem;
	color: var(--color-text-muted, #64748B);
	background: var(--color-bg, #F8FAFC);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 6px;
	padding: 10px 14px;
	margin-top: 24px;
}

/* ============================================================
   P27: カラートーン調整 + カード影スタイル（行政・医療・比較サイト中間トーン）
   ============================================================ */

/* ── カード共通: 白＋角丸＋薄い影 ──────────────────────────── */
.wkc-card,
.wkc-karute-card,
.wkc-shindan-header__karte-box,
.wkc-feature-card,
.wkc-review-card {
	box-shadow: 0 1px 4px rgba(15,23,42,.06), 0 0 0 1px rgba(15,23,42,.04);
	transition: box-shadow .2s ease;
}

.wkc-card:hover,
.wkc-karute-card:hover {
	box-shadow: 0 4px 16px rgba(14,116,144,.10), 0 0 0 1px rgba(14,116,144,.08);
}

/* ── タイポグラフィ: より読みやすい本文 ──────────────────── */
body {
	color: var(--color-text, #0F172A);
}

/* 見出しは primaryDark（濃紺）で統一 */
h1, h2, h3, h4, h5, h6 {
	color: var(--color-primary-dark, #164E63);
}

/* ── ボタン: ghost ボタンのボーダー強化 ─────────────────── */
.wkc-btn--ghost {
	border: 1.5px solid var(--color-border, #E2E8F0);
	color: var(--color-text, #0F172A);
	background: #fff;
}

.wkc-btn--ghost:hover {
	border-color: var(--color-primary, #0E7490);
	color: var(--color-primary, #0E7490);
	background: #F0F9FF;
}

/* ── リンク: 派手な下線より細い境界線 ──────────────────── */
a {
	color: var(--color-primary, #0E7490);
}

a:hover {
	color: var(--color-primary-dark, #164E63);
}

/* ── セクション見出し: 左ボーダーアクセント ──────────────── */
.wkc-karute-section__title,
.wkc-shindan-section__title {
	border-left: none; /* 数字バッジがある場合は左ボーダー不要 */
}

/* ── ページヘッダー: 薄い背景 ─────────────────────────── */
.page-header {
	padding: 24px 0 16px;
	border-bottom: 1px solid var(--color-border, #E2E8F0);
	margin-bottom: 24px;
}

.page-title {
	color: var(--color-primary-dark, #164E63);
}

/* ── フォームインプット: クリーンなスタイル ──────────────── */
input[type="text"],
input[type="email"],
input[type="number"],
input[type="tel"],
select,
textarea {
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 6px;
	padding: 8px 12px;
	font-size: .95rem;
	color: var(--color-text, #0F172A);
	background: #fff;
	transition: border-color .15s;
	font-family: var(--font-base);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
select:focus,
textarea:focus {
	border-color: var(--color-primary, #0E7490);
	outline: 2px solid rgba(14,116,144,.15);
	outline-offset: 0;
}

/* ── 統計数値: 医療カルテ的な数値表示 ─────────────────── */
.wkc-karute-stat__value,
.wkc-karute-stats__value,
.wkc-shindan-summary__row dd strong {
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.01em;
}

/* ==========================================================================
   P29: アーカイブページ再構成 — ソートバー・2カラムレイアウト・サイドバー
   ========================================================================== */

/* ── ソートバー ─────────────────────────────────────────────── */
.wkc-sort-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
}

@media (max-width: 767px) {
	.wkc-archive-toolbar {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}
	.wkc-sort-bar {
		width: 100%;
		overflow-x: auto;
		flex-wrap: nowrap;
		padding-bottom: 4px;
		-webkit-overflow-scrolling: touch;
	}
}

.wkc-sort-btn {
	display: inline-block;
	padding: 5px 12px;
	font-size: .8rem;
	font-weight: 500;
	color: var(--color-text-light, #475569);
	background: var(--color-white, #fff);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 20px;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.wkc-sort-btn:hover {
	border-color: var(--color-primary, #0E7490);
	color: var(--color-primary, #0E7490);
	text-decoration: none;
}

.wkc-sort-btn--active {
	background: var(--color-primary, #0E7490);
	color: var(--color-white, #fff);
	border-color: var(--color-primary, #0E7490);
}

.wkc-sort-btn--active:hover {
	color: var(--color-white, #fff);
}

/* ── ソートノート ────────────────────────────────────────────── */
.wkc-sort-note {
	font-size: var(--font-size-sm, 14px);
	color: var(--color-text-muted, #64748B);
	background: var(--color-bg, #F8FAFC);
	border-left: 3px solid var(--color-info, #0891B2);
	padding: 8px 12px;
	border-radius: 0 6px 6px 0;
	margin-bottom: 12px;
}

/* ── 2カラムレイアウト ─────────────────────────────────────── */
.wkc-archive-two-col {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-xl, 32px);
	align-items: start;
	margin-top: var(--space-lg, 24px);
}

@media (min-width: 1024px) {
	.wkc-archive-two-col {
		grid-template-columns: 1fr 280px;
	}
}

.wkc-archive-main {
	min-width: 0;
}

/* ── サイドバー ─────────────────────────────────────────────── */
.wkc-archive-sidebar {
	display: flex;
	flex-direction: column;
	gap: var(--space-lg, 24px);
}

.wkc-sidebar-block {
	background: var(--color-white, #fff);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--border-radius, 8px);
	padding: var(--space-lg, 24px);
}

.wkc-sidebar-block__title {
	font-size: var(--font-size-sm, 14px);
	font-weight: 700;
	color: var(--color-primary-dark, #164E63);
	border-left: 4px solid var(--color-primary, #0E7490);
	padding-left: 8px;
	margin-bottom: 12px;
}

/* チェックリスト */
.wkc-sidebar-checklist {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.wkc-sidebar-checklist li {
	font-size: var(--font-size-sm, 14px);
	color: var(--color-text, #0F172A);
	padding-left: 22px;
	position: relative;
	line-height: 1.5;
}

.wkc-sidebar-checklist li::before {
	content: '✓';
	position: absolute;
	left: 0;
	color: var(--color-success, #059669);
	font-weight: 700;
}

/* CTA */
.wkc-sidebar-block--cta {
	background: linear-gradient(135deg, #EFF6FF 0%, #F0FDFA 100%);
	border-color: var(--color-primary, #0E7490);
}

.wkc-sidebar-cta__heading {
	font-size: var(--font-size-base, 16px);
	font-weight: 700;
	color: var(--color-primary-dark, #164E63);
	margin-bottom: 8px;
}

.wkc-sidebar-cta__body {
	font-size: var(--font-size-sm, 14px);
	color: var(--color-text, #0F172A);
	line-height: 1.6;
	margin-bottom: 10px;
}

.wkc-sidebar-cta__points {
	list-style: none;
	font-size: 12px;
	color: var(--color-text-muted, #64748B);
	margin-bottom: 14px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.wkc-sidebar-cta__points li::before {
	content: '・';
}

.wkc-btn--block {
	display: block;
	width: 100%;
	text-align: center;
}

/* ==========================================================================
   P30: 地域ページ「水道修理カルテ」形式
   ========================================================================== */

/* ── カルテヘッダー ─────────────────────────────────────── */
.wkc-karte-header {
	padding: var(--space-lg, 24px) 0 var(--space-md, 16px);
	border-bottom: 3px solid var(--color-primary, #0E7490);
	margin-bottom: var(--space-xl, 32px);
}

.wkc-karte-header__title {
	font-size: clamp(1.2rem, 4vw, 1.6rem);
	font-weight: 700;
	color: var(--color-primary-dark, #164E63);
	line-height: 1.4;
	margin-bottom: 8px;
}

.wkc-karte-header__desc {
	font-size: var(--font-size-sm, 14px);
	color: var(--color-text-light, #475569);
}

/* パンくず */
.wkc-breadcrumb {
	font-size: var(--font-size-sm, 14px);
	color: var(--color-text-muted, #64748B);
	display: flex;
	align-items: center;
	gap: 4px;
	flex-wrap: wrap;
	margin-bottom: 12px;
}

.wkc-breadcrumb a {
	color: var(--color-primary, #0E7490);
}

/* ── カルテセクション共通 ─────────────────────────────── */
.wkc-karte-section {
	margin-bottom: var(--space-2xl, 48px);
}

.wkc-karte-section__heading {
	font-size: var(--font-size-xl, 24px);
	font-weight: 700;
	color: var(--color-primary-dark, #164E63);
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin-bottom: 12px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--color-border, #E2E8F0);
}

.wkc-karte-section__heading--recruit {
	color: var(--color-text-muted, #64748B);
}

.wkc-karte-section__count {
	font-size: var(--font-size-base, 16px);
	font-weight: 400;
	color: var(--color-text-muted, #64748B);
}

.wkc-karte-section__lead {
	font-size: var(--font-size-sm, 14px);
	color: var(--color-text-light, #475569);
	margin-bottom: 16px;
}

.wkc-karte-section--recruit {
	opacity: 0.85;
}

.wkc-karte-section--neighbors {
	border-top: 1px solid var(--color-border, #E2E8F0);
	padding-top: var(--space-xl, 32px);
}

/* ── 空状態 ─────────────────────────────────────────────── */
.wkc-karte-empty {
	background: var(--color-bg, #F8FAFC);
	border: 1px dashed var(--color-border, #E2E8F0);
	border-radius: var(--border-radius, 8px);
	padding: var(--space-xl, 32px);
	text-align: center;
}

.wkc-karte-empty__text {
	color: var(--color-text-muted, #64748B);
	font-size: var(--font-size-sm, 14px);
}

/* ── 地域統計グリッド ─────────────────────────────────── */
.wkc-karte-stats-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-md, 16px);
}

@media (min-width: 640px) {
	.wkc-karte-stats-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.wkc-karte-stat-card {
	background: var(--color-white, #fff);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--border-radius, 8px);
	padding: var(--space-md, 16px);
	text-align: center;
}

.wkc-karte-stat-card__label {
	font-size: 11px;
	color: var(--color-text-muted, #64748B);
	margin-bottom: 6px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.wkc-karte-stat-card__value {
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--color-primary-dark, #164E63);
	font-variant-numeric: tabular-nums;
	line-height: 1;
}

.wkc-karte-stat-card__unit {
	font-size: .85rem;
	font-weight: 400;
	margin-left: 2px;
}

.wkc-karte-stat-card__na {
	font-size: .9rem;
	color: var(--color-text-muted, #64748B);
}

.wkc-karte-stat-card__sub {
	font-size: 11px;
	color: var(--color-text-muted, #64748B);
	margin-top: 4px;
}

.wkc-karte-note {
	margin-top: 12px;
	padding: 10px 14px;
	background: #FFF7ED;
	border-left: 3px solid var(--color-accent, #F59E0B);
	border-radius: 0 6px 6px 0;
	font-size: var(--font-size-sm, 14px);
	color: #92400E;
}

/* ── トラブル別投稿状況グリッド ─────────────────────── */
.wkc-trouble-status-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
}

@media (min-width: 480px) {
	.wkc-trouble-status-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 768px) {
	.wkc-trouble-status-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.wkc-trouble-status-item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	padding: 10px 14px;
	background: var(--color-white, #fff);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 8px;
	text-decoration: none;
	transition: border-color var(--transition-fast);
}

.wkc-trouble-status-item:hover {
	border-color: var(--color-primary, #0E7490);
	text-decoration: none;
}

.wkc-trouble-status-item--empty {
	background: var(--color-bg, #F8FAFC);
	border-style: dashed;
}

.wkc-trouble-status-item__name {
	font-size: var(--font-size-sm, 14px);
	font-weight: 500;
	color: var(--color-text, #0F172A);
}

.wkc-trouble-status-item--empty .wkc-trouble-status-item__name {
	color: var(--color-text-muted, #64748B);
}

.wkc-trouble-status-item__count {
	font-size: 11px;
	font-weight: 700;
	color: var(--color-success, #059669);
	background: #ECFDF5;
	padding: 2px 6px;
	border-radius: 10px;
}

.wkc-trouble-status-item__recruit {
	font-size: 11px;
	color: var(--color-text-muted, #64748B);
	background: var(--color-bg, #F8FAFC);
	padding: 2px 6px;
	border-radius: 10px;
}

/* ── チェックリスト（地域ページ版）─────────────────── */
.wkc-karte-checklist {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.wkc-karte-checklist li {
	padding: 10px 14px 10px 38px;
	position: relative;
	background: var(--color-white, #fff);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 8px;
	font-size: var(--font-size-sm, 14px);
	color: var(--color-text, #0F172A);
	line-height: 1.5;
}

.wkc-karte-checklist li::before {
	content: '☐';
	position: absolute;
	left: 12px;
	top: 10px;
	color: var(--color-primary, #0E7490);
	font-size: 1rem;
}

/* 水道局情報 */
.wkc-karte-authority-note {
	margin-top: 16px;
	padding: 14px 16px;
	background: var(--color-bg, #F8FAFC);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 8px;
	font-size: var(--font-size-sm, 14px);
}

.wkc-karte-authority-note__head {
	font-weight: 700;
	color: var(--color-primary-dark, #164E63);
	margin-bottom: 8px;
}

/* ── 口コミ募集中 — グリッドを薄く ─────────────────── */
.wkc-contractor-grid--muted {
	opacity: 0.75;
}

/* ── 口コミ投稿CTA ─────────────────────────────────── */
.wkc-karte-cta {
	background: linear-gradient(135deg, #EFF6FF 0%, #F0FDFA 100%);
	border: 2px solid var(--color-primary, #0E7490);
	border-radius: var(--border-radius-lg, 14px);
	padding: var(--space-2xl, 48px) var(--space-xl, 32px);
	text-align: center;
	margin-bottom: var(--space-2xl, 48px);
}

.wkc-karte-cta__title {
	font-size: var(--font-size-xl, 24px);
	font-weight: 700;
	color: var(--color-primary-dark, #164E63);
	margin-bottom: 12px;
}

.wkc-karte-cta__body {
	font-size: var(--font-size-sm, 14px);
	color: var(--color-text, #0F172A);
	max-width: 520px;
	margin: 0 auto 16px;
	line-height: 1.7;
}

.wkc-karte-cta__points {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 16px;
	font-size: 12px;
	color: var(--color-text-muted, #64748B);
	margin-bottom: 20px;
}

.wkc-karte-cta__points li::before {
	content: '✓ ';
	color: var(--color-success, #059669);
	font-weight: 700;
}

/* ── 近隣エリアリスト ─────────────────────────────── */
.wkc-neighbor-list {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.wkc-neighbor-link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 6px 12px;
	background: var(--color-white, #fff);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 20px;
	font-size: var(--font-size-sm, 14px);
	color: var(--color-text, #0F172A);
	text-decoration: none;
	transition: border-color var(--transition-fast), color var(--transition-fast);
}

.wkc-neighbor-link:hover {
	border-color: var(--color-primary, #0E7490);
	color: var(--color-primary, #0E7490);
	text-decoration: none;
}

.wkc-neighbor-link__count {
	font-size: 11px;
	color: var(--color-text-muted, #64748B);
}

/* ==========================================================================
   P31: 独自UI — 見積一致率・信頼ラベル・チェックカード
   ========================================================================== */

/* ── 見積額と請求額の一致率ボックス ─────────────────────── */
.wkc-match-rate-box {
	margin-top: 16px;
	padding: 16px 20px;
	background: linear-gradient(135deg, #F0FDFA 0%, #EFF6FF 100%);
	border: 1px solid var(--color-info, #0891B2);
	border-radius: 10px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.wkc-match-rate-box__stat {
	display: flex;
	align-items: baseline;
	gap: 12px;
}

.wkc-match-rate-box__label {
	font-size: var(--font-size-sm, 14px);
	font-weight: 600;
	color: var(--color-primary-dark, #164E63);
}

.wkc-match-rate-box__value {
	font-size: 2.4rem;
	font-weight: 800;
	color: var(--color-primary, #0E7490);
	font-variant-numeric: tabular-nums;
	line-height: 1;
}

.wkc-match-rate-box__pct {
	font-size: 1.2rem;
	font-weight: 600;
	margin-left: 2px;
}

.wkc-match-rate-box__note {
	font-size: 11px;
	color: var(--color-text-muted, #64748B);
}

/* ── 口コミ信頼ラベル ────────────────────────────────────── */
.wkc-review-trust-labels {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 8px 0;
}

.wkc-trust-label {
	display: inline-flex;
	align-items: center;
	padding: 2px 8px;
	font-size: 11px;
	font-weight: 600;
	border-radius: 4px;
	letter-spacing: 0.02em;
}

.wkc-trust-label--charge {
	background: #ECFDF5;
	color: #065F46;
	border: 1px solid #A7F3D0;
}

.wkc-trust-label--photo {
	background: #EFF6FF;
	color: #1E40AF;
	border: 1px solid #BFDBFE;
}

.wkc-trust-label--email {
	background: #F5F3FF;
	color: #5B21B6;
	border: 1px solid #DDD6FE;
}

.wkc-trust-label--reply {
	background: #FFF7ED;
	color: #92400E;
	border: 1px solid #FED7AA;
}

/* ── 高額請求チェックカード ─────────────────────────────── */
.wkc-check-card {
	background: var(--color-white, #fff);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--border-radius, 8px);
	padding: var(--space-md, 16px);
}

/* サイドバーに入ったとき（.wkc-sidebar-block の中ではボーダー二重を防ぐ）*/
.wkc-sidebar-block .wkc-check-card {
	border: none;
	padding: 0;
}

.wkc-check-card__title {
	font-size: var(--font-size-sm, 14px);
	font-weight: 700;
	color: var(--color-primary-dark, #164E63);
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 10px;
}

.wkc-check-card__icon {
	font-size: 1rem;
}

.wkc-check-card__list {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin-bottom: 12px;
}

.wkc-check-card__list li {
	font-size: var(--font-size-sm, 14px);
	color: var(--color-text, #0F172A);
	padding-left: 20px;
	position: relative;
	line-height: 1.4;
}

.wkc-check-card__list li::before {
	content: '□';
	position: absolute;
	left: 0;
	color: var(--color-primary, #0E7490);
	font-size: .85rem;
}

.wkc-check-card__link {
	display: block;
	font-size: 11px;
	color: var(--color-text-muted, #64748B);
	text-align: right;
	padding-top: 8px;
	border-top: 1px solid var(--color-bg, #F8FAFC);
}

.wkc-check-card__link:hover {
	color: var(--color-primary, #0E7490);
}

/* ── bottom-blocks（single-contractor.php）── */
.wkc-contractor-bottom-blocks {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg, 24px);
	margin-top: var(--space-xl, 32px);
}

@media (min-width: 640px) {
	.wkc-contractor-bottom-blocks {
		grid-template-columns: 1fr 1fr;
		align-items: start;
	}
}

/* ════════════════════════════════════════════════════════
   P32 — 編集部独自評価スコア & ランキングページ
   ════════════════════════════════════════════════════════ */

/* ── 編集部評価：コンパクトバッジ（カード用）── */
.wkc-editorial-score-compact {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	margin-top: 6px;
}
.wkc-editorial-score-compact__grade {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 4px;
	font-weight: 700;
	font-size: 13px;
	line-height: 1;
}
.wkc-editorial-score-compact__num {
	font-weight: 600;
	color: var(--color-text, #0F172A);
}
.wkc-editorial-score-compact__tag {
	color: var(--color-text-muted, #64748B);
	font-size: 11px;
}

/* ── 編集部評価：フル表示（業者詳細ページ用）── */
.wkc-editorial-score-full {
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--radius-md, 10px);
	padding: var(--space-lg, 24px);
	margin: var(--space-xl, 32px) 0;
}
.wkc-editorial-score-full__notice {
	font-size: 12px;
	color: var(--color-text-muted, #64748B);
	margin-bottom: var(--space-md, 16px);
	padding-bottom: var(--space-md, 16px);
	border-bottom: 1px solid var(--color-bg, #F8FAFC);
	line-height: 1.5;
}
.wkc-editorial-score-full__notice a {
	color: var(--color-primary, #0E7490);
	text-decoration: underline;
}
.wkc-editorial-score-full__summary {
	display: flex;
	align-items: center;
	gap: var(--space-lg, 24px);
	border-left: 4px solid;
	padding-left: var(--space-md, 16px);
	margin-bottom: var(--space-lg, 24px);
}
.wkc-editorial-score-full__grade {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 10px;
	font-size: 2rem;
	font-weight: 800;
	flex-shrink: 0;
}
.wkc-editorial-score-full__total {
	font-size: 2rem;
	font-weight: 800;
	line-height: 1;
	margin: 0 0 4px;
}
.wkc-editorial-score-full__total span {
	font-size: 1rem;
	font-weight: 400;
	color: var(--color-text-muted, #64748B);
}
.wkc-editorial-score-full__label {
	font-size: 0.875rem;
	color: var(--color-text-muted, #64748B);
	margin: 0;
}
.wkc-editorial-score-full__breakdown {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
	padding: 0;
}
.wkc-editorial-score-full__row {
	font-size: 13px;
	padding: 10px 0;
	border-bottom: 1px solid var(--color-border, #E2E8F0);
}
.wkc-editorial-score-full__row:last-child {
	border-bottom: none;
}
.wkc-editorial-score-full__row-header {
	display: grid;
	grid-template-columns: 24px 1fr 120px 48px;
	align-items: center;
	gap: 8px;
}
.wkc-editorial-score-full__row-icon {
	font-size: 1rem;
	line-height: 1;
}
.wkc-editorial-score-full__row-label {
	font-weight: 600;
	color: var(--color-text, #0F172A);
}
.wkc-editorial-score-full__row-bar {
	height: 8px;
	background: var(--color-bg, #F8FAFC);
	border-radius: 4px;
	overflow: hidden;
}
.wkc-editorial-score-full__row-fill {
	display: block;
	height: 100%;
	background: var(--color-primary, #0E7490);
	border-radius: 4px;
	transition: width 0.4s ease;
}
.wkc-editorial-score-full__row-num {
	text-align: right;
	font-weight: 600;
	color: var(--color-text, #0F172A);
	font-size: 12px;
	white-space: nowrap;
}
.wkc-editorial-score-full__row-note {
	font-size: 11px;
	color: var(--color-text-muted, #64748B);
	margin: 4px 0 0 32px;
	line-height: 1.5;
}

/* サブ項目チェックリスト */
.wkc-editorial-score-full__subitems {
	list-style: none;
	margin: 6px 0 0 32px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.wkc-editorial-score-full__subitem {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: var(--color-text-muted, #64748B);
}
.wkc-editorial-score-full__subitem.is-ok {
	color: var(--color-text, #0F172A);
}
.wkc-editorial-score-full__subitem-icon {
	font-size: 13px;
	width: 14px;
	flex-shrink: 0;
}
.wkc-editorial-score-full__subitem.is-ok .wkc-editorial-score-full__subitem-icon {
	color: var(--color-primary, #0E7490);
}
.wkc-editorial-score-full__subitem-pts {
	margin-left: auto;
	font-size: 11px;
	color: var(--color-text-muted, #64748B);
	white-space: nowrap;
}
.wkc-editorial-score-full__subitem-note {
	font-size: 11px;
	color: var(--color-text-muted, #64748B);
}

/* 外部公開レビュー調査ブロック */
.wkc-editorial-score-full__ext-research {
	margin: 8px 0 0 32px;
	font-size: 12px;
}
.wkc-ext-research-count {
	font-weight: 600;
	color: var(--color-text, #0F172A);
	margin: 0 0 4px;
}
.wkc-ext-note {
	font-weight: 400;
	font-size: 11px;
	color: var(--color-text-muted, #64748B);
}
.wkc-ext-summary {
	margin: 3px 0 0;
	padding: 4px 8px;
	border-radius: 4px;
	font-size: 12px;
	line-height: 1.5;
}
.wkc-ext-summary--positive {
	background: #F0FDF4;
	color: #166534;
	border-left: 3px solid #4ADE80;
}
.wkc-ext-summary--caution {
	background: #FFF7ED;
	color: #9A3412;
	border-left: 3px solid #FB923C;
}

/* 情報更新性 最終確認日 */
.wkc-editorial-score-full__freshness-date {
	font-size: 12px;
	color: var(--color-text-muted, #64748B);
	margin: 4px 0 0 32px;
}

/* 当サイト口コミ注記 */
.wkc-editorial-score-full__own-note {
	font-size: 12px;
	color: var(--color-text, #0F172A);
	margin: 4px 0 0 32px;
}
.wkc-own-note-caption {
	font-size: 11px;
	color: var(--color-text-muted, #64748B);
}

@media (max-width: 639px) {
	.wkc-editorial-score-full__row-header {
		grid-template-columns: 24px 1fr auto;
	}
	.wkc-editorial-score-full__row-bar {
		display: none;
	}
}

/* ── 編集部免責バー ── */
.wkc-editorial-disclaimer {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	background: #F0FDFA;
	border: 1px solid #A5F3FC;
	border-radius: var(--radius-md, 10px);
	padding: 12px 16px;
	font-size: 12px;
	color: var(--color-text, #0F172A);
	line-height: 1.6;
	margin-bottom: var(--space-lg, 24px);
}
.wkc-editorial-disclaimer__tag {
	display: inline-block;
	background: #0E7490;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 2px 8px;
	border-radius: 4px;
	white-space: nowrap;
	flex-shrink: 0;
	margin-top: 1px;
}

/* ── ランキングページヘッダー ── */
.wkc-ranking-header {
	text-align: center;
	padding: var(--space-xl, 32px) 0 var(--space-lg, 24px);
}
.wkc-ranking-header__title {
	font-size: clamp(1.5rem, 4vw, 2rem);
	font-weight: 800;
	color: var(--color-text, #0F172A);
	margin: 0 0 8px;
}
.wkc-ranking-header__sub {
	font-size: 0.9rem;
	color: var(--color-text-muted, #64748B);
	margin: 0;
}

/* ── ランキングフィルターバー ── */
.wkc-ranking-filter {
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--radius-md, 10px);
	padding: 16px;
	margin-bottom: var(--space-lg, 24px);
}
.wkc-ranking-filter__row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}
.wkc-ranking-filter__select {
	height: 38px;
	padding: 0 10px;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--radius-sm, 6px);
	font-size: 14px;
	color: var(--color-text, #0F172A);
	background: #fff;
	cursor: pointer;
	min-width: 140px;
}
.wkc-ranking-filter__select:focus {
	outline: 2px solid var(--color-primary, #0E7490);
	outline-offset: 1px;
}

/* ── 件数表示 ── */
.wkc-ranking-count {
	font-size: 0.875rem;
	color: var(--color-text-muted, #64748B);
	margin-bottom: var(--space-md, 16px);
}
.wkc-ranking-count span {
	background: #ECFDF5;
	color: #059669;
	font-size: 12px;
	font-weight: 600;
	padding: 2px 8px;
	border-radius: 4px;
	margin-left: 6px;
}

/* ── ランキングリスト ── */
.wkc-ranking-list {
	display: flex;
	flex-direction: column;
	gap: var(--space-md, 16px);
	margin-bottom: var(--space-2xl, 48px);
}

/* ── ランキングカード ── */
.wkc-ranking-card {
	display: grid;
	grid-template-columns: 56px 1fr auto;
	gap: var(--space-md, 16px);
	align-items: start;
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--radius-md, 10px);
	padding: var(--space-lg, 24px);
	transition: box-shadow 0.2s;
}
.wkc-ranking-card:hover {
	box-shadow: 0 4px 16px rgba(14,116,144,.10);
}
.wkc-ranking-card:nth-child(1) {
	border-color: #FCD34D;
	box-shadow: 0 0 0 1px #FCD34D;
}
.wkc-ranking-card:nth-child(2) {
	border-color: #CBD5E1;
}
.wkc-ranking-card:nth-child(3) {
	border-color: #D97706;
}

/* 順位バッジ */
.wkc-ranking-card__rank {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 4px;
}
.wkc-ranking-medal {
	font-size: 2rem;
	line-height: 1;
}
.wkc-ranking-num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 2px solid var(--color-border, #E2E8F0);
	border-radius: 50%;
	font-size: 1rem;
	font-weight: 700;
	color: var(--color-text-muted, #64748B);
}

/* 業者情報 */
.wkc-ranking-card__title-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 10px;
}
.wkc-ranking-card__name {
	font-size: 1.1rem;
	font-weight: 700;
	margin: 0;
}
.wkc-ranking-card__name a {
	color: var(--color-text, #0F172A);
	text-decoration: none;
}
.wkc-ranking-card__name a:hover {
	color: var(--color-primary, #0E7490);
	text-decoration: underline;
}

/* スコアバー */
.wkc-ranking-card__score-bar-wrap {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
}
.wkc-ranking-card__score-bar {
	flex: 1;
	height: 10px;
	background: var(--color-bg, #F8FAFC);
	border-radius: 5px;
	overflow: hidden;
}
.wkc-ranking-card__score-fill {
	height: 100%;
	border-radius: 5px;
	transition: width 0.5s ease;
}
.wkc-ranking-card__score-num {
	font-size: 1.25rem;
	font-weight: 800;
	white-space: nowrap;
}
.wkc-ranking-card__grade-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 6px;
	font-size: 1rem;
	font-weight: 800;
}

/* 統計 */
.wkc-ranking-card__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 10px;
	font-size: 13px;
	color: var(--color-text-muted, #64748B);
}
.wkc-ranking-card__stat strong {
	color: var(--color-text, #0F172A);
}

/* 外部調査数・最終調査日は補足情報として控えめに */
.wkc-ranking-card__stat--ext,
.wkc-ranking-card__stat--date {
	font-size: 11px;
	opacity: 0.8;
}

/* スコア内訳 */
.wkc-ranking-card__breakdown {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.wkc-ranking-card__breakdown-item {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: var(--color-bg, #F8FAFC);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 4px;
	padding: 3px 7px;
	font-size: 11px;
	color: var(--color-text-muted, #64748B);
	cursor: default;
}
.wkc-ranking-card__breakdown-item--filled {
	background: #F0FDFA;
	border-color: #A5F3FC;
	color: var(--color-text, #0F172A);
}
.wkc-ranking-card__breakdown-score {
	font-weight: 600;
}

/* CTA */
.wkc-ranking-card__cta {
	display: flex;
	flex-direction: column;
	gap: 8px;
	align-items: stretch;
	min-width: 110px;
}

@media (max-width: 639px) {
	.wkc-ranking-card {
		grid-template-columns: 44px 1fr;
		grid-template-rows: auto auto;
	}
	.wkc-ranking-card__cta {
		grid-column: 1 / 3;
		flex-direction: row;
	}
}

/* ── 評価基準セクション ── */
.wkc-criteria-section {
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--radius-md, 10px);
	padding: var(--space-xl, 32px);
	margin-top: var(--space-2xl, 48px);
}
.wkc-criteria-section__title {
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 8px;
}
.wkc-criteria-section__lead {
	font-size: 0.875rem;
	color: var(--color-text-muted, #64748B);
	margin-bottom: var(--space-lg, 24px);
	line-height: 1.7;
}
.wkc-criteria-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: var(--space-md, 16px);
	margin-bottom: var(--space-xl, 32px);
}
.wkc-criteria-card {
	background: var(--color-bg, #F8FAFC);
	border-radius: var(--radius-sm, 6px);
	padding: var(--space-md, 16px);
}
.wkc-criteria-card__header {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
}
.wkc-criteria-card__icon {
	font-size: 1.25rem;
	line-height: 1;
}
.wkc-criteria-card__label {
	font-weight: 600;
	font-size: 0.875rem;
	flex: 1;
}
.wkc-criteria-card__max {
	font-size: 12px;
	color: var(--color-primary, #0E7490);
	font-weight: 700;
}
.wkc-criteria-card__detail {
	font-size: 12px;
	color: var(--color-text-muted, #64748B);
	line-height: 1.6;
	margin: 0;
}

/* グレードテーブル */
.wkc-criteria-section__grade-table {
	margin-bottom: var(--space-lg, 24px);
}
.wkc-criteria-section__grade-table h3 {
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: var(--space-sm, 8px);
}
.wkc-criteria-section__grade-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}
.wkc-criteria-section__grade-table th,
.wkc-criteria-section__grade-table td {
	padding: 8px 12px;
	text-align: left;
	border-bottom: 1px solid var(--color-border, #E2E8F0);
}
.wkc-criteria-section__grade-table th {
	background: var(--color-bg, #F8FAFC);
	font-weight: 600;
	color: var(--color-text-muted, #64748B);
}

.wkc-criteria-section__disclaimer {
	font-size: 12px;
	color: var(--color-text-muted, #64748B);
	line-height: 1.7;
	margin: 0;
}

/* ════════════════════════════════════════════════════════
   P33 — 日本地図タイルマップ
   ════════════════════════════════════════════════════════ */

.wkc-section-sub {
	text-align: center;
	font-size: 0.875rem;
	color: var(--color-text-muted, #64748B);
	margin: -12px 0 20px;
}

/* ── マップラッパー ── */
.wkc-japan-map-wrap {
	position: relative;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 0 auto;
	max-width: 620px;
}

/* ── SVG 本体 ── */
.wkc-japan-map {
	display: block;
	width: 100%;
	min-width: 420px;
	height: auto;
}

/* ── タイル：非アクティブ（業者なし）── */
.wkc-map-tile rect {
	fill: var(--color-bg, #F8FAFC);
	stroke: var(--color-border, #E2E8F0);
	stroke-width: 1;
	transition: fill 0.15s, stroke 0.15s;
}
.wkc-map-tile text {
	fill: var(--color-text-muted, #94A3B8);
	font-family: inherit;
	pointer-events: none;
}

/* ── タイル：アクティブ（業者あり）── */
.wkc-map-tile--active rect {
	fill: #CCFBF1;
	stroke: #0E7490;
}
.wkc-map-tile--active text {
	fill: #0E7490;
	font-weight: 600;
}

/* ── タイル：ホバー ── */
.wkc-map-tile:hover rect,
.wkc-map-tile:focus-visible rect {
	fill: #0E7490;
	stroke: #0E7490;
}
.wkc-map-tile:hover text,
.wkc-map-tile:focus-visible text {
	fill: #fff;
}
.wkc-map-tile:focus-visible {
	outline: none;
}

/* ── 注記テキスト ── */
.wkc-map-note {
	fill: var(--color-text-muted, #94A3B8);
}

/* ── ツールチップ ── */
.wkc-map-tooltip {
	position: absolute;
	background: #0F172A;
	color: #fff;
	border-radius: 6px;
	padding: 6px 10px;
	font-size: 12px;
	line-height: 1.4;
	pointer-events: none;
	white-space: nowrap;
	z-index: 10;
	box-shadow: 0 4px 12px rgba(0,0,0,.18);
}
.wkc-map-tooltip[hidden] {
	display: none;
}
.wkc-map-tooltip__name {
	display: block;
	font-weight: 700;
}
.wkc-map-tooltip__count {
	display: block;
	color: #94A3B8;
	font-size: 11px;
}

/* ── 凡例 ── */
.wkc-map-legend {
	display: flex;
	align-items: center;
	gap: 20px;
	justify-content: center;
	margin-top: 12px;
	font-size: 12px;
	color: var(--color-text-muted, #64748B);
}
.wkc-map-legend__item {
	display: flex;
	align-items: center;
	gap: 6px;
}
.wkc-map-legend__dot {
	width: 14px;
	height: 14px;
	border-radius: 3px;
	flex-shrink: 0;
}
.wkc-map-legend__dot--active {
	background: #CCFBF1;
	border: 1px solid #0E7490;
}
.wkc-map-legend__dot--inactive {
	background: var(--color-bg, #F8FAFC);
	border: 1px solid var(--color-border, #E2E8F0);
}

/* ── 結果なし ── */
.wkc-no-results {
	text-align: center;
	padding: var(--space-2xl, 48px) var(--space-lg, 24px);
	color: var(--color-text-muted, #64748B);
}
.wkc-no-results p {
	margin-bottom: var(--space-md, 16px);
}

/* ============================================================
   P34 Redo: 編集部調査型メディア トップページ
   ============================================================ */

/* ── ヒーロー (editorial modifier) ── */
.wkc-top-hero--editorial {
	background: linear-gradient(135deg, #0F172A 0%, #0E7490 100%);
}
.wkc-hero-eyebrow-badge {
	display: inline-block;
	background: rgba(255,255,255,0.15);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 4px 12px;
	border-radius: 20px;
	border: 1px solid rgba(255,255,255,0.3);
	margin-bottom: 12px;
}
.wkc-hero-stat__note {
	display: block;
	font-size: 0.65rem;
	opacity: 0.7;
	margin-top: 2px;
}

/* ── 独自調査スコア説明グリッド ── */
.wkc-score-factors-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 16px;
	margin: var(--space-xl, 32px) 0 var(--space-lg, 24px);
}
.wkc-score-factor-card {
	display: flex;
	gap: 12px;
	background: var(--color-white, #fff);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--radius-md, 10px);
	padding: 16px;
}
.wkc-score-factor-card__icon {
	font-size: 1.5rem;
	flex-shrink: 0;
	line-height: 1;
	margin-top: 2px;
}
.wkc-score-factor-card__title {
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--color-text, #0F172A);
	margin: 0 0 6px;
}
.wkc-score-factor-card__pts {
	font-size: 0.75rem;
	font-weight: 400;
	color: var(--color-primary, #0E7490);
	margin-left: 4px;
}
.wkc-score-factor-card__desc {
	font-size: 0.8rem;
	color: var(--color-text-muted, #64748B);
	margin: 0;
	line-height: 1.5;
}
.wkc-score-explain-cta {
	text-align: center;
	margin-top: var(--space-xl, 32px);
}
.wkc-score-explain-note {
	font-size: 0.8rem;
	color: var(--color-text-muted, #64748B);
	margin-bottom: 12px;
}

/* ── 独自調査ランキングリスト ── */
.wkc-editorial-ranking-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.wkc-editorial-ranking-item {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	background: var(--color-white, #fff);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--radius-md, 10px);
	padding: 16px;
}
.wkc-editorial-ranking-item__pos {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 36px;
	flex-shrink: 0;
}
.wkc-editorial-ranking-item__pos-num {
	font-size: 1.5rem;
	font-weight: 900;
	color: var(--color-primary, #0E7490);
	line-height: 1;
}
.wkc-editorial-ranking-item__pos-label {
	font-size: 0.7rem;
	color: var(--color-text-muted, #64748B);
}
.wkc-editorial-ranking-item__card {
	flex: 1;
	min-width: 0;
}
.wkc-editorial-ranking-item__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 8px;
}
.wkc-editorial-ranking-item__name {
	font-size: 1rem;
	font-weight: 700;
	margin: 0;
	flex: 1;
	min-width: 0;
}
.wkc-editorial-ranking-item__name a {
	color: var(--color-text, #0F172A);
	text-decoration: none;
}
.wkc-editorial-ranking-item__name a:hover {
	color: var(--color-primary, #0E7490);
}
.wkc-editorial-ranking-item__score {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: 6px;
	flex-shrink: 0;
}
.wkc-editorial-ranking-item__rank {
	font-size: 1.2rem;
	font-weight: 900;
	line-height: 1;
}
.wkc-editorial-ranking-item__pts {
	font-size: 0.8rem;
	font-weight: 700;
}
.wkc-editorial-ranking-item__breakdown {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin-bottom: 10px;
}
.wkc-ranking-breakdown-item {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	background: var(--color-bg, #F8FAFC);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 4px;
	padding: 2px 6px;
	font-size: 11px;
	color: var(--color-text-muted, #64748B);
}
.wkc-ranking-breakdown-item.is-positive {
	background: #F0FDFA;
	border-color: #A5F3FC;
	color: #0E7490;
}
.wkc-editorial-ranking-item__footer {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}
.wkc-ranking-stat {
	font-size: 12px;
	color: var(--color-text-muted, #64748B);
	padding: 2px 8px;
	border-radius: 4px;
	background: var(--color-bg, #F8FAFC);
}
.wkc-ranking-stat--ext { background: #FFF7ED; color: #9A3412; }
.wkc-ranking-stat--own { background: #F0FDF4; color: #166534; }
.wkc-ranking-stat--pending { background: #F8FAFC; color: #94A3B8; }

/* ── ランキング整備中 ── */
.wkc-ranking-pending {
	text-align: center;
	padding: var(--space-2xl, 48px) var(--space-lg, 24px);
	background: var(--color-bg, #F8FAFC);
	border: 1px dashed var(--color-border, #E2E8F0);
	border-radius: var(--radius-lg, 16px);
}
.wkc-ranking-pending__icon {
	font-size: 3rem;
	margin-bottom: 12px;
}
.wkc-ranking-pending__title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-text, #0F172A);
	margin: 0 0 12px;
}
.wkc-ranking-pending__body {
	color: var(--color-text-muted, #64748B);
	margin-bottom: 24px;
	line-height: 1.8;
}
.wkc-ranking-pending__alt-label {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--color-text, #0F172A);
	margin-bottom: 8px;
}
.wkc-ranking-pending__alt-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.wkc-ranking-pending__alt-list a {
	color: var(--color-primary, #0E7490);
	text-decoration: none;
	font-size: 0.9rem;
}
.wkc-ranking-pending__alt-list a:hover {
	text-decoration: underline;
}

/* ── 外部公開レビュー 説明 ── */
.wkc-ext-explain-two-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin: var(--space-xl, 32px) 0 var(--space-lg, 24px);
}
@media (max-width: 639px) {
	.wkc-ext-explain-two-col { grid-template-columns: 1fr; }
}
.wkc-ext-explain-block {
	border-radius: var(--radius-md, 10px);
	padding: 20px;
}
.wkc-ext-explain-block--ok {
	background: #F0FDF4;
	border: 1px solid #86EFAC;
}
.wkc-ext-explain-block--ng {
	background: #FEF2F2;
	border: 1px solid #FCA5A5;
}
.wkc-ext-explain-block__title {
	font-size: 0.9rem;
	font-weight: 700;
	margin: 0 0 12px;
	color: var(--color-text, #0F172A);
}
.wkc-ext-explain-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.wkc-ext-explain-list li {
	font-size: 0.85rem;
	color: var(--color-text, #0F172A);
	padding-left: 12px;
	position: relative;
	line-height: 1.5;
}
.wkc-ext-explain-list li::before {
	content: '•';
	position: absolute;
	left: 0;
	color: var(--color-text-muted, #64748B);
}
.wkc-ext-explain-note {
	font-size: 0.82rem;
	color: var(--color-text-muted, #64748B);
	text-align: center;
	margin-top: 0;
}

/* ── 法務リンクグリッド ── */
.wkc-legal-links-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 12px;
	margin-top: var(--space-xl, 32px);
}
.wkc-legal-link-card {
	display: flex;
	flex-direction: column;
	gap: 4px;
	background: var(--color-white, #fff);
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--radius-md, 10px);
	padding: 16px 18px;
	text-decoration: none;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.wkc-legal-link-card:hover {
	border-color: var(--color-primary, #0E7490);
	box-shadow: 0 2px 8px rgba(14,116,144,0.12);
}
.wkc-legal-link-card__icon {
	font-size: 1.4rem;
	margin-bottom: 4px;
}
.wkc-legal-link-card__title {
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--color-text, #0F172A);
}
.wkc-legal-link-card:hover .wkc-legal-link-card__title {
	color: var(--color-primary, #0E7490);
}
.wkc-legal-link-card__desc {
	font-size: 0.75rem;
	color: var(--color-text-muted, #64748B);
	line-height: 1.4;
}

/* ==========================================================================
   P34.5 — LP完成化 CSS
   ========================================================================== */

/* ─── Utility Nav ─────────────────────────────────────────── */
.utility-nav {
	background: var(--color-primary, #0E7490);
	border-top: 1px solid rgba(255,255,255,0.15);
}
.utility-nav__list {
	display: flex;
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.utility-nav__list li a {
	display: block;
	padding: 8px 16px;
	color: rgba(255,255,255,0.92);
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.15s;
}
.utility-nav__list li a:hover {
	background: rgba(255,255,255,0.15);
	color: #fff;
}
@media (max-width: 767px) {
	.utility-nav__list li a {
		padding: 7px 12px;
		font-size: 12px;
	}
}

/* ─── Hero LP ─────────────────────────────────────────────── */
.wkc-hero--lp {
	background: linear-gradient(135deg, var(--color-primary-dark, #164E63) 0%, var(--color-primary, #0E7490) 60%, #0f8ba8 100%);
	color: #fff;
	padding: 56px 0 48px;
}
.wkc-hero__inner {
	max-width: 760px;
}
.wkc-hero__badge {
	margin-bottom: 16px;
}
.wkc-badge {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 20px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
}
.wkc-badge--editorial {
	background: rgba(255,255,255,0.2);
	color: #fff;
	border: 1px solid rgba(255,255,255,0.4);
}
.wkc-hero__title {
	font-size: clamp(22px, 3.5vw, 34px);
	font-weight: 800;
	line-height: 1.4;
	margin: 0 0 16px;
	color: #fff;
	word-break: keep-all;
}
.wkc-hero__br { display: none; }
@media (max-width: 600px) {
	.wkc-hero__br { display: block; }
}
.wkc-hero__lead {
	font-size: 15px;
	line-height: 1.75;
	color: rgba(255,255,255,0.9);
	margin: 0 0 28px;
}
.wkc-hero__lead strong {
	color: #fff;
	font-weight: 700;
}
.wkc-hero__cta-group {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 16px;
}
.wkc-hero__cta-group .wkc-btn--outline {
	border-color: rgba(255,255,255,0.6);
	color: #fff;
}
.wkc-hero__cta-group .wkc-btn--outline:hover {
	background: rgba(255,255,255,0.15);
	border-color: #fff;
}
.wkc-hero__cta-group .wkc-btn--ghost {
	background: transparent;
	border: 1px solid rgba(255,255,255,0.4);
	color: rgba(255,255,255,0.85);
}
.wkc-hero__cta-group .wkc-btn--ghost:hover {
	background: rgba(255,255,255,0.12);
	color: #fff;
}
.wkc-hero__note {
	font-size: 12px;
	color: rgba(255,255,255,0.7);
	margin: 0;
}
.wkc-hero__note a {
	color: rgba(255,255,255,0.85);
	text-decoration: underline;
}

/* ─── Trust stats ─────────────────────────────────────────── */
.wkc-stats-section {
	padding: 32px 0;
}
.wkc-stats-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
@media (min-width: 640px) {
	.wkc-stats-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}
.wkc-stat-card {
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--border-radius, 8px);
	padding: 20px 16px;
	text-align: center;
}
.wkc-stat-card__number {
	font-size: 32px;
	font-weight: 800;
	color: var(--color-primary, #0E7490);
	line-height: 1;
	margin-bottom: 4px;
}
.wkc-stat-card__unit {
	font-size: 14px;
	font-weight: 600;
}
.wkc-stat-card__label {
	font-size: 13px;
	font-weight: 700;
	color: var(--color-text, #0F172A);
	margin-bottom: 2px;
}
.wkc-stat-card__sub {
	font-size: 11px;
	color: var(--color-text-muted, #64748B);
}

/* ─── Section utilities ───────────────────────────────────── */
.wkc-section-header--center {
	text-align: center;
}
.wkc-section-header--center .wkc-section-lead {
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
}
.wkc-section-cta {
	text-align: center;
	margin-top: 32px;
}
.wkc-section {
	padding: 56px 0;
}
.wkc-section--light {
	background: #F8FAFC;
}

/* ─── Score factor grid ───────────────────────────────────── */
.wkc-score-factors-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 16px;
	margin-top: 32px;
}
.wkc-score-factor-card {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--border-radius, 8px);
	padding: 18px 16px;
}
.wkc-score-factor-card__icon {
	font-size: 24px;
	flex-shrink: 0;
	margin-top: 2px;
}
.wkc-score-factor-card__title {
	font-size: 14px;
	font-weight: 700;
	margin: 0 0 6px;
	color: var(--color-text, #0F172A);
}
.wkc-score-factor-card__pts {
	display: inline-block;
	background: var(--color-primary, #0E7490);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 1px 7px;
	border-radius: 10px;
	margin-left: 6px;
	vertical-align: middle;
}
.wkc-score-factor-card__desc {
	font-size: 13px;
	color: var(--color-text-light, #475569);
	margin: 0;
	line-height: 1.6;
}

/* ─── Ranking section ─────────────────────────────────────── */
.wkc-ranking-section {
	padding: 56px 0;
}
.wkc-editorial-ranking-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 24px;
}
.wkc-editorial-ranking-item {
	display: flex;
	align-items: center;
	gap: 16px;
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--border-radius, 8px);
	padding: 16px 20px;
	transition: box-shadow 0.2s;
}
.wkc-editorial-ranking-item:hover {
	box-shadow: 0 2px 12px rgba(14,116,144,0.1);
}
.wkc-ranking-item__num {
	font-size: 24px;
	font-weight: 800;
	color: var(--color-text-muted, #94A3B8);
	min-width: 32px;
	text-align: center;
}
.wkc-editorial-ranking-item:nth-child(1) .wkc-ranking-item__num { color: #F59E0B; }
.wkc-editorial-ranking-item:nth-child(2) .wkc-ranking-item__num { color: #94A3B8; }
.wkc-editorial-ranking-item:nth-child(3) .wkc-ranking-item__num { color: #92400E; }
.wkc-ranking-item__body {
	flex: 1;
	min-width: 0;
}
.wkc-ranking-item__name {
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 6px;
}
.wkc-ranking-item__name a {
	color: var(--color-text, #0F172A);
	text-decoration: none;
}
.wkc-ranking-item__name a:hover {
	color: var(--color-primary, #0E7490);
}
.wkc-ranking-item__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}
.wkc-editorial-rank {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
}
.wkc-editorial-rank--s { background: #ECFDF5; color: #065F46; }
.wkc-editorial-rank--a { background: #EFF6FF; color: #1E40AF; }
.wkc-editorial-rank--b { background: #F0FDF4; color: #166534; }
.wkc-editorial-rank--c { background: #FFFBEB; color: #92400E; }
.wkc-editorial-rank--d { background: #FEF2F2; color: #991B1B; }
.wkc-ranking-item__score {
	font-size: 13px;
	color: var(--color-text, #0F172A);
}
.wkc-ranking-item__score strong {
	color: var(--color-primary, #0E7490);
	font-weight: 700;
}
.wkc-ranking-item__ext,
.wkc-ranking-item__date {
	font-size: 12px;
	color: var(--color-text-muted, #64748B);
}
.wkc-ranking-pending {
	text-align: center;
	padding: 48px 24px;
	background: #fff;
	border: 2px dashed var(--color-border, #E2E8F0);
	border-radius: var(--border-radius-lg, 14px);
}
.wkc-ranking-pending__icon {
	font-size: 40px;
	margin-bottom: 12px;
}
.wkc-ranking-pending__title {
	font-size: 18px;
	font-weight: 700;
	color: var(--color-text, #0F172A);
	margin: 0 0 8px;
}
.wkc-ranking-pending__body {
	font-size: 14px;
	color: var(--color-text-light, #475569);
	line-height: 1.7;
	margin: 0 0 20px;
}
@media (max-width: 767px) {
	.wkc-editorial-ranking-item {
		flex-wrap: wrap;
	}
	.wkc-editorial-ranking-item .wkc-btn--sm {
		width: 100%;
		text-align: center;
	}
}

/* ─── External review explanation ─────────────────────────── */
.wkc-ext-explain-section {
	padding: 56px 0;
}
.wkc-ext-explain-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-top: 32px;
}
@media (max-width: 640px) {
	.wkc-ext-explain-grid { grid-template-columns: 1fr; }
}
.wkc-ext-explain-card {
	border: 2px solid var(--color-border, #E2E8F0);
	border-radius: var(--border-radius, 8px);
	padding: 20px;
}
.wkc-ext-explain-card--ok { border-color: #10B981; }
.wkc-ext-explain-card--ng { border-color: #EF4444; }
.wkc-ext-explain-card__head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 12px;
}
.wkc-ext-explain-card__mark {
	font-size: 20px;
}
.wkc-ext-explain-card__title {
	font-size: 15px;
	font-weight: 700;
	margin: 0;
}
.wkc-ext-explain-list {
	margin: 0;
	padding-left: 18px;
	font-size: 14px;
	line-height: 1.8;
	color: var(--color-text-light, #475569);
}

/* ─── Area section ────────────────────────────────────────── */
.wkc-area-section {
	padding: 56px 0;
}
.wkc-area-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 12px;
	margin-top: 24px;
}
.wkc-area-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 16px 12px;
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--border-radius, 8px);
	text-decoration: none;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.wkc-area-card:hover {
	border-color: var(--color-primary, #0E7490);
	box-shadow: 0 2px 8px rgba(14,116,144,0.1);
}
.wkc-area-card__name {
	font-size: 14px;
	font-weight: 700;
	color: var(--color-text, #0F172A);
}
.wkc-area-card__count {
	font-size: 12px;
	color: var(--color-primary, #0E7490);
	font-weight: 600;
}
.wkc-area-pending {
	grid-column: 1 / -1;
	text-align: center;
	padding: 32px;
	font-size: 14px;
	color: var(--color-text-light, #475569);
}
.wkc-wards-section {
	margin-top: 32px;
}
.wkc-wards-title {
	font-size: 15px;
	font-weight: 700;
	color: var(--color-text, #0F172A);
	margin: 0 0 12px;
}
.wkc-wards-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.wkc-ward-link {
	display: inline-block;
	padding: 5px 12px;
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: 20px;
	font-size: 13px;
	color: var(--color-primary, #0E7490);
	text-decoration: none;
	transition: background 0.15s, border-color 0.15s;
}
a.wkc-ward-link:hover {
	background: var(--color-primary, #0E7490);
	color: #fff;
	border-color: var(--color-primary, #0E7490);
}
span.wkc-ward-link {
	color: var(--color-text-muted, #94A3B8);
	border-color: #E2E8F0;
	cursor: default;
}
.wkc-ward-link--pending {
	opacity: 0.5;
}

/* ─── Trouble section ─────────────────────────────────────── */
.wkc-trouble-section {
	padding: 56px 0;
}
.wkc-trouble-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
	gap: 12px;
	margin-top: 24px;
}
.wkc-trouble-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 20px 12px;
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--border-radius, 8px);
	text-decoration: none;
	position: relative;
	transition: border-color 0.2s, box-shadow 0.2s;
}
a.wkc-trouble-card:hover {
	border-color: var(--color-primary, #0E7490);
	box-shadow: 0 2px 8px rgba(14,116,144,0.1);
}
.wkc-trouble-card--pending {
	opacity: 0.65;
	cursor: default;
}
.wkc-trouble-card__icon {
	font-size: 28px;
}
.wkc-trouble-card__label {
	font-size: 13px;
	font-weight: 600;
	color: var(--color-text, #0F172A);
	text-align: center;
}
.wkc-trouble-card__badge {
	position: absolute;
	top: 6px;
	right: 6px;
	background: #F1F5F9;
	color: #64748B;
	font-size: 10px;
	padding: 1px 6px;
	border-radius: 8px;
}

/* ─── Transparency section ────────────────────────────────── */
.wkc-transparency-section {
	padding: 56px 0;
}
.wkc-transparency-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 16px;
	margin-top: 32px;
}
.wkc-transparency-card {
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-radius: var(--border-radius, 8px);
	padding: 20px 18px;
}
.wkc-transparency-card__icon {
	font-size: 24px;
	display: block;
	margin-bottom: 10px;
}
.wkc-transparency-card__title {
	font-size: 14px;
	font-weight: 700;
	color: var(--color-text, #0F172A);
	margin: 0 0 6px;
}
.wkc-transparency-card__desc {
	font-size: 13px;
	color: var(--color-text-light, #475569);
	line-height: 1.6;
	margin: 0;
}
.wkc-transparency-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	margin-top: 32px;
}

/* ─── Footer 4-column ─────────────────────────────────────── */
.footer-main {
	background: var(--color-primary-dark, #164E63);
	color: rgba(255,255,255,0.9);
	padding: 48px 0 32px;
}
.footer-cols {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: 32px;
}
@media (max-width: 900px) {
	.footer-cols {
		grid-template-columns: 1fr 1fr;
	}
}
@media (max-width: 540px) {
	.footer-cols {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}
.footer-col--about {
	grid-row: span 1;
}
.footer-logo-link {
	text-decoration: none;
	display: inline-block;
	margin-bottom: 10px;
}
.footer-site-name {
	font-size: 16px;
	font-weight: 800;
	color: #fff;
}
.footer-about-text {
	font-size: 13px;
	line-height: 1.7;
	color: rgba(255,255,255,0.7);
	margin: 0;
}
.footer-col__heading {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.5);
	margin: 0 0 12px;
}
.footer-col__links {
	list-style: none;
	margin: 0;
	padding: 0;
}
.footer-col__links li {
	margin-bottom: 8px;
}
.footer-col__links a {
	font-size: 13px;
	color: rgba(255,255,255,0.8);
	text-decoration: none;
	transition: color 0.15s;
}
.footer-col__links a:hover {
	color: #fff;
}
.footer-bottom {
	background: #0A3547;
	padding: 14px 0;
}
.footer-bottom .site-info {
	font-size: 12px;
	color: rgba(255,255,255,0.5);
	margin: 0;
	text-align: center;
}
.footer-bottom .site-info a {
	color: rgba(255,255,255,0.7);
	text-decoration: none;
}
.footer-transparency {
	background: #F1F5F9;
	padding: 10px 0;
	border-bottom: 1px solid #E2E8F0;
}
.footer-transparency__text {
	font-size: 12px;
	color: #475569;
	margin: 0;
	line-height: 1.6;
}
.footer-transparency__link {
	color: var(--color-primary, #0E7490);
	margin-left: 8px;
	text-decoration: none;
}
.footer-transparency__link:hover {
	text-decoration: underline;
}

/* ─── Review form additions ───────────────────────────────── */
.wkc-review-consent {
	margin: 20px 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.wkc-review-consent__item {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 14px;
	color: var(--color-text, #0F172A);
	cursor: pointer;
}
.wkc-review-consent__item input[type="checkbox"] {
	flex-shrink: 0;
	margin-top: 2px;
	width: 16px;
	height: 16px;
	accent-color: var(--color-primary, #0E7490);
}
.wkc-review-consent__item a {
	color: var(--color-primary, #0E7490);
}
.wkc-review-policy-links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--color-border, #E2E8F0);
}
.wkc-review-policy-links a {
	font-size: 13px;
	color: var(--color-primary, #0E7490);
	text-decoration: none;
}
.wkc-review-policy-links a:hover {
	text-decoration: underline;
}
.wkc-guidelines-link-row {
	margin: 8px 0 0;
	font-size: 13px;
}
.wkc-guidelines-link-row a {
	color: var(--color-primary, #0E7490);
}

/* ─── Top LP wrapper (remove .site-main padding) ──────────── */
.wkc-top-lp {
	padding: 0;
}

/* ─── Section header shared ───────────────────────────────── */
.wkc-section-header {
	margin-bottom: 8px;
}
.wkc-section-title {
	font-size: clamp(20px, 2.5vw, 28px);
	font-weight: 800;
	color: var(--color-text, #0F172A);
	margin: 0 0 10px;
}
.wkc-section-lead {
	font-size: 15px;
	color: var(--color-text-light, #475569);
	line-height: 1.7;
	margin: 0;
}

/* ─── Checklist section ───────────────────────────────────── */
.wkc-checklist-section {
	padding: 56px 0;
}
.wkc-checklist-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	margin-top: 32px;
}
@media (max-width: 640px) {
	.wkc-checklist-grid {
		grid-template-columns: 1fr;
	}
}
.wkc-checklist-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	background: #fff;
	border: 1px solid var(--color-border, #E2E8F0);
	border-left: 4px solid var(--color-primary, #0E7490);
	border-radius: 0 var(--border-radius, 8px) var(--border-radius, 8px) 0;
	padding: 14px 16px;
}
.wkc-checklist-item__check {
	flex-shrink: 0;
	font-size: 16px;
	font-weight: 900;
	color: var(--color-primary, #0E7490);
	margin-top: 1px;
}
.wkc-checklist-item__text {
	font-size: 14px;
	line-height: 1.6;
	color: var(--color-text, #0F172A);
}

/* ── Stats: 整備中フォールバック ── */
.wkc-stats-pending {
	text-align: center;
	padding: 40px 24px;
	background: var(--color-white, #fff);
	border: 1px dashed var(--color-border, #E2E8F0);
	border-radius: var(--border-radius, 8px);
}
.wkc-stats-pending__title {
	font-size: 16px;
	font-weight: 700;
	color: var(--color-primary, #0E7490);
	margin-bottom: 8px;
}
.wkc-stats-pending__body {
	font-size: 14px;
	color: var(--color-text-light, #475569);
}

/* ── P37C: Dランク注意カード ── */
.wkc-d-rank-notice {
	background: #FEF2F2;
	border: 1.5px solid #FCA5A5;
	border-radius: var(--border-radius, 8px);
	padding: 20px 24px;
	margin: 24px 0;
}
.wkc-d-rank-notice__header {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
}
.wkc-d-rank-notice__icon {
	font-size: 20px;
	color: #DC2626;
	flex-shrink: 0;
}
.wkc-d-rank-notice__title {
	font-size: 16px;
	font-weight: 700;
	color: #991B1B;
	margin: 0;
}
.wkc-d-rank-notice__body {
	font-size: 14px;
	color: #7F1D1D;
	line-height: 1.7;
	margin-bottom: 12px;
}
.wkc-d-rank-notice__list {
	font-size: 14px;
	color: #7F1D1D;
	padding-left: 20px;
	margin-bottom: 12px;
}
.wkc-d-rank-notice__list li {
	margin-bottom: 4px;
	line-height: 1.6;
}
.wkc-d-rank-notice__cta {
	font-size: 13px;
	color: #6B7280;
	border-top: 1px solid #FECACA;
	padding-top: 10px;
	margin: 0;
}
.wkc-d-rank-notice__cta a {
	color: #DC2626;
}

/* ── P37C: 口コミ促進CTAボックス ── */
.wkc-review-cta-box {
	background: #F0F9FF;
	border: 1.5px solid #BAE6FD;
	border-radius: var(--border-radius, 8px);
	padding: 24px;
	margin: 16px 0 24px;
}
.wkc-review-cta-box__title {
	font-size: 18px;
	font-weight: 700;
	color: #0C4A6E;
	margin: 0 0 12px;
}
.wkc-review-cta-box__body {
	font-size: 14px;
	color: #0F172A;
	line-height: 1.7;
	margin-bottom: 14px;
}
.wkc-review-cta-box__points {
	font-size: 14px;
	color: #0F172A;
	padding-left: 20px;
	margin-bottom: 14px;
}
.wkc-review-cta-box__points li {
	margin-bottom: 6px;
	line-height: 1.6;
}
.wkc-review-cta-box__links {
	font-size: 13px;
	color: #475569;
	margin: 0;
}
.wkc-review-cta-box__links a {
	color: #0369A1;
}

/* ── P37C: 業者概要セクション ── */
.wkc-contractor-about-body {
	font-size: 14px;
	color: var(--color-text, #0F172A);
	line-height: 1.8;
}
.wkc-contractor-about-body p {
	margin-bottom: 12px;
}

/* ── P41: ランク絞り込みピル ── */
.wkc-qf__section--rank { margin-top: 16px; }
.wkc-qf__rank-note { font-size: 12px; color: var(--color-text-muted, #64748B); margin-top: 8px; }
.wkc-qf-rank-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.wkc-rank-pill {
	display: inline-flex; align-items: center; padding: 6px 14px;
	border-radius: 20px; font-size: 13px; font-weight: 600;
	text-decoration: none; border: 1.5px solid transparent;
	transition: opacity .15s, transform .1s;
}
.wkc-rank-pill:hover { opacity: .85; transform: translateY(-1px); }
.wkc-rank-s  { background: #F0FDFA; color: #0E7490; border-color: #67E8F9; }
.wkc-rank-a  { background: #ECFDF5; color: #059669; border-color: #6EE7B7; }
.wkc-rank-b  { background: #F8FAFC; color: #475569; border-color: #CBD5E1; }
.wkc-rank-c  { background: #FFF7ED; color: #92400E; border-color: #FCD34D; }
.wkc-rank-pill--active { box-shadow: inset 0 0 0 2px currentColor; }

/* ── P41: 4都県エリアグリッド ── */
.wkc-pref-summary-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 16px;
	margin-top: 16px;
}
.wkc-pref-card {
	background: #fff;
	border: 1px solid var(--border-color, #E2E8F0);
	border-radius: 10px;
	padding: 16px;
}
.wkc-pref-card__header {
	display: flex; align-items: center; gap: 8px; margin-bottom: 12px;
}
.wkc-pref-card__name {
	font-size: 16px; font-weight: 700;
	color: var(--color-primary, #0369A1); text-decoration: none;
}
.wkc-pref-card__name:hover { text-decoration: underline; }
.wkc-pref-card__count {
	font-size: 12px; color: #fff; background: var(--color-primary, #0369A1);
	padding: 2px 8px; border-radius: 10px;
}
.wkc-pref-card__cities {
	display: flex; flex-wrap: wrap; gap: 6px;
}
.wkc-pref-city-link {
	font-size: 12px; padding: 3px 8px;
	border: 1px solid var(--border-color, #E2E8F0);
	border-radius: 4px; color: var(--color-text, #0F172A);
	text-decoration: none; background: #F8FAFC;
}
.wkc-pref-city-link:hover { background: #E0F2FE; border-color: #7DD3FC; }

/* ── P41: 確認状況サマリーパネル ── */
.wkc-info-confirm-panel__note {
	font-size: 14px; color: #0F172A; margin-bottom: 14px;
}
.wkc-info-confirm-grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
}
@media (max-width: 600px) {
	.wkc-info-confirm-grid { grid-template-columns: 1fr; }
}
.wkc-info-confirm-block {
	padding: 14px 16px; border-radius: 8px;
}
.wkc-info-confirm-block--ok {
	background: #F0FDF4; border: 1px solid #86EFAC;
}
.wkc-info-confirm-block--ng {
	background: #FFF7ED; border: 1px solid #FCD34D;
}
.wkc-info-confirm-block__head {
	font-size: 13px; font-weight: 700; margin: 0 0 8px;
}
.wkc-info-confirm-block--ok .wkc-info-confirm-block__head { color: #166534; }
.wkc-info-confirm-block--ng .wkc-info-confirm-block__head { color: #92400E; }
.wkc-info-confirm-list {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-wrap: wrap; gap: 4px 10px;
}
.wkc-info-confirm-list li {
	font-size: 12px; color: #374151;
}
.wkc-info-confirm-list li::before { content: '・'; }

/* ── P41: 指定情報確認元リンク ── */
.wkc-desig-source-link {
	display: inline-block; margin-top: 4px;
	font-size: 12px; color: #0369A1; text-decoration: underline;
}

/* ── P41: taxonomy-municipality パフォーマンス改善用 スケルトン非表示 ── */
.wkc-karte-trouble-loading { display: none; }

