@charset "UTF-8";
/* ============================================================
   固定ページ固有スタイル（サービス4ページ・サービス一覧・
   対応エリア・会社概要・FAQ・お問い合わせ・完了ページ）
   共通クラスは main.css 側。ここでは再定義しない。
   ============================================================ */

/* ---------- サービスページ: 悩み共感 ---------- */
.kj-svc-worries__list {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	display: grid;
	gap: 10px;
}

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

.kj-svc-worries__item {
	position: relative;
	padding: 12px 14px 12px 40px;
	background: var(--kj-bg);
	border: 1px solid var(--kj-border);
	border-radius: var(--kj-radius);
	font-size: 15px;
}

.kj-svc-worries__item::before {
	content: "";
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
	width: 8px;
	height: 14px;
	border-right: 3px solid var(--kj-blue-500);
	border-bottom: 3px solid var(--kj-blue-500);
}

.kj-svc-worries__text {
	margin-bottom: 0;
}

/* ---------- サービスページ: 特徴グリッド ---------- */
.kj-svc-features__grid {
	display: grid;
	gap: 16px;
	margin-bottom: 8px;
}

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

.kj-svc-feature {
	padding: 18px 20px;
	background: var(--kj-white);
	border: 1px solid var(--kj-border);
	border-radius: var(--kj-radius);
}

.kj-svc-feature__title {
	margin: 0 0 6px;
	padding-left: 12px;
	border-left: 4px solid var(--kj-blue-500);
	color: var(--kj-blue-900);
	font-size: 16px;
}

.kj-svc-feature__text {
	margin: 0;
	font-size: 14px;
}

/* ---------- サービスページ: 対応工事リスト ---------- */
.kj-svc-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}

.kj-svc-menu li {
	position: relative;
	padding-left: 22px;
}

.kj-svc-menu li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 0.65em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--kj-blue-500);
}

/* ---------- 料金表パーツ ---------- */
.kj-svc-price-summary {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 32px;
	margin-bottom: 16px;
}

.kj-svc-price-summary__item {
	font-size: 14px;
	color: var(--kj-muted);
}

.kj-svc-price-summary__value {
	display: block;
	color: var(--kj-blue-900);
	font-size: 26px;
	font-weight: 700;
}

/* モバイルではセルを縦積みにして横はみ出しを防ぐ */
@media (max-width: 599px) {
	.kj-svc-price-scroll thead {
		display: none;
	}

	.kj-svc-price-scroll tr,
	.kj-svc-price-scroll th,
	.kj-svc-price-scroll td {
		display: block;
		width: 100%;
	}

	.kj-svc-price-scroll tr {
		margin-bottom: 12px;
	}

	.kj-svc-price-scroll th {
		border-bottom: 0;
	}

	.kj-svc-price-scroll td {
		border-top: 0;
	}
}

@media (min-width: 600px) {
	.kj-svc-price-scroll {
		overflow-x: auto;
	}
}

/* ---------- 施工の流れ ---------- */
.kj-flow-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 14px;
	counter-reset: kj-flow;
}

@media (min-width: 1024px) {
	.kj-flow-steps {
		grid-template-columns: repeat(5, 1fr);
	}
}

.kj-flow-step {
	position: relative;
	padding: 44px 16px 16px;
	background: var(--kj-white);
	border: 1px solid var(--kj-border);
	border-radius: var(--kj-radius);
}

.kj-flow-step__num {
	position: absolute;
	top: 12px;
	left: 16px;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--kj-blue-700);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	line-height: 26px;
	text-align: center;
}

.kj-flow-step__title {
	margin: 0 0 6px;
	color: var(--kj-blue-900);
	font-size: 15px;
}

.kj-flow-step__text {
	margin: 0;
	font-size: 13px;
	color: var(--kj-muted);
}

/* ---------- 対応メーカー ---------- */
.kj-makers-list {
	list-style: none;
	margin: 0 0 8px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.kj-makers-item {
	padding: 8px 20px;
	background: var(--kj-white);
	border: 1px solid var(--kj-border);
	border-radius: 999px;
	color: var(--kj-blue-900);
	font-size: 15px;
	font-weight: 700;
}

.kj-makers-note {
	margin: 0;
	font-size: 13px;
	color: var(--kj-muted);
}

/* ---------- サービス一覧ページのカード ---------- */
.kj-svc-grid {
	display: grid;
	gap: 20px;
}

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

.kj-svc-card__body {
	padding: 20px 22px;
}

.kj-svc-card__title {
	margin: 0 0 4px;
	color: var(--kj-blue-900);
	font-size: 19px;
}

.kj-svc-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 10px;
}

.kj-svc-card__desc {
	margin: 0 0 12px;
	font-size: 14px;
}

.kj-svc-card__more {
	font-weight: 700;
}

.kj-svc-index__note {
	margin-top: 20px;
	font-size: 13px;
	color: var(--kj-muted);
}

/* ---------- 対応エリア ---------- */
.kj-area-kawasaki__intro {
	margin-bottom: 20px;
}

.kj-area-wards {
	list-style: none;
	margin: 0 0 8px;
	padding: 0;
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(2, 1fr);
}

@media (min-width: 768px) {
	.kj-area-wards {
		grid-template-columns: repeat(4, 1fr);
	}
}

.kj-area-ward {
	padding: 12px 14px;
	background: var(--kj-white);
	border: 1px solid var(--kj-border);
	border-radius: var(--kj-radius);
}

.kj-area-ward__title {
	margin: 0;
	color: var(--kj-blue-900);
	font-size: 15px;
}

.kj-area-ward__link {
	display: inline-block;
	margin-top: 4px;
	font-size: 12px;
}

.kj-area-other__heading {
	margin-top: 32px;
}

.kj-area-access__box {
	padding: 20px 22px;
	background: var(--kj-bg);
	border: 1px solid var(--kj-border);
	border-radius: var(--kj-radius);
}

.kj-area-access__name {
	margin: 0 0 4px;
	font-weight: 700;
	color: var(--kj-blue-900);
}

.kj-area-access__address,
.kj-area-access__tel,
.kj-area-access__hours {
	margin: 0 0 4px;
	font-size: 14px;
}

/* ---------- 会社概要 ---------- */
.kj-company-greeting__inner {
	display: grid;
	gap: 28px;
}

@media (min-width: 768px) {
	.kj-company-greeting__inner {
		grid-template-columns: 280px 1fr;
		align-items: start;
	}

	.kj-company-greeting__inner--nophoto {
		grid-template-columns: 1fr;
		max-width: 800px;
		margin: 0 auto;
	}
}

.kj-company-greeting__photo {
	margin: 0;
}

.kj-company-greeting__photo img {
	border-radius: var(--kj-radius);
}

.kj-company-greeting__name {
	margin: 24px 0 0;
	text-align: right;
	font-size: 18px;
	font-weight: 700;
	color: var(--kj-blue-900);
}

.kj-company-greeting__role {
	display: block;
	font-size: 12px;
	font-weight: 400;
	color: var(--kj-muted);
}

.kj-company-info__table th {
	width: 30%;
	min-width: 110px;
}

/* ---------- FAQページ ---------- */
.kj-faqpage__services {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

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

.kj-faqpage__service a {
	display: block;
	padding: 14px 16px;
	background: var(--kj-white);
	border: 1px solid var(--kj-border);
	border-radius: var(--kj-radius);
	color: var(--kj-blue-900);
	font-weight: 700;
	text-decoration: none;
}

.kj-faqpage__service a:hover {
	border-color: var(--kj-blue-500);
	color: var(--kj-blue-700);
}

/* ---------- お問い合わせ ---------- */
.kj-contact-ways__grid {
	display: grid;
	gap: 20px;
}

@media (min-width: 768px) {
	.kj-contact-ways__grid {
		grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	}
}

.kj-contact-way {
	padding: 28px 24px;
	border: 1px solid var(--kj-border);
	border-radius: var(--kj-radius);
	background: var(--kj-white);
	text-align: center;
}

.kj-contact-way--tel {
	border-top: 4px solid var(--kj-blue-700);
}

.kj-contact-way--line {
	border-top: 4px solid var(--kj-line-green);
}

.kj-contact-way__title {
	margin: 0 0 8px;
	color: var(--kj-blue-900);
	font-size: 18px;
}

.kj-contact-way__text {
	font-size: 14px;
	color: var(--kj-muted);
}

.kj-contact-way__tel {
	margin: 0 0 4px;
}

.kj-contact-way__tel a {
	font-size: 30px;
	font-weight: 700;
	color: var(--kj-blue-900);
	text-decoration: none;
}

.kj-contact-way__tel a::before {
	content: "\260E";
	margin-right: 6px;
	font-size: 24px;
}

.kj-contact-way__hours {
	margin: 0;
	font-size: 13px;
	color: var(--kj-muted);
}

.kj-contact-flow__steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 14px;
	counter-reset: kj-cflow;
}

@media (min-width: 768px) {
	.kj-contact-flow__steps {
		grid-template-columns: repeat(3, 1fr);
	}
}

.kj-contact-flow__step {
	counter-increment: kj-cflow;
	position: relative;
	padding: 48px 18px 18px;
	background: var(--kj-white);
	border: 1px solid var(--kj-border);
	border-radius: var(--kj-radius);
}

.kj-contact-flow__step::before {
	content: counter(kj-cflow);
	position: absolute;
	top: 14px;
	left: 18px;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--kj-blue-700);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	line-height: 26px;
	text-align: center;
}

.kj-contact-flow__title {
	margin: 0 0 6px;
	color: var(--kj-blue-900);
	font-size: 16px;
}

.kj-contact-flow__text {
	margin: 0;
	font-size: 14px;
	color: var(--kj-muted);
}

/* ---------- お問い合わせ完了 ---------- */
.kj-thanks__lead {
	font-size: 17px;
}
