/* page.php skips the narrow .bof-prose reading-width cap on pages that
   contain this shortcode, so this just needs to fill its container
   (up to the theme's normal 1180px page width) -- no viewport-relative
   breakout math needed (that approach previously overflowed past the
   content edge on desktop, since 100vw doesn't account for the
   vertical scrollbar's width). */
.bof-locations {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: 100%;
}

.bof-locations__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}
.bof-locations__search,
.bof-locations__city {
	font-family: var(--bof-font-body);
	font-size: 0.95rem;
	padding: 10px 14px;
	border: 1px solid var(--bof-line);
	border-radius: 999px;
	background: var(--bof-paper);
	color: var(--bof-ink);
}
.bof-locations__search { flex: 1 1 260px; }
.bof-locations__count {
	font-family: var(--bof-font-mono);
	font-size: 0.8rem;
	color: var(--bof-stone);
}

.bof-locations__map {
	height: 420px;
	width: 100%;
	border-radius: var(--bof-radius);
	border: 1px solid var(--bof-line);
	z-index: 0;
}

.bof-locations__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
@media (max-width: 980px) { .bof-locations__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .bof-locations__grid { grid-template-columns: 1fr; } }

.bof-location-card {
	background: var(--bof-paper);
	border: 1px solid var(--bof-line);
	border-radius: var(--bof-radius);
	padding: 18px 20px 20px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.bof-location-card__name {
	font-family: var(--bof-font-display);
	font-weight: 700;
	font-size: 1.1rem;
	text-transform: uppercase;
	margin: 0;
}
.bof-location-card__address { color: var(--bof-stone); font-size: 0.9rem; margin: 0; }
.bof-location-card__phone { margin: 0; }
.bof-location-card__phone a { color: var(--bof-ink); text-decoration: none; font-weight: 600; }
.bof-location-card__phone a:hover { color: var(--bof-primary); }

.bof-location-card__amenities {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 4px;
}
.bof-location-card__amenity {
	padding: 3px 10px;
	font-size: 0.7rem;
	background: var(--bof-cream);
	border-color: var(--bof-line);
}

.bof-location-card__hours { font-size: 0.85rem; margin-top: 4px; }
.bof-location-card__hours summary { cursor: pointer; font-weight: 600; color: var(--bof-primary); }
.bof-location-card__hours ul { margin-top: 8px; }
.bof-location-card__hours li { display: flex; justify-content: space-between; padding: 2px 0; color: var(--bof-stone); }
.bof-location-card__today { color: var(--bof-ink) !important; font-weight: 700; }

.bof-location-card__actions {
	display: flex;
	gap: 10px;
	margin-top: 10px;
	flex-wrap: wrap;
}
.bof-location-card__actions .bof-pill { padding: 7px 14px; font-size: 0.8rem; }
