/* ==========================================================================
   BYDディーラー検索ページ
   すべて .byd-dealers* 名前空間で完結。テーマ style.css の既存クラスは上書きしない。
   モバイルファースト。色はテーマのCSS変数のみを使用（ハードコードしない）。
   ========================================================================== */

/* --------------------------------------------------------------------------
   ページ・ヘッダー
   -------------------------------------------------------------------------- */
.byd-dealers-page { padding-top: 28px; padding-bottom: 56px; }
.byd-dealers { color: var(--color-text); }

.byd-dealers__header { max-width: 860px; margin-bottom: 18px; }
.byd-dealers__eyebrow {
	display: inline-block; margin-bottom: 8px; padding-left: 10px;
	border-left: 3px solid var(--color-accent);
	color: var(--color-primary); font-size: 0.78rem; font-weight: 700;
}
.byd-dealers__header h1 { font-family: var(--font-heading); font-size: 1.6rem; line-height: 1.4; margin-bottom: 10px; }
.byd-dealers__lead { color: var(--color-text-light); text-wrap: pretty; }

/* --------------------------------------------------------------------------
   サマリー数値（4カード）
   -------------------------------------------------------------------------- */
.byd-dealers__summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.byd-dealers__kpi {
	background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius);
	padding: 16px 18px;
}
.byd-dealers__kpi--main { border-top: 4px solid var(--color-primary); }
.byd-dealers__kpi-label { display: block; margin-bottom: 4px; font-size: 0.8rem; color: var(--color-muted); }
.byd-dealers__kpi-value {
	font-family: var(--font-heading); font-size: 2rem; line-height: 1.1; color: var(--color-primary);
	font-variant-numeric: tabular-nums;
}
.byd-dealers__kpi--main .byd-dealers__kpi-value { color: var(--color-accent); }

/* --------------------------------------------------------------------------
   絞り込みUI
   -------------------------------------------------------------------------- */
.byd-dealers__filter {
	display: grid; gap: 12px; margin-top: 20px; padding: 14px 16px;
	background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius);
}
.byd-dealers__field { display: grid; gap: 5px; min-width: 0; }
.byd-dealers__field label { font-size: 0.78rem; font-weight: 700; color: var(--color-primary); }
.byd-dealers__field select,
.byd-dealers__field input {
	width: 100%; min-width: 0; max-width: 100%; min-height: 44px;
	border: 1px solid var(--color-border); border-radius: 4px; background: var(--color-bg);
	padding: 8px 10px; font: inherit; color: var(--color-text);
}
.byd-dealers__field select:focus-visible,
.byd-dealers__field input:focus-visible,
.byd-dealers__check input:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.byd-dealers__check {
	display: flex; align-items: center; gap: 8px; min-height: 44px;
	font-size: 0.88rem; color: var(--color-text); cursor: pointer;
}
.byd-dealers__count { margin-top: 14px; font-size: 0.82rem; font-weight: 700; color: var(--color-primary); }

/* --------------------------------------------------------------------------
   店舗リスト
   -------------------------------------------------------------------------- */
.byd-dealers__list { margin-top: 18px; }
.byd-dealers__region { margin-top: 26px; }
.byd-dealers__region:first-child { margin-top: 0; }
.byd-dealers__region > h2 {
	font-family: var(--font-heading); font-size: 1.25rem; line-height: 1.5;
	margin-bottom: 12px; padding-left: 12px; border-left: 4px solid var(--color-accent);
}

.byd-dealers__grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
/* min-width:auto の罠対策: グリッド子が内容幅でページを押し広げない */
.byd-dealers__grid > * { min-width: 0; }

.byd-dealers__card {
	display: flex; flex-direction: column; gap: 6px; min-width: 0;
	background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius);
	padding: 14px 16px;
}
.byd-dealers__card-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.byd-dealers__card-name {
	font-family: var(--font-heading); font-size: 1rem; line-height: 1.4; margin: 0; color: var(--color-primary);
}
.byd-dealers__badge {
	display: inline-block; border-radius: 3px; padding: 2px 8px;
	background: var(--color-surface); color: var(--color-text);
	font-size: 0.68rem; font-weight: 700; line-height: 1.6;
}
.byd-dealers__badge--open { color: var(--color-primary); }
.byd-dealers__badge--prep { color: var(--color-accent); }
.byd-dealers__card-pref { margin: 2px 0 0; font-size: 0.8rem; font-weight: 700; color: var(--color-muted); }
.byd-dealers__card-addr { margin: 0; font-size: 0.88rem; line-height: 1.7; color: var(--color-text); overflow-wrap: anywhere; }
.byd-dealers__card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.byd-dealers__card-link {
	display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px;
	border: 1px solid var(--color-border); border-radius: 4px;
	font-size: 0.8rem; font-weight: 700; color: var(--color-link); text-decoration: none;
}
.byd-dealers__card-link:hover { border-color: var(--color-primary); }
.byd-dealers__card-link--map { background: var(--color-surface); }

/* --------------------------------------------------------------------------
   0件時・ユーティリティ
   -------------------------------------------------------------------------- */
.byd-dealers__empty {
	margin-top: 18px; padding: 22px 18px; text-align: center;
	border: 1px dashed var(--color-border); border-radius: var(--radius);
	color: var(--color-muted); font-size: 0.88rem;
}
.byd-dealers__error { color: var(--color-accent); }
.byd-dealers__is-hidden { display: none; }

/* --------------------------------------------------------------------------
   注記
   -------------------------------------------------------------------------- */
.byd-dealers__note { margin-top: 2.25rem; background: var(--color-surface); border-radius: var(--radius); padding: 18px 20px; }
.byd-dealers__note h2 { font-family: var(--font-heading); font-size: 1.05rem; margin: 0 0 8px; color: var(--color-primary); }
.byd-dealers__note p { margin: 0 0 6px; font-size: 0.86rem; color: var(--color-text); }
.byd-dealers__note p:last-child { margin-bottom: 0; }
.byd-dealers__note a { color: var(--color-link); }
.byd-dealers__muted { color: var(--color-muted); font-size: 0.82rem; }

/* --------------------------------------------------------------------------
   レスポンシブ
   -------------------------------------------------------------------------- */
@media (min-width: 600px) {
	.byd-dealers__summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.byd-dealers__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 720px) {
	.byd-dealers-page { padding-top: 40px; }
	.byd-dealers__header h1 { font-size: 1.95rem; }
	.byd-dealers__filter { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; }
	.byd-dealers__region > h2 { font-size: 1.4rem; }
}

@media (min-width: 1024px) {
	.byd-dealers__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}