/**
 * Store Locator Styles - Matching Screenshot Design
 */

/* Main Container */
.store-locator-container {
	display: flex;
	flex-direction: column;
	margin: 20px 0;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
}

/* Top Category Tabs */
.store-locator-tabs {
	display: flex;
	gap: 15px;
	margin-bottom: 25px;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}

.store-locator-tabs .store-tab {
	padding: 10px 28px;
	background: #FFFFFF;
	border: 2px solid #D8222B;
	border-radius: 50px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.3s ease;
	white-space: nowrap;
	color: #D8222B;
	outline: none;
}

.store-locator-tabs .store-tab:hover {
	background: #D8222B;
	color: #FFFFFF;
}

.store-locator-tabs .store-tab.active {
	background: #D8222B;
	color: #FFFFFF;
}

/* Search and Nearest Controls */
.store-locator-controls {
	display: flex;
	gap: 15px;
	margin-bottom: 20px;
	align-items: center;
	flex-wrap: wrap;
}

.store-locator-controls:empty {
	display: none;
	margin-bottom: 0;
}

.store-locator-search-wrapper {
	flex: 1;
	min-width: 300px;
}

.store-locator-search-wrapper:only-child {
	max-width: 600px;
}

/* Content Area */
.store-locator-content {
	display: flex;
	gap: 20px;
	min-height: 700px;
}

/* Sidebar */
.store-locator-sidebar {
	flex: 0 0 380px;
	display: flex;
	flex-direction: column;
	background: #fff;
	overflow: hidden;
}

/* Find Nearest Button */
.find-nearest-btn {
	padding: 10px 28px;
	background: #FFFFFF;
	color: #D8222B;
	border: 2px solid #D8222B;
	border-radius: 50px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	transition: all 0.3s ease;
	white-space: nowrap;
	outline: none;
}

.find-nearest-btn:hover {
	background: #D8222B;
	color: #FFFFFF;
}

.find-nearest-btn svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

.find-nearest-btn.loading {
	opacity: 0.7;
	cursor: wait;
}

.find-nearest-btn.loading::after {
	content: '';
	display: inline-block;
	width: 16px;
	height: 16px;
	margin-left: 8px;
	border: 2px solid rgba(216, 34, 43, 0.3);
	border-top-color: #D8222B;
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
}

@keyframes spin {
	to {
		transform: rotate(360deg);
	}
}

/* Search Box */
.store-locator-search {
	position: relative;
	width: 100%;
}

.store-search-input {
	width: 100%;
	padding: 12px 45px 12px 40px;
	border: 2px solid #e0e0e0;
	border-radius: 50px;
	font-size: 15px;
	transition: all 0.3s ease;
	box-sizing: border-box;
	background: #FFFFFF;
	outline: none;
}

.store-search-input:focus {
	outline: none;
	border-color: #D8222B;
	box-shadow: 0 0 0 3px rgba(216, 34, 43, 0.1);
}

.store-locator-search .search-icon {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
}

.store-locator-search .search-icon svg {
	width: 18px;
	height: 18px;
	fill: #6c757d;
}

.store-locator-search .clear-search {
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 4px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s ease;
}

.store-locator-search .clear-search:hover {
	background: #e9ecef;
}

.store-locator-search .clear-search svg {
	width: 18px;
	height: 18px;
	fill: #6c757d;
}

/* List Wrapper */
.store-locator-list-wrapper {
	flex: 1;
	overflow-y: auto;
	background: #fff;
}

.search-results-count {
	padding: 12px 20px;
	font-size: 14px;
	color: #6c757d;
	font-weight: 500;
	background: #fff;
	border-bottom: 1px solid #e9ecef;
}

.no-results-message {
	text-align: center;
	padding: 60px 20px;
	color: #6c757d;
	background: #fff;
}

.no-results-message svg {
	width: 64px;
	height: 64px;
	fill: #dee2e6;
	margin-bottom: 15px;
}

.no-results-message p {
	margin: 0;
	font-size: 16px;
	color: #6c757d;
}

/* Store List */
.store-locator-list {
	list-style: none;
	margin: 0;
	padding: 15px;
}

/* Store Card - Blue Left Border Like Screenshot */
.store-location-item {
	padding: 0;
	margin-bottom: 15px;
	background: #fff;
	border: 1px solid #e0e0e0;
	border-left: 5px solid #4A90E2;
	border-radius: 8px;
	cursor: pointer;
	transition: all 0.3s ease;
	display: block;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	overflow: hidden;
}

.store-location-item.hidden {
	display: none;
}

.store-location-item:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
	transform: translateY(-2px);
}

.store-location-item.active {
	box-shadow: 0 4px 12px rgba(74, 144, 226, 0.25);
	transform: translateY(-2px);
	border-left-color: #4A90E2;
}

/* Card Header */
.store-card-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	padding: 16px 18px 8px;
	gap: 12px;
}

.store-card-title-section {
	flex: 1;
	min-width: 0;
}

.store-location-item h4 {
	margin: 0 0 8px 0;
	font-size: 18px;
	color: #2c3e50;
	font-weight: 700;
	line-height: 1.3;
}

.store-location-item h4 svg {
	display: none;
}

/* Card Badges - Horizontal Layout Like Screenshot */
.store-card-badges {
	display: flex;
	flex-direction: row;
	gap: 6px;
	align-items: flex-start;
	flex-shrink: 0;
	flex-wrap: wrap;
}

.location-distance {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	background: #fff;
	color: #E74C3C;
	border: 2px solid #E74C3C;
	border-radius: 20px;
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}

.store-location-item.nearest .location-distance {
	background: #E74C3C;
	color: #fff;
}

.nearest-badge {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	background: #FFC107;
	color: #000;
	border-radius: 20px;
	font-size: 12px;
	font-weight: 700;
}

.availability-badge {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	background: #E74C3C;
	color: #fff;
	border-radius: 20px;
	font-size: 12px;
	font-weight: 700;
}

/* Card Body */
.store-card-body {
	padding: 0 18px 16px;
}

.location-address {
	margin: 0 0 10px 0;
	color: #5a6c7d;
	font-size: 14px;
	line-height: 1.5;
}

.location-phone {
	margin: 0;
	font-size: 15px;
	display: flex;
	align-items: center;
	gap: 8px;
}

.location-phone svg {
	width: 16px;
	height: 16px;
	fill: #4A90E2;
	flex-shrink: 0;
}

.location-phone a {
	color: #4A90E2;
	text-decoration: none;
	font-weight: 600;
}

.location-phone a:hover {
	text-decoration: underline;
	color: #357ABD;
}

.location-categories {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 10px;
}

.location-category-badge {
	display: inline-block;
	padding: 4px 10px;
	background: #e9ecef;
	color: #495057;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 600;
}

/* Map Container */
.store-locator-map-container {
	flex: 1;
	position: relative;
	min-height: 700px;
	overflow: hidden;
}

#store-locator-map {
	width: 100%;
	height: 100%;
	min-height: 700px;
}

.map-open-link {
	position: absolute;
	top: 15px;
	right: 15px;
	z-index: 1000;
	background: #fff;
	padding: 8px 16px;
	border-radius: 50px;
	border: 2px solid #4A90E2;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
	display: flex;
	align-items: center;
	gap: 6px;
	text-decoration: none;
	color: #4A90E2;
	font-size: 14px;
	font-weight: 600;
	transition: all 0.3s ease;
}

.map-open-link:hover {
	background: #4A90E2;
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(74, 144, 226, 0.3);
}

.map-open-link svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
}

/* Responsive Design */
@media (max-width: 992px) {
	.store-locator-content {
		flex-direction: column;
	}

	.store-locator-sidebar {
		flex: 1;
		max-height: 500px;
	}

	.store-locator-map-container {
		min-height: 500px;
	}

	#store-locator-map {
		min-height: 500px;
	}
	
	.store-locator-controls {
		flex-direction: column;
		align-items: stretch;
	}
	
	.store-locator-search-wrapper {
		width: 100%;
		min-width: 100%;
		max-width: 100%;
	}
	
	.find-nearest-btn {
		width: 100%;
	}
}

@media (max-width: 768px) {
	.store-locator-tabs {
		gap: 10px;
		justify-content: flex-start;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	
	.store-locator-tabs::-webkit-scrollbar {
		display: none;
	}

	.store-locator-tabs .store-tab {
		padding: 8px 20px;
		font-size: 14px;
		flex-shrink: 0;
	}

	.store-locator-sidebar {
		max-height: 400px;
	}

	.store-locator-map-container {
		min-height: 400px;
	}

	#store-locator-map {
		min-height: 400px;
	}

	.store-location-item h4 {
		font-size: 16px;
	}
	
	.store-card-badges {
		flex-direction: column;
		align-items: flex-end;
	}
}

/* Leaflet Popup Customization */
.leaflet-popup-content-wrapper {
	border-radius: 12px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
	padding: 0;
}

.leaflet-popup-content {
	margin: 14px;
	min-width: 240px;
}

.store-locator-popup .popup-title {
	margin: 0 0 8px 0;
	color: #212529;
	font-size: 16px;
	font-weight: 700;
	border-bottom: 2px solid #4A90E2;
	padding-bottom: 8px;
}

.store-locator-popup .popup-badges {
	display: flex;
	gap: 6px;
	margin-bottom: 8px;
	flex-wrap: wrap;
}

.store-locator-popup .popup-badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 20px;
	font-size: 11px;
	font-weight: 700;
	white-space: nowrap;
}

.store-locator-popup .popup-badge-coming-soon {
	background: #28a745;
	color: #fff;
}

.store-locator-popup .popup-badge-247 {
	background: #D8222B;
	color: #fff;
}

.store-locator-popup .popup-address,
.store-locator-popup .popup-phone,
.store-locator-popup .popup-directions {
	margin: 6px 0;
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 13px;
	color: #6c757d;
	line-height: 1.5;
}

.store-locator-popup svg {
	width: 16px;
	height: 16px;
	fill: #4A90E2;
	flex-shrink: 0;
	margin-top: 2px;
}

.store-locator-popup .popup-phone a,
.store-locator-popup .popup-directions a {
	color: #4A90E2;
	text-decoration: none;
	font-weight: 600;
}

.store-locator-popup .popup-phone a:hover,
.store-locator-popup .popup-directions a:hover {
	text-decoration: underline;
	color: #357ABD;
}

.store-locator-popup .popup-content {
	margin-top: 8px;
	padding-top: 8px;
	border-top: 1px solid #e9ecef;
	font-size: 12px;
	color: #6c757d;
	line-height: 1.5;
}

.store-locator-popup .popup-directions {
	margin-top: 8px;
	padding-top: 8px;
	border-top: 1px solid #e9ecef;
}

/* Scrollbar Styling */
.store-locator-list-wrapper::-webkit-scrollbar {
	width: 6px;
}

.store-locator-list-wrapper::-webkit-scrollbar-track {
	background: #f8f9fa;
}

.store-locator-list-wrapper::-webkit-scrollbar-thumb {
	background: #ced4da;
	border-radius: 3px;
}

.store-locator-list-wrapper::-webkit-scrollbar-thumb:hover {
	background: #adb5bd;
}

.store-locator-list-wrapper {
	scrollbar-width: thin;
	scrollbar-color: #ced4da #f8f9fa;
}


/* ========================================
   LOCATION GRID LAYOUT
   ======================================== */

.location-grid-container {
	margin: 30px 0;
}

/* Filter Tabs */
.location-filter-tabs {
	display: flex;
	gap: 12px;
	margin-bottom: 30px;
	flex-wrap: wrap;
	justify-content: center;
}

.location-filter-tab {
	padding: 12px 28px;
	background: #fff;
	border: 2px solid #b91c2e;
	border-radius: 30px;
	font-size: 0.95em;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.3s ease;
	color: #b91c2e;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
}

.location-filter-tab:hover {
	background: #fff5f5;
	transform: translateY(-1px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
}

.location-filter-tab.active {
	background: #b91c2e;
	color: #fff;
	box-shadow: 0 4px 8px rgba(185, 28, 46, 0.3);
}

/* Grid Layout */
.location-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 24px;
	margin-bottom: 30px;
}

/* Grid Card */
.location-grid-card {
	background: #f1f9ff;
	border: 3px solid #D8222B;
	border-radius: 12px;
	overflow: hidden;
	transition: all 0.3s ease;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.21);
	display: flex;
	flex-direction: column;
}

.location-grid-card.hidden {
	display: none;
}

.location-grid-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

/* Card Header */
.location-grid-card-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	padding: 16px 20px 8px;
	gap: 10px;
	flex-wrap: wrap;
}

.location-grid-badges-left {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.location-grid-badges-right {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.location-category-badge-header {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 10px;
	background: transparent;
	color: #84171C;
	border: 2px solid #84171C;
	border-radius: 100px;
	font-size: 0.6875em;
	font-weight: 500;
	text-transform: capitalize;
}

.location-category-badge-header.location-category-badge-filled {
	background: linear-gradient(90deg, #84171C 0%, #D8222B 100%);
	color: #fff;
	border-color: transparent;
}

.location-category-badge-header svg {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
}

.location-coming-soon-badge {
	display: inline-flex;
	align-items: center;
	padding: 7px 10px 6px;
	background: #34C67F;
	color: #fff;
	border-radius: 100px;
	font-size: 0.75em;
	font-weight: 500;
}

/* Card Body */
.location-grid-card-body {
	padding: 0 20px 12px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.location-grid-title {
	margin: 0 0 8px 0;
	font-size: 1.25em;
	color: #1a3a52;
	font-weight: 700;
	line-height: 1.3;
}

.location-grid-address {
	margin: 0 0 8px 0;
	color: #414141;
	font-size: 0.875em;
	line-height: 1.6;
	font-weight: 500;
}

/* Distance display in grid */
.location-grid-distance {
	margin: 0 0 8px 0;
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.875em;
}

.location-grid-distance .distance-value {
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	background: #D8222B;
	color: #fff;
	border-radius: 20px;
	font-size: 0.9em;
	font-weight: 700;
}

.location-grid-distance .time-value {
	color: #6c757d;
	font-weight: 500;
	font-size: 0.95em;
}

.location-grid-phone {
	margin: 0 0 8px 0;
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.9375em;
}

.location-grid-phone svg {
	width: 14px;
	height: 14px;
	fill: #3485C6;
	flex-shrink: 0;
}

.location-grid-phone a {
	color: #3485C6;
	text-decoration: none;
	font-weight: 600;
}

.location-grid-phone a:hover {
	color: #2a6ba3;
	text-decoration: underline;
}

/* Card Footer */
.location-grid-card-footer {
	display: flex;
	gap: 8px;
	padding: 0 20px 16px;
	margin-top: auto;
}

.location-view-details-btn {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 80px;
	background: #18437D;
	color: #fff;
	border: none;
	border-radius: 7px;
	font-size: 0.75em;
	font-weight: 500;
	text-decoration: none;
	transition: all 0.3s ease;
	line-height: 1.2;
}

.location-view-details-btn:hover {
	background: #0f2e5a;
	color: #ffffff !important;
}

.location-view-details-btn svg {
	width: 12px;
	height: 12px;
	fill: currentColor;
	order: 2;
}

.location-directions-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 6px 13px 1px 10px;
	background: linear-gradient(180deg, #18437D 0%, #235FB1 100%);
	color: #fff;
	border: none;
	border-radius: 6px;
	text-decoration: none;
	transition: all 0.3s ease;
}

.location-directions-btn:hover {
	background: linear-gradient(180deg, #0f2e5a 0%, #1a4a8a 100%);
	color: #ffffff !important;
}

.location-directions-btn svg {
	width: 24px;
	height: 24px;
	fill: currentColor;
}

/* No Results */
.location-grid-no-results {
	text-align: center;
	padding: 60px 20px;
	color: #6c757d;
}

.location-grid-no-results svg {
	width: 64px;
	height: 64px;
	fill: #dee2e6;
	margin-bottom: 15px;
}

.location-grid-no-results p {
	margin: 0;
	font-size: 1.1em;
	color: #6c757d;
}

/* Responsive for Location Grid */
@media (max-width: 992px) {
	.location-grid {
		grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
		gap: 20px;
	}
}

@media (max-width: 768px) {
	.location-filter-tabs {
		overflow-x: auto;
		flex-wrap: nowrap;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding-bottom: 5px;
	}
	
	.location-filter-tabs::-webkit-scrollbar {
		display: none;
	}
	
	.location-filter-tab {
		flex-shrink: 0;
		padding: 10px 22px;
		font-size: 0.9em;
	}
	
	.location-grid {
		grid-template-columns: 1fr;
		gap: 16px;
		margin-bottom: 20px;
	}
	
	.location-grid-card {
		-webkit-tap-highlight-color: rgba(185, 28, 46, 0.1);
	}
}

@media (max-width: 480px) {
	.location-grid-card-header {
		flex-direction: column;
		align-items: flex-start;
	}
	
	.location-grid-badges-right {
		width: 100%;
		justify-content: flex-start;
	}
	
	.location-grid-card-footer {
		flex-direction: column;
	}
	
	.location-view-details-btn {
		padding: 10px 20px;
		width: 100%;
	}
	
	.location-directions-btn {
		width: 100%;
		justify-content: center;
	}
}

/* ========================================
   LOCATION LISTING LAYOUT (List + Map)
   ======================================== */

.location-listing-container {
	margin: 30px 0;
}

.location-listing-content {
	display: flex;
	gap: 20px;
	min-height: 700px;
	margin-top: 30px;
}

/* Sidebar */
.location-listing-sidebar {
	flex: 0 0 400px;
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	overflow: hidden;
}

.location-listing-list {
	flex: 1;
	overflow-y: auto;
	padding: 15px;
}

/* Listing Card */
.location-listing-card {
	padding: 0;
	margin-bottom: 12px;
	background: #fff;
	border: 1px solid #e0e0e0;
	border-left: 4px solid #1a3a52;
	border-radius: 6px;
	cursor: pointer;
	transition: all 0.3s ease;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.location-listing-card.hidden {
	display: none;
}

.location-listing-card:hover,
.location-listing-card.active {
	border-left-color: #b91c2e;
	box-shadow: 0 4px 12px rgba(185, 28, 46, 0.15);
	transform: translateX(2px);
}

.location-listing-card.nearest {
	border-left-color: #28a745;
	background: #f8fff9;
}

/* Listing Card Header */
.location-listing-card-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	padding: 14px 16px 10px;
	gap: 12px;
}

.location-listing-title-section {
	flex: 1;
	min-width: 0;
}

.location-listing-card h4 {
	margin: 0 0 6px 0;
	font-size: 1.05em;
	color: #212529;
	font-weight: 700;
	display: flex;
	align-items: center;
	gap: 6px;
	line-height: 1.3;
}

.location-listing-card h4 svg {
	width: 16px;
	height: 16px;
	fill: #1a3a52;
	flex-shrink: 0;
}

.location-listing-address {
	margin: 0;
	color: #6c757d;
	font-size: 0.85em;
	line-height: 1.4;
}

.location-listing-badges {
	display: flex;
	flex-direction: column;
	gap: 5px;
	align-items: flex-end;
	flex-shrink: 0;
}

.coming-soon-badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 9px;
	background: #28a745;
	color: #fff;
	border-radius: 12px;
	font-size: 0.7em;
	font-weight: 700;
}

/* Listing Card Body */
.location-listing-card-body {
	padding: 0 16px 14px;
}

/* Map Container */
.location-listing-map-container {
	flex: 1;
	position: relative;
	min-height: 700px;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

#location-listing-map {
	width: 100%;
	height: 100%;
	min-height: 700px;
}

/* No Results */
.location-listing-no-results {
	text-align: center;
	padding: 60px 20px;
	color: #6c757d;
}

.location-listing-no-results svg {
	width: 64px;
	height: 64px;
	fill: #dee2e6;
	margin-bottom: 15px;
}

.location-listing-no-results p {
	margin: 0;
	font-size: 1.05em;
	color: #6c757d;
}

/* Responsive for Location Listing */
@media (max-width: 992px) {
	.location-listing-content {
		flex-direction: column;
		min-height: auto;
		position: relative;
		gap: 15px;
	}
	
	.location-listing-sidebar {
		flex: none;
		width: 100%;
		max-height: 50vh;
		min-height: 300px;
		position: relative;
		z-index: 2;
		margin-bottom: 0;
	}
	
	.location-listing-map-container {
		min-height: 50vh;
		order: 2;
		position: relative;
		z-index: 1;
		margin-top: 0;
	}
	
	#location-listing-map {
		min-height: 50vh;
	}
	
	/* Make cards easily tappable */
	.location-listing-card {
		-webkit-tap-highlight-color: rgba(185, 28, 46, 0.1);
	}
	
	/* Smooth scroll to map */
	.location-listing-map-container {
		scroll-margin-top: 20px;
	}
}

@media (max-width: 768px) {
	.location-filter-tabs {
		overflow-x: auto;
		flex-wrap: nowrap;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding-bottom: 5px;
	}
	
	.location-filter-tabs::-webkit-scrollbar {
		display: none;
	}
	
	.location-filter-tab {
		flex-shrink: 0;
		padding: 10px 22px;
		font-size: 0.9em;
	}
	
	.location-listing-sidebar {
		max-height: 45vh;
		min-height: 280px;
	}
	
	.location-listing-map-container {
		min-height: 55vh;
		margin-top: 0;
	}
	
	#location-listing-map {
		min-height: 55vh;
	}
}


/* ============================================================
   [store_locator] SHORTCODE — PIXEL-PERFECT ELEMENTOR MATCH
   All rules namespaced to .sl-wrap so they cannot bleed into
   [location_listing] or [location_listing layout="grid"]
   ============================================================ */

/* Wrapper */
.sl-wrap {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	margin: 0;
	padding: 0;
	color: #2c3e50;
}
.sl-wrap *,
.sl-wrap *::before,
.sl-wrap *::after {
	box-sizing: border-box;
}

/* ---- ROW 1: Category Filter Tabs ---- */
.sl-tabs-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	align-items: center;
	margin-bottom: 22px;
}
.sl-tab {
	padding: 11px 28px !important;
	background: #ffffff !important;
	border: 2px solid #D8222B !important;
	border-radius: 50px !important;
	font-size: 15px;
	font-weight: 600;
	color: #D8222B !important;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.25s ease, color 0.25s ease;
	outline: none;
	line-height: 1.4;
	letter-spacing: 0.01em;
	box-shadow: none;
}
.sl-tab:hover,
.sl-tab--active {
	background: #D8222B !important;
	color: #ffffff !important;
	border-color: #D8222B !important;
}

/* ---- ROW 2: Search + Near Me ---- */
.sl-controls-row {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 18px;
	flex-wrap: wrap;
}
.sl-search-box {
	flex: 1;
	min-width: 260px;
	position: relative;
}
.sl-search-icon {
	position: absolute;
	left: 12px !important;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	display: flex;
	align-items: center;
	z-index: 1;
}
.sl-search-icon svg {
	width: 18px;
	height: 18px;
	fill: #9aa5b4;
}
.sl-search-input {
	width: 100%;
	padding: 12px 42px 12px 40px !important;
	border: 2px solid #dde3ec;
	border-radius: 50px;
	font-size: 14px;
	color: #2c3e50;
	background: #ffffff;
	outline: none;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
	height: 46px;
	box-sizing: border-box;
}
.sl-search-input::placeholder { 
	color: #9aa5b4;
	opacity: 1;
}
.sl-search-input:focus {
	border-color: #D8222B;
	box-shadow: 0 0 0 3px rgba(216,34,43,0.10);
}
.sl-clear-btn {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 6px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s ease;
	z-index: 2;
}
.sl-clear-btn:hover { background: #f0f0f0; }
.sl-clear-btn svg { width: 18px; height: 18px; fill: #9aa5b4; }

/* Near Me button */
.sl-near-me-btn {
	padding: 12px 24px;
	background: #ffffff;
	border: 2px solid #D8222B;
	border-radius: 50px;
	font-size: 15px;
	font-weight: 600;
	color: #D8222B;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	white-space: nowrap;
	transition: background 0.25s ease, color 0.25s ease;
	outline: none;
	flex-shrink: 0;
	height: 46px;
	box-sizing: border-box;
}
.sl-near-me-btn:hover { background: #D8222B; color: #ffffff; }
.sl-near-me-btn svg { width: 17px; height: 17px; fill: currentColor; flex-shrink: 0; }
.sl-near-me-btn.loading { opacity: 0.7; cursor: wait; }

/* ---- ROW 3: Content Area ---- */
.sl-content-row {
	display: flex;
	align-items: stretch;
	gap: 0;
	height: calc(100vh - 260px);
	min-height: 500px;
	max-height: 750px;
}

/* Sidebar */
.sl-sidebar {
	flex: 0 0 340px;
	width: 340px;
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border-radius: 10px 0 0 10px;
	box-shadow: 0 2px 12px rgba(0,0,0,0.08);
	overflow: hidden;
}
.sl-results-count {
	padding: 9px 16px;
	font-size: 13px;
	color: #6c757d;
	font-weight: 500;
	background: #f8f9fa;
	border-bottom: 1px solid #e9ecef;
	flex-shrink: 0;
}
.sl-list-scroll {
	flex: 1;
	overflow-y: auto;
	padding: 14px 12px;
	scrollbar-width: thin;
	scrollbar-color: #ced4da #f8f9fa;
}
.sl-list-scroll::-webkit-scrollbar { width: 5px; }
.sl-list-scroll::-webkit-scrollbar-track { background: #f8f9fa; }
.sl-list-scroll::-webkit-scrollbar-thumb { background: #ced4da; border-radius: 4px; }
.sl-list { list-style: none; margin: 0; padding: 0; }

/* Store Card */
.sl-card {
	background: #ffffff;
	border: 1px solid #e8edf3;
	border-left: 12px solid #18437D;
	border-radius: 8px;
	margin-bottom: 12px;
	cursor: pointer;
	transition: box-shadow 0.25s ease, transform 0.2s ease;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.21);
}
.sl-card:last-child { margin-bottom: 0; }
.sl-card.hidden { display: none !important; }
.sl-card:hover {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
	transform: translateY(-2px);
}
.sl-card.active {
	border-left-color: #D8222B;
	box-shadow: 0 4px 16px rgba(216, 34, 43, 0.25);
}

/* Card Header */
.sl-card__header {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 13px 14px 8px 14px;
}
.sl-card__icon-col { flex-shrink: 0; margin-top: 2px; }
.sl-card__pin-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	background: #EEF4FD;
	border-radius: 8px;
}
.sl-card__pin-icon svg { width: 22px; height: 22px; fill: #18437D; }
.sl-card__title-col { flex: 1; min-width: 0; }
.sl-card__title {
	margin: 0 0 3px 0;
	font-size: 15px;
	font-weight: 700;
	color: #1a2e44;
	line-height: 1.3;
}
.sl-card__address {
	margin: 0;
	font-size: 13px;
	color: #5a6c7d;
	line-height: 1.45;
}
.sl-card__badges {
	display: flex;
	flex-direction: column;
	gap: 5px;
	align-items: flex-end;
	flex-shrink: 0;
}

/* Badges */
.sl-badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 50px;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
	line-height: 1.4;
}
.sl-badge--distance {
	background: #D8222B;
	color: #ffffff;
	border: none;
}
.sl-card.nearest .sl-badge--distance {
	background: #D8222B;
	color: #ffffff;
}
.sl-badge--nearest {
	background: #FFC107;
	color: #1a1a1a;
	border: none;
}
.sl-badge--coming-soon {
	background: #28a745;
	color: #ffffff;
	border: none;
}
.sl-badge--247 {
	background: #D8222B;
	color: #ffffff;
	border: none;
}

/* Card Body */
.sl-card__body { padding: 0 14px 13px 14px; }
.sl-card__phone {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 7px;
	font-size: 14px;
}
.sl-card__phone-icon { display: flex; align-items: center; flex-shrink: 0; }
.sl-card__phone-icon svg { width: 15px; height: 15px; fill: #4A90E2; }
.sl-card__phone a { color: #4A90E2; font-weight: 600; text-decoration: none; }
.sl-card__phone a:hover { text-decoration: underline; color: #2a6ba3; }

/* No results */
.sl-no-results { text-align: center; padding: 50px 20px; color: #6c757d; }
.sl-no-results svg {
	width: 52px; height: 52px; fill: #dee2e6;
	margin: 0 auto 12px; display: block;
}
.sl-no-results p { margin: 0; font-size: 15px; color: #6c757d; }

/* Map */
.sl-map-container {
	flex: 1;
	position: relative;
	min-height: 0;
	overflow: hidden;
	border-radius: 0 10px 10px 0;
}
#store-locator-map {
	width: 100%;
	height: 100%;
	min-height: 0;
}

/* ---- Responsive ---- */
@media (max-width: 1024px) {
	.sl-sidebar { flex: 0 0 300px; width: 300px; }
}
@media (max-width: 768px) {
	.sl-content-row { 
		flex-direction: column; 
		height: auto;
		max-height: none;
		position: relative;
		gap: 15px;
	}
	.sl-sidebar {
		flex: none; 
		width: 100%;
		border-radius: 10px;
		max-height: 50vh;
		min-height: 300px;
		position: relative;
		z-index: 2;
		margin-bottom: 0;
	}
	.sl-map-container { 
		min-height: 50vh; 
		border-radius: 10px; 
		order: 2;
		position: relative;
		z-index: 1;
		margin-top: 0;
	}
	#store-locator-map { min-height: 50vh; }
	.sl-controls-row { flex-direction: column; align-items: stretch; }
	.sl-search-box { min-width: 100%; }
	.sl-near-me-btn { width: 100%; justify-content: center; }
	.sl-tabs-row {
		justify-content: flex-start;
		overflow-x: auto;
		flex-wrap: nowrap;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding-bottom: 5px;
	}
	.sl-tabs-row::-webkit-scrollbar { display: none; }
	.sl-tab { flex-shrink: 0; font-size: 14px; padding: 9px 20px; }
	
	/* Ensure list items are easily tappable on mobile */
	.sl-card {
		margin-bottom: 10px;
		cursor: pointer;
		-webkit-tap-highlight-color: rgba(216, 34, 43, 0.1);
	}
	
	/* Make map scroll into view smoothly */
	.sl-map-container {
		scroll-margin-top: 20px;
	}
}
@media (max-width: 480px) {
	.sl-card__header { flex-wrap: wrap; }
	.sl-card__badges { flex-direction: row; align-items: center; flex-wrap: wrap; }
	.sl-sidebar {
		max-height: 45vh;
		min-height: 280px;
	}
	.sl-map-container { 
		min-height: 55vh;
		margin-top: 0;
	}
	#store-locator-map { min-height: 55vh; }
}
