@charset "UTF-8";
/*
Theme Name: HIACEVAN
Theme URI:
Description: ハイエースパーツ比較・アフィリエイトサイト用のオリジナルテーマ。プラグイン非依存。config/ を差し替えることで他車種サイトへ転用できます。
Author:
Version: 0.1.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jimnys
*/

/* ============================================================
   デザイントークン
   参考: 黒 × イエロー × 白 のハイコントラスト
   ============================================================ */
:root {
	/* --- ブランドカラー（ロゴから抽出 / マット・低彩度） --- */
	--c-green-900:  #0d1a0e;   /* 最暗。ヘッダー・フッター・反転セクション */
	--c-green-800:  #152817;   /* メインの濃い緑 */
	--c-green-700:  #1f3a22;   /* ホバー・境界 */
	--c-green-600:  #2f4d33;
	--c-green-100:  #e3e8e0;   /* 薄い緑のトーン */

	--c-olive:      #a9be2c;   /* アクセント（ロゴの「図鑑」） */
	--c-olive-dark: #8fa31f;

	--c-cream:      #f4f2e8;   /* ベース背景（純白を使わずマットな紙の質感に） */
	--c-cream-sub:  #eae7da;   /* サブ背景 */

	/* --- セマンティック --- */
	--c-primary:    var(--c-green-800);
	--c-accent:     var(--c-olive);
	--c-accent-dark:var(--c-olive-dark);
	--c-ink:        #162016;
	--c-ink-soft:   #3e4a3e;
	--c-muted:      #74806f;
	--c-line:       #d8d6c8;
	--c-bg:         var(--c-cream);
	--c-bg-sub:     var(--c-cream-sub);
	--c-bg-dark:    var(--c-green-900);
	--c-surface:    #fbfaf4;   /* カードの面 */

	/* 機能色 */
	--c-link:       #1f5c2a;
	--c-rakuten:    #bf0000;
	--c-badge-article: var(--c-green-800);

	/* タイポグラフィ */
	--font-ja: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, system-ui, sans-serif;
	--font-en: "Archivo", "Helvetica Neue", Arial, sans-serif;
	--fs-base: 1rem;
	--lh-base: 1.9;

	/* レイアウト */
	--w-max:     1180px;
	--w-narrow:  760px;
	--gutter:    16px;
	--radius:    10px;
	--radius-pill: 999px;

	/* 余白スケール */
	--sp-1: 4px;
	--sp-2: 8px;
	--sp-3: 16px;
	--sp-4: 24px;
	--sp-5: 40px;
	--sp-6: 64px;
	--sp-7: 96px;

	/* 影はマット表現のため最小限（光沢を出さない） */
	--shadow-card: 0 1px 2px rgba(13,26,14,.06), 0 4px 14px rgba(13,26,14,.05);
}

/* ============================================================
   リセット
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--font-ja);
	font-size: var(--fs-base);
	line-height: var(--lh-base);
	color: var(--c-ink);
	background: var(--c-bg);
	overflow-wrap: anywhere;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: var(--c-link); text-decoration: underline; text-underline-offset: 2px; }
a:hover { text-decoration: none; }

h1, h2, h3, h4 { line-height: 1.4; margin: 0 0 var(--sp-3); font-weight: 700; }
p, ul, ol { margin: 0 0 var(--sp-3); }

button { font: inherit; cursor: pointer; }

/* ============================================================
   レイアウト
   ============================================================ */
.l-container {
	width: 100%;
	max-width: var(--w-max);
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.l-narrow { max-width: var(--w-narrow); }

.l-section { padding-block: var(--sp-6); }
.l-section--dark { background: var(--c-bg-dark); color: var(--c-cream); }
.l-section--accent { background: var(--c-accent); }
.l-section--sub { background: var(--c-bg-sub); }

/* ============================================================
   見出し（英字＋和文の2段組み）
   ============================================================ */
.c-heading { margin-bottom: var(--sp-5); }
.c-heading__en {
	display: block;
	font-family: var(--font-en);
	font-weight: 900;
	font-size: clamp(2rem, 7vw, 3.5rem);
	line-height: 1;
	letter-spacing: -.02em;
	text-transform: uppercase;
}
.c-heading__ja {
	display: block;
	margin-top: var(--sp-2);
	font-size: 1rem;
	font-weight: 700;
	color: var(--c-muted);
}
.l-section--dark .c-heading__ja { color: rgba(244,242,232,.68); }

/* ============================================================
   ボタン
   ============================================================ */
.c-btn {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	padding: 14px 28px;
	border: 2px solid var(--c-primary);
	border-radius: var(--radius-pill);
	background: var(--c-primary);
	color: var(--c-cream);
	font-weight: 700;
	text-decoration: none;
	transition: background .2s, color .2s;
}
.c-btn:hover { background: transparent; color: var(--c-primary); }

.c-btn--rakuten { background: var(--c-rakuten); border-color: var(--c-rakuten); }
.c-btn--rakuten:hover { background: var(--c-surface); color: var(--c-rakuten); }

.c-btn--accent { background: var(--c-accent); border-color: var(--c-accent); color: var(--c-ink); }

/* ============================================================
   グリッド（型式・パーツ・商品カード共通）
   ============================================================ */
.c-grid { display: grid; gap: var(--sp-3); }
.c-grid--models  { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.c-grid--parts   { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.c-grid--items   { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }

/* ============================================================
   型式カード
   ============================================================ */
.c-model-card {
	display: block;
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	overflow: hidden;
	background: var(--c-surface);
	text-decoration: none;
	color: inherit;
	transition: transform .2s, box-shadow .2s;
}
.c-model-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-card); }
.c-model-card__thumb { aspect-ratio: 4 / 3; background: var(--c-bg-sub); }
.c-model-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
/* 型式名と年式はくっつくと読みにくいので、必ず行を分けます。 */
.c-model-card__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: var(--sp-3);
}
.c-model-card__name {
	font-family: var(--font-en);
	font-weight: 900;
	font-size: 1.35rem;
	line-height: 1.1;
}
.c-model-card__year { font-size: .8rem; color: var(--c-muted); }

/* 画像がない型式用のスペックカード（自動フォールバック） */
.c-model-card__spec {
	aspect-ratio: 4 / 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--sp-1);
	background: var(--c-green-900);
	color: var(--c-cream);
	text-align: center;
	padding: var(--sp-3);
}
.c-model-card__spec b {
	font-family: var(--font-en);
	font-size: clamp(1.4rem, 5vw, 2rem);
	line-height: 1;
	color: var(--c-accent);
}
.c-model-card__spec span { font-size: .72rem; color: rgba(244,242,232,.72); }

/* ============================================================
   パーツアイコン
   ============================================================ */
.c-part-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	overflow: hidden;
	background: var(--c-surface);
	text-decoration: none;
	color: inherit;
	text-align: center;
	transition: border-color .2s, transform .2s, box-shadow .2s;
}
.c-part-card:hover {
	border-color: var(--c-green-600);
	transform: translateY(-3px);
	box-shadow: var(--shadow-card);
}
/* 白背景のプロダクト写真をカード地になじませる */
.c-part-card__thumb {
	aspect-ratio: 1 / 1;
	display: grid;
	place-items: center;
	padding: var(--sp-2);
	background: var(--c-bg-sub);
}
.c-part-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}
.c-part-card__body { padding: var(--sp-2) var(--sp-2) var(--sp-3); }
.c-part-card__name { font-size: .82rem; font-weight: 700; line-height: 1.35; }
.c-part-card__count { font-size: .7rem; color: var(--c-muted); }

/* ============================================================
   商品／記事カード
   ============================================================ */
.c-item-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	overflow: hidden;
	background: var(--c-surface);
}
.c-item-card__thumb { aspect-ratio: 1 / 1; background: var(--c-bg-sub); }
.c-item-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.c-item-card__body { padding: var(--sp-3); display: flex; flex-direction: column; gap: var(--sp-2); flex: 1; }
.c-item-card__title { font-size: .95rem; font-weight: 700; line-height: 1.5; margin: 0; }
.c-item-card__excerpt { font-size: .82rem; color: var(--c-ink-soft); line-height: 1.7; margin: 0; }
.c-item-card__foot { margin-top: auto; }

.c-badge {
	display: inline-block;
	padding: 2px 10px;
	border-radius: var(--radius-pill);
	font-size: .7rem;
	font-weight: 700;
	line-height: 1.7;
}
.c-badge--article { background: var(--c-badge-article); color: var(--c-cream); }
.c-badge--maker   { background: var(--c-bg-sub); color: var(--c-ink-soft); }
.c-badge--model   { background: var(--c-accent); color: var(--c-ink); }

/* ============================================================
   フィルター（カテゴリページ上段）
   ============================================================ */
.c-filter { padding: var(--sp-3); background: var(--c-bg-sub); border-radius: var(--radius); margin-bottom: var(--sp-5); }
.c-filter__row { display: flex; flex-wrap: wrap; gap: var(--sp-2); align-items: center; }
.c-filter__label { font-size: .8rem; font-weight: 700; min-width: 4em; }
.c-filter__chip {
	padding: 6px 14px;
	border: 1px solid var(--c-line);
	border-radius: var(--radius-pill);
	background: var(--c-surface);
	font-size: .8rem;
	font-weight: 700;
}
.c-filter__chip[aria-pressed="true"] { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-cream); }

/* ============================================================
   広告表記（記事冒頭に自動挿入）
   ============================================================ */
.c-ad-notice {
	padding: var(--sp-2) var(--sp-3);
	margin-bottom: var(--sp-4);
	background: var(--c-bg-sub);
	border-left: 3px solid var(--c-accent);
	font-size: .8rem;
	color: var(--c-muted);
}

/* ============================================================
   パンくず
   ============================================================ */
.c-breadcrumb { font-size: .78rem; color: var(--c-muted); padding-block: var(--sp-3); }
.c-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: var(--sp-1); margin: 0; padding: 0; }
.c-breadcrumb li:not(:last-child)::after { content: "›"; margin-left: var(--sp-1); }

/* ============================================================
   記事本文
   ============================================================ */
.c-entry { font-size: 1rem; line-height: 2; }
.c-entry h2 {
	margin: var(--sp-6) 0 var(--sp-3);
	padding: var(--sp-2) 0 var(--sp-2) var(--sp-3);
	border-left: 5px solid var(--c-accent);
	font-size: 1.4rem;
}
.c-entry h3 { margin: var(--sp-5) 0 var(--sp-3); font-size: 1.15rem; }
.c-entry img { border-radius: var(--radius); margin-block: var(--sp-4); }
.c-entry table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.c-entry th, .c-entry td { padding: 10px 12px; border: 1px solid var(--c-line); }
.c-entry th { background: var(--c-bg-sub); }

/* 比較表はスマホで横スクロール */
.c-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-block: var(--sp-4); }

/* ============================================================
   アクセシビリティ
   ============================================================ */
.u-visually-hidden {
	position: absolute; width: 1px; height: 1px;
	margin: -1px; padding: 0; overflow: hidden;
	clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
:focus-visible { outline: 3px solid var(--c-link); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
	html { scroll-behavior: auto; }
}

/* ============================================================
   ヘッダー / フッター
   ============================================================ */
.l-header { background: var(--c-green-900); }
.l-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-3);
	flex-wrap: wrap;
	padding-block: var(--sp-3);
}
.c-logo { display: inline-block; line-height: 0; text-decoration: none; }
.c-logo img { width: auto; height: 46px; }
.c-logo--text {
	font-family: var(--font-en);
	font-weight: 900;
	font-size: 1.25rem;
	color: var(--c-cream);
	line-height: 1.2;
}
.l-header__nav { display: flex; gap: var(--sp-4); flex-wrap: wrap; }
.l-header__nav a {
	color: var(--c-cream);
	font-size: .85rem;
	font-weight: 700;
	text-decoration: none;
}
.l-header__nav a:hover { color: var(--c-olive); }

.l-footer {
	background: var(--c-green-900);
	color: var(--c-cream);
	padding-block: var(--sp-6);
	margin-top: var(--sp-7);
}
.l-footer .c-logo img { height: 40px; margin-bottom: var(--sp-4); }
.l-footer__menu {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-4);
	margin: 0 0 var(--sp-4);
	padding: 0;
}
.l-footer__menu a { color: var(--c-cream); font-size: .85rem; text-decoration: none; }
.l-footer__menu a:hover { color: var(--c-olive); }
.l-footer__note { font-size: .72rem; color: rgba(244,242,232,.55); line-height: 1.8; }
.l-footer__copy { font-size: .72rem; color: rgba(244,242,232,.55); margin: 0; }

/* ============================================================
   TOPページ
   ============================================================ */
.p-hero { padding-block: var(--sp-7); }
.p-hero__lead { max-width: 46em; color: rgba(244,242,232,.82); margin: 0; }

.p-years { display: flex; flex-wrap: wrap; gap: var(--sp-2); }

.p-parts-group + .p-parts-group { margin-top: var(--sp-6); }
.p-parts-group__title {
	font-size: 1rem;
	padding-bottom: var(--sp-2);
	margin-bottom: var(--sp-3);
	border-bottom: 2px solid var(--c-green-800);
}

@media (max-width: 600px) {
	.l-header__inner { justify-content: center; }
	.c-logo img { height: 38px; }
	.l-header__nav { gap: var(--sp-3); justify-content: center; width: 100%; }
}

/* =========================================================================
   型式ページ
   ====================================================================== */

.p-model-head__inner {
	display: grid;
	gap: clamp(20px, 4vw, 48px);
	grid-template-columns: 1fr;
	align-items: start;
}

@media (min-width: 900px) {
	.p-model-head__inner {
		grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
	}
}

.p-model-head__photo {
	background: var(--c-cream-sub);
	border: 1px solid var(--c-line);
	border-radius: 4px;
	padding: 16px;
}

.p-model-head__photo img {
	display: block;
	width: 100%;
	height: auto;
	mix-blend-mode: multiply;
}

.p-model-head__year {
	margin: 0 0 16px;
	font-size: .95rem;
	letter-spacing: .04em;
	color: var(--c-muted);
}

.p-model-head__desc {
	margin-bottom: 24px;
	color: var(--c-ink-soft);
	line-height: 1.9;
}

.p-model-members__note {
	margin: -8px 0 24px;
	font-size: .9rem;
	color: var(--c-muted);
}

/* =========================================================================
   スペック表
   ====================================================================== */

.c-table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.c-spec {
	width: 100%;
	border-collapse: collapse;
	font-size: .92rem;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
}

.c-spec th,
.c-spec td {
	padding: 10px 14px;
	border-bottom: 1px solid var(--c-line);
	text-align: left;
	vertical-align: top;
}

.c-spec tbody th {
	width: 10em;
	white-space: nowrap;
	background: var(--c-cream-sub);
	font-weight: 600;
	color: var(--c-ink-soft);
}

.c-spec tr:last-child th,
.c-spec tr:last-child td {
	border-bottom: 0;
}

.c-spec--list thead th {
	background: var(--c-green-800);
	color: var(--c-cream);
	white-space: nowrap;
	border-bottom: 0;
}

.c-spec--list tbody th {
	width: auto;
	background: transparent;
}

.c-spec--list a {
	color: var(--c-link);
	font-weight: 700;
}

/* =========================================================================
   グループ内の型式
   ====================================================================== */

.c-grid--members {
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
}

.c-member-card {
	display: flex;
	flex-direction: column;
	gap: 6px;
	align-items: center;
	padding: 12px;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: 4px;
}

.c-member-card img {
	width: 100%;
	height: auto;
	mix-blend-mode: multiply;
}

.c-member-card__name {
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .06em;
	color: var(--c-ink-soft);
}

/* =========================================================================
   交差ページ / カテゴリページの見出し
   ====================================================================== */

.p-cross-head__inner {
	display: flex;
	gap: clamp(16px, 3vw, 32px);
	align-items: center;
	flex-wrap: wrap;
}

.p-cross-head__icon {
	flex: 0 0 auto;
	width: clamp(84px, 14vw, 140px);
	padding: 10px;
	background: var(--c-cream-sub);
	border: 1px solid var(--c-line);
	border-radius: 4px;
}

.p-cross-head__icon img {
	display: block;
	width: 100%;
	height: auto;
	mix-blend-mode: multiply;
}

.p-cross-head__meta {
	margin: 0;
	font-size: .9rem;
	color: var(--c-muted);
	letter-spacing: .04em;
}

.p-cross-head__desc {
	margin-top: 12px;
	color: var(--c-ink-soft);
	line-height: 1.9;
}

/* =========================================================================
   チップ（他の型式などへの導線）
   ====================================================================== */

.c-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.c-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: 999px;
	font-size: .88rem;
	font-weight: 600;
	color: var(--c-ink-soft);
	text-decoration: none;
	transition: border-color .15s, color .15s;
}

.c-chip:hover,
.c-chip:focus-visible {
	border-color: var(--c-green-600);
	color: var(--c-green-700);
}

.c-chip span {
	font-size: .75rem;
	font-weight: 700;
	color: var(--c-muted);
}

/* =========================================================================
   商品カードの追加パーツ
   ====================================================================== */

.c-item-card__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin-bottom: 8px;
}

.c-item-card__price {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--c-rakuten);
	letter-spacing: .02em;
}

.c-item-card__shop {
	font-size: .78rem;
	color: var(--c-muted);
}

.c-item-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin-top: 12px;
}

.c-item-card__more {
	font-size: .85rem;
	font-weight: 600;
	color: var(--c-link);
}

/* =========================================================================
   記事ページ
   ====================================================================== */

.p-entry-head {
	margin-bottom: 24px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--c-line);
}

.p-entry-head__title {
	margin: 8px 0 12px;
	font-size: clamp(1.35rem, 3.4vw, 2rem);
	line-height: 1.5;
	letter-spacing: .01em;
}

.p-entry-head__meta {
	margin: 0;
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	font-size: .82rem;
	color: var(--c-muted);
}

.p-entry-thumb {
	margin: 0 0 28px;
	background: var(--c-cream-sub);
	border: 1px solid var(--c-line);
	border-radius: 4px;
	padding: 16px;
}

.p-entry-thumb img {
	display: block;
	width: 100%;
	height: auto;
	mix-blend-mode: multiply;
}

/* 購入ボックス */
.c-buybox {
	margin: 36px 0;
	padding: clamp(18px, 3vw, 28px);
	background: var(--c-cream-sub);
	border: 1px solid var(--c-line);
	border-radius: 4px;
}

.c-buybox__title {
	margin: 0 0 14px;
	font-size: 1.02rem;
	line-height: 1.6;
}

.c-buybox__spec {
	margin: 0 0 18px;
	display: grid;
	gap: 6px;
}

.c-buybox__spec > div {
	display: flex;
	gap: 12px;
	align-items: baseline;
	font-size: .9rem;
}

.c-buybox__spec dt {
	flex: 0 0 5.5em;
	color: var(--c-muted);
	font-size: .82rem;
}

.c-buybox__spec dd {
	margin: 0;
}

.c-buybox__price {
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--c-rakuten);
}

.c-buybox__note {
	margin: 12px 0 0;
	font-size: .78rem;
	color: var(--c-muted);
}

/* 次の導線 */
.c-nextlinks {
	margin: 36px 0 0;
	padding-top: 24px;
	border-top: 1px solid var(--c-line);
}

.c-nextlinks__title {
	margin: 0 0 12px;
	font-size: .95rem;
	letter-spacing: .04em;
	color: var(--c-ink-soft);
}

/* =========================================================================
   空状態 / ページ送り / 検索フォーム
   ====================================================================== */

.c-empty {
	padding: 28px;
	background: var(--c-cream-sub);
	border: 1px dashed var(--c-line);
	border-radius: 4px;
	text-align: center;
	color: var(--c-ink-soft);
	font-size: .92rem;
}

.c-empty a {
	color: var(--c-link);
	font-weight: 600;
}

.c-pagination {
	margin-top: 32px;
}

.c-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
}

.c-pagination .page-numbers {
	display: inline-flex;
	min-width: 40px;
	height: 40px;
	align-items: center;
	justify-content: center;
	padding: 0 10px;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: 3px;
	font-size: .88rem;
	font-weight: 600;
	color: var(--c-ink-soft);
	text-decoration: none;
}

.c-pagination .page-numbers.current {
	background: var(--c-green-800);
	border-color: var(--c-green-800);
	color: var(--c-cream);
}

.c-pagination .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.c-searchform {
	display: flex;
	gap: 8px;
	margin: 0 0 28px;
	max-width: 480px;
}

.c-searchform input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	padding: 10px 14px;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: 3px;
	font-size: .95rem;
	color: var(--c-ink);
}

.c-searchform input[type="search"]:focus-visible {
	outline: 2px solid var(--c-green-600);
	outline-offset: 1px;
}

.c-searchform button {
	flex: 0 0 auto;
	padding: 10px 20px;
	background: var(--c-green-800);
	border: 0;
	border-radius: 3px;
	color: var(--c-cream);
	font-size: .9rem;
	font-weight: 700;
	letter-spacing: .06em;
	cursor: pointer;
}

.c-searchform button:hover {
	background: var(--c-green-700);
}

/* フィルターで隠れたカード */
.c-item-card[hidden] {
	display: none;
}

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

.c-form {
	display: grid;
	gap: 18px;
	max-width: 620px;
	margin: 28px 0;
}

.c-form__row {
	display: grid;
	gap: 6px;
}

.c-form__row > label {
	font-size: .88rem;
	font-weight: 600;
	color: var(--c-ink-soft);
}

.c-form__row > label span {
	display: inline-block;
	margin-left: 6px;
	padding: 2px 6px;
	border-radius: 2px;
	background: var(--c-olive);
	color: var(--c-green-900);
	font-size: .66rem;
	font-weight: 700;
	letter-spacing: .06em;
	vertical-align: 2px;
}

.c-form input[type="text"],
.c-form input[type="email"],
.c-form textarea {
	width: 100%;
	padding: 11px 14px;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: 3px;
	font-size: 1rem;
	font-family: inherit;
	color: var(--c-ink);
	line-height: 1.7;
}

.c-form input:focus-visible,
.c-form textarea:focus-visible {
	outline: 2px solid var(--c-green-600);
	outline-offset: 1px;
}

.c-form__row--consent label {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	font-size: .88rem;
	font-weight: 400;
	color: var(--c-ink-soft);
}

.c-form__row--consent a {
	color: var(--c-link);
	font-weight: 600;
}

.c-form button[type="submit"] {
	justify-self: start;
	border: 0;
	cursor: pointer;
	font-family: inherit;
}

/* ハニーポット: 人間には見えない位置に置く（display:none は一部のボットに検知される） */
.c-form__trap {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.c-form__done {
	padding: 24px;
	background: var(--c-cream-sub);
	border-left: 4px solid var(--c-green-600);
	border-radius: 3px;
	line-height: 1.9;
}

.c-form__error {
	margin: 0;
	padding: 14px 18px;
	background: #fdf0ef;
	border-left: 4px solid var(--c-rakuten);
	border-radius: 3px;
	font-size: .9rem;
	color: #8a1f1a;
}

/* =========================================================================
   画像が未作成のパーツカード
   画像を後から assets/images/parts/ に置けば自動で写真カードに戻ります。
   ====================================================================== */

.c-part-card__thumb:empty {
	display: none;
}

.c-part-card:has(.c-part-card__thumb:empty) {
	min-height: 0;
	padding: 14px 16px;
}

.c-part-card:has(.c-part-card__thumb:empty) .c-part-card__body {
	padding: 0;
	text-align: left;
}

/* 楽天ウェブサービスのクレジット表記（規約で必要） */
.l-footer__credit {
	margin: 16px 0 0;
	font-size: .72rem;
	letter-spacing: .04em;
}

.l-footer__credit a {
	color: var(--c-green-100);
	opacity: .7;
	text-decoration: none;
}

.l-footer__credit a:hover {
	opacity: 1;
	text-decoration: underline;
}

/* =========================================================================
   TOPヒーローの背景写真
   assets/images/common/hero.jpg があるときだけ適用されます。
   ====================================================================== */

.p-hero--photo {
	position: relative;
	isolation: isolate;
	background-image: var(--hero-image);
	background-size: cover;
	background-position: center 60%;
}

.p-hero--photo::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(
		100deg,
		rgba(13, 26, 14, .92) 0%,
		rgba(13, 26, 14, .78) 45%,
		rgba(13, 26, 14, .45) 100%
	);
}

/* =========================================================================
   型式ページの車種写真
   画像は640×640なので、表示幅を320pxまでに抑えて高精細画面でも粗く見えないようにする
   ====================================================================== */

.p-model-head__photo {
	max-width: 320px;
}

@media (min-width: 900px) {
	.p-model-head__inner {
		grid-template-columns: minmax(0, 360px) minmax(0, 1fr);
	}
}

/* 商品が無いパーツカード（デザイン確認モード中） */
.c-part-card__count:empty {
	display: none;
}

/* =========================================================================
   TOPの人気パーツ
   12枚が 6列×2段 / 4列×3段 / 2列×6段 のどれでも割り切れるようにする
   ====================================================================== */

.c-grid--top {
	grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
}

@media (max-width: 600px) {
	.c-grid--top {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.p-more {
	margin: clamp(24px, 4vw, 40px) 0 0;
	text-align: center;
}

/* =========================================================================
   グループ内の型式（説明文つき）
   ====================================================================== */

.c-members {
	display: grid;
	gap: clamp(16px, 2.5vw, 28px);
}

.c-member {
	display: grid;
	gap: clamp(14px, 2.5vw, 28px);
	grid-template-columns: 1fr;
	align-items: start;
	padding: clamp(16px, 2.5vw, 24px);
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: 4px;
}

@media (min-width: 720px) {
	.c-member {
		grid-template-columns: 180px minmax(0, 1fr);
	}
}

.c-member__thumb {
	background: var(--c-cream-sub);
	border-radius: 3px;
	padding: 10px;
	max-width: 180px;
}

.c-member__thumb img {
	display: block;
	width: 100%;
	height: auto;
	mix-blend-mode: multiply;
}

.c-member__name {
	margin: 0 0 4px;
	font-size: 1.05rem;
	letter-spacing: .04em;
}

.c-member__name span {
	margin-left: 10px;
	font-size: .82rem;
	font-weight: 600;
	color: var(--c-muted);
	letter-spacing: .02em;
}

.c-member__years {
	margin: 0 0 10px;
	font-size: .8rem;
	color: var(--c-muted);
	letter-spacing: .04em;
}

.c-member__desc {
	margin: 0;
	font-size: .92rem;
	line-height: 1.95;
	color: var(--c-ink-soft);
}

/* =========================================================================
   サイト紹介文
   ====================================================================== */

.p-about__lead {
	margin: 0 0 20px;
	font-size: clamp(1.15rem, 3vw, 1.6rem);
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: .02em;
	color: var(--c-green-700);
}

.p-about__body {
	font-size: .95rem;
	line-height: 2.05;
	color: var(--c-ink-soft);
}

.p-about__body p {
	margin: 0 0 1.4em;
}

.p-about__closing {
	margin-top: 1.8em;
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--c-green-700);
}

/* 商品がまだ無い組み合わせの件数は目立たせない */
.c-part-card__count.is-zero,
.c-chip span.is-zero {
	opacity: .45;
}

/* =========================================================================
   ここから下は見た目の調整（後から読み込んで上書きしています）
   ====================================================================== */

/* -------------------------------------------------------------------------
   見出し
   英字を巨大に出すのをやめ、小さなラベルにして日本語を主役にする
   ---------------------------------------------------------------------- */

.c-heading {
	margin-bottom: clamp(20px, 3vw, 34px);
}

.c-heading__en {
	display: block;
	margin-bottom: .85em;
	font-family: var(--font-en);
	font-size: .7rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--c-green-600);
}

.l-section--dark .c-heading__en {
	color: var(--c-olive);
}

.c-heading__ja {
	display: block;
	margin-top: 0;
	font-size: clamp(1.3rem, 3.4vw, 1.95rem);
	font-weight: 500;
	line-height: 1.55;
	letter-spacing: .05em;
	color: inherit;
}

/* -------------------------------------------------------------------------
   ヒーロー
   ---------------------------------------------------------------------- */

.p-hero {
	padding-block: clamp(40px, 7vw, 92px);
}

.p-hero__inner {
	display: grid;
	gap: clamp(28px, 4vw, 56px);
	grid-template-columns: 1fr;
	align-items: center;
}

@media (min-width: 880px) {
	.p-hero__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 46%);
	}
}

.p-hero__eyebrow {
	margin: 0 0 16px;
	font-family: var(--font-en);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--c-olive);
}

.p-hero__title {
	margin: 0 0 22px;
	font-size: clamp(1.7rem, 5vw, 2.9rem);
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: .04em;
}

.p-hero__lead {
	margin: 0 0 30px;
	max-width: 34em;
	font-size: .95rem;
	line-height: 2;
	color: rgba(244, 242, 232, .78);
}

.p-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.c-btn--ghost {
	background: transparent;
	border: 1px solid rgba(244, 242, 232, .45);
	color: var(--c-cream);
}

.c-btn--ghost:hover,
.c-btn--ghost:focus-visible {
	background: rgba(244, 242, 232, .08);
	border-color: var(--c-cream);
}

/* -------------------------------------------------------------------------
   画像の枠
   ファイルを置けば自動で写真に差し替わります
   ---------------------------------------------------------------------- */

.c-slot {
	display: block;
	width: 100%;
	aspect-ratio: var(--slot-ratio, 3 / 2);
	border-radius: 4px;
	overflow: hidden;
}

.c-slot.is-filled img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.c-slot.is-empty {
	display: grid;
	place-items: center;
	padding: 16px;
	text-align: center;
	background: var(--c-cream-sub);
	border: 2px dashed var(--c-line);
}

.l-section--dark .c-slot.is-empty {
	background: rgba(244, 242, 232, .05);
	border-color: rgba(244, 242, 232, .28);
}

.c-slot__inner {
	display: grid;
	gap: 8px;
}

.c-slot__size {
	font-family: var(--font-en);
	font-size: clamp(1.1rem, 2.6vw, 1.7rem);
	font-weight: 700;
	letter-spacing: .06em;
	color: var(--c-ink-soft);
}

.c-slot__file {
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .72rem;
	line-height: 1.6;
	word-break: break-all;
	color: var(--c-muted);
}

.c-slot__label {
	font-size: .78rem;
	color: var(--c-muted);
}

.l-section--dark .c-slot__size {
	color: var(--c-cream);
}

.l-section--dark .c-slot__file,
.l-section--dark .c-slot__label {
	color: rgba(244, 242, 232, .6);
}

/* -------------------------------------------------------------------------
   パーツカード
   パーツ名と件数を縦に積む
   ---------------------------------------------------------------------- */

.c-part-card__body {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 10px 12px 14px;
}

.c-part-card__name,
.c-part-card__count {
	display: block;
}

/* -------------------------------------------------------------------------
   サイト紹介
   ---------------------------------------------------------------------- */

.p-about__inner {
	display: grid;
	gap: clamp(24px, 4vw, 56px);
	grid-template-columns: 1fr;
	align-items: center;
}

@media (min-width: 880px) {
	.p-about__inner {
		grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
	}
}

.p-about__body {
	font-size: .93rem;
	line-height: 2.1;
	color: var(--c-ink-soft);
}

.p-about__body p {
	margin: 0 0 1.3em;
}

.p-about__body p:last-child {
	margin-bottom: 0;
}

.p-about__closing {
	margin-top: 1.6em;
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--c-green-700);
}

/* -------------------------------------------------------------------------
   「詳しく見る」を文字リンクからボタンに
   ---------------------------------------------------------------------- */

.c-item-card__actions {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
	margin-top: 14px;
}

.c-item-card__actions .c-btn {
	width: 100%;
	justify-content: center;
	text-align: center;
}

.c-item-card__more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 10px 18px;
	border: 1px solid var(--c-green-800);
	border-radius: 3px;
	background: transparent;
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .04em;
	color: var(--c-green-800);
	text-decoration: none;
	transition: background .15s, color .15s;
}

.c-item-card__more:hover,
.c-item-card__more:focus-visible {
	background: var(--c-green-800);
	color: var(--c-cream);
}

/* 記事のある商品はカードの枠を少し強める */
.c-item-card:has(.c-item-card__more) {
	border-color: var(--c-green-600);
}

/* =========================================================================
   商品カードの作り直し
   ・ショップ名はタイトルの上
   ・ボタンはカードの下端で揃える（記事が無いカードにも空き枠を置く）
   ・スマホでは横型（サムネ左・テキスト右）
   ====================================================================== */

.c-item-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
}

.c-item-card__shop {
	display: block;
	margin-bottom: 4px;
	font-size: .72rem;
	line-height: 1.5;
	color: var(--c-muted);
}

.c-item-card__foot {
	display: flex;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;
}

/* ボタンの塊をカードの下端に寄せる */
.c-item-card__actions {
	margin-top: auto;
}

/* 記事が無いカードの空き枠。高さだけ確保して見えなくする */
.c-item-card__more.is-placeholder {
	visibility: hidden;
	pointer-events: none;
}

/* -------------------------------------------------------------------------
   スマホ: 横型のサムネ＋テキスト
   ---------------------------------------------------------------------- */

@media (max-width: 600px) {

	.c-grid--items {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.c-item-card {
		flex-direction: row;
		align-items: stretch;
	}

	.c-item-card__thumb {
		flex: 0 0 112px;
		width: 112px;
		align-self: flex-start;
		margin: 12px 0 12px 12px;
		border-radius: 3px;
		overflow: hidden;
	}

	.c-item-card__thumb img {
		width: 100%;
		height: auto;
		aspect-ratio: 1 / 1;
		object-fit: contain;
	}

	.c-item-card__body {
		padding: 12px;
	}

	.c-item-card__title {
		font-size: .88rem;
		line-height: 1.5;
	}

	/* 横型では説明文を省いて、商品名と価格を読みやすくする */
	.c-item-card__excerpt {
		display: none;
	}

	.c-item-card__badges {
		margin-bottom: 6px;
	}

	/* ボタンは縦積みのまま（楽天が上、詳しく見るが下） */
	.c-item-card__actions {
		gap: 6px;
		margin-top: 10px;
	}

	.c-item-card__actions .c-btn,
	.c-item-card__more {
		padding: 9px 10px;
		font-size: .78rem;
	}

	/* 横型では高さを揃える必要がないので、空き枠は消す */
	.c-item-card__actions .is-placeholder {
		display: none;
	}
}

/* =========================================================================
   商品カード: 下半分の位置を揃える
   価格・ボタンをカードの下端に寄せることで、本文の有無や商品名の長さに
   関わらず、どのカードでも同じ高さに並びます。
   ====================================================================== */

/* 価格から下をひとまとめにして下端へ */
.c-item-card__foot {
	margin-top: auto;
	padding-top: 12px;
}

.c-item-card__actions {
	margin-top: 10px;
}

/* 商品名は3行で丸める。HTMLには全文が残るので検索エンジンは全部読めます */
.c-item-card__title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
}

/* 説明文も行数を揃える */
.c-item-card__excerpt {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
}

@media (max-width: 600px) {

	.c-item-card__foot {
		padding-top: 8px;
	}

	.c-item-card__title {
		-webkit-line-clamp: 2;
		line-clamp: 2;
	}
}

/* =========================================================================
   交差ページ・カテゴリページの見出し
   広告表記がパーツ画像とくっついていたので余白を入れる
   ====================================================================== */

.p-cross-head .c-ad-notice {
	margin-top: clamp(20px, 3vw, 32px);
	margin-bottom: 0;
}

/* =========================================================================
   商品カード: 価格はタイトル（本文があれば本文）の直下へ
   空きはボタンの手前にまとめる
   ====================================================================== */

/* 商品名は常に3行分の高さを取り、カードをまたいで価格の位置を揃える */
.c-item-card__title {
	line-height: 1.55;
	min-height: calc(1.55em * 3);
	margin: 0;
}

/* 価格は直前の文章にくっつける */
.c-item-card__foot {
	margin-top: 0;
	padding-top: 8px;
}

/* 余白はボタンの手前に寄せて、赤いボタンを下端に固定する */
.c-item-card__actions {
	margin-top: auto;
	padding-top: 14px;
}

@media (max-width: 600px) {

	/* 横型では2行に丸めるので高さもそれに合わせる */
	.c-item-card__title {
		line-height: 1.5;
		min-height: calc(1.5em * 2);
	}

	.c-item-card__foot {
		padding-top: 6px;
	}

	.c-item-card__actions {
		padding-top: 10px;
	}
}

/* 価格まわりの余白を詰める（上は商品名にくっつける、下は半分に） */
.c-item-card__foot {
	padding-top: 4px;
}

.c-item-card__actions {
	padding-top: 7px;
}

@media (max-width: 600px) {

	.c-item-card__foot {
		padding-top: 4px;
	}

	.c-item-card__actions {
		padding-top: 6px;
	}
}

/* =========================================================================
   商品カードの余白を要素ごとに指定し直す
   カード本文に一律の gap が効いていて、価格まわりだけ詰められなかったため
   ====================================================================== */

.c-item-card__body {
	gap: 0;
}

.c-item-card__badges {
	margin-bottom: 8px;
}

.c-item-card__shop {
	margin-bottom: 4px;
}

.c-item-card__excerpt {
	margin-top: 8px;
}

/* 価格は商品名のすぐ下 */
.c-item-card__foot {
	margin-top: 0;
	padding-top: 2px;
}

.c-item-card__actions {
	margin-top: auto;
	padding-top: 7px;
	gap: 7px;
}

/* ボタンの上下の余白を7pxに */
.c-item-card__actions .c-btn,
.c-item-card__more {
	padding-top: 7px;
	padding-bottom: 7px;
}

@media (max-width: 600px) {

	.c-item-card__excerpt {
		margin-top: 0;
	}

	.c-item-card__actions {
		padding-top: 6px;
	}
}

/* =========================================================================
   ボタンのホバー
   共通の .c-btn:hover が文字色を濃い緑にするため、暗い背景の上では
   文字が見えなくなっていました。種類ごとにホバーを指定し直します。
   ====================================================================== */

/* オリーブのボタンは、色を濃くするだけにして塗りを保つ */
.c-btn--accent:hover,
.c-btn--accent:focus-visible {
	background: var(--c-olive-dark);
	border-color: var(--c-olive-dark);
	color: var(--c-green-900);
}

/* 枠線だけのボタンは、暗い背景の上なので文字は常にクリーム色 */
.c-btn--ghost,
.c-btn--ghost:hover,
.c-btn--ghost:focus-visible {
	color: var(--c-cream);
}

.c-btn--ghost:hover,
.c-btn--ghost:focus-visible {
	background: rgba(244, 242, 232, .14);
	border-color: var(--c-cream);
}

/* 暗い背景に置いた通常のボタンも、文字が沈まないようにする */
.l-section--dark .c-btn:hover,
.l-section--dark .c-btn:focus-visible,
.l-footer .c-btn:hover,
.l-footer .c-btn:focus-visible {
	color: var(--c-cream);
	border-color: var(--c-cream);
}

/* 楽天ボタンは暗い背景でも赤のまま読めるようにする */
.l-section--dark .c-btn--rakuten:hover,
.l-section--dark .c-btn--rakuten:focus-visible {
	background: var(--c-surface);
	color: var(--c-rakuten);
	border-color: var(--c-rakuten);
}

/* =========================================================================
   見出しを太字に
   ====================================================================== */

.c-heading__ja,
.p-hero__title,
.p-parts-group__title,
.p-entry-head__title,
.c-member__name,
.c-buybox__title,
.c-nextlinks__title,
.c-item-card__title {
	font-weight: 700;
}

.c-entry h2,
.c-entry h3,
.c-entry h4,
.p-about__body h2,
.p-about__body h3 {
	font-weight: 700;
}

/* =========================================================================
   ロゴを大きく
   ====================================================================== */

.c-logo img {
	height: 62px;
}

.l-footer .c-logo img {
	height: 56px;
}

@media (max-width: 600px) {

	.c-logo img {
		height: 46px;
	}

	.l-footer .c-logo img {
		height: 44px;
	}
}

/* =========================================================================
   リンクになったバッジ
   ====================================================================== */

a.c-badge {
	text-decoration: none;
	transition: opacity .15s;
}

a.c-badge:hover,
a.c-badge:focus-visible {
	opacity: .78;
}

/* =========================================================================
   スマホ
   ====================================================================== */

@media (max-width: 782px) {

	/* 左右の余白。16pxのままだと文字が画面の端に貼り付いて見えるので、
	   スマホだけ広げます。ヒーロー画像の全幅表示（.p-hero__media の
	   負のマージン）もこの値を見ているため、あわせて広がります。 */
	:root {
		--gutter: clamp(18px, 5vw, 24px);
	}

	/* セクションの上下余白（PCの64pxに近い値を保つ） */
	.l-section {
		padding-block: clamp(44px, 10vw, 64px);
	}

	.p-hero {
		padding-block: clamp(30px, 7vw, 48px);
	}

	.l-footer {
		margin-top: clamp(40px, 9vw, 60px);
		padding-block: clamp(36px, 8vw, 56px);
	}

	/* 型式ページと交差ページだけ詰める（見出しの下にすぐカードが来るため） */
	.jimnys-compact .l-section {
		padding-block: clamp(20px, 5vw, 32px);
	}

	.jimnys-compact .p-model-head,
	.jimnys-compact .p-cross-head {
		padding-top: clamp(16px, 4vw, 24px);
	}

	/* ヒーローは画像が先、その下にテキスト */
	.p-hero__inner {
		display: flex;
		flex-direction: column;
		gap: 22px;
	}

	.p-hero__media {
		order: -1;
		margin-inline: calc(var(--gutter) * -1);
	}

	.p-hero__media .c-slot {
		border-radius: 0;
		aspect-ratio: 16 / 10;
	}

	.p-hero__eyebrow {
		margin-bottom: 10px;
	}

	.p-hero__title {
		margin-bottom: 14px;
		font-size: clamp(1.45rem, 6.4vw, 2rem);
		line-height: 1.5;
	}

	.p-hero__lead {
		margin-bottom: 20px;
		font-size: .88rem;
		line-height: 1.9;
	}

	/* 左右の余白を広げたぶん、2つのボタンが2段に折り返しやすくなるので、
	   幅を等分して詰めます（flex-basis 0 で自然幅に関係なく横並びを保つ）。 */
	.p-hero__actions .c-btn {
		flex: 1 1 0;
		min-width: 0;
		padding-inline: 14px;
		justify-content: center;
	}

	/* ヘッダーのメニューをボタンに */
	.l-header__inner {
		gap: 12px;
		padding-block: 14px;
	}

	.l-header__nav {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 8px;
		width: 100%;
	}

	.l-header__nav a {
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 9px 4px;
		border: 1px solid rgba(244, 242, 232, .3);
		border-radius: 4px;
		background: rgba(244, 242, 232, .06);
		font-size: .76rem;
		letter-spacing: .02em;
		text-align: center;
	}

	.l-header__nav a:hover,
	.l-header__nav a:focus-visible {
		background: rgba(244, 242, 232, .14);
		border-color: var(--c-cream);
		color: var(--c-cream);
	}

	/* フッターのメニューもボタンに */
	.l-footer__menu {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 8px;
		margin: 20px 0;
		padding: 0;
	}

	.l-footer__menu li {
		margin: 0;
	}

	.l-footer__menu a {
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 11px 6px;
		border: 1px solid rgba(244, 242, 232, .3);
		border-radius: 4px;
		background: rgba(244, 242, 232, .06);
		font-size: .8rem;
		text-align: center;
		text-decoration: none;
	}

	.l-footer__menu a:hover,
	.l-footer__menu a:focus-visible {
		background: rgba(244, 242, 232, .14);
		border-color: var(--c-cream);
	}
}

/* =========================================================================
   スマホの横型カード
   画像を大きく、文字とタグを小さくして情報量のバランスを取る
   ====================================================================== */

@media (max-width: 600px) {

	.c-item-card__thumb {
		flex: 0 0 clamp(132px, 38vw, 172px);
		width: clamp(132px, 38vw, 172px);
		margin: 16px 0 10px 11px;
	}

	.c-item-card__body {
		padding: 10px;
	}

	/* タグは1行に収まるように小さく */
	.c-item-card__badges {
		gap: 3px;
		margin-bottom: 0px;
	}

	.c-item-card .c-badge {
		padding: 1px 7px;
		font-size: .62rem;
		line-height: 1.6;
	}

	.c-item-card__shop {
		margin-bottom: 2px;
		font-size: .66rem;
	}

	.c-item-card__title {
		font-size: .8rem;
		line-height: 1.45;
		min-height: calc(1.45em * 2);
	}

	.c-item-card__price {
		font-size: .95rem;
	}

	.c-item-card__actions .c-btn,
	.c-item-card__more {
		padding-top: 7px;
		padding-bottom: 7px;
		font-size: .74rem;
	}
}

/* =========================================================================
   ロゴをさらに大きく
   ====================================================================== */

.c-logo img {
	height: 72px;
}

.l-footer .c-logo img {
	height: 64px;
}

/* =========================================================================
   スマホ: 型式とパーツのグリッドを3列に
   ====================================================================== */

@media (max-width: 600px) {

	.c-logo img {
		height: 60px;
	}

	.l-footer .c-logo img {
		height: 56px;
	}

	/* 型式・パーツ・人気パーツを3列 */
	.c-grid--models,
	.c-grid--parts,
	.c-grid--top {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 8px;
	}

	/* 3列に収まるよう文字を小さく */
	.c-model-card__body {
		display: flex;
		flex-direction: column;
		gap: 1px;
		padding: 7px 6px 9px;
		text-align: center;
	}

	.c-model-card__name {
		font-size: .92rem;
	}

	.c-model-card__year {
		font-size: .62rem;
		line-height: 1.4;
	}

	.c-part-card__body {
		padding: 7px 5px 9px;
		gap: 2px;
	}

	.c-part-card__name {
		font-size: .68rem;
		line-height: 1.3;
	}

	.c-part-card__count {
		font-size: .6rem;
	}

	/* グループ内の型式カードも3列 */
	.c-grid--members {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 8px;
	}
}

/* 画面が狭い端末では2列に戻す */
@media (max-width: 340px) {

	.c-grid--models,
	.c-grid--parts,
	.c-grid--top,
	.c-grid--members {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* =========================================================================
   パーツのタグ（TOP）
   ====================================================================== */

.p-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.c-tag {
	display: inline-flex;
	align-items: center;
	padding: 11px 22px;
	border: 1px solid var(--c-green-700);
	border-radius: 999px;
	background: var(--c-surface);
	font-size: .92rem;
	font-weight: 700;
	letter-spacing: .03em;
	color: var(--c-green-800);
	text-decoration: none;
	transition: background .15s, color .15s;
}

.c-tag:hover,
.c-tag:focus-visible {
	background: var(--c-green-800);
	border-color: var(--c-green-800);
	color: var(--c-cream);
}

@media (max-width: 600px) {

	.p-tags {
		gap: 8px;
	}

	.c-tag {
		padding: 9px 16px;
		font-size: .82rem;
	}

	/* フッターのロゴを中央に */
	.l-footer .c-logo {
		display: block;
		margin-inline: auto;
		width: fit-content;
	}

	.l-footer {
		text-align: center;
	}

	.l-footer__note,
	.l-footer__copy,
	.l-footer__credit {
		text-align: left;
	}

	/* ヘッダーのメニューが2つになったので列を自動で合わせる */
	.l-header__nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* タグページ */
.c-tag span {
	margin-left: 8px;
	font-size: .72rem;
	font-weight: 600;
	opacity: .65;
}

.c-tag.is-current {
	background: var(--c-green-800);
	border-color: var(--c-green-800);
	color: var(--c-cream);
}

.p-tag-lead {
	margin: -8px 0 22px;
	font-size: .95rem;
	line-height: 1.9;
	color: var(--c-ink-soft);
}

/* =========================================================================
   TOPのタグ行（タグ名 + パーツ6点 + もっと見る）
   ====================================================================== */

.p-tagrow + .p-tagrow {
	margin-top: clamp(36px, 5vw, 56px);
	padding-top: clamp(36px, 5vw, 56px);
	border-top: 2px solid var(--c-green-100);
}

.p-tagrow__head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 8px;
	padding-left: 14px;
	border-left: 5px solid var(--c-olive);
}

.p-tagrow__title {
	margin: 0;
	font-size: clamp(1.15rem, 2.6vw, 1.45rem);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .04em;
	color: var(--c-green-800);
}

.p-tagrow__title a {
	color: inherit;
	text-decoration: none;
}

.p-tagrow__title a:hover {
	color: var(--c-link);
}

/* 種類数はタグ風のバッジに */
.p-tagrow__title span {
	display: inline-block;
	margin-left: 12px;
	padding: 2px 10px;
	border-radius: 999px;
	background: var(--c-green-800);
	font-size: .66rem;
	font-weight: 700;
	letter-spacing: .06em;
	color: var(--c-cream);
	vertical-align: 3px;
}

/* 「もっと見る」はカードの右下にボタンとして置く */
.p-tagrow__foot {
	display: flex;
	justify-content: flex-start;
	margin: 12px 0 0;
	padding-left: 19px;
}

.p-tagrow__more {
	display: inline-flex;
	align-items: center;
	padding: 10px 22px;
	border: 1px solid var(--c-line);
	border-radius: 999px;
	background: var(--c-surface);
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .03em;
	color: var(--c-green-800);
	text-decoration: none;
	white-space: nowrap;
	transition: background .15s, border-color .15s, color .15s;
}

.p-tagrow__more::after {
	content: " →";
	margin-left: 6px;
}

.p-tagrow__more:hover,
.p-tagrow__more:focus-visible {
	background: var(--c-green-800);
	border-color: var(--c-green-800);
	color: var(--c-cream);
}

.p-tagrow__lead {
	margin: 0 0 18px;
	padding-left: 19px;
	font-size: .86rem;
	line-height: 1.8;
	color: var(--c-ink-soft);
}

/* PCは6列 */
.c-grid--tagrow {
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 12px;
}

@media (max-width: 900px) {
	.c-grid--tagrow {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.c-grid--tagrow {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 8px;
	}

	.p-tagrow__head {
		margin-bottom: 6px;
		padding-left: 10px;
		border-left-width: 4px;
	}

	.p-tagrow__lead {
		padding-left: 14px;
	}

	.p-tagrow__foot {
		margin-top: 10px;
		padding-left: 14px;
	}

	.p-tagrow__more {
		padding: 9px 18px;
		font-size: .78rem;
	}

	.p-tagrow__title {
		font-size: 1.02rem;
	}

	.p-tagrow__title span {
		margin-left: 8px;
		padding: 2px 8px;
		font-size: .6rem;
	}

	.p-tagrow__lead {
		margin-bottom: 10px;
		font-size: .76rem;
	}
}

/* =========================================================================
   サイト紹介（縦長の写真を切らずに全部見せる）
   ====================================================================== */

.p-about__inner {
	align-items: start;
	gap: clamp(24px, 4vw, 48px);
}

@media (min-width: 880px) {
	.p-about__inner {
		/* 写真を細めにして、文章に幅を渡す */
		grid-template-columns: minmax(0, 34%) minmax(0, 1fr);
	}
}

/* 切り抜かずに全体を表示する */
.p-about__media .c-slot.is-filled img {
	object-fit: contain;
}

.p-about__media .c-slot {
	background: var(--c-cream-sub);
}

/* 写真の高さに合わせて文章を少しゆったりに */
.p-about__text .c-heading {
	margin-bottom: clamp(16px, 2.5vw, 24px);
}

.p-about__body {
	font-size: .96rem;
	line-height: 2.15;
}

.p-about__body p {
	margin: 0 0 1.25em;
}

.p-about__closing {
	margin-top: 1.4em;
	font-size: 1.1rem;
}

@media (max-width: 879px) {

	/* スマホでは写真が縦に長くなりすぎないよう幅を抑えて中央に */
	.p-about__media .c-slot {
		max-width: 300px;
		margin-inline: auto;
	}

	.p-about__body {
		font-size: .9rem;
		line-height: 2;
	}
}

/* =========================================================================
   大カテゴリのカード（代表パーツ4点を1枚のタイルに見せる）
   ====================================================================== */

.c-grid--groups {
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
	gap: 16px;
}

.c-group-card {
	display: flex;
	flex-direction: column;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: border-color .2s, transform .2s, box-shadow .2s;
}

.c-group-card:hover,
.c-group-card:focus-visible {
	border-color: var(--c-green-600);
	transform: translateY(-2px);
	box-shadow: var(--shadow-card);
}

/* 4分割のタイル */
.c-group-card__mosaic {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 1px;
	aspect-ratio: 1 / 1;
	background: var(--c-line);
}

/* 画像が足りないときは埋まっているぶんだけ使う */
.c-group-card__mosaic[data-count="1"] {
	grid-template-columns: 1fr;
	grid-template-rows: 1fr;
}

.c-group-card__mosaic[data-count="2"] {
	grid-template-rows: 1fr;
}

.c-group-card__mosaic[data-count="3"] .c-group-card__cell:first-child {
	grid-row: span 2;
}

.c-group-card__mosaic[data-count="0"]::after {
	content: "";
	grid-column: 1 / -1;
	grid-row: 1 / -1;
	background: var(--c-cream-sub);
}

.c-group-card__cell {
	display: block;
	background: var(--c-cream-sub);
	overflow: hidden;
}

.c-group-card__cell img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.c-group-card__body {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 3px;
	padding: 12px 10px 14px;
	text-align: center;
}

.c-group-card__name {
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .02em;
}

.c-group-card__count {
	font-size: .72rem;
	color: var(--c-muted);
}

.c-group-card__count.is-zero {
	opacity: .45;
}

@media (max-width: 600px) {

	.c-grid--groups {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.c-group-card__body {
		padding: 9px 7px 11px;
	}

	.c-group-card__name {
		font-size: .82rem;
	}

	.c-group-card__count {
		font-size: .66rem;
	}
}

/* スマホのフッターロゴ */
@media (max-width: 600px) {
	.l-footer .c-logo img {
		height: 96px;
	}
}

/* =========================================================================
   カテゴリ・交差ページの見出し
   説明文が長いと折り返して画像が上に来てしまうため、PCでは必ず横並びにする
   ====================================================================== */

@media (min-width: 720px) {

	.p-cross-head__inner {
		flex-wrap: nowrap;
		align-items: flex-start;
	}

	/* 文章側を縮められるようにして、アイコンを横に保つ */
	.p-cross-head__inner > div {
		flex: 1 1 auto;
		min-width: 0;
	}

	.p-cross-head__icon {
		flex: 0 0 auto;
	}
}

.p-cross-head__desc {
	margin-top: 10px;
	max-width: 70em;
}

/* ヒーローの写真は切り抜かず、画像そのままの比率で表示する */
.p-hero__media .c-slot.is-filled img {
	object-fit: contain;
}

/* 楽天側で画像が消えた商品カードを隠す
   （.c-item-card は flex なので hidden 属性だけでは消えません） */
.c-item-card[hidden] {
	display: none !important;
}

/* =========================================================================
   TOP「パーツから選ぶ」の見出しを帯にする
   ====================================================================== */

/* タグ名を濃い帯にして、区切りをはっきりさせる */
.p-tagrow__head {
	gap: 14px;
	margin-bottom: 16px;
	padding: 13px 20px;
	border-left: 8px solid var(--c-olive);
	background: var(--c-green-900);
}

.p-tagrow__title {
	color: var(--c-cream);
}

.p-tagrow__title a:hover {
	color: var(--c-olive);
}

/* 種類数バッジは帯の中で反転させる */
.p-tagrow__title span {
	background: var(--c-olive);
	color: var(--c-green-900);
}

/* 帯が左端まで来たので、本文のインデントを揃え直す */
.p-tagrow__lead {
	padding-left: 0;
}

/* 「もっと見る」は右下へ */
.p-tagrow__foot {
	justify-content: flex-end;
	padding-left: 0;
}

/* タグどうしの間隔を半分に */
.p-tagrow + .p-tagrow {
	margin-top: clamp(18px, 2.5vw, 28px);
	padding-top: clamp(18px, 2.5vw, 28px);
}

@media (max-width: 767px) {
	.p-tagrow__head {
		gap: 10px;
		margin-bottom: 12px;
		padding: 10px 14px;
		border-left-width: 6px;
	}

	.p-tagrow__lead,
	.p-tagrow__foot {
		padding-left: 0;
	}

	/* ファーストビューの見出しは1行で見せる。
	   nowrap はコンテナからはみ出して端に貼り付くので使いません。
	   15文字前後なら1行に収まり、それより長いときは2行で均等に折り返します。 */
	.p-hero__title {
		font-size: clamp(1.1rem, 5.4vw, 1.75rem);
		letter-spacing: .01em;
		text-wrap: balance;
	}
}

/* 幅の狭い端末（iPhone SE など）。ボタンの中で文字が折り返さない大きさに詰めます。 */
@media (max-width: 360px) {

	.p-hero__actions .c-btn {
		padding-inline: 10px;
		font-size: .9rem;
		white-space: nowrap;
	}
}

/* =========================================================================
   ヘッダー・フッターのメニューをボタンに（PC）
   ====================================================================== */

.l-header__nav a {
	padding: 9px 18px;
	border: 1px solid rgba(244, 242, 232, .28);
	border-radius: 999px;
	font-size: .84rem;
	font-weight: 700;
	letter-spacing: .03em;
	line-height: 1;
	transition: background .15s, border-color .15s, color .15s;
}

.l-header__nav a:hover,
.l-header__nav a:focus-visible {
	background: var(--c-olive);
	border-color: var(--c-olive);
	color: var(--c-green-900);
}

/* フッターのメニューをボタンに（PCのみ。
   スマホは下の方で指定している四角いボタンのままにします） */
@media (min-width: 768px) {
	.l-footer__menu a {
		display: inline-block;
		padding: 8px 16px;
		border: 1px solid rgba(244, 242, 232, .24);
		border-radius: 999px;
		font-weight: 700;
		line-height: 1;
		transition: background .15s, border-color .15s, color .15s;
	}

	.l-footer__menu a:hover,
	.l-footer__menu a:focus-visible {
		background: var(--c-olive);
		border-color: var(--c-olive);
		color: var(--c-green-900);
	}
}

/* =========================================================================
   型式一覧表：スマホでは1台ずつのカードに積み替える
   （型式が「SJ40 / JA51 / JB31 / JB32」のように長くても潰れません）
   ====================================================================== */

@media (max-width: 767px) {
	.c-spec--list,
	.c-spec--list tbody,
	.c-spec--list tr,
	.c-spec--list th,
	.c-spec--list td {
		display: block;
		width: auto;
	}

	/* 見出し行はスマホでは不要（各行に項目名を出すため） */
	.c-spec--list thead {
		display: none;
	}

	/* 枠も下地も敷かず、ページの地のまま見せる */
	.c-spec--list tr {
		margin-bottom: 18px;
		border: 0;
		background: none;
	}

	.c-spec--list tr:last-child {
		margin-bottom: 0;
	}

	/* 型式は濃い帯の見出しに */
	.c-spec--list tbody th {
		padding: 11px 14px;
		border: 0;
		background: var(--c-green-900);
		font-size: .95rem;
		font-weight: 700;
		line-height: 1.6;
		text-align: left;
		white-space: normal;
		word-break: break-word;
	}

	.c-spec--list tbody th a {
		color: var(--c-cream);
	}

	.c-spec--list tbody th a:hover,
	.c-spec--list tbody th a:focus-visible {
		color: var(--c-olive);
	}

	/* 残りは「項目名　値」の2列に */
	.c-spec--list tbody td {
		display: flex;
		gap: 10px;
		padding: 8px 14px;
		border-bottom: 1px dashed var(--c-line);
		font-size: .84rem;
		line-height: 1.6;
	}

	.c-spec--list tbody tr td:last-child {
		border-bottom: 0;
	}

	.c-spec--list tbody td::before {
		content: attr(data-label);
		flex: 0 0 4.5em;
		color: var(--c-text-sub, #6b6b5e);
		font-weight: 700;
	}

	/* カード化したので横スクロールは不要 */
	.c-table-scroll {
		overflow-x: visible;
	}
}

/* =========================================================================
   TOPヒーローの検索バー
   ====================================================================== */

.p-hero__search {
	max-width: 520px;
	margin-top: 18px;
}

.p-hero__search .c-searchform {
	display: flex;
	gap: 0;
	margin: 0;
	border-radius: 999px;
	background: rgba(244, 242, 232, .1);
	border: 1px solid rgba(244, 242, 232, .3);
	overflow: hidden;
}

.p-hero__search .c-searchform input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	padding: 13px 20px;
	border: 0;
	background: none;
	font-size: .92rem;
	color: var(--c-cream);
}

.p-hero__search .c-searchform input[type="search"]::placeholder {
	color: rgba(244, 242, 232, .55);
}

.p-hero__search .c-searchform input[type="search"]:focus {
	outline: none;
}

.p-hero__search .c-searchform button {
	flex: 0 0 auto;
	padding: 13px 26px;
	border: 0;
	border-radius: 0;
	background: var(--c-olive);
	font-size: .86rem;
	font-weight: 700;
	letter-spacing: .04em;
	color: var(--c-green-900);
	cursor: pointer;
	transition: background .15s;
}

.p-hero__search .c-searchform button:hover,
.p-hero__search .c-searchform button:focus-visible {
	background: var(--c-olive-dark);
}

.p-hero__searchhint {
	margin: 9px 0 0;
	font-size: .76rem;
	line-height: 1.7;
	color: rgba(244, 242, 232, .62);
}

/* =========================================================================
   検索結果のカテゴリボタン
   ====================================================================== */

.p-searchcats {
	margin: 22px 0 30px;
	padding: 20px 22px;
	border-radius: 14px;
	background: var(--c-cream-sub);
}

.p-searchcats__title {
	margin: 0 0 14px;
	font-size: .96rem;
	font-weight: 700;
	letter-spacing: .03em;
	color: var(--c-green-800);
}

.p-searchcats__list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.p-searchcats__item {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 8px 16px 8px 9px;
	border: 1px solid var(--c-line);
	border-radius: 999px;
	background: var(--c-surface);
	font-size: .86rem;
	font-weight: 700;
	color: var(--c-green-800);
	text-decoration: none;
	transition: background .15s, border-color .15s, color .15s;
}

.p-searchcats__item img {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--c-cream);
	object-fit: contain;
	mix-blend-mode: multiply;
}

.p-searchcats__count {
	font-size: .76rem;
	font-weight: 500;
	color: var(--c-text-sub, #6b6b5e);
}

.p-searchcats__item:hover,
.p-searchcats__item:focus-visible {
	background: var(--c-green-800);
	border-color: var(--c-green-800);
	color: var(--c-cream);
}

.p-searchcats__item:hover .p-searchcats__count,
.p-searchcats__item:focus-visible .p-searchcats__count {
	color: rgba(244, 242, 232, .75);
}

/* =========================================================================
   スマホのメニューボタン（アコーディオン）
   ====================================================================== */

/* PCではボタンを出さず、メニュー内の検索も隠す */
.l-header__toggle {
	display: none;
}

.l-header__search {
	display: none;
}

@media (max-width: 767px) {

	/* ロゴを中央、MENUを右端に置く。
	   1fr / auto / 1fr の3列にすると、左右のあきが同じ幅になるので
	   ロゴがきっちり真ん中に来ます。 */
	.l-header__inner {
		display: grid;
		grid-template-columns: 1fr auto 1fr;
		align-items: center;
		column-gap: 10px;
		padding-block: 12px;
	}

	.l-header__inner > .c-logo {
		grid-column: 2;
		justify-self: center;
	}

	/* 縦横比を保つ。幅と高さを両方指定すると画像が潰れます */
	.l-header__inner > .c-logo img {
		width: auto;
		height: 40px;
		max-width: none;
		object-fit: contain;
	}

	.l-header__toggle {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		grid-column: 3;
		justify-self: end;
		flex-shrink: 0;
		white-space: nowrap;
		padding: 9px 12px;
		border: 1px solid rgba(244, 242, 232, .32);
		border-radius: 999px;
		background: rgba(244, 242, 232, .06);
		color: var(--c-cream);
		cursor: pointer;
		transition: background .15s, border-color .15s;
	}

	.l-header__bars {
		display: block;
		width: 17px;
	}

	.l-header__bars span {
		display: block;
		height: 2px;
		border-radius: 2px;
		background: currentColor;
		transition: transform .22s, opacity .18s;
	}

	.l-header__bars span + span {
		margin-top: 4px;
	}

	.l-header__togglelabel {
		font-size: .68rem;
		font-weight: 700;
		letter-spacing: .1em;
		line-height: 1;
		white-space: nowrap;
	}

	/* 開いているときは×印に変える */
	.l-header__toggle[aria-expanded="true"] {
		background: var(--c-olive);
		border-color: var(--c-olive);
		color: var(--c-green-900);
	}

	.l-header__toggle[aria-expanded="true"] .l-header__bars span:nth-child(1) {
		transform: translateY(6px) rotate(45deg);
	}

	.l-header__toggle[aria-expanded="true"] .l-header__bars span:nth-child(2) {
		opacity: 0;
	}

	.l-header__toggle[aria-expanded="true"] .l-header__bars span:nth-child(3) {
		transform: translateY(-6px) rotate(-45deg);
	}

	/* メニューはヘッダーの下に重ねて出す。
	   ヘッダーの中で開くと、その分だけページ全体が下へ押し下げられるためです。 */
	.l-header__nav {
		position: absolute;
		top: 100%;
		left: 0;
		z-index: 2;
		display: grid;
		grid-template-columns: 1fr;
		gap: 10px;
		width: 100%;
		margin: 0;
		padding: 0 16px;
		background: var(--c-green-900);
		box-shadow: 0 12px 20px rgba(0, 0, 0, .28);
		max-height: 0;
		overflow: hidden;
		opacity: 0;
		visibility: hidden;
		transition: max-height .28s ease, padding .28s ease, opacity .2s ease, visibility .28s;
	}

	.is-menu-open .l-header__nav {
		max-height: 70vh;
		overflow-y: auto;
		padding: 14px 16px 18px;
		opacity: 1;
		visibility: visible;
	}

	.l-header__nav a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 14px 18px;
		border: 1px solid rgba(244, 242, 232, .22);
		border-radius: 10px;
		background: rgba(244, 242, 232, .07);
		font-size: .92rem;
		font-weight: 700;
		letter-spacing: .03em;
		text-align: left;
	}

	.l-header__nav a::after {
		content: "→";
		opacity: .55;
	}

	.l-header__nav a:hover,
	.l-header__nav a:focus-visible {
		background: var(--c-olive);
		border-color: var(--c-olive);
		color: var(--c-green-900);
	}

	/* メニューの中にも検索を置く */
	.l-header__search {
		display: block;
	}

	.l-header__search .c-searchform {
		display: flex;
		border: 1px solid rgba(244, 242, 232, .22);
		border-radius: 10px;
		background: rgba(244, 242, 232, .07);
		overflow: hidden;
	}

	.l-header__search .c-searchform input[type="search"] {
		flex: 1 1 auto;
		min-width: 0;
		padding: 13px 16px;
		border: 0;
		background: none;
		font-size: .9rem;
		color: var(--c-cream);
	}

	.l-header__search .c-searchform input[type="search"]::placeholder {
		color: rgba(244, 242, 232, .5);
	}

	.l-header__search .c-searchform input[type="search"]:focus {
		outline: none;
	}

	.l-header__search .c-searchform button {
		flex: 0 0 auto;
		padding: 13px 20px;
		border: 0;
		border-radius: 0;
		background: var(--c-olive);
		font-size: .82rem;
		font-weight: 700;
		color: var(--c-green-900);
		cursor: pointer;
	}

	/* ヒーローの検索バーはスマホでも使いやすく */
	.p-hero__search {
		margin-top: 14px;
	}

	.p-hero__search .c-searchform input[type="search"] {
		padding: 12px 16px;
		font-size: .88rem;
	}

	.p-hero__search .c-searchform button {
		padding: 12px 18px;
	}

	.p-searchcats {
		margin: 18px 0 24px;
		padding: 16px;
	}

	.p-searchcats__item {
		font-size: .8rem;
	}

	.p-searchcats__item img {
		width: 28px;
		height: 28px;
	}
}

/* =========================================================================
   ヘッダーを追従させる
   ====================================================================== */

.l-header {
	position: sticky;
	top: 0;
	z-index: 50;
}

/* ログイン中はWordPressのツールバーの下に出す */
.admin-bar .l-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .l-header {
		top: 46px;
	}
}

/* 追従中もヒーローの車体に重ならないよう、影で境界をつける */
.l-header {
	box-shadow: 0 1px 0 rgba(244, 242, 232, .08);
}

@media (max-width: 767px) {

	/* MENUの文字は出さず、アイコンだけの正方形ボタンに */
	.l-header__togglelabel {
		display: none;
	}

	.l-header__toggle {
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0;
		border-radius: 10px;
	}

	.l-header__bars {
		width: 20px;
	}

	.l-header__bars span + span {
		margin-top: 5px;
	}

	.l-header__toggle[aria-expanded="true"] .l-header__bars span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.l-header__toggle[aria-expanded="true"] .l-header__bars span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	/* 空いた分だけロゴを元の大きさに戻す */
	.l-header__inner > .c-logo img {
		height: 60px;
	}

	.l-header__inner {
		padding-block: 6px;
	}

	/* ヒーロー画像をヘッダーに寄せる */
	.p-hero {
		padding-top: 8px;
	}
}

/* =========================================================================
   ヘッダーの検索窓（PC）
   ====================================================================== */

/* スマホ専用だった検索窓を、PCのメニューにも並べる */
.l-header__search {
	display: block;
}

/* ここから下はPC専用。スマホではメニューの中に入るので、
   下のスマホ用の指定（幅いっぱい）を使います。 */
@media (min-width: 768px) {
	.l-header__search .c-searchform {
		display: flex;
		align-items: stretch;
		/* 土台の .c-searchform が持つ上下marginを打ち消す。
		   これが残っていると検索窓だけ背が高くなり、メニューと段差ができます。 */
		margin: 0;
		width: 230px;
		border: 1px solid rgba(244, 242, 232, .28);
		border-radius: 999px;
		background: rgba(244, 242, 232, .08);
		overflow: hidden;
	}

	.l-header__search .c-searchform input[type="search"] {
		flex: 1 1 auto;
		min-width: 0;
		padding: 8px 14px;
		border: 0;
		background: none;
		font-size: .8rem;
		color: var(--c-cream);
	}

	.l-header__search .c-searchform input[type="search"]::placeholder {
		color: rgba(244, 242, 232, .5);
	}

	.l-header__search .c-searchform input[type="search"]:focus {
		outline: none;
	}

	.l-header__search .c-searchform button {
		flex: 0 0 auto;
		padding: 8px 15px;
		border: 0;
		border-radius: 0;
		background: var(--c-olive);
		font-size: .76rem;
		font-weight: 700;
		letter-spacing: .03em;
		color: var(--c-green-900);
		cursor: pointer;
		transition: background .15s;
	}

	.l-header__search .c-searchform button:hover,
	.l-header__search .c-searchform button:focus-visible {
		background: var(--c-olive-dark);
	}
}

/* メニューの並びに検索窓が入るので、縦位置を揃える（PCのみ） */
@media (min-width: 768px) {
	.l-header__nav {
		align-items: center;
	}
}

/* 画面が狭いPC・タブレットでは検索窓を少し縮める */
@media (max-width: 1080px) and (min-width: 768px) {
	.l-header__search .c-searchform {
		width: 180px;
	}
}

/* 検索窓をメニューの左側へ（PCのみ。スマホは並び順そのまま） */
@media (min-width: 768px) {
	.l-header__search {
		order: -1;
	}

	/* メニューと高さを揃える */
	.l-header__nav a,
	.l-header__search .c-searchform {
		height: 36px;
	}

	.l-header__nav a {
		display: inline-flex;
		align-items: center;
		padding-block: 0;
	}

	.l-header__search .c-searchform input[type="search"],
	.l-header__search .c-searchform button {
		padding-block: 0;
	}
}

/* =========================================================================
   スマホで入力欄に触れたときの自動ズームを止める
   iOSのSafariは、文字サイズが16px未満の入力欄にカーソルが入ると
   画面を勝手に拡大します。16px以上にしておけば起きません。
   ====================================================================== */

@media (max-width: 767px) {
	input[type="search"],
	input[type="text"],
	input[type="email"],
	input[type="url"],
	input[type="tel"],
	input[type="number"],
	input[type="password"],
	select,
	textarea {
		font-size: 16px;
	}

	/* 上の指定だけでは効きません。
	   検索窓には「.l-header__search .c-searchform input」のような
	   もっと細かい指定が先にあり、そちらが優先されてしまうためです。
	   同じ細かさで書き直して、確実に16pxにします。 */
	.c-searchform input[type="search"],
	.l-header__search .c-searchform input[type="search"],
	.p-hero__search .c-searchform input[type="search"],
	.c-form input[type="text"],
	.c-form input[type="email"],
	.c-form input[type="url"],
	.c-form input[type="tel"],
	.c-form select,
	.c-form textarea {
		font-size: 16px;
	}
}

/* =========================================================================
   スマホのメニュー内の検索窓
   「型式から探す」などと同じ幅・同じ高さに揃える
   ====================================================================== */

@media (max-width: 767px) {
	.l-header__search .c-searchform {
		display: flex;
		align-items: stretch;
		margin: 0;
		width: 100%;
		max-width: none;
		/* 「型式から探す」などのボタンと同じ高さ */
		min-height: 45px;
		border: 1px solid rgba(244, 242, 232, .22);
		border-radius: 10px;
		background: rgba(244, 242, 232, .07);
		overflow: hidden;
	}

	/* 高さは上の min-height に任せ、上下の余白は持たせません。
	   文字が16px（ズーム防止）なので、余白を足すと背が高くなりすぎます。 */
	.l-header__search .c-searchform input[type="search"] {
		flex: 1 1 auto;
		min-width: 0;
		padding: 0 18px;
		border: 0;
		background: none;
		line-height: 1.4;
		color: var(--c-cream);
	}

	.l-header__search .c-searchform button {
		flex: 0 0 auto;
		padding: 0 22px;
		border: 0;
		border-radius: 0;
		background: var(--c-olive);
		font-size: .88rem;
		font-weight: 700;
		color: var(--c-green-900);
		cursor: pointer;
	}
}

/* =========================================================================
   カードの適合表示
   ショップ名と同じグレー文字だと見分けがつかないので、
   「適合」ラベル付きの枠にして、情報の種類が一目で分かるようにする
   ====================================================================== */

.c-item-card__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	margin: 7px 0 6px;
}

.c-fitchip {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid #d9d7c6;
	border-radius: 6px;
	background: #f1efe3;
	font-size: .72rem;
	line-height: 1.4;
	overflow: hidden;
}

.c-fitchip__label {
	display: flex;
	align-items: center;
	padding: 4px 7px;
	background: #5c6b57;
	font-size: .66rem;
	font-weight: 700;
	letter-spacing: .06em;
	color: var(--c-cream);
	white-space: nowrap;
}

/* flex にすると対象名（ハイエース）と型式の間の半角スペースが詰められてしまうため、
   ここは通常の行として組みます。 */
.c-fitchip__body {
	display: block;
	padding: 4px 9px;
	font-weight: 500;
	color: #5a5a4d;
}

.c-fitchip__body a {
	color: var(--c-green-800);
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

.c-fitchip__body a:hover,
.c-fitchip__body a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.c-fitchip__sep {
	color: #b8b6a4;
}

/* 型式そのものは途中で切れないようにする */
.c-fitchip__body a {
	white-space: nowrap;
}

@media (max-width: 600px) {
	.c-item-card__meta {
		margin: 0px 0 5px;
		gap: 5px;
	}

	/* 適合型式が5つ付く商品でも2行に収まる大きさ。
	   対象名が4文字の旧サイトで詰めた値のままです。「ハイエース」+「200系 4型」は
	   文字数が増えるので、実機で折り返しを確認してから調整してください（未検証）。 */
	.c-fitchip {
		font-size: .64rem;
	}

	.c-fitchip__label {
		padding: 4px 5px;
		font-size: .6rem;
	}

	.c-fitchip__body {
		padding: 3px 6px;
	}

	.c-fitchip__sep {
		padding: 0 2px;
	}
}

}

/* =========================================================================
   商品カードの画像を必ず正方形に収める
   画像は楽天のものなので、正方形・横長・縦長が混ざります。
   リンク用の <a> が挟まっていると img の height:100% が効かず、
   縦長の画像だけ枠を押し広げてカードの高さが揃いませんでした。
   ====================================================================== */

.c-item-card__thumb {
	overflow: hidden;
}

/* <a> を枠いっぱいのブロックにして、高さの指定を通す */
.c-item-card__thumb > a {
	display: block;
	width: 100%;
	height: 100%;
}

/* cover だと縦長の商品が上下で切れるため contain にして全体を見せます。
   余白は枠の背景色で埋まります（スマホの横型カードと同じ扱い）。 */
.c-item-card__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* =========================================================================
   お問い合わせフォームの整え
   項目名を大きくして、入力欄との距離を詰める
   ====================================================================== */

.c-form {
	gap: 24px;
	max-width: 640px;
	margin: 32px 0;
}

.c-form__row {
	gap: 8px;
}

/* 項目名は本文と同じ大きさではっきり見せる */
.c-form__row > label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--c-green-800);
}

.c-form__row > label span {
	margin-left: 0;
	padding: 3px 8px;
	border-radius: 3px;
	font-size: .68rem;
	vertical-align: baseline;
}

.c-form input[type="text"],
.c-form input[type="email"],
.c-form textarea {
	padding: 13px 15px;
	border-radius: 6px;
	line-height: 1.6;
}

.c-form textarea {
	min-height: 180px;
	resize: vertical;
}

/* 同意欄は枠で囲って、送信ボタンの前のひと区切りにする */
.c-form__row--consent {
	margin-top: 4px;
	padding: 14px 16px;
	border: 1px solid var(--c-line);
	border-radius: 6px;
	background: var(--c-cream-sub);
}

.c-form__row--consent label {
	align-items: center;
	gap: 10px;
	font-size: .92rem;
	color: var(--c-ink);
}

.c-form__row--consent input[type="checkbox"] {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	accent-color: var(--c-green-600);
}

.c-form button[type="submit"] {
	padding: 14px 40px;
	font-size: .95rem;
}

@media (max-width: 600px) {
	.c-form {
		gap: 20px;
		margin: 24px 0;
	}

	.c-form__row > label {
		font-size: .95rem;
	}

	.c-form textarea {
		min-height: 150px;
	}

	.c-form button[type="submit"] {
		width: 100%;
		justify-self: stretch;
		text-align: center;
	}
}

/* =========================================================================
   スマホの横型カード：解説ボタンを楽天ボタンの左に並べる
   ====================================================================== */

@media (max-width: 600px) {

	/* 縦積みのグリッドをやめて横並びに。
	   記事が無いカードでは楽天ボタンが幅いっぱいになります。 */
	/* ボタン行だけカード幅いっぱいに回り込ませる */
	.c-item-card {
		flex-wrap: wrap;
	}

	/* 本文が折り返して画像の下へ落ちないように、縮める許可を出します */
	.c-item-card__body {
		flex: 1 1 0;
		min-width: 0;
	}

	/* ボタンの幅を上の列に合わせます。
	   左（解説を見る）は画像と同じ幅、右（楽天市場で見る）は本文と同じ幅。
	   余白も画像の margin（10px）と本文の padding（10px）に合わせています。 */
	/* 常に2列。左は画像と同じ幅、右は本文と同じ幅です。
	   記事の有無でボタンの大きさと位置が変わらないよう、
	   楽天ボタンはいつも右の列に置きます。 */
	.c-item-card__actions {
		flex: 0 0 100%;
		display: grid;
		grid-template-columns: clamp(132px, 38vw, 172px) 1fr;
		align-items: stretch;
		gap: 10px;
		padding: 0 10px 10px;
	}

	.c-item-card__actions .c-btn {
		grid-column: 2;
	}

	/* 記事が無いカードでは左の列を空けておきます */
	.c-item-card__actions .c-item-card__more.is-placeholder {
		display: none;
	}

	/* 「解説を見る」は文字幅ぶんだけ、楽天ボタンが残りを埋める */
	.c-item-card__actions .c-item-card__more,
	.c-item-card__actions .c-btn {
		width: 100%;
		min-width: 0;
		padding-inline: 6px;
		font-size: .8rem;
		white-space: nowrap;
	}

	/* 記事の書き出しは2行まで。行間を詰めて、上に少しだけ余白を取る */
	.c-item-card__excerpt {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		line-clamp: 2;
		overflow: hidden;
		line-height: 1.2;
		padding-top: 8px;
		margin-top: 0;
	}
}

/* ボタン行を本文の外に出したので、PCでは本文と同じ左右余白を持たせる */
.c-item-card__actions {
	padding: 0 var(--sp-3) var(--sp-3);
}


/* =========================================================================
   商品画像が2枚あるカード
   楽天が返す画像は商品ごとに枚数が違うので、2枚目があるときだけ横に並べます
   ====================================================================== */

/* 2枚目の画像は保存だけしておき、カードには出しません。
   PCは4列なので1枚あたり114px、スマホの横型カードでは70pxまで
   小さくなってしまい、何が写っているか分からなくなるためです。
   商品ページなどで使いたくなったら、この指定を外せば表示できます。 */
.c-item-card__thumb.is-duo img + img {
	display: none;
}


/* =========================================================================
   スマホのカード：記事が無いときはボタンを価格の下へ
   横並び（flex）だとボタン行が画像の下に回り、記事が無いカードで
   左半分が大きく空いてしまうため、2列のグリッドに組み替えます。
   ====================================================================== */

@media (max-width: 600px) {

	/* 1列目は auto。画像には左マージンが付いているので、
	   列幅を画像の幅ぴったりにすると、マージンのぶんだけ本文側へはみ出して
	   商品名が画像に重なってしまいます。 */
	.c-item-card {
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: start;
	}

	/* 画像は左。記事が無いカードでは2行ぶんにまたがせて、
	   右側（本文＋ボタン）の高さに合わせます。 */
	.c-item-card__thumb {
		grid-column: 1;
		grid-row: 1 / 3;
	}

	.c-item-card__body {
		grid-column: 2;
		grid-row: 1;
	}

	/* 記事が無いカード＝ボタンは本文の下。右の列を1列で使います。
	   左右の余白を本文に合わせるので、ボタンの幅は記事ありのときと同じです。 */
	.c-item-card__actions {
		grid-column: 2;
		grid-row: 2;
		grid-template-columns: 1fr;
		padding: 0 10px 10px;
	}

	.c-item-card__actions .c-btn {
		grid-column: auto;
	}

	/* 記事があるカード＝ボタン2つを画像の下に横幅いっぱいで並べる */
	.c-item-card:has( .c-item-card__more:not( .is-placeholder ) ) .c-item-card__thumb {
		grid-row: 1;
	}

	.c-item-card:has( .c-item-card__more:not( .is-placeholder ) ) .c-item-card__actions {
		grid-column: 1 / -1;
		grid-template-columns: clamp(132px, 38vw, 172px) 1fr;
		padding: 0 10px 10px;
	}

	.c-item-card:has( .c-item-card__more:not( .is-placeholder ) ) .c-item-card__actions .c-btn {
		grid-column: 2;
	}
}

/* =========================================================================
   記事ページの見出しと購入枠
   ====================================================================== */

/* 商品名はそのままだと数十文字あり、スマホで画面を埋めてしまいます。
   HTMLには全文を残したまま、表示だけ丸めます（検索エンジンは全文を読みます）。 */
@media (max-width: 767px) {
	.p-entry-head__title {
		font-size: clamp(1.15rem, 5.2vw, 1.5rem);
		line-height: 1.45;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 4;
		line-clamp: 4;
		overflow: hidden;
	}
}

/* 購入枠の商品画像 */
.c-buybox__thumb {
	margin: 0 0 16px;
	border-radius: 8px;
	background: var(--c-surface);
	overflow: hidden;
}

.c-buybox__thumb a,
.c-buybox__thumb img {
	display: block;
	width: 100%;
}

.c-buybox__thumb img {
	aspect-ratio: 1 / 1;
	object-fit: contain;
}

@media (max-width: 600px) {
	.c-buybox__thumb {
		margin-bottom: 12px;
	}
}

/* =========================================================================
   記事ページのパンくず
   本文と左端を揃え、本文までの余白を詰めます。
   .single-post を付けているので、一覧やカテゴリーページには影響しません。
   ====================================================================== */

/* 本文（l-narrow）と同じ幅にして、左端を揃える */
.single-post .c-breadcrumb > .l-container {
	max-width: var(--w-narrow);
}

/* パンくずの下の余白をなくす */
.single-post .c-breadcrumb {
	padding-block: var(--sp-3) 0;
}

/* 記事本文の上の余白を詰める（通常は64px） */
.single-post article.l-section {
	padding-top: 20px;
}

@media (max-width: 767px) {
	.single-post .c-breadcrumb {
		padding-block: 10px 0;
	}

	.single-post article.l-section {
		padding-top: 12px;
	}
}

/* =========================================================================
   記事ページの適合車種
   カードと同じチップ（c-fitchip）を使い、記事ページでは少し大きく見せます
   ====================================================================== */

.p-entry-head__fit {
	margin: 12px 0 0;
}

.p-entry-head__fit .c-fitchip {
	font-size: .86rem;
}

.p-entry-head__fit .c-fitchip__label {
	padding: 6px 11px;
	font-size: .76rem;
}

.p-entry-head__fit .c-fitchip__body {
	padding: 6px 13px;
}

@media (max-width: 600px) {
	.p-entry-head__fit {
		margin-top: 10px;
	}

	.p-entry-head__fit .c-fitchip {
		font-size: .8rem;
	}

	.p-entry-head__fit .c-fitchip__label {
		padding: 5px 9px;
		font-size: .72rem;
	}

	.p-entry-head__fit .c-fitchip__body {
		padding: 5px 11px;
	}
}

/* =========================================================================
   PCのフッター
   ロゴを左上に小さく置くと余白が死ぬので、右側に大きく据えて
   テキストは左に寄せます。SPは今までどおり縦に積みます。
   ====================================================================== */

@media (min-width: 900px) {

	.l-footer__inner {
		display: flex;
		flex-direction: row-reverse;
		align-items: center;
		gap: var(--sp-6);
	}

	.l-footer__body {
		flex: 1 1 auto;
		min-width: 0;
	}

	.l-footer__brand {
		flex: 0 0 auto;
	}

	.l-footer .c-logo img {
		height: 130px;
		margin-bottom: 0;
	}

	.l-footer__copy {
		margin-bottom: 0;
	}
}

/* =========================================================================
   型式×パーツページの解説文
   商品の前に置く導入文と、商品のあとに置く「選び方」。
   ====================================================================== */

.p-cross-lead {
	margin: var(--sp-3) 0 0;
	font-size: .92rem;
	line-height: 1.9;
	color: var(--c-ink-soft);
}

.p-cross-guide {
	font-size: .94rem;
	line-height: 2;
	color: var(--c-ink-soft);
}

.p-cross-guide p {
	margin: 0 0 var(--sp-4);
}

.p-cross-guide p:last-child {
	margin-bottom: 0;
}

.p-cross-guide__title {
	margin: var(--sp-5) 0 var(--sp-2);
	padding-left: 12px;
	border-left: 3px solid var(--c-olive);
	font-size: 1.02rem;
	font-weight: 700;
	line-height: 1.5;
}

.p-cross-guide__title:first-child {
	margin-top: 0;
}

@media (max-width: 600px) {

	.p-cross-lead {
		font-size: .84rem;
		line-height: 1.8;
	}

	.p-cross-guide {
		font-size: .86rem;
		line-height: 1.9;
	}

	.p-cross-guide__title {
		margin-top: var(--sp-4);
		padding-left: 9px;
		font-size: .94rem;
	}
}
