/* Cookies New York — store locator (map + readable list). Pairs a dark Mapbox
 * map with a scrollable store list. Mobile: list first, map below. */

.ckny-locator { width: min(100%, var(--ckny-container, 1180px)); margin: 0 auto; padding: 8px 0 24px; }
.ckny-locator-head { margin: 0 0 18px; }
.ckny-locator-head h2 { margin: 0 0 6px; font-family: var(--ckny-display); font-size: clamp(24px, 5vw, 38px); line-height: 1.05; }
.ckny-locator-sub { margin: 0; max-width: 60ch; color: var(--ckny-muted); }

.ckny-locator-controls { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 0 0 16px; }
.ckny-field-search input, .ckny-locator-controls select {
	width: 100%; min-height: 50px; padding: 12px 16px; border-radius: 999px;
	background: var(--ckny-card); border: 1px solid var(--ckny-line);
	color: var(--ckny-white); font: inherit; font-size: 16px;
}
.ckny-locator-controls .ckny-button { min-height: 50px; }
.ckny-locator-controls input:focus, .ckny-locator-controls select:focus {
	outline: none; border-color: var(--ckny-blue-deep); box-shadow: 0 0 0 3px rgba(58, 160, 220, .25);
}

.ckny-locator-body { display: grid; grid-template-columns: 1fr; gap: 16px; }
.ckny-map {
	height: 360px; border-radius: var(--ckny-radius, 18px); overflow: hidden;
	border: 1px solid var(--ckny-line); background: var(--ckny-panel);
}
.ckny-map-disabled { display: flex; align-items: center; justify-content: center; padding: 24px; text-align: center; color: var(--ckny-muted); }

.ckny-store-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; max-height: 520px; overflow: auto; }
.ckny-store {
	background: var(--ckny-card); border: 1px solid var(--ckny-line); border-radius: var(--ckny-radius, 18px);
	padding: 16px 18px; cursor: pointer; transition: border-color .15s ease;
}
.ckny-store:hover, .ckny-store:focus-visible { border-color: var(--ckny-blue-deep); outline: none; }
.ckny-store.is-active { border-color: var(--ckny-blue-deep); box-shadow: 0 0 0 2px rgba(58, 160, 220, .3); }
.ckny-store-top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.ckny-store-top h3 { margin: 0; font-size: 17px; }
.ckny-dist { font-size: 12px; font-weight: 700; color: var(--ckny-blue-deep); white-space: nowrap; }
.ckny-store-addr { margin: 6px 0 10px; font-size: 14px; color: var(--ckny-muted); }
/* .ckny-chips/.ckny-chip/.ckny-store-actions/.ckny-locator-note live in cookies-base.css (shared with homepage + retailer pages). */

.ckny-locator-empty { padding: 14px; text-align: center; color: var(--ckny-muted); }

/* Map markers + popup ---------------------------------------------------- */
.ckny-marker {
	width: 20px; height: 20px; padding: 0; border-radius: 50%;
	border: 2px solid #fff; background: var(--ckny-blue-cta, #00425e);
	cursor: pointer; box-shadow: 0 0 0 2px rgba(16, 45, 68, .25);
}
.ckny-marker-you { background: #16d39a; }
.mapboxgl-popup-content { background: var(--ckny-card); color: var(--ckny-ink); border-radius: 12px; padding: 12px 14px; font-family: var(--ckny-font); box-shadow: 0 8px 24px rgba(16, 45, 68, .18); }
.mapboxgl-popup-content a { color: var(--ckny-blue-deep); }
.mapboxgl-popup-tip { border-top-color: var(--ckny-card) !important; border-bottom-color: var(--ckny-card) !important; }

@media (min-width: 760px) {
	.ckny-locator-controls { grid-template-columns: 1fr auto auto; }
	.ckny-locator-body { grid-template-columns: minmax(300px, 380px) 1fr; }
	.ckny-map { height: 560px; position: sticky; top: 90px; }
	.ckny-store-list { max-height: 560px; }
}
