/* 店鋪一覽 — 對齊 PNS 門市地圖頁布局 */

/* 全寬地圖需允許橫向溢出，否則浮層列表會被 main 裁掉 */
html:has(body.page-store-locator) {
	overflow-x: visible;
}

body.page-store-locator,
body.page-store-locator .site-main,
body.page-store-locator .page-content-wrap,
body.page-store-locator .ulive-store-locator-page.cat-listing-wrap {
	overflow-x: visible;
}

body.page-store-locator .page-content-wrap {
	background: #fff;
}

body.page-store-locator .ulive-store-locator-page.cat-listing-wrap {
	max-width: var(--ulive-content-max, 1280px);
	margin: 0 auto;
	padding: 20px var(--ulive-content-gutter, 50px) 48px;
	font-family: var(--font-primary);
	box-sizing: border-box;
}

body.page-store-locator .ulive-store-locator-page .cat-breadcrumb {
	margin-bottom: 24px;
}

body.page-store-locator .ulive-store-locator__title.cat-listing-title {
	margin: 0 0 20px;
	text-align: left;
}

/* 篩選工具列 */
.ulive-store-locator-toolbar {
	margin-bottom: 16px;
}

.ulive-store-locator-search {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	width: 100%;
	max-width: none;
	height: 48px;
	padding: 0 14px 0 16px;
	border: 1px solid #c5ced8;
	border-radius: 8px;
	background: #fff;
	box-sizing: border-box;
	cursor: text;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.ulive-store-locator-search:focus-within {
	border-color: #3fa7f3;
	box-shadow: 0 0 0 2px rgba(63, 167, 243, 0.12);
}

.ulive-store-locator-search-icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	color: #3fa7f3;
	pointer-events: none;
}

.ulive-store-locator-search-icon .icon {
	font-size: 18px;
	line-height: 1;
}

.ulive-store-locator-search-icon .icon:before {
	color: #3fa7f3;
}

.ulive-store-locator-search-input {
	flex: 1;
	min-width: 0;
	width: auto;
	height: auto;
	padding: 0;
	border: none;
	border-radius: 0;
	background: transparent;
	font-size: 15px;
	color: #2d3a4a;
	box-sizing: border-box;
}

.ulive-store-locator-search-input::placeholder {
	color: #9aa8b8;
}

.ulive-store-locator-search-input:focus {
	outline: none;
	box-shadow: none;
}

.ulive-store-locator-search-input::-webkit-search-cancel-button,
.ulive-store-locator-search-input::-webkit-search-decoration,
.ulive-store-locator-search-input::-ms-clear {
	display: none;
	-webkit-appearance: none;
	appearance: none;
}

.ulive-store-locator-search-clear {
	display: none;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: #3fa7f3;
	color: #fff;
	cursor: pointer;
	line-height: 1;
	transition: background-color 0.2s ease;
}

.ulive-store-locator-search-clear:hover {
	background: #2b97e3;
}

.ulive-store-locator-search.has-value .ulive-store-locator-search-icon {
	display: none;
}

.ulive-store-locator-search.has-value .ulive-store-locator-search-clear {
	display: inline-flex;
}

.ulive-store-locator-select-wrap {
	position: relative;
	min-width: 0;
	width: 100%;
}

.ulive-store-locator-select-wrap::after {
	content: '';
	position: absolute;
	right: 14px;
	top: 50%;
	margin-top: -2px;
	border: 5px solid transparent;
	border-top-color: #3fa7f3;
	pointer-events: none;
}

.ulive-store-locator-select {
	width: 100%;
	height: 48px;
	padding: 0 36px 0 14px;
	border: 1px solid #c5ced8;
	border-radius: 8px;
	font-size: 15px;
	color: #9aa8b8;
	background: #fff;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	box-sizing: border-box;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.ulive-store-locator-select:focus {
	outline: none;
	border-color: #3fa7f3;
	box-shadow: 0 0 0 2px rgba(63, 167, 243, 0.12);
}

.ulive-store-locator-select.has-value {
	color: #2d3a4a;
}

.ulive-store-locator-select:disabled {
	background-color: #f5f7fa;
	color: #9aa8b8;
	cursor: not-allowed;
}

.ulive-store-locator-locate {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid #c5ced8;
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.ulive-store-locator-locate:hover {
	border-color: #b8c4d0;
	background-color: #f5f7fa;
}

.ulive-store-locator-locate .icon {
	font-size: 20px;
	line-height: 1;
	color: #6b7a8c;
}

.ulive-store-locator-locate .icon:before {
	color: #6b7a8c;
}

/* 主體：地圖全寬，列表浮層疊加（PC）；窄屏改為上下堆疊 */
.ulive-store-locator-main {
	position: relative;
	min-height: 360px;
}

.ulive-store-locator-panel {
	display: flex;
	flex-direction: column;
	background: #fff;
	min-height: 0;
	pointer-events: auto;
}

.ulive-store-locator-panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 16px 10px;
	border-bottom: 1px solid #eee;
}

.ulive-store-locator-results-count {
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	color: #3e3e3e;
}

.ulive-store-locator-filter-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 0;
	border: none;
	background: none;
	font-size: 14px;
	color: #3fa7f3;
	cursor: pointer;
}

.ulive-store-locator-filter-btn .icon {
	font-size: 16px;
	line-height: 1;
	color: #3fa7f3;
}

.ulive-store-locator-filter-btn .icon:before {
	color: #3fa7f3;
}

.ulive-store-locator-list {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	padding: 12px 14px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	-webkit-overflow-scrolling: touch;
}

/* 複用落佳拎門市卡片，頁面版微調 */
.ulive-store-locator-list .pns-delivery-pickup-store {
	max-width: none;
}

.ulive-store-locator-list .pns-delivery-pickup-store-phone {
	margin: 4px 0 0;
	font-size: 13px;
	color: #8a96a8;
	display: flex;
	align-items: center;
	gap: 6px;
}

.ulive-store-locator-list .pns-delivery-pickup-store-phone::before {
	content: '';
	width: 14px;
	height: 14px;
	flex-shrink: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238A96A8' stroke-width='2'%3E%3Cpath d='M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z'/%3E%3C/svg%3E") center no-repeat;
}

.ulive-store-locator-list .pns-delivery-pickup-store-hours::before {
	content: '';
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-right: 4px;
	vertical-align: -2px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238A96A8' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E") center no-repeat;
}

.ulive-store-locator-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 12px 14px 14px;
	border-top: 1px solid #eee;
	flex-shrink: 0;
}

.ulive-store-locator-pagination button {
	min-width: 36px;
	height: 36px;
	padding: 0 8px;
	border: 1px solid transparent;
	border-radius: 4px;
	background: #fff;
	color: #3fa7f3;
	font-size: 14px;
	cursor: pointer;
}

.ulive-store-locator-pagination button:hover:not(:disabled) {
	background: #f0f8ff;
}

.ulive-store-locator-pagination button.is-active {
	border-color: #3fa7f3;
	font-weight: 600;
}

.ulive-store-locator-pagination button:disabled {
	color: #ccc;
	cursor: default;
}

/* 移動端底部固定分頁（未滾到列表底部分頁時顯示） */
.ulive-store-locator-pagination--dock {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 600;
	margin: 0;
	padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px));
	border-top: 1px solid #e0e6ec;
	background: #eef3f8;
	box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.06);
	gap: 16px;
}

.ulive-store-locator-pagination--dock.is-visible {
	display: flex;
}

.ulive-store-locator-pagination--dock .ulive-store-locator-pagination__status {
	min-width: 64px;
	font-size: 16px;
	font-weight: 600;
	color: #2a2a2a;
}

.ulive-store-locator-pagination--dock .ulive-store-locator-pagination__arrow {
	font-size: 24px;
	min-width: 40px;
}

.ulive-store-locator-map-wrap {
	position: relative;
	width: 100%;
	min-height: 360px;
	z-index: 0;
	isolation: isolate;
}

.ulive-store-locator-map {
	width: 100%;
	height: 100%;
	min-height: 360px;
	background: #e8ecef;
}

/* 縮放按鈕置於地圖右下角（對齊 PNS） */
.ulive-store-locator-map .leaflet-bottom.leaflet-right {
	right: 16px;
	bottom: 20px;
}

.ulive-store-locator-map .leaflet-control-zoom {
	border: 1px solid #d8dde6;
	border-radius: 6px;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.ulive-store-locator-map .leaflet-control-zoom a {
	width: 36px;
	height: 36px;
	line-height: 36px;
	font-size: 18px;
	color: #333;
	background: #fff;
	border-bottom: 1px solid #e4e8ed;
}

.ulive-store-locator-map .leaflet-control-zoom a:last-child {
	border-bottom: none;
}

.ulive-store-locator-map .leaflet-control-zoom a:hover {
	background: #f0f8ff;
	color: #3fa7f3;
}

/* PC：工具列四欄 + 地圖浮層列表 */
@media (min-width: 901px) {
	.ulive-store-locator-pagination--dock {
		display: none !important;
	}

	.ulive-store-locator-toolbar {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr auto;
		align-items: center;
		gap: 10px;
	}

	.ulive-store-locator-toolbar-row--search,
	.ulive-store-locator-toolbar-row--filters {
		display: contents;
	}

	.ulive-store-locator-toolbar-row--search .ulive-store-locator-search {
		grid-column: 1;
		grid-row: 1;
	}

	.ulive-store-locator-toolbar-row--filters .ulive-store-locator-select-wrap:first-child {
		grid-column: 2;
		grid-row: 1;
	}

	.ulive-store-locator-toolbar-row--filters .ulive-store-locator-select-wrap:last-child {
		grid-column: 3;
		grid-row: 1;
	}

	.ulive-store-locator-toolbar-row--search .ulive-store-locator-locate {
		grid-column: 4;
		grid-row: 1;
	}

	.ulive-store-locator-main {
		height: 640px;
		min-height: 640px;
	}

	/* 僅地圖全寬突破；列表留在內容區坐標系，避免被 overflow 裁切 */
	.ulive-store-locator-map-wrap {
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: 50%;
		width: 100vw;
		margin-left: -50vw;
		min-height: 640px;
		z-index: 0;
	}

	.ulive-store-locator-map {
		min-height: 640px;
	}

	.ulive-store-locator-panel {
		position: absolute;
		top: 24px;
		left: 0;
		bottom: 24px;
		width: 400px;
		max-width: calc(100% - 24px);
		z-index: 500;
		border-radius: 8px;
		border: 1px solid #e4e8ed;
		box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12), 0 0 1px rgba(0, 0, 0, 0.06);
		overflow: hidden;
	}

	.ulive-store-locator-panel-head,
	.ulive-store-locator-pagination {
		flex-shrink: 0;
	}

	.ulive-store-locator-list {
		padding: 0;
		gap: 0;
		overflow-y: auto;
		scrollbar-width: auto;
		scrollbar-color: #6b7a8c #dce3ea;
	}

	.ulive-store-locator-list::-webkit-scrollbar {
		width: 12px;
	}

	.ulive-store-locator-list::-webkit-scrollbar-track {
		background: #dce3ea;
		border-left: 1px solid #cfd8e1;
	}

	.ulive-store-locator-list::-webkit-scrollbar-thumb {
		background: #6b7a8c;
		border: 3px solid #dce3ea;
		border-radius: 6px;
		min-height: 48px;
	}

	.ulive-store-locator-list::-webkit-scrollbar-thumb:hover {
		background: #5268b8;
	}

	.ulive-store-locator-list .pns-delivery-pickup-store {
		flex-shrink: 0;
	}

	.ulive-store-locator-list .pns-delivery-pickup-store {
		padding: 14px 16px;
		border-bottom: 1px dashed #e4e8ed;
		border-radius: 0;
	}

	.ulive-store-locator-list .pns-delivery-pickup-store:last-child {
		border-bottom: none;
	}

	.ulive-store-locator-pagination {
		gap: 6px;
		padding: 10px 14px 12px;
		border-top: 1px solid #eee;
		background: #fff;
	}

	.ulive-store-locator-pagination button {
		min-width: 38px;
		height: 38px;
		padding: 0;
		border: 1px solid #d8dde6;
		border-radius: 4px;
		background: #fff;
		color: #3e3e3e;
		font-size: 14px;
		line-height: 1;
	}

	.ulive-store-locator-pagination button:hover:not(:disabled) {
		border-color: #b8c4d0;
		background: #f8fafc;
	}

	.ulive-store-locator-pagination button.is-active {
		border-color: #3fa7f3;
		color: #3fa7f3;
		font-weight: 600;
		background: #fff;
	}

	.ulive-store-locator-pagination__arrow {
		color: #9aa8b8;
		font-size: 18px;
	}

	.ulive-store-locator-pagination__arrow:disabled {
		opacity: 0.45;
		background: #fafbfc;
	}
}

/* 移動端：純列表 + 兩行篩選（對齊 PNS） */
@media (max-width: 900px) {
	body.page-store-locator .ulive-store-locator-page.cat-listing-wrap {
		padding: 0 0 32px;
	}

	body.page-store-locator .ulive-store-locator-page .cat-breadcrumb,
	body.page-store-locator .ulive-store-locator__title.cat-listing-title {
		display: none;
	}

	.ulive-store-locator-toolbar {
		display: flex;
		flex-direction: column;
		gap: 8px;
		margin-bottom: 0;
		padding: 12px 16px;
		background: #eef3f8;
	}

	.ulive-store-locator-toolbar-row--search,
	.ulive-store-locator-toolbar-row--filters {
		display: flex;
		gap: 8px;
		align-items: stretch;
	}

	.ulive-store-locator-toolbar-row--search {
		flex-wrap: nowrap;
	}

	.ulive-store-locator-toolbar-row--filters {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
	}

	.ulive-store-locator-search {
		flex: 1 1 auto;
		min-width: 0;
		width: auto;
		max-width: none;
		height: 48px;
		border-color: #dce2e8;
		border-radius: 10px;
	}

	.ulive-store-locator-locate {
		flex: 0 0 48px;
		width: 48px;
		height: 48px;
		border-color: #dce2e8;
		border-radius: 10px;
	}

	.ulive-store-locator-select-wrap {
		width: 100%;
		min-width: 0;
		max-width: none;
	}

	.ulive-store-locator-select {
		height: 48px;
		border-color: #dce2e8;
		border-radius: 10px;
	}

	.ulive-store-locator-main,
	.ulive-store-locator-main.is-mobile-list {
		display: block;
		min-height: 0;
		border: none;
		background: transparent;
	}

	.ulive-store-locator-map-wrap {
		display: none !important;
	}

	.ulive-store-locator-panel {
		position: static;
		width: 100%;
		max-width: none;
		max-height: none;
		border: none;
		border-radius: 0;
		box-shadow: none;
		background: #eef3f8;
		overflow: visible;
	}

	.ulive-store-locator-panel-head {
		padding: 14px 16px 12px;
		border-bottom: none;
		background: #eef3f8;
	}

	.ulive-store-locator-list {
		padding: 0;
		gap: 0;
		overflow: visible;
		background: #eef3f8;
	}

	.ulive-store-locator-pagination {
		padding: 20px 16px 8px;
		border-top: none;
		background: #eef3f8;
	}

	.ulive-store-locator-pagination__status {
		min-width: 56px;
		text-align: center;
		font-size: 16px;
		font-weight: 600;
		color: #2a2a2a;
	}

	.ulive-store-locator-pagination__arrow {
		color: #9aa8b8;
		background: transparent;
		border: none;
		font-size: 22px;
		min-width: 32px;
	}

	.ulive-store-locator-pagination__arrow:disabled {
		opacity: 0.35;
	}
}

/* 移動端店鋪卡片 */
.ulive-store-locator-card {
	padding: 18px 16px 16px;
	background: #fff;
	border-bottom: 1px solid #e4e8ed;
}

.ulive-store-locator-card__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
}

.ulive-store-locator-card__brand {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 22px;
	padding: 2px 8px;
	border-radius: 3px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.2;
}

.ulive-store-locator-card__brand--pns {
	background: linear-gradient(135deg, #e31837 0%, #003da5 100%);
	color: #fff;
}

.ulive-store-locator-card__brand--fusion {
	background: #7cb342;
	color: #fff;
}

.ulive-store-locator-facilities {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-left: auto;
	flex-shrink: 0;
	color: #3fa7f3;
	font-size: 22px;
	line-height: 1;
}

.ulive-store-locator-facilities__item {
	display: inline-flex;
	align-items: center;
}

.ulive-store-locator-facilities .icon:before {
	color: #3fa7f3;
}

.ulive-store-locator-list .pns-delivery-pickup-store .ulive-store-locator-facilities {
	position: absolute;
	top: 12px;
	right: 12px;
	margin-left: 0;
	z-index: 1;
}

.ulive-store-locator-list .pns-delivery-pickup-store:has(.ulive-store-locator-facilities) .pns-delivery-pickup-store-body {
	padding-right: 72px;
}

.ulive-store-locator-card__name {
	margin: 0 0 8px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.35;
	color: #5268b8;
}

.ulive-store-locator-card__address {
	margin: 0 0 10px;
	font-size: 14px;
	line-height: 1.55;
	color: #3e3e3e;
}

.ulive-store-locator-card__hours {
	margin: 0 0 10px;
	padding-left: 22px;
	font-size: 14px;
	color: #6b7a8c;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236B7A8C' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E") left center no-repeat;
}

.ulive-store-locator-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.ulive-store-locator-card__phone {
	padding-left: 22px;
	font-size: 14px;
	color: #6b7a8c;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236B7A8C' stroke-width='2'%3E%3Cpath d='M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z'/%3E%3C/svg%3E") left center no-repeat;
}

.ulive-store-locator-card__map-link,
.ulive-store-locator-card__map-link:link,
.ulive-store-locator-card__map-link:visited,
.ulive-store-locator-card__map-link:hover,
.ulive-store-locator-card__map-link:active,
.ulive-store-locator-card__map-link:focus {
	flex-shrink: 0;
	font-size: 14px;
	color: #3fa7f3 !important;
	text-decoration: none;
	white-space: nowrap;
}

.ulive-store-locator-card__map-link:hover {
	color: #2b97e3 !important;
}

/* 篩選彈層 */
.ulive-store-locator-filter[hidden] {
	display: none !important;
}

.ulive-store-locator-filter.is-open {
	display: block;
}

.ulive-store-locator-filter {
	position: fixed;
	inset: 0;
	z-index: 12000;
}

.ulive-store-locator-filter__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}

.ulive-store-locator-filter__dialog {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	max-height: 88vh;
	background: #fff;
	border-radius: 16px 16px 0 0;
	box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.16);
}

.ulive-store-locator-filter__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 20px 12px;
	border-bottom: 1px solid #eee;
}

.ulive-store-locator-filter__title {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	color: #2d3a4a;
}

.ulive-store-locator-filter__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: none;
	background: none;
	cursor: pointer;
}

.ulive-store-locator-filter__close .icon {
	font-size: 18px;
	color: #6b7a8c;
}

.ulive-store-locator-filter__body {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 8px 20px 16px;
	-webkit-overflow-scrolling: touch;
}

.ulive-store-locator-filter__section + .ulive-store-locator-filter__section {
	margin-top: 8px;
	padding-top: 8px;
	border-top: 1px dashed #e4e8ed;
}

.ulive-store-locator-filter__section-title {
	margin: 0 0 12px;
	font-size: 16px;
	font-weight: 700;
	color: #2d3a4a;
}

.ulive-store-locator-filter__options {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 16px;
}

.ulive-store-locator-filter__option {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	cursor: pointer;
}

.ulive-store-locator-filter__checkbox {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin-top: 2px;
	accent-color: #3fa7f3;
}

.ulive-store-locator-filter__option-label {
	flex: 1 1 auto;
	font-size: 14px;
	line-height: 1.4;
	color: #2d3a4a;
}

.ulive-store-locator-filter__count {
	flex-shrink: 0;
	min-width: 28px;
	padding: 2px 8px;
	border-radius: 999px;
	background: #e8f4fd;
	font-size: 12px;
	font-weight: 600;
	color: #3fa7f3;
	text-align: center;
}

.ulive-store-locator-filter__foot {
	display: flex;
	gap: 12px;
	padding: 14px 20px 20px;
	background: #f5f7fa;
	border-top: 1px solid #eee;
}

.ulive-store-locator-filter__reset,
.ulive-store-locator-filter__apply {
	flex: 1 1 0;
	height: 48px;
	border-radius: 999px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	border: none;
}

.ulive-store-locator-filter__reset {
	background: #e4e8ed;
	color: #3e3e3e;
}

.ulive-store-locator-filter__apply {
	background: #3fa7f3;
	color: #fff;
}

.ulive-store-locator-filter__apply-desktop {
	display: none;
}

body.ulive-store-locator-filter-open {
	overflow: hidden;
}

@media (min-width: 901px) {
	.ulive-store-locator-filter__dialog {
		top: 50%;
		left: 50%;
		right: auto;
		bottom: auto;
		transform: translate(-50%, -50%);
		width: min(720px, calc(100vw - 48px));
		max-height: min(640px, calc(100vh - 80px));
		border-radius: 12px;
	}

	.ulive-store-locator-filter__apply-mobile {
		display: none;
	}

	.ulive-store-locator-filter__apply-desktop {
		display: inline;
	}
}

.ulive-store-locator-map--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	text-align: center;
	font-size: 14px;
	color: #666;
}

/* Google Maps info window：僅由 GM 內層滾動，避免雙滾動條 */
body.page-store-locator .gm-style-iw-c {
	overflow: hidden !important;
}

body.page-store-locator .gm-style-iw-d {
	overflow-y: auto !important;
	overflow-x: hidden !important;
	max-height: 240px !important;
	scrollbar-width: auto;
	scrollbar-color: #6b7a8c #dce3ea;
}

body.page-store-locator .gm-style-iw-d::-webkit-scrollbar {
	width: 12px;
}

body.page-store-locator .gm-style-iw-d::-webkit-scrollbar-track {
	background: #dce3ea;
}

body.page-store-locator .gm-style-iw-d::-webkit-scrollbar-thumb {
	background: #6b7a8c;
	border: 3px solid #dce3ea;
	border-radius: 6px;
}

body.page-store-locator .gm-style-iw-d::-webkit-scrollbar-thumb:hover {
	background: #5268b8;
}

body.page-store-locator .leaflet-popup-content {
	max-height: 240px;
	overflow-y: auto;
	scrollbar-width: auto;
	scrollbar-color: #6b7a8c #dce3ea;
}

body.page-store-locator .leaflet-popup-content::-webkit-scrollbar {
	width: 12px;
}

body.page-store-locator .leaflet-popup-content::-webkit-scrollbar-track {
	background: #dce3ea;
}

body.page-store-locator .leaflet-popup-content::-webkit-scrollbar-thumb {
	background: #6b7a8c;
	border: 3px solid #dce3ea;
	border-radius: 6px;
}

.ulive-store-info-window {
	font-family: var(--font-primary);
	font-size: 14px;
	line-height: 1.5;
	max-width: 260px;
}

.ulive-store-info-window strong {
	display: block;
	margin-bottom: 6px;
	font-size: 15px;
	color: #5268b8;
}

.ulive-store-info-window p {
	margin: 0 0 4px;
	color: #444;
}

@media (max-width: 600px) {
	.ulive-store-locator-filter__options {
		grid-template-columns: 1fr;
	}
}
