/**
 * 店舗を探す v2（探し方の更新）の表層デザイン。
 *
 * template-parts/store-search/design-v2.php と search-actions.php（TOP にも置く共通検索セクション）の見た目。
 * 値は「LifeFit Web 店舗検索 実装要件書」（FitGo! Design System 準拠）。SP 390px 基準。
 * クラスは .lfs2- で始め、v1（store-search.css）とテーマのスタイルに混ざらないようにする。
 */

/* テーマの1カラム化と外枠の余白（店舗一覧ページのとき） */
body.page-template-page-list .l-sidebar,
body.page-template-page-list aside,
body.page-template-page-list .p-sidebar { display: none !important; }
body.page-template-page-list .l-main,
body.page-template-page-list .p-single,
body.page-template-page-list .p-page { max-width: 100% !important; width: 100% !important; margin: 0 auto !important; }
html[data-lf-ab-store_list_v2="b_refined"] body.page-template-page-list .l-container { padding: 0; background: #F3F3F3; }
html[data-lf-ab-store_list_v2="b_refined"] body.page-template-page-list .l-contents { width: 100%; max-width: none; margin: 0; }

/*
 * 店舗一覧の A/B（store_list_v2）の出し分け。既定（属性なし＝JS が動かない・bot）と current は今の一覧（.lf-store-a）だけを見せる。
 * b_refined のブロックは data-lfs2-show に search を持つもの（design-v2.php）。map だけを持つブロックは旧 C の画面で、今は出さない。
 */
.lfs2[data-lfs2],
.lfs2 [data-lfs2-show] { display: none; }
html[data-lf-ab-store_list_v2="b_refined"] .lfs2[data-lfs2],
html[data-lf-ab-store_list_v2="b_refined"] .lfs2 [data-lfs2-show~="search"] { display: block; }
.lfs2 [hidden], .lfs2-sheet-layer[hidden] { display: none !important; }
html[data-lf-ab-store_list_v2="b_refined"] .lf-store-a { display: none !important; }

/* カード全体を店舗詳細へのリンクにする。<a> を入れ子にしないよう「詳細を見る」のリンクをカード全体に広げる */
.lfs2-card { position: relative; cursor: pointer; }
.lfs2-card [data-lfs2-nav="card"]::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.lfs2-card:active { opacity: .85; }

/* 市区町村チップ（県ページ）と区チップ（政令市のページ） */
.lfs2-cities { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.lfs2-city-chip { display: inline-flex; align-items: center; gap: 4px; padding: 6px 12px; border: 1px solid #D9D9D9; border-radius: 999px; background: #fff; color: #222; font-size: 14px; text-decoration: none; cursor: pointer; }
.lfs2-city-chip.is-active { border-color: #1e40af; background: #1e40af; color: #fff; }
.lfs2-city-chip .lfs2-num { font-size: 12px; opacity: .7; }

.lfs2,
.lfs2-actions,
.lfs2-sheet-layer {
	--fg-primary: #0F2E7B;
	--fg-primary-darker: #0E296F;
	--fg-primary-lighter: #E7EAF2;
	--fg-secondary: #FF7B00;
	--fg-white: #FFFFFF;
	--fg-white-pale: #F3F3F3;
	--fg-gray-light: #E7E7E7;
	--fg-gray: #7A7A7A;
	--fg-gray-soft: #C2C2C2;
	--fg-black: #0D0D0D;
	--fg-yellow-darker: #E1AB12;
	--lfs2-scrim: rgba(0, 0, 0, .4);
	--lfs2-elevation: 0 2px 8px rgba(0, 0, 0, .08);
	--lfs2-ease: 150ms ease;
	--lfs2-font: system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", Meiryo, sans-serif;
	--lfs2-font-num: "Avenir Next", Avenir, var(--lfs2-font);
	/* PCでは中身を最大1000pxに寄せ、白面は全幅に敷く */
	--lfs2-gutter: max(16px, calc((100% - 1000px) / 2));

	color: var(--fg-black);
	font-family: var(--lfs2-font);
	font-size: 14px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
.lfs2 { background: var(--fg-white-pale); padding-bottom: 24px; }
.lfs2 *, .lfs2 *::before, .lfs2 *::after,
.lfs2-actions *, .lfs2-sheet-layer * { box-sizing: border-box; }
.lfs2 :where(h1, h2, h3, p, ol),
.lfs2-actions :where(h1, h2, h3, p, ol),
.lfs2-sheet-layer :where(h1, h2, h3, p, ol) { margin: 0; }
.lfs2 :where(a), .lfs2-actions :where(a), .lfs2-sheet-layer :where(a) { color: var(--fg-primary); text-decoration: none; }
.lfs2 :where(button), .lfs2-actions :where(button) { font: inherit; }

.lfs-icon { width: 1em; height: 1em; flex: 0 0 auto; fill: currentColor; }
.lfs2-num { font-family: var(--lfs2-font-num); font-weight: 700; }
.lfs2-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- セクション（白面＋上下罫線、間は8px） ---------- */
.lfs2-sec,
.lfs2 .lfs2-actions {
	margin-top: 8px; padding: 12px var(--lfs2-gutter);
	background: var(--fg-white); border-top: 1px solid var(--fg-gray-light); border-bottom: 1px solid var(--fg-gray-light);
}
.lfs2 > :first-child { margin-top: 0; }
.lfs2-sec-title { font-size: 15px; font-weight: 700; margin-bottom: 12px; }

/* ---------- ボタン ---------- */
.lfs2-btn {
	display: flex; align-items: center; justify-content: center; gap: 6px;
	border: 1px solid transparent; border-radius: 12px; cursor: pointer;
	font-weight: 700; line-height: 1.2; text-align: center; white-space: nowrap;
	transition: background-color var(--lfs2-ease), border-color var(--lfs2-ease), opacity var(--lfs2-ease);
}
.lfs2-btn .lfs-icon { font-size: 20px; }
.lfs2-btn[hidden] { display: none; }
.lfs2-btn-lg { height: 48px; padding: 0 18px; font-size: 15px; }
.lfs2-btn-sm { height: 36px; padding: 0 10px; font-size: 12px; border-radius: 8px; }
.lfs2-btn-block { width: 100%; height: 48px; font-size: 14px; }
.lfs2-btn-primary { background: var(--fg-primary); color: var(--fg-white) !important; }
.lfs2-btn-primary:hover { background: var(--fg-primary-darker); }
.lfs2-btn-subtle { background: var(--fg-white); color: var(--fg-primary) !important; border-color: var(--fg-gray-light); }
.lfs2-btn-subtle:hover { background: var(--fg-primary-lighter); }
.lfs2-textbtn { font-size: 12px; font-weight: 700; color: var(--fg-primary); text-decoration: underline !important; white-space: nowrap; }
.lfs2-textbtn:hover { opacity: .7; }
.lfs2-textbtn:active { opacity: .4; }

/* ---------- 共通検索セクション（StoreSearchActions） ---------- */
.lfs2-actions { background: var(--fg-white); }
.lfs2-actions--compact { display: flex; flex-direction: column; gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--fg-gray-light); }
.lfs2 .lfs2-actions--compact { padding: 12px var(--lfs2-gutter); }
.lfs2-search { display: flex; gap: 8px; margin: 0; }
.lfs2-search-btn { flex: 0 0 auto; }
.lfs2-field { position: relative; flex: 1; min-width: 0; display: block; margin: 0; }
.lfs2-field-icon { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); font-size: 20px; color: var(--fg-gray); pointer-events: none; }
.lfs2-field-input {
	width: 100%; height: 48px; padding: 0 12px 0 36px; margin: 0;
	border: 1px solid var(--fg-gray-soft); border-radius: 8px; background: var(--fg-white); outline: 0;
	font: inherit; font-size: 15px; color: var(--fg-black);
	-webkit-appearance: none; appearance: none; transition: border-color var(--lfs2-ease);
}
.lfs2-field-input:focus { border-color: var(--fg-primary); box-shadow: 0 0 0 1px var(--fg-primary); }
.lfs2-field-input::placeholder { color: var(--fg-gray-soft); }
.lfs2-map-btn {
	display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; height: 48px;
	border: 2px solid var(--fg-primary); border-radius: 12px; background: var(--fg-white);
	color: var(--fg-primary) !important; font-size: 15px; font-weight: 700;
	transition: background-color var(--lfs2-ease);
}
.lfs2-map-btn .lfs-icon { font-size: 22px; }
.lfs2-map-btn:hover { background: var(--fg-primary-lighter); }

/* card バリアント（別案）：280px 以上取れれば横2列 */
.lfs2-actions--card { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 12px; align-items: start; }
.lfs2-pillar { display: flex; flex-direction: column; gap: 10px; padding: 16px; border: 1px solid var(--fg-primary); border-radius: 12px; background: var(--fg-white); min-width: 0; }
.lfs2-pillar-title { display: flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 700; }
.lfs2-pillar-title .lfs-icon { font-size: 20px; color: var(--fg-primary); }
.lfs2-pillar-desc { font-size: 12px; color: var(--fg-gray); line-height: 1.6; }
.lfs2-pillar-note { font-size: 11px; color: var(--fg-gray); line-height: 1.6; }
.lfs2-search--stack { flex-direction: column; }
.lfs2-field--pill .lfs2-field-input { border: 0; border-radius: 999px; background: var(--fg-white-pale); padding-left: 40px; }
.lfs2-field--pill .lfs2-field-icon { left: 14px; }
.lfs2-field--pill .lfs2-field-input:focus { box-shadow: 0 0 0 2px var(--fg-primary); }

/* ---------- 都道府県から探す ---------- */
.lfs2-regions { display: flex; flex-direction: column; gap: 16px; }
.lfs2-region { display: flex; flex-direction: column; gap: 8px; }
.lfs2-region-head { display: flex; align-items: baseline; gap: 8px; }
.lfs2-region-name { font-size: 14px; font-weight: 700; }
.lfs2-region-total { font-size: 11px; color: var(--fg-gray); }
.lfs2-region-total .lfs2-num { font-weight: 400; }
.lfs2-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.lfs2-pref-chip {
	display: inline-flex; align-items: baseline; gap: 4px; padding: 8px 10px;
	border: 1px solid var(--fg-gray-light); border-radius: 8px; background: var(--fg-white);
	font-size: 12px; font-weight: 700; line-height: 1.2; color: var(--fg-black) !important;
	transition: background-color var(--lfs2-ease), border-color var(--lfs2-ease), color var(--lfs2-ease);
}
.lfs2-pref-chip .lfs2-num { font-size: 11px; color: var(--fg-gray); }
.lfs2-pref-chip:hover { border-color: var(--fg-primary); }
.lfs2-pref-chip.is-active { background: var(--fg-primary); border-color: var(--fg-primary); color: var(--fg-white) !important; }
.lfs2-pref-chip.is-active .lfs2-num { color: rgba(255, 255, 255, .8); }
.lfs2-pref-chip.is-disabled { border-style: dashed; color: var(--fg-gray-soft) !important; cursor: not-allowed; }
.lfs2-pref-chip.is-disabled:hover { border-color: var(--fg-gray-light); }

/* 地図ページ下部の折りたたみ */
.lfs2-prefs--fold { padding-top: 0; padding-bottom: 0; }
.lfs2-fold-head { display: flex; align-items: center; gap: 8px; padding: 14px 0; cursor: pointer; list-style: none; }
.lfs2-fold-head::-webkit-details-marker { display: none; }
.lfs2-fold-title { font-size: 15px; font-weight: 700; }
.lfs2-fold-summary { flex: 1; font-size: 11px; color: var(--fg-gray); }
.lfs2-fold-icon { font-size: 22px; color: var(--fg-gray); transition: transform var(--lfs2-ease); }
details[open] > summary .lfs2-fold-icon { transform: rotate(180deg); }
.lfs2-prefs--fold[open] { padding-bottom: 16px; }
.lfs2-prefs--open { padding-top: 0; padding-bottom: 16px; }
.lfs2-prefs--open .lfs2-fold-head { cursor: default; }
.lfs2-prefs--open .lfs2-fold-title { margin: 0; }

/* ---------- 結果（キーワード／都道府県） ---------- */
.lfs2-condbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.lfs2-back-pill {
	display: inline-flex; align-items: center; gap: 2px; padding: 6px 12px 6px 6px;
	border: 1px solid var(--fg-gray-light); border-radius: 999px; font-size: 12px; font-weight: 700;
}
.lfs2-back-pill .lfs-icon { font-size: 18px; }
.lfs2-back-pill:hover { background: var(--fg-primary-lighter); }
.lfs2-cond-chip { padding: 6px 12px; border-radius: 999px; background: var(--fg-primary-lighter); color: var(--fg-primary); font-size: 12px; font-weight: 700; }
.lfs2-condbar + .lfs2-research { margin-top: -1px; border-top: 0; padding-top: 0; }

.lfs2-results { display: flex; flex-direction: column; gap: 12px; }
.lfs2-results-head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.lfs2-results-title { font-size: 20px; font-weight: 700; line-height: 1.4; }
.lfs2-count { font-size: 12px; color: var(--fg-gray); }
.lfs2-count .lfs2-num { font-size: 15px; color: var(--fg-primary); }

.lfs2-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 640px) { .lfs2-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); } }

/* ---------- 店舗カード ---------- */
.lfs2-card {
	position: relative; display: flex; flex-direction: column; gap: 4px; padding: 8px;
	background: var(--fg-white); border: 1px solid var(--fg-gray-light); border-radius: 12px;
	box-shadow: var(--lfs2-elevation); cursor: pointer;
	transition: border-color var(--lfs2-ease), box-shadow var(--lfs2-ease);
}
.lfs2-card[hidden] { display: none; }
.lfs2-card.is-selected { border: 2px solid var(--fg-secondary); padding: 7px; box-shadow: 0 4px 14px rgba(255, 123, 0, .28); }
.lfs2-card-photo { aspect-ratio: 16 / 11; border-radius: 8px; overflow: hidden; background: var(--fg-gray-light); margin-bottom: 4px; }
.lfs2-card-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lfs2-card-name { font-size: 14px; font-weight: 700; line-height: 1.4; }
.lfs2-card-access { font-size: 11px; line-height: 1.5; color: var(--fg-gray); }
.lfs2-card-hours { display: flex; align-items: center; gap: 3px; font-size: 11px; }
.lfs2-card-hours .lfs-icon { font-size: 14px; }
.lfs2-card-hours .lfs-icon { color: var(--fg-gray); }
.lfs2-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.lfs2-tag { padding: 2px 6px; border-radius: 4px; background: var(--fg-white-pale); font-size: 10px; font-weight: 700; line-height: 1.6; color: var(--fg-black); }
.lfs2-card-price { font-size: 11px; line-height: 1.6; }
.lfs2-card-price .lfs2-num { font-size: 12px; }
.lfs2-card-ctas { display: flex; flex-direction: column; gap: 6px; margin-top: auto; padding-top: 6px; }

/* 地図ページの横スクロール */
.lfs2-carousel-wrap { margin-top: 8px; }
.lfs2-carousel {
	display: flex; gap: 10px; overflow-x: auto; padding: 4px 16px 12px;
	scroll-snap-type: x mandatory; scroll-padding: 0 16px; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain;
}
.lfs2-card--carousel { flex: 0 0 250px; scroll-snap-align: start; }
.lfs2-more { margin-top: 4px; }

/* ---------- 地図（Google Maps。描画は map-engine-gmaps.js） ---------- */
.lfs2-map { position: relative; height: clamp(200px, 38vh, 300px); border-radius: 12px; overflow: hidden; background: #ECEEF1; }
/* 地図で探すページ。スクロール時に固定はしない（2026-10-14 指示） */
.lfs2-map--page { height: clamp(260px, 46vh, 420px); border-radius: 0; border-bottom: 1px solid var(--fg-gray-light); }
.lfs2-map-canvas { position: absolute; inset: 0; }
.lfs2-map-loading { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 12px; color: var(--fg-gray); pointer-events: none; }
.lfs2-map-loading[hidden] { display: none; }
.lfs2-map-locate {
	position: absolute; top: 10px; right: 10px; z-index: 5; width: 40px; height: 40px; padding: 0;
	display: flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; cursor: pointer;
	background: var(--fg-white); color: var(--fg-primary); box-shadow: var(--lfs2-elevation);
}
.lfs2-map-locate .lfs-icon { font-size: 22px; }

/* ---------- 地図ページのリスト見出し ---------- */
.lfs2-sec.lfs2-listhead { margin-top: 0; border-top: 0; display: flex; flex-direction: column; gap: 4px; }
.lfs2-listhead-row { display: flex; align-items: baseline; gap: 8px; }
.lfs2-listhead-title { font-size: 17px; font-weight: 700; }
.lfs2-listhead-sub { justify-content: space-between; font-size: 12px; color: var(--fg-gray); }

/* ---------- 空状態 ---------- */
.lfs2-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; padding-top: 24px; padding-bottom: 24px; text-align: center; }
.lfs2-empty-icon { font-size: 32px; color: var(--fg-gray-soft); }
.lfs2-empty-title { font-size: 15px; font-weight: 700; line-height: 1.5; }
.lfs2-empty-body { font-size: 12px; line-height: 1.7; color: var(--fg-gray); margin-bottom: 4px; }
.lfs2-empty .lfs2-btn-block { max-width: 360px; }

/* ---------- ボトムシート（位置情報が使えない場合） ---------- */
.lfs2-sheet-layer { position: fixed; inset: 0; z-index: 10000; }
.lfs2-scrim { position: absolute; inset: 0; background: var(--lfs2-scrim); }
.lfs2-sheet {
	position: absolute; left: 0; right: 0; bottom: 0; max-width: 560px; margin: 0 auto;
	display: flex; flex-direction: column; align-items: stretch; gap: 10px;
	padding: 20px 16px 24px; background: var(--fg-white); border-radius: 16px 16px 0 0;
	box-shadow: 0 -4px 16px rgba(0, 0, 0, .15);
}
.lfs2-sheet-icon { font-size: 30px; color: var(--fg-yellow-darker); }
.lfs2-sheet-title { font-size: 18px; font-weight: 700; line-height: 1.4; }
.lfs2-sheet-body { font-size: 13px; line-height: 1.7; color: var(--fg-gray); }
.lfs2-sheet-actions { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.lfs2-sheet-help summary { display: inline-flex; align-items: center; gap: 2px; padding: 4px 0; list-style: none; cursor: pointer; font-size: 12px; font-weight: 700; color: var(--fg-primary); }
.lfs2-sheet-help summary::-webkit-details-marker { display: none; }
.lfs2-sheet-help ol { padding: 4px 0 0 20px; font-size: 12px; line-height: 1.9; }
.lfs2-sheet--prefs { max-height: 78vh; padding: 0; gap: 0; }
.lfs2-sheet-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 16px 16px 12px; border-bottom: 1px solid var(--fg-gray-light); }
.lfs2-sheet-head-title { font-size: 16px; font-weight: 700; }
.lfs2-sheet-head-summary { font-size: 11px; color: var(--fg-gray); }
.lfs2-sheet-close { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; margin: -6px -6px 0 0; border-radius: 8px; color: var(--fg-black) !important; }
.lfs2-sheet-close .lfs-icon { font-size: 22px; }
.lfs2-sheet-scroll { overflow-y: auto; overscroll-behavior: contain; padding: 14px 16px 24px; }
html.lfs2-lock, html.lfs2-lock body { overflow: hidden; }

/* ---------- 確認用（番号一覧・切り替え） ---------- */
.lfs2-main { max-width: 1000px; margin: 0 auto; padding: 0 16px; }
.lfs2-index { padding: 20px 0; display: flex; flex-direction: column; gap: 12px; }
.lfs2-index-title { font-size: 18px; font-weight: 700; }
.lfs2-index-note { font-size: 12px; line-height: 1.7; color: var(--fg-gray); }
.lfs2-index-note a { text-decoration: underline; }
.lfs2-index-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.lfs2-index-list a { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: var(--fg-white); border: 1px solid var(--fg-gray-light); border-radius: 12px; color: var(--fg-black); }
.lfs2-index-list a:hover { border-color: var(--fg-primary); }
.lfs2-index-list .lfs-icon { font-size: 20px; color: var(--fg-gray-soft); }
.lfs2-index-num { min-width: 34px; font-family: var(--lfs2-font-num); font-weight: 700; font-size: 15px; color: var(--fg-primary); }
.lfs2-index-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.lfs2-index-label { font-size: 14px; font-weight: 700; }
.lfs2-index-desc { font-size: 11px; color: var(--fg-gray); }
.lfs2-devnav { max-width: 1000px; margin: 24px auto 0; padding: 0 16px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.lfs2-devnav::before { content: "デザイン確認 v2："; font-size: 11px; color: var(--fg-gray); }
.lfs2-devnav a { padding: 4px 10px; border: 1px dashed var(--fg-gray-soft); border-radius: 999px; font-family: var(--lfs2-font-num); font-size: 11px; font-weight: 700; color: var(--fg-gray); }
.lfs2-devnav a[aria-current] { border-style: solid; border-color: var(--fg-primary); color: var(--fg-primary); }

@media (prefers-reduced-motion: reduce) {
	.lfs2 *, .lfs2-actions *, .lfs2-sheet-layer * { transition: none !important; }
}

/*
 * TOP（page-lifefit.php）では .lifefit 配下の section・button・input に余白の指定があり、
 * 共通検索セクションの寸法が崩れる。.lfs2-actions を重ねて詳細度を上げ、要件どおりの寸法に戻す。
 */
.lfs2-actions.lfs2-actions--compact { padding: 12px 16px; margin: 0; }
.lfs2-actions.lfs2-actions--card { padding: 12px 16px; margin: 0; }
.lfs2 .lfs2-actions.lfs2-actions--compact,
.lfs2 .lfs2-actions.lfs2-actions--card { padding: 12px var(--lfs2-gutter); }
.lfs2-actions .lfs2-btn-lg { padding: 0 18px; }
.lfs2-actions .lfs2-btn-block { padding: 0 16px; }
.lfs2-actions .lfs2-field-input { padding: 0 12px 0 36px; }
.lfs2-actions .lfs2-field--pill .lfs2-field-input { padding-left: 40px; }

/* ---------- ピンのポップアップ（案c：ネイビーの横長＋丸い矢印ボタン） ----------
 * Google Maps の吹き出し（InfoWindow）の中に描く。枠と背景もネイビーに塗り替える。 */
.lfs2 .gm-style .gm-style-iw-c { padding: 0 !important; background: #0F2E7B; border-radius: 12px; box-shadow: 0 4px 14px rgba(0, 0, 0, .18); }
.lfs2 .gm-style .gm-style-iw-d { overflow: hidden !important; padding: 0 !important; }
.lfs2 .gm-style .gm-style-iw-tc::after { background: #0F2E7B; }
.lfs2 .gm-style .gm-style-iw-chr { position: absolute; top: 4px; right: 4px; z-index: 1; border-radius: 50%; background: rgba(15, 46, 123, .6); }
.lfs2 .gm-style .gm-style-iw-chr button { width: 28px !important; height: 28px !important; }
.lfs2 .gm-style .gm-style-iw-chr button span { margin: 6px !important; width: 16px !important; height: 16px !important; background-color: rgba(255, 255, 255, .8) !important; }
.lfs2-pop--c { width: 260px; background: var(--fg-primary); color: var(--fg-white); font-family: var(--lfs2-font); }
/* 上に店舗写真（無い店は既定の画像）。写真を押しても店舗詳細へ移る */
/* 比率は GRAND OPEN の既定画像（960×600＝16:10）に合わせ、見学会の日程まで切れずに見えるようにする（2026-10-19 指示） */
.lfs2-pop-photo { display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 12px 12px 0 0; background: #ECEEF1; }
.lfs2-pop-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lfs2-pop-row { padding: 8px 8px 8px 12px; display: flex; align-items: center; gap: 10px; }
.lfs2-pop--c .lfs2-pop-text { flex: 1; min-width: 0; padding-right: 20px; }
.lfs2-pop--c .lfs2-pop-name { margin: 0; font-size: 13px; font-weight: 700; line-height: 1.4; }
.lfs2-pop--c .lfs2-pop-address { margin: 0; font-size: 11px; line-height: 1.5; color: rgba(255, 255, 255, .78); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lfs2-pop-go {
	flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: var(--fg-white); color: var(--fg-primary) !important;
}
.lfs2-pop-go .lfs-icon { width: 22px; height: 22px; fill: currentColor; }
