/*
 * Finobazaar Search: grouped answers on the search page, and the
 * "Finobazaar services" block. Uses the theme's tokens when present.
 */
.fbs {
	--fbs-blue: var(--fb-brand-blue, #105de1);
	--fbs-blue-dark: var(--fb-brand-blue-dark, #0848b8);
	--fbs-blue-light: var(--fb-brand-blue-light, #eaf2ff);
	--fbs-black: var(--fb-brand-black, #111111);
	--fbs-white: #ffffff;
	--fbs-neutral: var(--fb-bg, #f7f9fc);
	--fbs-border: var(--fb-border, #e3e8f0);
	--fbs-text: var(--fb-text, #202020);
	--fbs-muted: var(--fb-text-2, #4a5361);
	--fbs-radius: 10px;
	color: var(--fbs-text);
	margin: 0 0 2rem;
}
.fbs a { color: var(--fbs-blue-dark); text-underline-offset: 2px; }
.fbs a:focus-visible, .fbs button:focus-visible { outline: 3px solid var(--fbs-blue); outline-offset: 2px; }
.fbs-muted { color: var(--fbs-muted); font-size: .875rem; }

.fbs-jump ul { display: flex; flex-wrap: wrap; gap: .375rem; list-style: none; margin: 0 0 1.25rem; padding: 0; }
.fbs-jump li { margin: 0; }
.fbs-jump li::marker { content: none; }
.fbs-jump a { display: inline-block; border: 1px solid var(--fbs-border); border-radius: 999px; padding: .25rem .75rem; font-size: .875rem; text-decoration: none; background: var(--fbs-white); }

.fbs-group { border: 1px solid var(--fbs-border); border-radius: var(--fbs-radius); background: var(--fbs-white); padding: 1rem 1.25rem; margin: 0 0 1rem; scroll-margin-top: 5rem; }
.fbs .fbs-group__title { font-size: 1.0625rem; line-height: 1.3; margin: 0 0 .75rem; color: var(--fbs-black); }
.fbs ul.fbs-list { list-style: none; margin: 0; padding: 0; }
.fbs ul.fbs-list li { margin: 0; padding: .5rem 0; border-top: 1px solid var(--fbs-border); display: flex; flex-wrap: wrap; align-items: baseline; gap: .125rem .625rem; }
.fbs ul.fbs-list li:first-child { border-top: 0; padding-top: 0; }
.fbs ul.fbs-list li::marker { content: none; }
.fbs-item__title { font-weight: 600; }
.fbs-item__label { font-size: .75rem; border-radius: 999px; padding: .0625rem .5rem; background: var(--fbs-neutral); color: var(--fbs-muted); }
.fbs-item__summary { flex: 1 0 100%; color: var(--fbs-muted); font-size: .9375rem; }
.fbs-note { color: var(--fbs-muted); font-size: .9375rem; margin: .25rem 0 0; }
.fbs-note--soon { font-style: italic; }
.fbs-more { margin: .75rem 0 0; font-size: .9375rem; }
.fbs-btn { display: inline-block; min-height: 40px; border: 1px solid var(--fbs-blue); border-radius: 8px; background: var(--fbs-white); color: var(--fbs-blue-dark); font: inherit; font-weight: 600; padding: .375rem 1rem; cursor: pointer; text-decoration: none; }
.fbs-btn:hover { background: var(--fbs-blue-light); }
.fbs-near { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin: .75rem 0 0; }
.fbs-near[hidden] { display: none; }

/* Finobazaar services */
.fbs-related { border-top: 1px solid var(--fbs-border); padding-top: 1.25rem; margin-top: 2rem; }
.fbs .fbs-related__title { font-size: 1.125rem; margin: 0 0 .75rem; color: var(--fbs-black); }
.fbs .fbs-related__sub { font-size: 1rem; margin: 1.25rem 0 .5rem; }
.fbs ul.fbs-services, .fbs ul.fbs-associates { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 10rem), 1fr)); gap: .625rem; list-style: none; margin: 0; padding: 0; }
.fbs ul.fbs-services li, .fbs ul.fbs-associates li { margin: 0; border: 1px solid var(--fbs-border); border-radius: var(--fbs-radius); padding: .75rem .875rem; background: var(--fbs-white); display: flex; flex-direction: column; gap: .25rem; }
.fbs ul.fbs-services li::marker, .fbs ul.fbs-associates li::marker { content: none; }
.fbs-service__name, .fbs-associate__name { font-weight: 600; }
.fbs-service__desc, .fbs-associate__meta { color: var(--fbs-muted); font-size: .875rem; }
.fbs-service--soon { background: var(--fbs-neutral) !important; }
.fbs-service__soon { font-size: .75rem; color: var(--fbs-muted); }
.fbs-associate__badge { align-self: flex-start; font-size: .75rem; border-radius: 999px; padding: .0625rem .5rem; background: #e8f6ee; color: #14532d; }
.fbs-related__cta { margin: 1rem 0 0; }

/* Suggestions on the search box */
.fbs-combo { position: relative; }
.fbs-combo__list { position: absolute; z-index: 30; inset-inline: 0; top: calc(100% + 4px); list-style: none; margin: 0; padding: .25rem 0; max-height: min(24rem, 60vh); overflow-y: auto; background: #fff; border: 1px solid var(--fb-border, #e3e8f0); border-radius: 8px; box-shadow: 0 8px 24px rgba(16, 32, 64, .12); text-align: start; }
.fbs-combo__list[hidden] { display: none; }
.fbs-combo__list li { margin: 0; padding: .5rem .75rem; cursor: pointer; display: flex; flex-direction: column; gap: .125rem; }
.fbs-combo__list li::marker { content: none; }
.fbs-combo__list li[aria-selected="true"], .fbs-combo__list li:hover { background: var(--fb-brand-blue-light, #eaf2ff); }
.fbs-combo__title { font-weight: 600; color: var(--fb-brand-black, #111); }
.fbs-combo__meta { font-size: .8125rem; color: var(--fb-text-2, #4a5361); }
.fbs-combo__note { color: var(--fb-text-2, #4a5361); cursor: default !important; }
@media (prefers-reduced-motion: reduce) { .fbs * { scroll-behavior: auto !important; } }

.fbs-empty { border: 1px dashed var(--fbs-border); border-radius: var(--fbs-radius); padding: 1rem 1.25rem; }
.fbs ul.fbs-jump-list { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: .75rem 0 0; padding: 0; }
.fbs ul.fbs-jump-list li { margin: 0; }
.fbs ul.fbs-jump-list li::marker { content: none; }
.fbs-spelled { margin: 0 0 1rem; }
.fbs-service--soon .fbs-service__desc { display: none; }
.fbs ul.fbs-services li.fbs-service--soon { padding: .5rem .75rem; }
/* The tools answered: the theme's "no posts" box would contradict them. */
.fbs[data-fbs-results] ~ .fb-empty, .fbs-empty ~ .fb-empty { display: none; }
