@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* =========================================================
   工場ナビ 独自スタイル（factory / prefecture テンプレート）
   ========================================================= */
:root {
	--kn-navy: #1c2b3a;
	--kn-steel: #45607a;
	--kn-orange: #e07a3f;
	--kn-bg: #f6f7f5;
	--kn-line: #e1e4e1;

	/* --- 以下はデザイン刷新（2026-07-30）で追加したトークン --- */
	/* 文字色の階層。見出し・本文・補助情報が同じ濃さだと「手作り感」が出るため3段に分ける */
	--kn-ink: #16222f;
	--kn-ink-2: #3f5163;
	--kn-ink-3: #6b7b8a;

	/* アクセント。オレンジ1色だと反復が単調になるので濃淡と、藍のサブアクセントを持つ */
	--kn-orange-deep: #c25f26;
	--kn-orange-soft: #fdf1e6;
	--kn-indigo: #2f5d86;

	--kn-line-soft: #edefec;
	--kn-surface: #fff;
	--kn-surface-2: #fafbf9;

	--kn-radius-s: 8px;
	--kn-radius-m: 12px;
	--kn-radius-l: 18px;

	/* 影は2枚重ね（近くの締まりと遠くの広がり）にすると平板に見えない */
	--kn-shadow-1: 0 1px 2px rgba(22, 34, 47, .05), 0 1px 3px rgba(22, 34, 47, .04);
	--kn-shadow-2: 0 2px 4px rgba(22, 34, 47, .05), 0 8px 20px rgba(22, 34, 47, .07);
	--kn-shadow-3: 0 4px 8px rgba(22, 34, 47, .06), 0 16px 36px rgba(22, 34, 47, .11);
}

/* ---------------------------------------------------------
   業種の色ファミリー（9系統）
   ---------------------------------------------------------
   27業種すべてに固有色を与えると一覧が虹色になって安っぽく見えるため、
   色は系統単位に留め、アイコンだけを業種ごとに変えている。
   （割り当て表は functions.php の kn_industry_visual_map()）
   tint = 面の色 / ink = アイコンと文字の色 / edge = 境界線
--------------------------------------------------------- */
[data-family="food"]     { --kn-tint: #fdf2e4; --kn-tint-2: #f7e3c9; --kn-fink: #a9631c; }
[data-family="chem"]     { --kn-tint: #e7f2f1; --kn-tint-2: #cfe4e2; --kn-fink: #22706a; }
[data-family="machine"]  { --kn-tint: #eaeff6; --kn-tint-2: #d3dfee; --kn-fink: #315d8a; }
[data-family="metal"]    { --kn-tint: #eceff1; --kn-tint-2: #d8dee2; --kn-fink: #4c5b67; }
[data-family="craft"]    { --kn-tint: #f9edef; --kn-tint-2: #eed7dc; --kn-fink: #9c4d61; }
[data-family="move"]     { --kn-tint: #ebecf7; --kn-tint-2: #d7d9ee; --kn-fink: #464f96; }
[data-family="commerce"] { --kn-tint: #f2ecf7; --kn-tint-2: #e0d5ec; --kn-fink: #6a4a8f; }
[data-family="build"]    { --kn-tint: #faf3e0; --kn-tint-2: #efe2bf; --kn-fink: #8d6c15; }
[data-family="nature"]   { --kn-tint: #eaf3e6; --kn-tint-2: #d4e6cd; --kn-fink: #4a7434; }
[data-family="default"]  { --kn-tint: #eef0ee; --kn-tint-2: #dcdfda; --kn-fink: #5c6b62; }

.kn-icon {
	display: block;
	width: 100%;
	height: 100%;
}

.p-factoryArchive__header,
.p-prefectureArchive__header {
	margin-bottom: 24px;
}

.p-factoryArchive__title,
.p-prefectureArchive__title {
	font-size: 1.8rem;
	font-weight: 700;
	color: var(--kn-navy);
	margin: 4px 0 8px;
}

.p-prefectureArchive__breadcrumb a {
	color: var(--kn-steel);
	font-size: 0.85rem;
	text-decoration: none;
}

.p-factoryArchive__lead,
.p-prefectureArchive__count {
	color: var(--kn-steel);
	font-size: 0.95rem;
}

.p-prefectureArchive__filter {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 16px 0;
	padding: 12px 16px;
	background: var(--kn-bg);
	border-radius: 8px;
}

.p-prefectureArchive__filter select {
	padding: 6px 10px;
	border: 1px solid var(--kn-line);
	border-radius: 6px;
	background: #fff;
}

.p-prefectureArchive__filterNote {
	margin: 4px 0 16px;
	font-size: 0.85rem;
}

.p-prefectureArchive__filterNote a {
	color: var(--kn-orange);
}

.p-factoryArchive__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 20px;
	margin-top: 8px;
}

.p-factoryCard {
	background: #fff;
	border: 1px solid var(--kn-line);
	border-radius: 10px;
	overflow: hidden;
	transition: box-shadow .2s ease, transform .2s ease;
}

.p-factoryCard:hover {
	box-shadow: 0 6px 16px rgba(28, 43, 58, 0.12);
	transform: translateY(-2px);
}

.p-factoryCard__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.p-factoryCard__body {
	padding: 16px;
}

.p-factoryCard__badge {
	display: inline-block;
	font-size: 0.7rem;
	padding: 2px 8px;
	border-radius: 999px;
	margin-bottom: 8px;
}

.p-factoryCard__badge--unverified {
	background: #fdf1e6;
	color: var(--kn-orange);
}

/* 自治体・観光協会の情報のみで、企業公式の裏取りが取れていないもの */
.p-factoryCard__badge--municipal {
	background: #eef3f8;
	color: #4a6b8a;
}

.p-factoryDetail__confidenceNote {
	margin-top: 8px;
	padding: 10px 12px;
	background: #eef3f8;
	border-radius: 6px;
	font-size: 0.85rem;
	color: #4a6b8a;
	line-height: 1.7;
}

.p-factoryCard__title {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--kn-navy);
	margin: 0 0 6px;
	line-height: 1.4;
}

.p-factoryCard__company {
	font-size: 0.8rem;
	color: var(--kn-steel);
	margin: 0 0 4px;
}

/* ---- 検索結果 ---- */
.p-searchOther {
	margin: 28px 0 0;
	padding: 18px 20px;
	background: var(--kn-bg);
	border-radius: 8px;
}

.p-searchOther__title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--kn-navy);
	margin: 0 0 10px;
}

.p-searchOther__list {
	margin: 0;
	padding-left: 1.2em;
}

.p-searchHint {
	margin-top: 20px;
	padding: 18px 20px;
	background: var(--kn-bg);
	border-radius: 8px;
	font-size: 0.92rem;
}

.p-searchHint ul {
	margin: 8px 0 0;
	padding-left: 1.2em;
}

/* ---- トップ：検索窓 ---- */
.p-heroSearch {
	display: flex;
	gap: 8px;
	max-width: 640px;
	margin: 22px auto 0;
}

.p-heroSearch__input {
	flex: 1;
	min-width: 0;
	padding: 13px 14px;
	border: none;
	border-radius: 8px;
	font-size: 0.95rem;
}

.p-heroSearch__button {
	flex: none;
	padding: 13px 24px;
	border: none;
	border-radius: 8px;
	background: var(--kn-orange);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
}

/* ---- トップ：目的から探す ---- */
.p-homeSection__lead {
	margin: -6px 0 20px;
	color: var(--kn-steel);
	font-size: 0.92rem;
}

/* サイドバーありのPCで本文幅が約810pxなので、4枚が1行に収まる下限にする */
.p-purposeCards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(178px, 1fr));
	gap: 14px;
}

.p-purposeCards__card {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 22px 20px;
	border-radius: 12px;
	background: var(--kn-bg);
	border: 2px solid transparent;
	text-decoration: none;
	color: var(--kn-navy);
	transition: transform .15s ease, border-color .15s ease;
}

.p-purposeCards__card:hover {
	transform: translateY(-3px);
	border-color: var(--kn-orange);
}

.p-purposeCards__card--kids   { background: #fff3e9; }
.p-purposeCards__card--free   { background: #e9f5ec; }
.p-purposeCards__card--outlet { background: #fdf0f3; }
.p-purposeCards__card--study  { background: #eaf1f8; }

.p-purposeCards__name {
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.4;
}

.p-purposeCards__count {
	font-size: 1.9rem;
	font-weight: 700;
	line-height: 1.1;
	color: var(--kn-orange);
}

.p-purposeCards__count small {
	font-size: 0.85rem;
	margin-left: 3px;
	color: var(--kn-steel);
}

.p-purposeCards__desc {
	font-size: 0.85rem;
	color: var(--kn-steel);
	line-height: 1.6;
}

@media (max-width: 600px) {
	.p-heroSearch {
		flex-direction: column;
	}
	.p-purposeCards {
		grid-template-columns: 1fr 1fr;
		gap: 12px;
	}
	.p-purposeCards__card {
		padding: 16px 14px;
	}
	.p-purposeCards__name {
		font-size: 0.92rem;
	}
	.p-purposeCards__count {
		font-size: 1.5rem;
	}
	.p-purposeCards__desc {
		display: none;
	}
}

/* ---- 会社名から探す ---- */
.p-companySearch {
	display: flex;
	gap: 8px;
	margin: 0 0 20px;
}

.p-companySearch__input {
	flex: 1;
	padding: 10px 12px;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 0.95rem;
}

.p-companySearch__button {
	padding: 10px 20px;
	border: none;
	border-radius: 6px;
	background: var(--kn-navy);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
}

.p-companyGroups {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 20px;
}

.p-companyGroups__item {
	display: inline-block;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--kn-bg);
	color: var(--kn-navy);
	font-size: 0.85rem;
	text-decoration: none;
}

.p-companyGroups__item.is-current {
	background: var(--kn-navy);
	color: #fff;
}

.p-companyGroups__count {
	font-size: 0.72rem;
	opacity: 0.75;
	margin-left: 4px;
}

.p-companyList {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 2px 16px;
}

.p-companyList__item {
	border-bottom: 1px solid #eee;
}

.p-companyList__link {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 8px;
	padding: 9px 2px;
	text-decoration: none;
	color: var(--kn-navy);
}

.p-companyList__count {
	flex: none;
	font-size: 0.78rem;
	color: var(--kn-steel);
}

.p-companyPager {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.p-companyPager__item {
	display: inline-block;
	min-width: 34px;
	text-align: center;
	padding: 6px 8px;
	border-radius: 6px;
	background: var(--kn-bg);
	color: var(--kn-navy);
	text-decoration: none;
	font-size: 0.85rem;
}

.p-companyPager__item.is-current {
	background: var(--kn-navy);
	color: #fff;
}

/* ---- 周辺の工場 ---- */
.p-nearbyFactories__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.p-nearbyFactories__item {
	padding: 10px 0;
	border-bottom: 1px solid #eee;
}

.p-nearbyFactories__item:last-child {
	border-bottom: none;
}

.p-nearbyFactories__link {
	text-decoration: none;
	display: inline-block;
}

.p-nearbyFactories__name {
	color: var(--kn-navy);
	font-weight: 700;
	margin-right: 8px;
}

.p-nearbyFactories__company {
	color: var(--kn-steel);
	font-size: 0.85rem;
}

.p-nearbyFactories__meta {
	display: block;
	font-size: 0.85rem;
	color: var(--kn-steel);
	margin-top: 2px;
}

.p-nearbyFactories__dist {
	margin-left: 4px;
}

.p-nearbyFactories__tag {
	display: inline-block;
	font-size: 0.72rem;
	padding: 2px 8px;
	border-radius: 999px;
	background: #e7f3ea;
	color: #2f7a44;
	margin-left: 6px;
}

.p-factoryCard__location,
.p-factoryCard__industry {
	font-size: 0.85rem;
	color: var(--kn-steel);
	margin: 0 0 4px;
}

.p-factoryCard__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	margin: 10px 0 0;
	padding: 0;
}

.p-factoryCard__tag {
	font-size: 0.72rem;
	padding: 3px 9px;
	border-radius: 999px;
	background: var(--kn-bg);
	color: var(--kn-navy);
}

.p-factoryCard__tag--visitable {
	background: #e7f3ea;
	color: #2f7a44;
}

.p-factoryCard__tag--closed {
	background: #f2f2f2;
	color: #888;
}

.p-factoryArchive__pagination {
	margin-top: 32px;
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}

.p-factoryArchive__pagination .page-numbers {
	display: inline-block;
	padding: 6px 12px;
	border: 1px solid var(--kn-line);
	border-radius: 6px;
	color: var(--kn-navy);
	text-decoration: none;
}

.p-factoryArchive__pagination .page-numbers.current {
	background: var(--kn-navy);
	color: #fff;
	border-color: var(--kn-navy);
}

.p-factoryArchive__empty,
.p-prefectureArchive__empty {
	color: var(--kn-steel);
	padding: 40px 0;
	text-align: center;
}

/* ---- single-factory.php ---- */

.p-factoryDetail__notice {
	background: #fdf1e6;
	color: #8a4a1f;
	padding: 12px 16px;
	border-radius: 8px;
	font-size: 0.85rem;
	margin-bottom: 16px;
}

.p-factoryDetail__breadcrumbPref a {
	color: var(--kn-steel);
	font-size: 0.8rem;
	margin-right: 8px;
	text-decoration: none;
}

.p-factoryDetail__title {
	font-size: 1.9rem;
	font-weight: 700;
	color: var(--kn-navy);
	margin: 6px 0 10px;
}

.p-factoryDetail__company a {
	color: var(--kn-steel);
}

.p-factoryDetail__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	margin: 12px 0 24px;
	padding: 0;
}

.p-factoryDetail__tag {
	font-size: 0.78rem;
	padding: 4px 12px;
	border-radius: 999px;
	background: var(--kn-bg);
	color: var(--kn-navy);
}

.p-factoryDetail__tag--visitable {
	background: #e7f3ea;
	color: #2f7a44;
}

.p-factoryDetail__section {
	margin: 32px 0;
	padding-top: 24px;
	border-top: 1px solid var(--kn-line);
}

.p-factoryDetail__sectionTitle {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--kn-navy);
	margin: 0 0 14px;
}

.p-factoryDetail__table {
	width: 100%;
	border-collapse: collapse;
}

.p-factoryDetail__table th,
.p-factoryDetail__table td {
	text-align: left;
	padding: 10px 12px;
	border-bottom: 1px solid var(--kn-line);
	font-size: 0.9rem;
}

.p-factoryDetail__table th {
	width: 8em;
	color: var(--kn-steel);
	font-weight: 600;
	white-space: nowrap;
}

.p-factoryDetail__map {
	height: 320px;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid var(--kn-line);
	background: var(--kn-bg);
}

.p-factoryDetail__mapNote {
	font-size: 0.78rem;
	color: var(--kn-steel);
	margin-top: 8px;
}

.p-factoryDetail__mapExternalLink {
	margin-top: 10px;
}

.p-factoryDetail__mapExternalLink a {
	color: var(--kn-navy);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 2px solid var(--kn-orange);
	padding-bottom: 2px;
	font-size: 0.85rem;
}

.p-factoryDetail__mapPending {
	background: var(--kn-bg);
	border-radius: 8px;
	padding: 40px 16px;
	text-align: center;
	color: var(--kn-steel);
	font-size: 0.9rem;
}

.p-factoryDetail__accuracyNote {
	font-size: 0.78rem;
	color: var(--kn-steel);
	margin-top: 8px;
}

.p-factoryDetail__ctaButtons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 12px;
}

.p-factoryDetail__ctaButton {
	display: inline-block;
	padding: 10px 18px;
	border-radius: 6px;
	background: var(--kn-navy);
	color: #fff;
	text-decoration: none;
	font-size: 0.85rem;
}

.p-factoryDetail__ctaButton:hover {
	background: var(--kn-orange);
}

.p-factoryDetail__ctaNote {
	font-size: 0.78rem;
	color: var(--kn-steel);
	margin-top: 8px;
}

.p-correctionForm {
	max-width: 520px;
	margin-top: 24px;
	background: var(--kn-bg);
	padding: 24px;
	border-radius: 10px;
}

.p-correctionForm__field {
	margin-bottom: 16px;
}

.p-correctionForm__field label {
	display: block;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--kn-navy);
	margin-bottom: 6px;
}

.p-correctionForm__field--checkbox label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 400;
}

.p-correctionForm__required {
	color: var(--kn-orange);
	font-size: 0.72rem;
	margin-left: 6px;
	font-weight: 700;
}

.p-correctionForm select,
.p-correctionForm input[type="text"],
.p-correctionForm input[type="email"],
.p-correctionForm textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--kn-line);
	border-radius: 6px;
	font-size: 0.9rem;
	background: #fff;
	box-sizing: border-box;
}

.p-correctionForm__submit {
	background: var(--kn-navy);
	color: #fff;
	border: none;
	padding: 12px 32px;
	border-radius: 999px;
	font-weight: 700;
	cursor: pointer;
	font-size: 0.9rem;
}

.p-correctionForm__submit:hover {
	background: var(--kn-orange);
}

.p-correctionForm__field--hp {
	position: absolute;
	left: -9999px;
	top: -9999px;
}

.p-correctionForm__thanks {
	background: #e7f3ea;
	color: #2f7a44;
	padding: 16px 20px;
	border-radius: 8px;
	font-size: 0.9rem;
}

/* ---- front-page.php ---- */

.p-hero {
	background: linear-gradient(135deg, var(--kn-navy) 0%, #24405c 100%);
	color: #fff;
	padding: 64px 20px;
	text-align: center;
}

.p-hero__inner {
	max-width: 720px;
	margin: 0 auto;
}

.p-hero__eyebrow {
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	color: #b9c6d4;
	margin-bottom: 12px;
}

.p-hero__title {
	font-size: 2.6rem;
	font-weight: 800;
	margin: 0 0 16px;
	letter-spacing: 0.02em;
}

.p-hero__lead {
	font-size: 1rem;
	line-height: 1.8;
	color: #dbe3ea;
	margin: 0 0 28px;
}

.p-hero__cta {
	display: inline-block;
	background: var(--kn-orange);
	color: #fff;
	font-weight: 700;
	padding: 14px 32px;
	border-radius: 999px;
	text-decoration: none;
	transition: transform .15s ease;
}

.p-hero__cta:hover {
	transform: translateY(-2px);
}

.p-homeSection {
	padding: 56px 20px;
}

.p-homeSection--alt {
	background: var(--kn-bg);
}

.p-homeSection__inner {
	max-width: 1080px;
	margin: 0 auto;
}

.p-homeSection__title {
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--kn-navy);
	margin: 0 0 24px;
	text-align: center;
}

.p-homeSection__text {
	max-width: 720px;
	margin: 0 auto;
	line-height: 1.9;
	color: var(--kn-steel);
	font-size: 0.95rem;
}

.p-homeSection__more {
	text-align: center;
	margin-top: 24px;
}

.p-homeSection__more a {
	color: var(--kn-navy);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 2px solid var(--kn-orange);
	padding-bottom: 2px;
}

.p-prefLinks {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.p-prefLinks__item a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: #fff;
	border: 1px solid var(--kn-line);
	border-radius: 8px;
	padding: 10px 14px;
	color: var(--kn-navy);
	text-decoration: none;
	font-size: 0.88rem;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.p-prefLinks__item a:hover {
	border-color: var(--kn-orange);
	box-shadow: 0 2px 8px rgba(28, 43, 58, 0.08);
}

.p-prefLinks__count {
	font-size: 0.72rem;
	color: var(--kn-steel);
	background: var(--kn-bg);
	border-radius: 999px;
	padding: 2px 8px;
}

/* ---- front-page 追加セクション ---- */

.u-pcOnly { display: none; }
@media (min-width: 768px) {
	.u-pcOnly { display: inline; }
}

.p-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	margin-bottom: 36px;
}

.p-hero__ctaSub {
	display: inline-block;
	border: 1px solid rgba(255, 255, 255, 0.5);
	color: #fff;
	font-weight: 600;
	padding: 14px 28px;
	border-radius: 999px;
	text-decoration: none;
	transition: background .15s ease;
}

.p-hero__ctaSub:hover {
	background: rgba(255, 255, 255, 0.12);
}

.p-hero__stats {
	display: flex;
	justify-content: center;
	gap: 40px;
	list-style: none;
	margin: 0;
	padding: 24px 0 0;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.p-hero__stats li {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.p-hero__stats strong {
	font-size: 1.8rem;
	font-weight: 800;
	line-height: 1.2;
}

.p-hero__stats span {
	font-size: 0.75rem;
	color: #b9c6d4;
	margin-top: 4px;
}

.p-searchWays {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
}

.p-searchWays__card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--kn-line);
	border-radius: 12px;
	padding: 24px;
	text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.p-searchWays__card:hover {
	transform: translateY(-3px);
	border-color: var(--kn-orange);
	box-shadow: 0 8px 20px rgba(28, 43, 58, 0.1);
}

.p-searchWays__label {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--kn-orange);
	margin-bottom: 8px;
}

.p-searchWays__name {
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--kn-navy);
	margin-bottom: 10px;
}

.p-searchWays__desc {
	font-size: 0.85rem;
	line-height: 1.7;
	color: var(--kn-steel);
}

.p-industryTags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
	justify-content: center;
}

.p-industryTags a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #fff;
	border: 1px solid var(--kn-line);
	border-radius: 999px;
	padding: 8px 18px;
	color: var(--kn-navy);
	text-decoration: none;
	font-size: 0.88rem;
	transition: border-color .15s ease;
}

.p-industryTags a:hover {
	border-color: var(--kn-orange);
}

.p-industryTags span {
	font-size: 0.72rem;
	color: var(--kn-steel);
}

.p-homeAbout {
	max-width: 720px;
	text-align: center;
}

/* ---- 一覧ページ（都道府県／業種／体験） ---- */

.p-listPage__header {
	margin-bottom: 32px;
}

.p-listPage__title {
	font-size: 1.7rem;
	font-weight: 700;
	color: var(--kn-navy);
	margin: 0 0 10px;
}

.p-listPage__lead,
.p-listPage__count {
	color: var(--kn-steel);
	font-size: 0.92rem;
	line-height: 1.8;
}

.p-listPage__region {
	margin-bottom: 32px;
}

.p-listPage__regionTitle {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--kn-navy);
	margin: 0 0 12px;
	padding-left: 10px;
	border-left: 4px solid var(--kn-orange);
}

.p-prefLinks__item--empty span {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: transparent;
	border: 1px dashed var(--kn-line);
	border-radius: 8px;
	padding: 10px 14px;
	color: #9aa7b2;
	font-size: 0.88rem;
}

.p-listPage__note {
	font-size: 0.82rem;
	color: var(--kn-steel);
	margin-top: 24px;
	padding-top: 16px;
	border-top: 1px solid var(--kn-line);
}

.p-industryLinks {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.p-industryLinks a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: #fff;
	border: 1px solid var(--kn-line);
	border-radius: 8px;
	padding: 14px 18px;
	color: var(--kn-navy);
	text-decoration: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.p-industryLinks a:hover {
	border-color: var(--kn-orange);
	box-shadow: 0 2px 8px rgba(28, 43, 58, 0.08);
}

.p-industryLinks__name {
	font-weight: 600;
	font-size: 0.95rem;
}

.p-industryLinks__count {
	font-size: 0.75rem;
	color: var(--kn-steel);
}

.p-experienceCta {
	margin-top: 40px;
	background: var(--kn-bg);
	border-radius: 12px;
	padding: 32px;
}

.p-experienceCta__title {
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--kn-navy);
	margin: 0 0 16px;
}

.p-experienceCta__text {
	font-size: 0.9rem;
	line-height: 1.9;
	color: var(--kn-steel);
	margin-bottom: 12px;
}

.p-experienceCta__button a {
	display: inline-block;
	background: var(--kn-navy);
	color: #fff;
	padding: 12px 26px;
	border-radius: 999px;
	text-decoration: none;
	font-size: 0.88rem;
	font-weight: 700;
	margin-top: 8px;
}

.p-experienceCta__button a:hover {
	background: var(--kn-orange);
}

/* ---- 工場ナビについて ---- */

.p-about__section {
	margin-bottom: 36px;
}

.p-about__title {
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--kn-navy);
	margin: 0 0 12px;
	padding-left: 10px;
	border-left: 4px solid var(--kn-orange);
}

.p-about p {
	font-size: 0.92rem;
	line-height: 1.9;
	color: #3d4c5a;
	margin-bottom: 12px;
}

.p-about__list {
	margin: 0 0 16px;
	padding-left: 1.2em;
	font-size: 0.9rem;
	line-height: 1.9;
	color: #3d4c5a;
}

.p-about__cta a {
	display: inline-block;
	background: var(--kn-navy);
	color: #fff;
	padding: 12px 26px;
	border-radius: 999px;
	text-decoration: none;
	font-size: 0.88rem;
	font-weight: 700;
}

.p-about__cta a:hover {
	background: var(--kn-orange);
}

/* ---- サイドバー ---- */

.kn-sidebarNav {
	list-style: none;
	margin: 0;
	padding: 0;
}

.kn-sidebarNav li {
	border-bottom: 1px solid var(--kn-line);
}

.kn-sidebarNav a {
	display: block;
	padding: 10px 4px;
	color: var(--kn-navy);
	text-decoration: none;
	font-size: 0.88rem;
}

.kn-sidebarNav a:hover {
	color: var(--kn-orange);
}

.kn-sidebarText {
	font-size: 0.82rem;
	line-height: 1.8;
	color: var(--kn-steel);
}

.kn-sidebarText a {
	color: var(--kn-navy);
	border-bottom: 1px solid var(--kn-orange);
	text-decoration: none;
}

/* =========================================================
   デザイン刷新 v2（2026-07-30）
   =========================================================
   「機能はよいがデザインに手作り感がある」という指摘への対応。
   ここから下は既存ルールを上書きする意図で置いているので、
   同じセレクタが上にあっても構わない（後勝ちで効く）。

   直した4点：
   1. 全件に画像が1枚もない  → 業種アイコン＋業種色をサムネイル位置に置く
   2. 余白と階層がない        → 文字色3段・見出しにアイビーブロウとアクセント線
   3. 色が単調               → 業種9系統＋タグの色分けでアクセントを反復させる
   4. 影・角丸・区切りが弱い → 影を2枚重ねにし、角丸とパネル化で「箱」に見せる
========================================================= */

/* ---- 工場カード：サムネイル（業種アイコン＋業種色） ---- */

/* サムネイルは業種イラスト（kn_illust）を敷く。
   以前は業種色＋アイコンだったが、「アイコンは小さいとショボく見える」という指摘を受け
   描き起こしイラストに置き換えた（2026-07-31）。

   高さは固定せず **イラストの縦横比（200:110）に合わせる**こと。
   固定高にすると、カード幅が広いときに slice で上下が切り落とされ、
   絵の主役（地面に載っている物）と空の丸が消えて、中央の帯だけが拡大表示される。 */
.p-factoryCard__thumb {
	position: relative;
	aspect-ratio: 200 / 110;
	overflow: hidden;
	background: var(--kn-tint);
}

.kn-illust {
	display: block;
	width: 100%;
	height: 100%;
}

/* 同じ業種のカードが並んでも同じ絵に見えないための仕掛け（2026-08-07）。
   新しい絵は描かず、同じ<symbol>をCSSのtransformで反転・拡大位置ずらしするだけ。
   色・輪郭線などの共通ルールには一切触れない。親の .p-factoryCard__thumb が
   overflow:hidden なので、拡大分がカード外にはみ出すことはない。 */
.kn-illust--v1 {
	transform: scaleX(-1);
}

.kn-illust--v2 {
	transform: scale(1.12) translate(3%, -3%);
}

/* <symbol> の置き場。0×0だとgrid item扱いになる場所があるので絶対配置で流し込む */
.kn-illustDefs {
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden;
}

.p-factoryCard__thumbTag {
	position: absolute;
	left: 10px;
	bottom: 9px;
	max-width: calc(100% - 20px);
	padding: 3px 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .94);
	color: #3b4a57;
	box-shadow: 0 1px 2px rgba(22, 34, 47, .12);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .01em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.p-factoryCard__thumb .p-factoryCard__badge {
	position: absolute;
	top: 9px;
	right: 9px;
	margin: 0;
	font-weight: 700;
	background: rgba(255, 255, 255, .94);
	box-shadow: 0 1px 2px rgba(22, 34, 47, .12);
}

.p-factoryCard__badge--unverified { color: var(--kn-orange-deep); }
.p-factoryCard__badge--municipal  { color: #3c6089; }

/* ---- 工場カード：本体 ---- */

/* イラストの縦横比に合わせるとサムネが背高になるので、2列より3列のほうが収まりが良い。
   本文844pxで3列＝1枚266px、サムネは約146pxになる。 */
.p-factoryArchive__grid {
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 20px;
	margin-top: 4px;
}

.p-factoryCard {
	border-color: var(--kn-line-soft);
	border-radius: var(--kn-radius-m);
	box-shadow: var(--kn-shadow-1);
	transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}

.p-factoryCard:hover {
	transform: translateY(-3px);
	border-color: #dfe3df;
	box-shadow: var(--kn-shadow-3);
}

.p-factoryCard__body {
	padding: 15px 18px 17px;
}

.p-factoryCard__title {
	font-size: 1.05rem;
	line-height: 1.45;
	letter-spacing: .01em;
	color: var(--kn-ink);
	margin: 0 0 7px;
}

.p-factoryCard__company {
	font-size: .82rem;
	font-weight: 600;
	color: var(--kn-ink-2);
	margin: 0 0 3px;
}

.p-factoryCard__location {
	font-size: .8rem;
	color: var(--kn-ink-3);
	margin: 0;
}

.p-factoryCard__tags {
	gap: 5px;
	margin: 13px 0 0;
}

.p-factoryCard__tag {
	font-size: .7rem;
	font-weight: 600;
	padding: 3px 9px;
	background: var(--kn-surface-2);
	border: 1px solid var(--kn-line-soft);
	color: var(--kn-ink-2);
}

.p-factoryCard__tag--visitable   { background: #e9f4ec; border-color: #d3e8d9; color: #2c6f41; }
.p-factoryCard__tag--reservation { background: #eaf0f7; border-color: #d6e2ef; color: #3c6089; }
.p-factoryCard__tag--irregular   { background: #f4f1e9; border-color: #e6e0cf; color: #7a6a35; }
.p-factoryCard__tag--closed      { background: #f4f4f4; border-color: #e8e8e8; color: #8d8d8d; }
.p-factoryCard__tag--purchase    { background: var(--kn-orange-soft); border-color: #f5ddc8; color: var(--kn-orange-deep); }
.p-factoryCard__tag--family      { background: #f3eef8; border-color: #e5dbef; color: #65458c; }

/* ---- トップ：ヒーロー ---- */

.p-hero {
	position: relative;
	overflow: hidden;
	margin: 6px 0 0;
	padding: 66px 32px 54px;
	border-radius: var(--kn-radius-l);
	/* 重なりは上から順に：①暖色の光 ②白文字を読ませるための覆い ③写真 ④写真が無いときの下地。
	   --kn-heroImage は functions.php が画面幅ごとに流し込む（未設定なら none で下地だけになる）。 */
	background:
		radial-gradient(760px 280px at 14% -20%, rgba(224, 122, 63, .26), transparent 62%),
		linear-gradient(180deg, rgba(10, 20, 31, .84) 0%, rgba(10, 20, 31, .66) 46%, rgba(10, 20, 31, .88) 100%),
		var(--kn-heroImage, none) center 55% / cover no-repeat,
		linear-gradient(155deg, #16273a 0%, #22415f 100%);
}

.p-hero__inner {
	position: relative;
	z-index: 1;
}

.p-hero__eyebrow {
	display: inline-block;
	margin: 0 0 18px;
	padding: 5px 15px;
	border: 1px solid rgba(255, 255, 255, .24);
	border-radius: 999px;
	background: rgba(255, 255, 255, .09);
	color: #e4edf5;
	font-size: .74rem;
	font-weight: 600;
	letter-spacing: .06em;
}

.p-hero__title {
	font-size: clamp(1.85rem, 4.2vw, 2.65rem);
	line-height: 1.3;
	letter-spacing: .015em;
	margin: 0 0 18px;
}

.p-hero__lead {
	max-width: 33em;
	margin: 0 auto;
	font-size: .95rem;
	line-height: 1.85;
	color: #ccd8e4;
}

.p-heroSearch {
	gap: 8px;
	margin: 28px auto 0;
	padding: 8px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 15px;
	background: rgba(255, 255, 255, .09);
}

.p-heroSearch__input {
	padding: 14px 16px;
	border-radius: var(--kn-radius-s);
	color: var(--kn-ink);
	box-shadow: inset 0 1px 2px rgba(22, 34, 47, .09);
}

.p-heroSearch__input::placeholder {
	color: #9aa7b2;
}

.p-heroSearch__button {
	padding: 14px 28px;
	background: linear-gradient(180deg, #e9884d 0%, #d66a2b 100%);
	box-shadow: 0 2px 7px rgba(190, 90, 34, .42);
	letter-spacing: .04em;
	transition: filter .15s ease;
}

.p-heroSearch__button:hover {
	filter: brightness(1.06);
}

.p-hero__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
	max-width: 540px;
	margin: 34px auto 0;
	padding: 0;
	border-top: none;
}

.p-hero__stats li {
	padding: 14px 6px 12px;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: var(--kn-radius-m);
	background: rgba(255, 255, 255, .07);
}

.p-hero__stats strong {
	font-size: 1.7rem;
	letter-spacing: .01em;
	font-variant-numeric: tabular-nums;
}

/* 主役は「行ける工場」の件数なので、そこだけ色を持たせる */
.p-hero__stats li:first-child strong {
	color: #ffc79a;
}

/* ---- トップ：セクションの階層 ---- */

/* スマホでは l-container 側に15pxのガター があるので、横paddingはほぼ持たせない */
.p-homeSection {
	padding: 48px 4px;
}

.p-homeSection--alt {
	padding: 44px 18px;
	background: var(--kn-bg);
	border: 1px solid var(--kn-line-soft);
	border-radius: var(--kn-radius-m);
}

@media (min-width: 768px) {
	.p-homeSection {
		padding: 64px 0;
	}
	.p-homeSection--alt {
		padding: 56px 30px;
	}
}

.p-homeSection__head {
	margin-bottom: 30px;
	text-align: center;
}

.p-homeSection__eyebrow {
	margin: 0 0 9px;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .18em;
	color: var(--kn-orange-deep);
}

.p-homeSection__title {
	font-size: 1.6rem;
	line-height: 1.4;
	letter-spacing: .015em;
	color: var(--kn-ink);
	margin: 0;
}

/* 見出しの下にアクセント線。見出しとリードの境界をはっきりさせる */
.p-homeSection__head .p-homeSection__title::after {
	content: "";
	display: block;
	width: 34px;
	height: 3px;
	margin: 15px auto 0;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--kn-orange), #eeae7c);
}

.p-homeSection__head .p-homeSection__lead {
	margin: 14px 0 0;
	font-size: .9rem;
	line-height: 1.8;
	color: var(--kn-ink-3);
}

.p-homeSection__text {
	color: var(--kn-ink-2);
	line-height: 2;
}

.p-homeSection__more {
	margin-top: 28px;
}

.p-homeSection__more a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 11px 24px;
	border: 1px solid var(--kn-line);
	border-radius: 999px;
	background: var(--kn-surface);
	color: var(--kn-ink);
	font-size: .87rem;
	font-weight: 700;
	box-shadow: var(--kn-shadow-1);
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.p-homeSection__more a:hover {
	border-color: var(--kn-orange);
	box-shadow: var(--kn-shadow-2);
	transform: translateY(-1px);
}

/* ---- トップ：目的から探す ---- */

.p-purposeCards {
	gap: 16px;
}

.p-purposeCards__card {
	gap: 4px;
	padding: 22px 18px 20px;
	border: 1px solid var(--kn-line-soft);
	border-radius: var(--kn-radius-m);
	box-shadow: var(--kn-shadow-1);
	transition: transform .15s ease, box-shadow .15s ease;
}

.p-purposeCards__card:hover {
	transform: translateY(-4px);
	border-color: var(--kn-line-soft);
	box-shadow: var(--kn-shadow-2);
}

.p-purposeCards__card--kids   { background: #fff4ea; --kn-pc: #b25e22; }
.p-purposeCards__card--free   { background: #eaf5ed; --kn-pc: #2d7546; }
.p-purposeCards__card--outlet { background: #fdf0f3; --kn-pc: #a4475e; }
.p-purposeCards__card--study  { background: #eaf1f8; --kn-pc: #345f8a; }

.p-purposeCards__icon {
	display: grid;
	place-items: center;
	box-sizing: border-box;
	width: 42px;
	height: 42px;
	padding: 9px;
	margin-bottom: 9px;
	border-radius: 11px;
	background: rgba(255, 255, 255, .85);
	box-shadow: 0 1px 2px rgba(22, 34, 47, .08);
	color: var(--kn-pc);
}

.p-purposeCards__name {
	font-size: 1rem;
	color: var(--kn-ink);
	/* 2行分を確保し、1行タイトルのカードでも件数・説明文の開始位置を揃える（2026-08-07） */
	min-height: 2.8em;
}

.p-purposeCards__count {
	font-size: 1.8rem;
	color: var(--kn-pc);
	font-variant-numeric: tabular-nums;
}

.p-purposeCards__count small {
	color: var(--kn-ink-3);
}

.p-purposeCards__desc {
	color: var(--kn-ink-3);
}

/* ---- トップ：ほかの探し方 ---- */

.p-searchWays__card {
	padding: 26px 24px;
	border-color: var(--kn-line-soft);
	border-radius: var(--kn-radius-m);
	box-shadow: var(--kn-shadow-1);
}

.p-searchWays__card:hover {
	border-color: #e8d9c9;
	box-shadow: var(--kn-shadow-2);
}

.p-searchWays__icon {
	display: grid;
	place-items: center;
	box-sizing: border-box;
	width: 44px;
	height: 44px;
	padding: 10px;
	margin-bottom: 15px;
	border-radius: 12px;
	background: var(--kn-orange-soft);
	color: var(--kn-orange-deep);
}

.p-searchWays__name {
	color: var(--kn-ink);
}

.p-searchWays__desc {
	color: var(--kn-ink-3);
}

/* ---- 都道府県リンク ---- */

.p-prefLinks__item a {
	padding: 12px 14px;
	border-color: var(--kn-line-soft);
	border-radius: var(--kn-radius-s);
	box-shadow: var(--kn-shadow-1);
	font-weight: 600;
	color: var(--kn-ink);
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.p-prefLinks__item a:hover {
	border-color: #e8d9c9;
	box-shadow: var(--kn-shadow-2);
	transform: translateY(-1px);
}

.p-prefLinks__count {
	background: var(--kn-orange-soft);
	color: var(--kn-orange-deep);
	font-size: .7rem;
	font-weight: 700;
}

/* ---- 業種一覧（アイコン付き） ---- */

.p-industryLinks a {
	gap: 12px;
	padding: 13px 16px;
	border-color: var(--kn-line-soft);
	border-radius: var(--kn-radius-m);
	box-shadow: var(--kn-shadow-1);
}

.p-industryLinks a:hover {
	border-color: #e8d9c9;
	box-shadow: var(--kn-shadow-2);
}

.p-industryLinks__icon {
	flex: none;
	display: grid;
	place-items: center;
	box-sizing: border-box;
	width: 40px;
	height: 40px;
	padding: 9px;
	border-radius: 11px;
	background: var(--kn-tint);
	color: var(--kn-fink);
}

.p-industryLinks__name {
	flex: 1 1 auto;
	color: var(--kn-ink);
}

.p-industryLinks__count {
	flex: none;
	font-weight: 700;
	color: var(--kn-ink-3);
}

/* ---- 業種一覧（イラストタイル） ---- */

.p-industryCards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.p-industryCards__link {
	display: block;
	overflow: hidden;
	border: 1px solid var(--kn-line-soft);
	border-radius: var(--kn-radius-m);
	background: var(--kn-surface);
	box-shadow: var(--kn-shadow-1);
	text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.p-industryCards__link:hover {
	transform: translateY(-3px);
	border-color: #e8d9c9;
	box-shadow: var(--kn-shadow-2);
}

.p-industryCards__illust {
	display: block;
	aspect-ratio: 200 / 110;
	background: var(--kn-tint);
}

.p-industryCards__body {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px;
	padding: 11px 14px 13px;
}

.p-industryCards__name {
	font-size: .95rem;
	font-weight: 700;
	color: var(--kn-ink);
	line-height: 1.4;
}

.p-industryCards__count {
	flex: none;
	font-size: .74rem;
	font-weight: 700;
	color: var(--kn-ink-3);
	font-variant-numeric: tabular-nums;
}

/* ---- 工場詳細：見出しに業種イラストを添える ---- */

.p-factoryDetail__header--illust {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	margin-bottom: 8px;
}

.p-factoryDetail__illust {
	flex: none;
	display: block;
	width: 132px;
	aspect-ratio: 200 / 110;
	overflow: hidden;
	border-radius: var(--kn-radius-m);
	background: var(--kn-tint);
	box-shadow: var(--kn-shadow-1);
}

.p-factoryDetail__headBody {
	min-width: 0;
	flex: 1 1 auto;
}

.p-factoryDetail__tag--visitable   { background: #e9f4ec; color: #2c6f41; }
.p-factoryDetail__tag--reservation { background: #eaf0f7; color: #3c6089; }
.p-factoryDetail__tag--closed      { background: #f4f4f4; color: #8d8d8d; }

/* ---- 体験コメント ---- */

.p-expInvite {
	margin: 0 0 24px;
	padding: 22px 24px;
	border: 1px solid #f0dcc8;
	border-radius: var(--kn-radius-m);
	background: linear-gradient(180deg, #fdf5ee 0%, var(--kn-surface) 100%);
}

.p-expInvite__lead {
	margin: 0 0 10px;
	font-size: .95rem;
	font-weight: 700;
	color: var(--kn-ink);
}

.p-expInvite__text {
	margin: 0 0 16px;
	font-size: .9rem;
	line-height: 1.9;
	color: var(--kn-ink-2);
}

.p-expInvite__cta a {
	display: inline-block;
	padding: 11px 26px;
	border-radius: 999px;
	background: linear-gradient(180deg, #e9884d 0%, #d66a2b 100%);
	box-shadow: 0 2px 7px rgba(190, 90, 34, .32);
	color: #fff;
	font-size: .9rem;
	font-weight: 700;
	text-decoration: none;
}

.p-expInvite__cta a:hover { filter: brightness(1.06); }

.p-expInvite__count {
	margin: 0 0 18px;
	font-size: .9rem;
	font-weight: 700;
	color: var(--kn-ink-2);
}

.p-expForm__note {
	font-size: .82rem;
	color: var(--kn-ink-3);
}

.p-factoryDetail__comments .comment-form-comment label {
	display: block;
	margin-bottom: 6px;
	font-size: .86rem;
	font-weight: 600;
	color: var(--kn-ink-2);
}

/* ---- サイドバー：体験コメント募集バナー ---- */

.kn-expBanner {
	display: block;
	overflow: hidden;
	border: 1px solid #f0dcc8;
	border-radius: var(--kn-radius-m);
	background: var(--kn-surface);
	box-shadow: var(--kn-shadow-1);
	text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease;
}

.kn-expBanner:hover {
	transform: translateY(-2px);
	box-shadow: var(--kn-shadow-2);
}

.kn-expBanner__illust {
	display: block;
	aspect-ratio: 200 / 110;
	background: var(--kn-tint, #f2ecf7);
}

.kn-expBanner__body {
	display: block;
	padding: 14px 16px 16px;
}

.kn-expBanner__label {
	display: inline-block;
	margin-bottom: 8px;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--kn-orange-soft);
	color: var(--kn-orange-deep);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .04em;
}

.kn-expBanner__title {
	display: block;
	margin-bottom: 7px;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--kn-ink);
}

.kn-expBanner__text {
	display: block;
	font-size: .78rem;
	line-height: 1.8;
	color: var(--kn-ink-3);
}

/* ---- サイドバー：新着の体験コメント ---- */

.kn-recentComments {
	list-style: none;
	margin: 0;
	padding: 0;
}

.kn-recentComments__item {
	border-bottom: 1px solid var(--kn-line-soft);
}

.kn-recentComments__item:last-child { border-bottom: none; }

.kn-recentComments__item a {
	display: block;
	padding: 12px 2px;
	text-decoration: none;
}

.kn-recentComments__factory {
	display: block;
	font-size: .84rem;
	font-weight: 700;
	color: var(--kn-ink);
	margin-bottom: 4px;
	line-height: 1.5;
}

.kn-recentComments__text {
	display: block;
	font-size: .78rem;
	line-height: 1.75;
	color: var(--kn-ink-2);
}

.kn-recentComments__meta {
	display: block;
	margin-top: 5px;
	font-size: .7rem;
	color: var(--kn-ink-3);
}

.kn-recentComments__empty {
	font-size: .8rem;
	line-height: 1.85;
	color: var(--kn-ink-3);
	margin: 0;
}

@media (max-width: 767px) {
	.p-factoryDetail__header--illust {
		gap: 14px;
	}
	.p-factoryDetail__illust {
		width: 96px;
	}
}

/* ---- 商品ブロック（アフィリエイト） ----
   事実情報と混ざらないよう、枠で囲って「PR・広告」を必ず見せる。
   本文の途中には差し込まない。 */

.p-adBlock {
	margin: 28px 0;
	padding: 18px 20px 20px;
	border: 1px solid #ead9c8;
	border-radius: var(--kn-radius-m);
	background: #fdf9f4;
}

.p-adBlock__pr {
	display: inline-block;
	margin: 0 0 10px;
	padding: 2px 9px;
	border-radius: 3px;
	background: #8a6a45;
	color: #fff;
	font-size: .64rem;
	font-weight: 700;
	letter-spacing: .08em;
}

.p-adBlock__title {
	margin: 0 0 5px;
	font-size: 1rem;
	font-weight: 700;
	color: var(--kn-ink);
	line-height: 1.5;
}

.p-adBlock__note {
	margin: 0 0 14px;
	font-size: .76rem;
	line-height: 1.75;
	color: var(--kn-ink-3);
}

.p-adBlock__items {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.p-adBlock__item a {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 9px 11px;
	border: 1px solid var(--kn-line-soft);
	border-radius: var(--kn-radius-s);
	background: var(--kn-surface);
	text-decoration: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.p-adBlock__item a:hover {
	border-color: var(--kn-orange);
	box-shadow: var(--kn-shadow-1);
}

.p-adBlock__thumb {
	flex: none;
	width: 56px;
	height: 56px;
	border-radius: 5px;
	overflow: hidden;
	background: var(--kn-bg);
}

.p-adBlock__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

.p-adBlock__body {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.p-adBlock__name {
	font-size: .78rem;
	line-height: 1.55;
	color: var(--kn-ink);
}

.p-adBlock__price {
	font-size: .84rem;
	font-weight: 700;
	color: var(--kn-orange-deep);
	font-variant-numeric: tabular-nums;
}

.p-adBlock__shop {
	font-size: .68rem;
	color: var(--kn-ink-3);
}

.p-adBlock__more {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 14px 0 0;
}

.p-adBlock__more a {
	display: inline-block;
	padding: 8px 18px;
	border-radius: 999px;
	border: 1px solid #e6d0b8;
	background: var(--kn-surface);
	color: var(--kn-orange-deep);
	font-size: .8rem;
	font-weight: 700;
	text-decoration: none;
}

.p-adBlock__more a:hover {
	background: var(--kn-orange);
	border-color: var(--kn-orange);
	color: #fff;
}

/* ---- ヘッダー（ロゴ・上部バー・グローバルナビ） ----
   SWELLの既定のままだったので、既存の仕組みを壊さない範囲で体裁だけ整える。 */

/* RSSは工場データベースに使い道が無く、上部バーで唯一の飾りになっていた */
.c-iconList__item.-rss { display: none; }

/* 空だったキャッチフレーズ欄は、WordPressのタグラインを入れて埋めた。
   同じ値がトップの <title>・og:title・meta description にも使われる。
   文字色はSWELL側が白を指定していて（濃紺の帯なのでコントラスト12.5で問題なし）、
   ここで指定しても勝てないので触らない。 */
.l-header__bar .c-catchphrase {
	font-size: .74rem;
	letter-spacing: .02em;
}

/* ロゴ：文字だけだったので、工場のマークを添えてロックアップにする。
   文字は残したままなので、読み上げも検索も従来どおり「工場ナビ」を拾う */
.c-headLogo.-txt .c-headLogo__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 1.32rem;
	font-weight: 800;
	letter-spacing: .05em;
	color: var(--kn-ink);
}

.c-headLogo.-txt .c-headLogo__link::before {
	content: "";
	flex: none;
	width: 34px;
	height: 34px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='8' fill='%231c2b3a'/%3E%3Cpath d='M5.6 24.6V13l6 3.6V13l6 3.6V9h5.4v15.6z' fill='%23ffffff'/%3E%3Crect x='19.5' y='4.4' width='2.6' height='4.6' rx='1.3' fill='%23e8874d'/%3E%3Crect x='8' y='19' width='2.8' height='5.6' fill='%231c2b3a'/%3E%3Crect x='14' y='19' width='2.8' height='5.6' fill='%231c2b3a'/%3E%3C/svg%3E") center / contain no-repeat;
}

.l-header {
	border-bottom: 1px solid var(--kn-line-soft);
}

/* グローバルナビ。**SWELLが既に ::after で下線を持っている**ので、
   自前で足さずに色と太さだけ合わせる（二重に下線が出るのを避ける） */
.c-gnav > li > a {
	font-size: .92rem;
	font-weight: 600;
	letter-spacing: .01em;
	color: var(--kn-ink);
}

.c-gnav > li > a::after {
	background: var(--kn-orange);
	height: 3px;
	border-radius: 3px 3px 0 0;
}

/* いま見ているページを分かるようにする */
.c-gnav > li.current-menu-item > a,
.c-gnav > li.current_page_item > a,
.c-gnav > li.current-menu-parent > a {
	color: var(--kn-orange-deep);
}

.c-gnav > li.current-menu-item > a::after,
.c-gnav > li.current_page_item > a::after,
.c-gnav > li.current-menu-parent > a::after {
	transform: scaleX(1);
}

@media (max-width: 960px) {
	.c-headLogo.-txt .c-headLogo__link {
		font-size: 1.15rem;
		gap: 8px;
	}
	.c-headLogo.-txt .c-headLogo__link::before {
		width: 28px;
		height: 28px;
	}
}

/* ---- 用途別LP4本 ----
   本文は build_lp.py が出すプレーンなHTML（h2=地方／h3=都道府県／h4=施設）。
   classが無いので要素セレクタで組み立てている。**構造を変えるとここが効かなくなる**ので、
   build_lp.py の出力を変えるときは合わせて直すこと。 */

.kn-lp .post_content h2 {
	margin: 52px 0 18px;
	padding: 0 0 0 13px;
	border-left: 5px solid var(--kn-orange);
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--kn-ink);
	background: none;
}

/* 冒頭の目次だけはボタンの並びにする */
.kn-lp .post_content h2:first-of-type { margin-top: 34px; }

.kn-lp .post_content h2:first-of-type + ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 8px;
	padding: 0;
	list-style: none;
}

.kn-lp .post_content h2:first-of-type + ul li { margin: 0; padding: 0; }

.kn-lp .post_content h2:first-of-type + ul li::before { content: none; }

.kn-lp .post_content h2:first-of-type + ul a {
	display: inline-block;
	padding: 8px 16px;
	border: 1px solid var(--kn-line);
	border-radius: 999px;
	background: var(--kn-surface);
	box-shadow: var(--kn-shadow-1);
	color: var(--kn-ink);
	font-size: .86rem;
	font-weight: 700;
	text-decoration: none;
}

.kn-lp .post_content h2:first-of-type + ul a:hover {
	border-color: var(--kn-orange);
	box-shadow: var(--kn-shadow-2);
}

.kn-lp .post_content h3 {
	margin: 34px 0 14px;
	padding: 6px 14px;
	border: none;
	border-radius: var(--kn-radius-s);
	background: var(--kn-bg);
	font-size: 1rem;
	font-weight: 700;
	color: var(--kn-ink-2);
}

/* 施設1件ぶんを罫線で区切って、カードのように読ませる */
.kn-lp .post_content h4 {
	margin: 22px 0 8px;
	padding: 18px 0 0;
	border-top: 1px solid var(--kn-line-soft);
	font-size: 1.02rem;
	font-weight: 700;
	line-height: 1.55;
	color: var(--kn-ink);
}

.kn-lp .post_content h4:first-of-type { border-top: none; padding-top: 0; }

.kn-lp .post_content h4 + p {
	margin: 0 0 6px;
	font-size: .85rem;
	line-height: 1.85;
	color: var(--kn-ink-3);
}

.kn-lp .post_content p { font-size: .9rem; line-height: 1.9; }

/* 「詳細を見る」だけボタンにして、公式サイトへの外部リンクと区別する */
.kn-lp .post_content p a[href*="/factory/"] {
	display: inline-block;
	margin: 4px 0;
	padding: 7px 18px;
	border-radius: 999px;
	background: var(--kn-orange-soft);
	border: 1px solid #f3dcc8;
	color: var(--kn-orange-deep);
	font-size: .82rem;
	font-weight: 700;
	text-decoration: none;
}

.kn-lp .post_content p a[href*="/factory/"]:hover {
	background: var(--kn-orange);
	border-color: var(--kn-orange);
	color: #fff;
}

.kn-lp .post_content a[target="_blank"] {
	font-size: .82rem;
	color: var(--kn-ink-2);
}

@media (max-width: 600px) {
	.kn-lp .post_content h2 { font-size: 1.2rem; margin-top: 40px; }
	.kn-lp .post_content h4 { font-size: .96rem; }
}

/* ---- 会社詳細 ---- */

.p-companyDetail__breadcrumb a {
	color: var(--kn-ink-3);
	font-size: .82rem;
	text-decoration: none;
}

.p-companyDetail__title {
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: .01em;
	color: var(--kn-ink);
	margin: 6px 0 10px;
}

.p-companyDetail__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	margin: 0 0 12px;
	padding: 0;
}

.p-companyDetail__tags a {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 999px;
	background: var(--kn-bg);
	border: 1px solid var(--kn-line-soft);
	color: var(--kn-ink-2);
	font-size: .78rem;
	font-weight: 700;
	text-decoration: none;
}

.p-companyDetail__tags a:hover { border-color: var(--kn-orange); }

.p-companyDetail__lead {
	margin: 0;
	font-size: .95rem;
	line-height: 1.85;
	color: var(--kn-ink-2);
}

.p-companyDetail__lead strong {
	color: var(--kn-orange-deep);
	font-weight: 700;
}

.p-companyDetail__prefs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.p-companyDetail__prefs a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 11px;
	border-radius: 999px;
	background: var(--kn-surface);
	border: 1px solid var(--kn-line-soft);
	color: var(--kn-ink);
	font-size: .8rem;
	text-decoration: none;
}

.p-companyDetail__prefs a span {
	font-size: .7rem;
	font-weight: 700;
	color: var(--kn-orange-deep);
	font-variant-numeric: tabular-nums;
}

.p-companyDetail__prefs a:hover { border-color: var(--kn-orange); }

.p-companyDetail__cta {
	padding: 22px 24px;
	border: 1px solid var(--kn-line-soft);
	border-radius: var(--kn-radius-m);
	background: var(--kn-surface-2);
}

.p-companyDetail__cta .p-archiveSection__title {
	font-size: 1.02rem;
	margin-bottom: 10px;
}

/* ---- 一覧ページの内訳（都道府県・業種アーカイブ） ---- */

.p-prefectureArchive__lead {
	margin: 8px 0 0;
	font-size: .95rem;
	line-height: 1.85;
	color: var(--kn-ink-2);
}

.p-prefectureArchive__lead strong {
	color: var(--kn-orange-deep);
	font-weight: 700;
}

.p-archiveStats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	list-style: none;
	margin: 22px 0 4px;
	padding: 0;
}

.p-archiveStats__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 14px 6px 12px;
	border: 1px solid var(--kn-line-soft);
	border-radius: var(--kn-radius-m);
	background: var(--kn-surface);
	box-shadow: var(--kn-shadow-1);
}

.p-archiveStats__item strong {
	font-size: 1.5rem;
	font-weight: 800;
	line-height: 1.2;
	color: var(--kn-ink);
	font-variant-numeric: tabular-nums;
}

.p-archiveStats__item--hi strong { color: var(--kn-orange-deep); }

.p-archiveStats__item span {
	margin-top: 4px;
	font-size: .72rem;
	color: var(--kn-ink-3);
	text-align: center;
	line-height: 1.4;
}

/* ---- 一覧ページのセクション ---- */

.p-archiveSection {
	margin-top: 40px;
}

.p-archiveSection__title {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0 0 6px;
	padding-left: 11px;
	border-left: 4px solid var(--kn-orange);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--kn-ink);
	line-height: 1.5;
}

.p-archiveSection__title span {
	font-size: .8rem;
	font-weight: 700;
	color: var(--kn-ink-3);
	font-variant-numeric: tabular-nums;
}

/* 見学の受け入れが確認できていない側は、行ける工場より控えめに見せる */
.p-archiveSection--muted .p-archiveSection__title {
	border-left-color: var(--kn-line);
}

.p-archiveSection__note {
	margin: 0 0 18px;
	font-size: .84rem;
	line-height: 1.85;
	color: var(--kn-ink-3);
}

.p-archiveSection .p-factoryArchive__grid { margin-top: 16px; }

.p-archiveSection__more {
	margin-top: 18px;
}

.p-archiveSection__more a {
	color: var(--kn-ink);
	font-weight: 700;
	font-size: .88rem;
	text-decoration: none;
	border-bottom: 2px solid var(--kn-orange);
	padding-bottom: 2px;
}

.p-archiveNearby .p-prefLinks { margin-top: 14px; }

@media (max-width: 600px) {
	.p-archiveStats {
		grid-template-columns: repeat(2, 1fr);
	}
	.p-archiveStats__item strong { font-size: 1.3rem; }
}

/* ---- 業種アーカイブの見出し ---- */

.p-termHeader {
	display: flex;
	align-items: center;
	gap: 16px;
}

.p-termHeader__illust {
	flex: none;
	display: block;
	width: 148px;
	aspect-ratio: 200 / 110;
	overflow: hidden;
	border-radius: var(--kn-radius-m);
	background: var(--kn-tint);
	box-shadow: var(--kn-shadow-1);
}

@media (max-width: 600px) {
	.p-termHeader { gap: 13px; }
	.p-termHeader__illust { width: 104px; }
}

.p-termHeader__icon {
	flex: none;
	display: grid;
	place-items: center;
	box-sizing: border-box;
	width: 62px;
	height: 62px;
	padding: 15px;
	border-radius: var(--kn-radius-m);
	background: var(--kn-tint);
	color: var(--kn-fink);
}

.p-termHeader__body {
	min-width: 0;
}

/* ---- ユーティリティ ---- */

.u-spOnly { display: inline; }

@media (min-width: 768px) {
	.u-spOnly { display: none; }
}

/* ---- スマートフォン ---- */

@media (max-width: 767px) {
	.p-hero {
		margin: 0;
		padding: 46px 20px 40px;
		border-radius: var(--kn-radius-m);
	}
	.p-hero__stats {
		gap: 8px;
		margin-top: 28px;
	}
	.p-hero__stats li {
		padding: 12px 4px 10px;
	}
	.p-hero__stats strong {
		font-size: 1.4rem;
	}
	.p-homeSection__title {
		font-size: 1.35rem;
	}
	.p-termHeader__icon {
		width: 50px;
		height: 50px;
		padding: 12px;
	}
}

@media (max-width: 600px) {
	.p-purposeCards__icon {
		width: 34px;
		height: 34px;
		padding: 7px;
		margin-bottom: 6px;
		border-radius: 9px;
	}
}

/* ---- 工場ブロック（[kn_factory] ショートコード） ----
   記事本文の中で、商品より先に工場ページへ誘導するための枠。
   すぐ下に .p-adBlock（PR・広告／温色のクリーム地）が続くので、
   こちらは寒色＋左のアクセント線にして「広告ではない事実情報」だと
   ひと目で分かるようにしている。色を温色に寄せないこと。 */

.p-factoryPick {
	margin: 26px 0 22px;
	padding: 16px 20px 20px;
	border-left: 3px solid var(--kn-indigo);
	border-radius: 0 var(--kn-radius-m) var(--kn-radius-m) 0;
	background: linear-gradient(180deg, #f2f6fa 0%, var(--kn-surface-2) 100%);
}

.p-factoryPick__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin: 0 0 6px;
	color: var(--kn-indigo);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .1em;
	line-height: 1.4;
}

.p-factoryPick__pin {
	flex: none;
}

.p-factoryPick__lead {
	margin: 0 0 14px;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.6;
	color: var(--kn-ink);
}

/* 記事本文の中なので1行1枚の横長カードにする。
   縦カードのままだと本文幅780pxに対してカードが233pxしかなく、枠の右側が大きく空く。 */
.p-factoryPick__grid {
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
	margin-top: 0;
}

.p-factoryPick .p-factoryCard__link {
	display: grid;
	grid-template-columns: 216px minmax(0, 1fr);
}

/* イラストの縦横比（200:110）は崩さないこと。slice なので縦に伸ばすと絵の主役が切れる。
   カードの高さは本文側で決まるので、余った分は業種色の地がそのまま続く。 */
.p-factoryPick .p-factoryCard__thumb {
	aspect-ratio: auto;
}

.p-factoryPick .p-factoryCard__thumb .kn-illust {
	height: auto;
	aspect-ratio: 200 / 110;
}

/* SWELLの .post_content 用タイポグラフィがカードの中にも効いてしまうので打ち消す。
   放置すると h3（カード見出し）に下線と40pxの下余白が付き、ul（タグ）に24pxのインデントが付く。
   記事本文の中でカードを出すのは [kn_factory] だけなので、打ち消しもこの枠の中に閉じてある。 */
.p-factoryPick .p-factoryCard__title {
	font-size: 1.05rem;
	line-height: 1.45;
	color: var(--kn-ink);
	margin: 0 0 7px;
	padding: 0;
	background: none;
	border: 0;
}

.p-factoryPick .p-factoryCard__title::before,
.p-factoryPick .p-factoryCard__title::after {
	content: none;
	display: none;
}

.p-factoryPick .p-factoryCard__company {
	margin: 0 0 3px;
}

.p-factoryPick .p-factoryCard__location {
	margin: 0;
}

.p-factoryPick .p-factoryCard__tags {
	margin: 13px 0 0;
	padding: 0;
}

.p-factoryPick .p-factoryCard__tags li {
	margin: 0;
}

@media (max-width: 767px) {
	.p-factoryPick {
		padding: 14px 16px 16px;
	}
	.p-factoryPick__lead {
		font-size: .95rem;
		margin-bottom: 12px;
	}
}

/* ---- 特集一覧（トップ） ----
   いまは1本なので、カードの列にせず横長のリンクで置く。
   1枚だけカードを置くと「作りかけ」に見えるため。本数が増えたらグリッドに変える。 */

.p-featureList {
	display: grid;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.p-featureList__link {
	display: block;
	padding: 18px 22px;
	border: 1px solid var(--kn-line);
	border-radius: var(--kn-radius-m);
	background: var(--kn-surface);
	box-shadow: var(--kn-shadow-1);
	color: inherit;
	text-decoration: none;
	transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}

.p-featureList__link:hover {
	border-color: var(--kn-orange);
	box-shadow: var(--kn-shadow-2);
	transform: translateY(-2px);
}

.p-featureList__title {
	display: block;
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--kn-navy);
}

.p-featureList__note {
	display: block;
	margin-top: 5px;
	font-size: .82rem;
	color: var(--kn-ink-3);
}

@media (max-width: 767px) {
	.p-featureList__link {
		padding: 15px 16px;
	}
	.p-featureList__title {
		font-size: 1rem;
	}
}

/* ---- 特集への導線（都道府県アーカイブ） ----
   一覧より先に置くので、カードの列と混ざらないよう地の色を変えて塊で見せる。
   すぐ下に業種の絞り込みフォームが来るため、上下の余白は詰めすぎないこと。 */

.p-featureLink {
	margin: 4px 0 24px;
	padding: 18px 22px 20px;
	border: 1px solid #e3e8ec;
	border-left: 4px solid var(--kn-orange);
	border-radius: var(--kn-radius-m);
	background: linear-gradient(180deg, #fffaf4 0%, var(--kn-surface) 100%);
}

.p-featureLink__eyebrow {
	margin: 0 0 4px;
	color: var(--kn-orange-deep);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .12em;
}

.p-featureLink__title {
	margin: 0 0 6px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
}

.p-featureLink__title a {
	color: var(--kn-navy);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: rgba(28, 43, 58, .3);
	text-underline-offset: 4px;
}

.p-featureLink__title a:hover {
	color: var(--kn-orange-deep);
	text-decoration-color: currentColor;
}

.p-featureLink__text {
	margin: 0;
	font-size: .86rem;
	line-height: 1.8;
	color: var(--kn-ink-2);
}

@media (max-width: 767px) {
	.p-featureLink {
		padding: 14px 16px 16px;
	}
	.p-featureLink__title {
		font-size: 1.05rem;
	}
}

/* ---- 見学の一時休止（再開待ち） ----
   「行けるのか行けないのか」は来訪判断の根幹なので、警告色ではっきり出す。
   ただし**廃止ではない**ので、灰色に沈めて諦めさせる見せ方はしないこと。 */

.p-factoryDetail__suspend {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0 0 22px;
	padding: 14px 18px;
	border: 1px solid #f0d6b4;
	border-left: 4px solid var(--kn-orange);
	border-radius: var(--kn-radius-s);
	background: #fff8ef;
}

.p-factoryDetail__suspendTitle {
	font-size: 1rem;
	font-weight: 700;
	color: var(--kn-orange-deep);
}

.p-factoryDetail__suspendNote {
	font-size: .84rem;
	line-height: 1.75;
	color: var(--kn-ink-2);
}

.p-factoryDetail__suspendResume {
	font-size: .84rem;
	font-weight: 700;
	color: var(--kn-ink);
}

/* カード・見出しのタグ。見学可の緑と間違えないよう温色にする */
.p-factoryCard__tag--suspended,
.p-factoryDetail__tag--suspended {
	background: #fdeee0;
	border-color: #f3d7bb;
	color: var(--kn-orange-deep);
	font-weight: 700;
}

/* ---- 工場詳細：外部リンクと運営会社リンク ----
   2026-08-02 オーナー指摘「運営会社へのリンクがリンクだと分かりにくい」への対応。
   下線も色の差も無く、本文と同じ濃さで置かれていたのが原因だった。 */

/* 運営会社（サイト内リンク）。藍色＋下線でリンクだと分かるようにする。
   上の方に `.p-factoryDetail__company a { color: var(--kn-steel) }`（0,2,1）があるので、
   クラス単体（0,1,0）では色が勝てない。**必ず親を付けて書くこと。** */
.p-factoryDetail__company .p-factoryDetail__companyLink {
	color: var(--kn-indigo);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: rgba(47, 93, 134, .45);
	text-underline-offset: 3px;
}

.p-factoryDetail__company .p-factoryDetail__companyLink:hover {
	color: var(--kn-orange-deep);
	text-decoration-color: currentColor;
}

/* 基本情報の表から外部サイトへ出るリンク。
   線の引き方は「Googleマップで経路を見る」と揃え、外部に出ることを矢印で示す。 */
.p-factoryDetail__extLink {
	display: inline-block;
	color: var(--kn-navy);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 2px solid var(--kn-orange);
	padding-bottom: 1px;
}

.p-factoryDetail__extLink::after {
	content: "↗";
	margin-left: 4px;
	font-size: .85em;
	color: var(--kn-orange-deep);
}

.p-factoryDetail__extLink:hover {
	color: var(--kn-orange-deep);
	border-bottom-color: var(--kn-orange-deep);
}

/* スマホは他のページのカードと同じ縦積みに戻す（横長のままだとイラストが小さくなりすぎる） */
@media (max-width: 599px) {
	.p-factoryPick .p-factoryCard__link {
		grid-template-columns: minmax(0, 1fr);
	}
	.p-factoryPick .p-factoryCard__thumb {
		aspect-ratio: 200 / 110;
	}
	.p-factoryPick .p-factoryCard__thumb .kn-illust {
		height: 100%;
		aspect-ratio: auto;
	}
}

/* ---- スタンプラリー（2026-08-19） ----
   色は食料品／それ以外の2値のみ。業種の色を27色に増やさない方針による。 */

.kn-stampBtn {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 16px;
	border: 1px solid var(--kn-line-soft);
	border-radius: var(--kn-radius-m);
	background: var(--kn-bg);
}

.kn-stampBtn__button {
	padding: 12px 20px;
	border: 0;
	border-radius: 999px;
	background: var(--kn-navy);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
}

.kn-stampBtn__button:disabled {
	background: #9aa5ad;
	cursor: default;
}

.kn-stampBtn.is-inRange .kn-stampBtn__button:not(:disabled) {
	background: var(--kn-orange);
}

.kn-stampBtn__status,
.kn-stampBtn__note {
	margin: 0;
	color: var(--kn-ink-3);
	font-size: .82rem;
	line-height: 1.6;
}

.kn-stampList__locate {
	padding: 12px 24px;
	border: 0;
	border-radius: 999px;
	background: var(--kn-orange);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
}

.kn-stampList__items {
	list-style: none;
	margin: 20px 0 0;
	padding: 0;
}

.kn-stampList__item {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 12px;
	align-items: center;
	padding: 12px 14px;
	border-left: 4px solid var(--kn-line);
	border-bottom: 1px solid var(--kn-line-soft);
}

/* 食料品とそれ以外の2色だけ */
.kn-stampList__item[data-kind="food"]  { border-left-color: #d9763c; }
.kn-stampList__item[data-kind="other"] { border-left-color: #3a5375; }

.kn-stampList__item.is-visited { opacity: .6; }

.kn-stampList__dist {
	color: var(--kn-ink-3);
	font-size: .85rem;
	font-variant-numeric: tabular-nums;
}

.kn-stampList__button {
	padding: 8px 16px;
	border: 1px solid var(--kn-navy);
	border-radius: 999px;
	background: #fff;
	color: var(--kn-navy);
	font-size: .82rem;
	font-weight: 700;
	cursor: pointer;
}

.kn-stampList__button:disabled {
	border-color: #c3cbd1;
	color: #8b959c;
	cursor: default;
}

@media (max-width: 600px) {
	.kn-stampList__item {
		grid-template-columns: 1fr auto;
		row-gap: 8px;
	}
	.kn-stampList__button { grid-column: 2; }
}

/* ---- 企業ミュージアム一覧の県内リンク（2026-08-22） ---- */

.p-museumNav {
	margin: 0 0 32px;
	padding: 16px 18px;
	border: 1px solid var(--kn-line-soft);
	border-radius: var(--kn-radius-m);
	background: var(--kn-bg);
}

.p-museumNav__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.p-museumNav__list a {
	display: inline-flex;
	align-items: baseline;
	gap: 5px;
	padding: 5px 12px;
	border: 1px solid var(--kn-line);
	border-radius: 999px;
	background: #fff;
	color: var(--kn-navy);
	font-size: .84rem;
	font-weight: 700;
	text-decoration: none;
}

.p-museumNav__list a:hover {
	border-color: var(--kn-orange);
	color: var(--kn-orange);
}

.p-museumNav__list a span {
	color: var(--kn-ink-3);
	font-size: .74rem;
	font-weight: 400;
	font-variant-numeric: tabular-nums;
}
