/* =============================================================================
   STORE LOCATOR — Figma node 1098:11274
   Uses Leaflet / OpenStreetMap for the map panel.
   ============================================================================= */

/* ── Astra full-width overrides ─────────────────────────────────────────── */

.cr-store-locator-active #page,
.cr-store-locator-active .site,
.cr-store-locator-active #content,
.cr-store-locator-active .site-content,
.cr-store-locator-active .site-content > .ast-container,
.cr-store-locator-active .site-content .ast-container,
.cr-store-locator-active .ast-container,
.cr-store-locator-active #primary,
.cr-store-locator-active .content-area,
.cr-store-locator-active .site-main,
.cr-store-locator-active .entry-content,
.page-template-templates-store-locator-php #page,
.page-template-templates-store-locator-php .site,
.page-template-templates-store-locator-php #content,
.page-template-templates-store-locator-php .site-content,
.page-template-templates-store-locator-php .site-content > .ast-container,
.page-template-templates-store-locator-php .site-content .ast-container,
.page-template-templates-store-locator-php .ast-container,
.page-template-templates-store-locator-php #primary,
.page-template-templates-store-locator-php .content-area,
.page-template-templates-store-locator-php .site-main,
.page-template-templates-store-locator-php .entry-content {
	max-width: none !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.cr-store-locator-active .site-content,
.cr-store-locator-active #content,
.page-template-templates-store-locator-php .site-content,
.page-template-templates-store-locator-php #content {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.cr-store-locator-active .site-main,
.cr-store-locator-active #primary,
.cr-store-locator-active .entry-content,
.page-template-templates-store-locator-php .site-main,
.page-template-templates-store-locator-php #primary,
.page-template-templates-store-locator-php .entry-content {
	padding: 0 !important;
	margin: 0 !important;
}

.cr-store-locator-active .entry-header,
.cr-store-locator-active .ast-single-entry-banner,
.page-template-templates-store-locator-php .entry-header,
.page-template-templates-store-locator-php .ast-single-entry-banner {
	display: none !important;
}

.cr-store-locator-active #secondary,
.page-template-templates-store-locator-php #secondary {
	display: none !important;
}

.cr-store-locator-active.ast-separate-container #content,
.cr-store-locator-active.ast-separate-container .site-content,
.cr-store-locator-active.ast-page-builder-template .site-content {
	background: transparent !important;
}

.cr-store-locator-active.ast-separate-container #primary,
.cr-store-locator-active.ast-separate-container .site-main,
.cr-store-locator-active.ast-separate-container article,
.cr-store-locator-active.ast-separate-container .ast-article-single {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
}

/* ── Page shell ─────────────────────────────────────────────────────────── */

.cr-store-locator {
	background: var(--cr-cream, #faf7f6) !important;
	min-height: 100vh !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	flex-direction: column !important;
}

.cr-store-locator__inner {
	display: flex !important;
	align-items: stretch !important;
	width: 100% !important;
	max-width: none !important;
	min-height: 100vh !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* ── Map panel (left 50%) ───────────────────────────────────────────────── */

.cr-store-locator__map-panel {
	flex: 0 0 50% !important;
	position: sticky !important;
	top: 0 !important;
	z-index: 5 !important;
	align-self: flex-start !important;
	height: 100vh !important;
	min-height: 100vh !important;
	overflow: hidden !important;
	background: var(--cr-white, #fff) !important;
}

.cr-store-locator__map {
	width: 100% !important;
	height: 100% !important;
	min-height: inherit !important;
	background: var(--cr-white, #fff) !important;
}

.cr-store-locator__map .leaflet-container {
	width: 100% !important;
	height: 100% !important;
	min-height: inherit !important;
	font-family: var(--cr-font-body, 'Quicksand', sans-serif) !important;
}

.cr-store-locator__map .leaflet-control-zoom a {
	color: var(--cr-black, #333) !important;
}

/* Map markers */
.cr-store-marker {
	background: none !important;
	border: none !important;
}

.cr-store-marker__pin {
	width: 1.688rem !important;
	height: 2.688rem !important;
	background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 43"%3E%3Cpath fill="%23e81f76" d="M13.5 0C6.04 0 0 6.04 0 13.5c0 10.13 13.5 29.5 13.5 29.5S27 23.63 27 13.5C27 6.04 20.96 0 13.5 0zm0 20.5a7 7 0 110-14 7 7 0 010 14z"/%3E%3C/svg%3E') !important;
	background-size: contain !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	cursor: pointer !important;
}

.cr-store-marker--active .cr-store-marker__pin {
	background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 43"%3E%3Cpath fill="%23ca0c59" d="M13.5 0C6.04 0 0 6.04 0 13.5c0 10.13 13.5 29.5 13.5 29.5S27 23.63 27 13.5C27 6.04 20.96 0 13.5 0zm0 20.5a7 7 0 110-14 7 7 0 010 14z"/%3E%3C/svg%3E') !important;
}

.cr-store-locator__map .leaflet-popup-content-wrapper {
	border-radius: 0 !important;
	padding: 0 !important;
	box-shadow: 0 0.25rem 1.5rem rgba(0, 0, 0, 0.12) !important;
	border: 0.062rem solid var(--cr-border, #e7e7e7) !important;
	background: var(--cr-white, #fff) !important;
	min-width: 15rem !important;
	max-width: 18.75rem !important;
}

.cr-store-locator__map .leaflet-popup-tip-container {
	display: none !important;
}

.cr-store-locator__map .leaflet-popup-close-button {
	top: 0.625rem !important;
	right: 0.625rem !important;
	width: 1.25rem !important;
	height: 1.25rem !important;
	font-size: 1.125rem !important;
	line-height: 1.25rem !important;
	color: var(--cr-black, #333) !important;
	font-weight: 300 !important;
	padding: 0 !important;
}

.cr-store-locator__map .leaflet-popup-close-button:hover {
	color: var(--cr-pink, #ca0c59) !important;
	background: transparent !important;
}

.cr-store-locator__map .leaflet-popup-content {
	margin: 1.25rem 1.5rem !important;
	font-family: var(--cr-font-body, 'Quicksand', sans-serif) !important;
	font-size: 0.812rem !important;
	line-height: 1.6 !important;
	color: var(--cr-black, #333) !important;
}

.cr-store-locator__map .leaflet-popup-content strong {
	font-family: var(--cr-font-heading, 'Lora', Georgia, serif) !important;
	font-weight: 400 !important;
	font-size: 0.938rem !important;
	display: block !important;
	margin-bottom: 0.5rem !important;
	padding-bottom: 0.5rem !important;
	border-bottom: 0.062rem solid var(--cr-border, #e7e7e7) !important;
	padding-right: 1rem !important;
}

.cr-store-locator__map .cr-popup-address {
	margin-bottom: 0.25rem !important;
	color: #666 !important;
}

.cr-store-locator__map .cr-popup-hours {
	font-weight: 600 !important;
	color: var(--cr-black, #333) !important;
}

/* ── Sidebar (right 50%) ────────────────────────────────────────────────── */

.cr-store-locator__sidebar {
	flex: 0 0 50% !important;
	display: flex !important;
	flex-direction: column !important;
	background: var(--cr-cream, #faf7f6) !important;
	min-width: 0 !important;
}

/* Hero — Figma: Heading 1, 40px Lora, centered, top area */
.cr-store-locator__hero {
	padding: 7.5rem 2.5rem 1.5rem !important;
	text-align: center !important;
}

.cr-store-locator__hero-heading {
	margin: 0 !important;
	font-family: var(--cr-font-heading, 'Lora', Georgia, serif) !important;
	font-weight: 400 !important;
	font-size: 2.5rem !important;
	line-height: 1.2 !important;
	color: var(--cr-black, #333) !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;
}

.cr-store-locator__hero-subtitle {
	margin: 0.5rem 0 0 !important;
	font-family: var(--cr-font-body, 'Quicksand', sans-serif) !important;
	font-weight: 400 !important;
	font-size: 1rem !important;
	line-height: 1.52 !important;
	color: var(--cr-black, #333) !important;
}

/* Sticky search — Figma: gap 16px, pt 66px when stuck, pb 10px */
.cr-store-locator__search-sticky {
	position: sticky !important;
	top: 0 !important;
	z-index: 10 !important;
	background: var(--cr-cream, #faf7f6) !important;
	padding: 0 2.5rem 0.625rem !important;
}

.cr-store-locator__search-sticky.is-stuck {
	padding-top: 4.125rem !important;
}

.cr-store-locator__sticky-sentinel {
	height: 0.062rem !important;
	margin: 0 !important;
	padding: 0 !important;
	pointer-events: none !important;
	visibility: hidden !important;
}

.cr-store-locator__search-bar {
	display: flex !important;
	align-items: stretch !important;
	gap: 1rem !important;
	width: 100% !important;
}

/* Fields component — white input, 12px padding, 1px border, matches button height */
.cr-store-locator__search-field {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	display: flex !important;
	align-items: stretch !important;
	position: relative !important;
}

.cr-store-locator input[type="search"].cr-store-locator__search-input,
.cr-store-locator .cr-store-locator__search-input {
	flex: 1 1 auto !important;
	width: 100% !important;
	min-width: 0 !important;
	min-height: 3rem !important;
	height: auto !important;
	box-sizing: border-box !important;
	margin: 0 !important;
	padding: 0.75rem !important;
	border: 0.062rem solid var(--cr-border, #e7e7e7) !important;
	border-radius: 0.125rem !important;
	background: var(--cr-white, #fff) !important;
	font-family: var(--cr-font-body, 'Quicksand', sans-serif) !important;
	font-size: 1rem !important;
	font-weight: 400 !important;
	line-height: 1.52 !important;
	color: var(--cr-black, #333) !important;
	outline: none !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.cr-store-locator__suggestions {
	position: absolute !important;
	left: 0 !important;
	right: 0 !important;
	top: calc(100% + 0.375rem) !important;
	z-index: 50 !important;
	background: var(--cr-white, #fff) !important;
	border: 0.062rem solid var(--cr-border, #e7e7e7) !important;
	border-radius: 0.125rem !important;
	overflow: hidden !important;
	box-shadow: 0 0.75rem 1.875rem rgba(0, 0, 0, 0.08) !important;
}

.cr-store-locator__suggestion {
	display: block !important;
	width: 100% !important;
	text-align: left !important;
	background: transparent !important;
	border: none !important;
	padding: 0.625rem 0.75rem !important;
	cursor: pointer !important;
	font-family: var(--cr-font-body, 'Quicksand', sans-serif) !important;
	font-size: 0.875rem !important;
	line-height: 1.52 !important;
	color: var(--cr-black, #333) !important;
}

.cr-store-locator__suggestion:hover,
.cr-store-locator__suggestion[aria-selected="true"] {
	background: var(--cr-cream, #faf7f6) !important;
}

.cr-store-locator__suggestion + .cr-store-locator__suggestion {
	border-top: 0.062rem solid var(--cr-border, #e7e7e7) !important;
}

.cr-store-locator input[type="search"].cr-store-locator__search-input::placeholder,
.cr-store-locator .cr-store-locator__search-input::placeholder {
	color: var(--cr-grey, #888) !important;
	opacity: 1 !important;
}

.cr-store-locator input[type="search"].cr-store-locator__search-input:focus,
.cr-store-locator .cr-store-locator__search-input:focus {
	outline: none !important;
	box-shadow: none !important;
	border-color: var(--cr-border, #e7e7e7) !important;
}

/* Button/Primary pink — Figma: px 24, py 12; override button.cr-btn-primary reset */
.cr-store-locator button.cr-store-locator__search-btn.cr-btn-primary.cr-btn-primary--pink {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	align-self: stretch !important;
	min-height: 3rem !important;
	height: auto !important;
	padding: 0.75rem 1.5rem !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 0.125rem !important;
	background: var(--cr-pink, #e81f76) !important;
	background-color: var(--cr-pink, #e81f76) !important;
	color: var(--cr-white, #fff) !important;
	font-family: var(--cr-font-body, 'Quicksand', sans-serif) !important;
	font-size: 1rem !important;
	font-weight: 500 !important;
	line-height: 1.52 !important;
	cursor: pointer !important;
	box-shadow: none !important;
	backdrop-filter: blur(0.312rem) !important;
	-webkit-backdrop-filter: blur(0.312rem) !important;
}

.cr-store-locator button.cr-store-locator__search-btn.cr-btn-primary.cr-btn-primary--pink:hover,
.cr-store-locator button.cr-store-locator__search-btn.cr-btn-primary.cr-btn-primary--pink:focus,
.cr-store-locator button.cr-store-locator__search-btn.cr-btn-primary.cr-btn-primary--pink:active {
	background: var(--cr-pink-700, #ca0c59) !important;
	background-color: var(--cr-pink-700, #ca0c59) !important;
	color: var(--cr-white, #fff) !important;
	border: none !important;
	box-shadow: none !important;
}

.cr-store-locator button.cr-store-locator__search-btn.cr-btn-primary.cr-btn-primary--pink .cr-btn-primary__text {
	color: var(--cr-white, #fff) !important;
	font-weight: 500 !important;
	font-size: 1rem !important;
	line-height: 1.52 !important;
}

/* ── Store list ─────────────────────────────────────────────────────────── */

.cr-store-locator__list {
	display: flex !important;
	flex-direction: column !important;
	gap: 1rem !important;
	padding: 1rem 2.5rem 5rem !important;
}

/* ── Store card — Figma: white card, p 24, gap 16, radius 2 ─────────────── */

.cr-store-card {
	background: var(--cr-white, #fff) !important;
	border-radius: 0.125rem !important;
	padding: 1.5rem !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 1rem !important;
	cursor: pointer !important;
}

.cr-store-card.is-hidden {
	display: none !important;
}

.cr-store-card--active {
	outline: 0.125rem solid var(--cr-pink, #e81f76) !important;
	outline-offset: -0.125rem !important;
}

.cr-store-card__header {
	padding-bottom: 1rem !important;
	border-bottom: 0.062rem solid var(--cr-border, #e7e7e7) !important;
}

.cr-store-card__name {
	margin: 0 !important;
	font-family: var(--cr-font-heading, 'Lora', Georgia, serif) !important;
	font-weight: 400 !important;
	font-size: 1rem !important;
	line-height: 1.52 !important;
	color: var(--cr-black, #333) !important;
}

/* Body row — Figma: gap 24px, distance column 48px */
.cr-store-card__body {
	display: flex !important;
	align-items: flex-start !important;
	gap: 1.5rem !important;
}

.cr-store-card__content {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 1rem !important;
}

.cr-store-card__details {
	display: flex !important;
	flex-direction: column !important;
	gap: 0.5rem !important;
}

.cr-store-card__detail {
	display: flex !important;
	align-items: flex-start !important;
	gap: 1rem !important;
}

.cr-store-card__detail-icon {
	flex: 0 0 1rem !important;
	width: 1rem !important;
	height: 1rem !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin-top: 0.188rem !important;
}

.cr-store-card__detail-icon svg,
.cr-store-card__distance-icon svg,
.cr-store-card__directions .cr-btn-icon {
	width: 1rem !important;
	height: 1rem !important;
	display: block !important;
}

.cr-store-card__detail-text {
	font-family: var(--cr-font-body, 'Quicksand', sans-serif) !important;
	font-weight: 400 !important;
	font-size: 1rem !important;
	line-height: 1.52 !important;
	color: var(--cr-black, #333) !important;
}

/* Distance column — Figma: 48px wide, centered, 12px text */
.cr-store-card__distance {
	flex: 0 0 3rem !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 0.5rem !important;
	text-align: center !important;
}

.cr-store-card__distance-icon {
	width: 1rem !important;
	height: 1rem !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	color: var(--cr-pink, #e81f76) !important;
}

.cr-store-card__distance-text {
	font-family: var(--cr-font-body, 'Quicksand', sans-serif) !important;
	font-weight: 400 !important;
	font-size: 0.75rem !important;
	line-height: 1.34 !important;
	color: var(--cr-black, #333) !important;
	white-space: nowrap !important;
}

/* Get Directions — core Button/Secondary Text */
.cr-store-card__directions.cr-btn-secondary {
	align-self: flex-start !important;
}

/* Ensure icon color always matches the text color */
.cr-store-card__directions {
	color: var(--cr-black, #333) !important;
}

.cr-store-card__directions:hover,
.cr-store-card__directions:focus,
.cr-store-card__directions:active {
	color: var(--cr-pink, #e81f76) !important;
}

.cr-store-card__directions .cr-btn-secondary__text {
	color: inherit !important;
}

.cr-store-card__directions .cr-btn-icon path {
	stroke: currentColor !important;
}

.cr-store-card__directions .cr-btn-secondary__icon--back .cr-btn-icon {
	width: 1rem !important;
	height: 1rem !important;
}

/* Shared icon helper */
.cr-store-icon {
	display: block !important;
	width: 1rem !important;
	height: 1rem !important;
}

/* ── Empty state ────────────────────────────────────────────────────────── */

.cr-store-locator__empty {
	padding: 2.5rem 0 !important;
	text-align: center !important;
	font-family: var(--cr-font-body, 'Quicksand', sans-serif) !important;
	font-size: 1rem !important;
	line-height: 1.52 !important;
	color: var(--cr-grey, #888) !important;
}

/* ── Location image — Figma node 1618:10869 (1440×720 → 80vh) ─────────── */

.cr-store-locator__location-image {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	height: 80vh !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	background: var(--cr-cream, #faf7f6) !important;
}

.cr-store-locator__location-image[hidden] {
	display: none !important;
}

.cr-store-locator__location-image-img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center !important;
	transition: opacity 0.35s ease !important;
}

.cr-store-locator__location-image-img.is-swapping {
	opacity: 0 !important;
}

/* ── Gutenberg content below the locator ──────────────────────────────── */

.cr-store-locator__after-content {
	width: 100% !important;
	max-width: none !important;
	background: var(--cr-white, #fff) !important;
	box-sizing: border-box !important;
}

/* ── Responsive ─────────────────────────────────────────────────────────── */

@media (max-width: 1024px) {
	.cr-store-locator__inner {
		flex-direction: column !important;
		min-height: 0 !important;
	}

	/* Per Figma mobile (M_Store Locator), the map panel is hidden on
	   tablet/mobile; the hero, search and store list render full-width. */
	.cr-store-locator__map-panel {
		display: none !important;
	}

	.cr-store-locator__sidebar {
		flex: none !important;
		width: 100% !important;
		order: 1 !important;
	}

	.cr-store-locator__hero {
		padding: 3.75rem 1.25rem 1.25rem !important;
	}

	.cr-store-locator__hero-heading {
		font-size: 1.75rem !important;
	}

	.cr-store-locator__search-sticky {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}

	.cr-store-locator__search-sticky.is-stuck {
		padding-top: 1.5rem !important;
	}

	.cr-store-locator__list {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
		padding-bottom: 2.5rem !important;
	}

	.cr-store-locator__location-image {
		height: 50vh !important;
	}
}

@media (max-width: 768px) {
	/* Map hidden on mobile (matches Figma M_Store Locator). */
	.cr-store-locator__map-panel {
		display: none !important;
	}

	.cr-store-locator__map,
	.cr-store-locator__map .leaflet-container {
		min-height: 17.5rem !important;
	}

	.cr-store-locator__location-image {
		height: 40vh !important;
	}

	.cr-store-locator__search-bar {
		flex-direction: column !important;
	}

	.cr-store-locator button.cr-store-locator__search-btn.cr-btn-primary.cr-btn-primary--pink {
		width: 100% !important;
	}

	.cr-store-locator__hero {
		padding: 2.5rem 1rem 1.25rem !important;
	}

	.cr-store-locator__hero-heading {
		font-size: 1.5rem !important;
	}

	.cr-store-locator__hero-subtitle {
		font-size: 0.875rem !important;
		margin-top: 0.375rem !important;
	}

	.cr-store-card__body {
		flex-direction: column !important;
	}

	.cr-store-card__distance {
		flex-direction: row !important;
		align-self: flex-start !important;
		gap: 0.5rem !important;
	}
}
