.hmkbl-locator{
	--blue:#064b82;
	--blue2:#0b6d9e;
	--text:#2c3640;
	--muted:#71808c;
	--line:#e4e9ed;
	width:100%;
	color:var(--text);
	font-family:"Noto Sans TC","Microsoft JhengHei",sans-serif;
	box-sizing:border-box;
}
.hmkbl-locator *{box-sizing:border-box}

/* ===== 上方篩選區：桌機集中、減少空白 ===== */
.hmkbl-toolbar{
	padding:18px 20px 22px;
	text-align:center;
	background:#fff;
}
.hmkbl-type-switch{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:14px;
	flex-wrap:wrap;
	margin-bottom:12px;
}
.hmkbl-toolbar-label{
	font-size:14px;
	color:#4e5963;
}
.hmkbl-type-switch label{
	display:inline-flex;
	align-items:center;
	gap:6px;
	cursor:pointer;
	font-size:14px;
	white-space:nowrap;
}
.hmkbl-type-switch input{
	accent-color:var(--blue2);
	width:16px;
	height:16px;
}

/* Elementor / theme 常會強制 select width:100%，這裡直接覆蓋 */
.hmkbl-filter-row{
	display:flex!important;
	align-items:center;
	justify-content:center;
	gap:10px;
	flex-wrap:nowrap;
	width:100%;
	max-width:720px;
	margin:0 auto;
}
.hmkbl-filter-row select{
	flex:0 0 220px!important;
	width:220px!important;
	max-width:220px!important;
	min-width:0!important;
	height:42px!important;
	margin:0!important;
	padding:0 36px 0 13px!important;
	border:1px solid #cfd7dd!important;
	border-radius:5px!important;
	background-color:#fff!important;
	color:#313942!important;
	font-size:14px!important;
	line-height:40px!important;
}
.hmkbl-location-btn{
	flex:0 0 auto;
	height:42px;
	margin:0!important;
	padding:0 20px;
	border:0;
	border-radius:22px;
	background:var(--blue2);
	color:#fff;
	font-size:14px;
	font-weight:600;
	white-space:nowrap;
	cursor:pointer;
	transition:.2s;
}
.hmkbl-location-btn:hover{background:var(--blue)}
.hmkbl-location-btn:disabled{opacity:.65;cursor:wait}

/* ===== 主體 ===== */
.hmkbl-main{
	display:grid;
	grid-template-columns:320px minmax(0,1fr);
	min-height:var(--hmkbl-map-height);
	border-top:1px solid var(--line);
	background:#fff;
}
.hmkbl-list-panel{
	height:var(--hmkbl-map-height);
	overflow:hidden;
	border-right:1px solid var(--line);
	display:flex;
	flex-direction:column;
	background:#fff;
}
.hmkbl-result-summary{
	padding:12px 18px;
	font-size:12px;
	color:var(--muted);
	border-bottom:1px solid var(--line);
	background:#f8fafb;
}
.hmkbl-list{
	overflow:auto;
	flex:1;
	scrollbar-width:thin;
}
.hmkbl-card{
	padding:18px;
	border-bottom:1px solid var(--line);
	cursor:pointer;
	background:#fff;
	transition:.18s;
}
.hmkbl-card:hover{background:#f7fbfd}
.hmkbl-card-name{
	font-weight:700;
	font-size:16px;
	line-height:1.45;
	margin-bottom:7px;
}
.hmkbl-meta{
	font-size:13px;
	line-height:1.75;
	color:#65727d;
}
.hmkbl-meta a{color:inherit;text-decoration:none}
.hmkbl-distance{
	margin-top:7px;
	font-size:12px;
	font-weight:700;
	color:var(--blue2);
}
.hmkbl-actions{
	display:flex;
	align-items:center;
	gap:10px;
	margin-top:12px;
}
.hmkbl-action{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:30px;
	height:30px;
	border-radius:50%;
	background:#eef7fb;
	color:var(--blue2)!important;
	text-decoration:none!important;
	font-size:15px;
}
.hmkbl-focus{
	margin-left:auto;
	border:0;
	background:transparent;
	color:var(--blue2);
	font-size:12px;
	cursor:pointer;
}
.hmkbl-empty{
	padding:30px 20px;
	color:var(--muted);
	font-size:14px;
}

/* ===== Google Map ===== */
.hmkbl-map-wrap{
	position:relative;
	min-width:0;
	height:var(--hmkbl-map-height);
	background:#eef3f5;
	overflow:hidden;
}
.hmkbl-map{
	width:100%;
	height:100%;
	min-height:360px;
}
.hmkbl-map-message{
	position:absolute;
	inset:0;
	z-index:5;
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
	padding:30px;
	color:#52616c;
	background:#f3f6f7;
	font-size:14px;
	line-height:1.8;
}
.hmkbl-map-message[hidden]{
	display:none!important;
}
.hmkbl-map-message.is-error{
	color:#8a2424;
	background:#fff4f4;
	border-left:4px solid #d63638;
}
.hmkbl-map-message strong{
	display:block;
	font-size:16px;
	margin-bottom:6px;
	color:inherit;
}
.hmkbl-info{
	font-size:13px;
	line-height:1.7;
	min-width:210px;
}
.hmkbl-info strong{font-size:15px}
.hmkbl-info a{color:var(--blue2)}

@media(max-width:900px){
	.hmkbl-filter-row{
		max-width:650px;
		flex-wrap:wrap;
	}
	.hmkbl-filter-row select{
		flex:1 1 200px!important;
		width:auto!important;
		max-width:260px!important;
	}
	.hmkbl-main{grid-template-columns:1fr}
	.hmkbl-map-wrap{order:1;height:430px}
	.hmkbl-list-panel{
		order:2;
		height:auto;
		border-right:0;
		border-top:1px solid var(--line);
	}
	.hmkbl-list{overflow:visible}
}

@media(max-width:600px){
	.hmkbl-toolbar{padding:18px 14px 20px}
	.hmkbl-toolbar-label{width:100%}
	.hmkbl-filter-row{
		display:grid!important;
		grid-template-columns:1fr 1fr;
		gap:9px;
		max-width:none;
	}
	.hmkbl-filter-row select{
		width:100%!important;
		max-width:none!important;
		min-width:0!important;
	}
	.hmkbl-location-btn{
		grid-column:1/-1;
		width:100%;
	}
	.hmkbl-map-wrap{height:360px}
	.hmkbl-card{padding:16px}
}


/* =========================================================
 * V1.0.3：左側 Google Maps 按鈕改為使用者提供的紅色地標
 * ========================================================= */
.hmkbl-action.hmkbl-nav-pin-link{
	width:30px;
	height:30px;
	padding:3px 5px;
	border-radius:50%;
	background:#fff4f4;
	border:1px solid #f2d1d1;
	overflow:visible;
}
.hmkbl-action.hmkbl-nav-pin-link:hover{
	background:#ffe9e9;
	border-color:#e60012;
}
.hmkbl-nav-pin{
	display:block;
	width:16px;
	height:23px;
	object-fit:contain;
}

/* =========================================================
 * V1.0.3：目前位置狀態
 * ========================================================= */
.hmkbl-location-btn.is-active{
	background:#0a5f94;
	box-shadow:0 0 0 3px rgba(22,137,212,.12);
}
.hmkbl-current-location-dot{
	display:inline-block;
	margin-right:6px;
	color:#fff;
	font-size:13px;
	line-height:1;
}
.hmkbl-my-location-info strong{
	color:#1689d4;
}


/* =========================================================
 * V1.0.4：電話 / 地標按鈕統一尺寸
 * ========================================================= */
.hmkbl-actions .hmkbl-action{
	width:34px !important;
	height:34px !important;
	min-width:34px;
	flex:0 0 34px;
	padding:0 !important;
	border-radius:50%;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	line-height:1;
}

.hmkbl-call-link{
	background:#eef7fb !important;
	border:1px solid #dbeef7 !important;
	color:#0874a8 !important;
}

.hmkbl-call-link:hover{
	background:#e1f3fb !important;
	border-color:#8ccbe5 !important;
}

.hmkbl-phone-icon{
	display:block;
	width:19px;
	height:19px;
	fill:currentColor;
}

.hmkbl-action.hmkbl-nav-pin-link{
	width:34px !important;
	height:34px !important;
	padding:4px 6px !important;
	background:#fff4f4;
	border:1px solid #f2d1d1;
}

.hmkbl-nav-pin{
	display:block;
	width:19px;
	height:25px;
	object-fit:contain;
}
