/*
 * Finobazaar Locations – the directory pages. Loaded only where the
 * directory is shown. Uses the theme's tokens when present, with the brand
 * values as fallbacks. No JavaScript.
 */
.fbl-dir {
	--fbl-blue: var(--fb-brand-blue, #105de1);
	--fbl-blue-dark: var(--fb-brand-blue-dark, #0848b8);
	--fbl-blue-light: var(--fb-brand-blue-light, #eaf2ff);
	--fbl-black: var(--fb-brand-black, #111111);
	--fbl-white: #ffffff;
	--fbl-neutral: var(--fb-bg, #f7f9fc);
	--fbl-border: var(--fb-border, #e3e8f0);
	--fbl-text: var(--fb-text, #202020);
	--fbl-muted: var(--fb-text-2, #4a5361);
	color: var(--fbl-text);
	margin: 0 0 2rem;
	max-width: 100%;
	overflow-wrap: anywhere;
}
.fbl-dir h2 { color: var(--fbl-black); font-size: 1.25rem; line-height: 1.3; margin: 2rem 0 .75rem; }
.fbl-dir a { color: var(--fbl-blue-dark); text-underline-offset: 2px; }
.fbl-dir a:focus-visible,
.fbl-dir button:focus-visible,
.fbl-dir input:focus-visible { outline: 3px solid var(--fbl-blue); outline-offset: 2px; }
.fbl-muted, .fbl-count { color: var(--fbl-muted); font-weight: 400; }
.fbl-note, .fbl-lead { font-size: 1.0625rem; margin: 0 0 1rem; }
.fbl-src { color: var(--fbl-muted); font-size: .875rem; margin: .75rem 0 0; }
.fbl-more { margin: .75rem 0 0; font-weight: 600; }

/* Where the place sits: the administrative ladder, top level first. */
.fbl-trail ol { display: flex; flex-wrap: wrap; gap: .25rem 0; list-style: none; margin: 0 0 1rem; padding: 0; font-size: .9375rem; }
.fbl-trail li { display: inline-flex; align-items: center; }
.fbl-trail li + li::before { content: "›"; color: var(--fbl-muted); margin: 0 .5rem; }
.fbl-trail [aria-current] { color: var(--fbl-muted); }

/* Head: kind of place, the name in the other script, where it is. */
.fbl-head { border-bottom: 1px solid var(--fbl-border); padding: 0 0 1.25rem; margin: 0 0 .5rem; }
.fbl-head p { margin: 0 0 .375rem; }
.fbl-head__type {
	display: inline-block;
	background: var(--fbl-blue-light);
	border-radius: 999px;
	color: var(--fbl-blue-dark);
	font-size: .875rem;
	font-weight: 600;
	padding: .125rem .75rem;
}
.fbl-head__other { color: var(--fbl-black); font-size: 1.375rem; font-weight: 600; line-height: 1.35; }
.fbl-head__in { font-size: 1.0625rem; }
.fbl-head__aka { color: var(--fbl-muted); font-size: .9375rem; }
.fbl-facts { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 1rem 0 0; padding: 0; }
.fbl-facts li { border: 1px solid var(--fbl-border); border-radius: 8px; background: var(--fbl-white); padding: .375rem .75rem; }
.fbl-facts strong { color: var(--fbl-black); font-variant-numeric: tabular-nums; }

/* Lists of places */
.fbl-places { list-style: none; margin: 0; padding: 0; }
.fbl-places li { padding: .5rem 0; border-bottom: 1px solid var(--fbl-border); }
.fbl-places--grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); column-gap: 1.5rem; }
.fbl-places__name { display: inline-block; font-weight: 600; min-height: 24px; padding: .125rem 0; }
.fbl-places__other { color: var(--fbl-muted); }
.fbl-places__km { color: var(--fbl-muted); font-size: .875rem; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* PIN codes */
.fbl-pins { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .5rem 1.5rem; list-style: none; margin: 0; padding: 0; }
.fbl-pins li { display: flex; flex-direction: column; padding: .5rem 0; border-bottom: 1px solid var(--fbl-border); }
.fbl-pins__pin { font-size: 1.125rem; font-variant-numeric: tabular-nums; font-weight: 700; letter-spacing: .04em; }
.fbl-pins__office { color: var(--fbl-muted); font-size: .9375rem; }

.fbl-gov, .fbl-list { margin: 0; padding-left: 1.25rem; }
.fbl-gov li, .fbl-list li { margin: 0 0 .5rem; }

/* Pages of a list */
.fbl-pager { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin: 1rem 0 0; }
.fbl-pager a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }

/* Search */
.fbl-search { background: var(--fbl-neutral); border: 1px solid var(--fbl-border); border-radius: 10px; margin: 2rem 0 0; padding: 1rem; }
.fbl-dir--home .fbl-search, .fbl-dir--not_found .fbl-search, .fbl-dir--gone .fbl-search { margin: 0 0 1.5rem; }
.fbl-search__label { display: block; font-weight: 600; margin: 0 0 .375rem; color: var(--fbl-black); }
.fbl-search__row { display: flex; gap: .5rem; }
.fbl-search__input {
	flex: 1 1 auto;
	min-width: 0;
	min-height: 44px;
	border: 1px solid var(--fbl-border);
	border-radius: 8px;
	background: var(--fbl-white);
	color: var(--fbl-text);
	font: inherit;
	padding: .5rem .75rem;
}
.fbl-search__button {
	flex: 0 0 auto;
	min-height: 44px;
	border: 0;
	border-radius: 8px;
	background: var(--fbl-blue);
	color: var(--fbl-white);
	cursor: pointer;
	font: inherit;
	font-weight: 600;
	padding: .5rem 1.125rem;
}
.fbl-search__button:hover { background: var(--fbl-blue-dark); }

/* Source of the data */
.fbl-source { border-top: 1px solid var(--fbl-border); margin: 2rem 0 0; padding: 1rem 0 0; font-size: .9375rem; }
.fbl-source h2 { font-size: 1rem; margin: 0 0 .5rem; }
.fbl-source__list { display: grid; grid-template-columns: max-content 1fr; gap: .25rem 1rem; margin: 0; }
.fbl-source__list dt { color: var(--fbl-muted); }
.fbl-source__list dd { margin: 0; }
.fbl-source a, .fbl-gov a, .fbl-list a, .fbl-more a, .fbl-trail a, .fbl-pins a { display: inline-block; min-height: 24px; padding: .125rem 0; }

@media (max-width: 480px) {
	.fbl-places--grid { grid-template-columns: 1fr 1fr; column-gap: 1rem; }
	.fbl-source__list { grid-template-columns: 1fr; }
	.fbl-source__list dd { margin-bottom: .5rem; }
}
@media (max-width: 340px) {
	.fbl-places--grid { grid-template-columns: 1fr; }
}
