/* =====================================================================
   Finobazaar components (every page).
   Header · mega menu · search · drawer · language · location dialog ·
   toast · chips · tags · badges · source line · legend · notices ·
   empty states · cards · tables · breadcrumbs · page head · pagination ·
   accordion · ads · footer.
   ===================================================================== */

/* ---------------- Header ---------------- */
.fb-top-sentinel { position: absolute; inset-block-start: 0; height: 1px; width: 1px; }

.fb-header {
	position: sticky;
	inset-block-start: 0;
	z-index: 50;
	background: rgba(255, 255, 255, 0.92);
	border-block-end: 1px solid transparent;
	-webkit-backdrop-filter: saturate(160%) blur(12px);
	backdrop-filter: saturate(160%) blur(12px);
	transition: border-color var(--fb-dur-2) var(--fb-ease), box-shadow var(--fb-dur-2) var(--fb-ease);
}
.fb-header.is-compact { border-color: var(--fb-line); box-shadow: 0 6px 20px -16px rgba(17, 34, 68, 0.45); }
.admin-bar .fb-header { inset-block-start: 32px; }
@media (max-width: 782px) { .admin-bar .fb-header { inset-block-start: 46px; } }

.fb-header__bar {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	min-height: var(--fb-header-h);
	transition: min-height var(--fb-dur-2) var(--fb-ease);
}
.fb-header.is-compact .fb-header__bar { min-height: 3.5rem; }

.fb-logo {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin-inline-end: auto;
	color: var(--fb-ink);
	font: 600 1.3125rem/1 var(--fb-font);
	letter-spacing: -0.02em;
	text-decoration: none;
}
.fb-logo:hover { color: var(--fb-ink); }
.fb-logo__mark { width: 2rem; height: 2rem; flex: none; }
.custom-logo { display: block; max-height: 2.5rem; width: auto; }

.fb-nav { display: none; }
.fb-header__lang,
.fb-header__account { display: none; }

.fb-header__actions { display: flex; align-items: center; gap: 0.25rem; }
.fb-header__login { padding: 0.5rem 0.6rem; color: var(--fb-ink); font-weight: 600; text-decoration: none; border-radius: var(--fb-r-sm); }
.fb-header__login:hover { color: var(--fb-green); background: var(--fb-green-50); }
.fb-header__account { align-items: center; gap: 0.35rem; }

/* Toggle buttons show the close icon only while open. */
.fb-search-toggle .fb-icon--close,
.fb-search-toggle[aria-expanded="true"] .fb-icon--search { display: none; }
.fb-search-toggle[aria-expanded="true"] .fb-icon--close { display: block; }

@media (min-width: 48rem) {
	.fb-header__account { display: flex; }
}

@media (min-width: 72rem) {
	.fb-nav { display: block; margin-inline-start: 1.25rem; margin-inline-end: auto; }
	.fb-logo { margin-inline-end: 0; }
	.fb-header__lang { display: block; }
	.fb-nav-toggle { display: none; }
}

/* ---------------- Mega menu ---------------- */
.fb-mnav { display: flex; align-items: center; gap: 0.125rem; margin: 0; padding: 0; list-style: none; }
.fb-mnav__item { position: relative; }
.fb-mnav__link {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	min-height: 2.75rem;
	padding: 0.5rem 0.75rem;
	border: 0;
	border-radius: var(--fb-r-sm);
	background: transparent;
	color: var(--fb-ink);
	font: 500 var(--fb-fs-base) / 1 var(--fb-font);
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
}
.fb-mnav__link:hover,
.fb-mnav__item.is-open > .fb-mnav__link { background: var(--fb-green-50); color: var(--fb-green-900); }
.fb-mnav__item.is-current > .fb-mnav__link,
.fb-mnav__item.is-ancestor > .fb-mnav__link { color: var(--fb-green); box-shadow: inset 0 -2px 0 var(--fb-gold); border-radius: var(--fb-r-sm) var(--fb-r-sm) 0 0; }
.fb-mnav__chev { width: 1em; height: 1em; transition: transform var(--fb-dur-2) var(--fb-ease); }
.fb-mnav__item.is-open .fb-mnav__chev { transform: rotate(180deg); }

.fb-mega {
	position: absolute;
	inset-block-start: calc(100% + 0.5rem);
	inset-inline-start: -0.75rem;
	z-index: 60;
	visibility: hidden;
	opacity: 0;
	transform: translateY(-6px);
	transition: opacity var(--fb-dur-2) var(--fb-ease), transform var(--fb-dur-2) var(--fb-ease), visibility 0s linear var(--fb-dur-2);
}
.fb-mnav__item.is-open .fb-mega { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
.fb-mega::before { content: ""; position: absolute; inset-inline: 0; inset-block-start: -0.6rem; height: 0.6rem; }
.fb-mega__inner {
	width: min(36rem, 90vw);
	padding: 0.75rem;
	border: 1px solid var(--fb-line);
	border-radius: var(--fb-r-lg);
	background: var(--fb-white);
	box-shadow: var(--fb-sh-3);
}
.fb-mega__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.25rem; margin: 0; padding: 0; list-style: none; }
.fb-mega__link { display: flex; gap: 0.75rem; padding: 0.7rem; border-radius: var(--fb-r-md); color: var(--fb-ink); text-decoration: none; transition: background-color var(--fb-dur-1) var(--fb-ease); }
.fb-mega__link:hover,
.fb-mega__link[aria-current] { background: var(--fb-ivory); color: var(--fb-ink); }
.fb-mega__icon { display: grid; place-items: center; flex: none; width: 2.25rem; height: 2.25rem; border-radius: var(--fb-r-sm); background: var(--fb-green-50); color: var(--fb-green); }
.fb-mega__icon .fb-icon { width: 1.15rem; height: 1.15rem; }
.fb-mega__text { display: grid; gap: 0.15rem; }
.fb-mega__title { font-weight: 600; }
.fb-mega__desc { color: var(--fb-muted); font-size: var(--fb-fs-sm); line-height: 1.4; }
.fb-mega__all { display: inline-block; margin: 0.5rem 0.7rem 0.25rem; font-weight: 600; }

/* WordPress-menu mode */
.fb-mnav--wp > li { position: relative; display: flex; align-items: center; }
.fb-mnav--wp > li > a { padding: 0.5rem 0.75rem; color: var(--fb-ink); font-weight: 500; text-decoration: none; border-radius: var(--fb-r-sm); }
.fb-mnav--wp > li > a:hover { background: var(--fb-green-50); }
.fb-mnav--wp .sub-menu { position: absolute; inset-block-start: 100%; inset-inline-start: 0; z-index: 60; display: none; min-width: 14rem; margin: 0; padding: 0.5rem; list-style: none; background: var(--fb-white); border: 1px solid var(--fb-line); border-radius: var(--fb-r-md); box-shadow: var(--fb-sh-3); }
.fb-mnav--wp li:hover > .sub-menu,
.fb-mnav--wp li:focus-within > .sub-menu,
.fb-mnav--wp li.is-open > .sub-menu { display: block; }
.fb-mnav--wp .sub-menu a { display: block; padding: 0.5rem 0.75rem; color: var(--fb-ink); text-decoration: none; border-radius: var(--fb-r-sm); }
.fb-mnav--wp .sub-menu a:hover { background: var(--fb-ivory); }
.fb-subtoggle { width: 1.75rem; height: 2.5rem; border: 0; background: transparent; color: var(--fb-muted); }
.fb-subtoggle .fb-icon { width: 1em; height: 1em; }

/* ---------------- Search panel and form ---------------- */
.fb-search-panel { border-block-start: 1px solid var(--fb-line); background: var(--fb-white); box-shadow: 0 18px 30px -24px rgba(17, 34, 68, 0.5); }
.fb-search-panel__inner { display: grid; gap: 1rem; padding-block: 1rem 1.25rem; }
.fb-search-panel__quick { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
html:not(.js) .fb-search-panel { display: block; }

.fb-search { display: flex; width: 100%; max-width: 44rem; }
.fb-search__input {
	flex: 1 1 auto;
	min-width: 0;
	border-inline-end: 0;
	border-start-start-radius: var(--fb-r-btn);
	border-end-start-radius: var(--fb-r-btn);
	border-start-end-radius: 0;
	border-end-end-radius: 0;
}
.fb-search__submit {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	min-height: 3rem;
	padding: 0 1.1rem;
	border: 0;
	border-start-start-radius: 0;
	border-end-start-radius: 0;
	border-start-end-radius: var(--fb-r-btn);
	border-end-end-radius: var(--fb-r-btn);
	background: var(--fb-green);
	color: var(--fb-white);
	font-weight: 600;
}
.fb-search__submit:hover { background: var(--fb-green-800); }
.fb-search__submit .fb-icon { width: 1.15rem; height: 1.15rem; }

/* ---------------- Language switcher ---------------- */
.fb-langs { display: flex; align-items: center; }
.fb-langs__list { display: flex; align-items: center; margin: 0; padding: 0.2rem; list-style: none; border: 1px solid var(--fb-line); border-radius: var(--fb-r-pill); }
.fb-langs__link { display: inline-flex; align-items: center; min-height: 2.25rem; padding-inline: 0.8rem; border-radius: var(--fb-r-pill); color: var(--fb-muted); font-weight: 600; font-size: var(--fb-fs-sm); text-decoration: none; }
.fb-langs__link:hover { color: var(--fb-green-900); background: var(--fb-green-50); }
.fb-langs__link.is-current { background: var(--fb-green); color: var(--fb-white); }
.fb-langs__link.is-preview { font-style: italic; }

.fb-langs--menu { position: relative; }
.fb-langs__summary { display: inline-flex; align-items: center; gap: 0.35rem; min-height: 2.5rem; padding-inline: 0.7rem; border: 1px solid var(--fb-line); border-radius: var(--fb-r-pill); color: var(--fb-ink); font-weight: 600; font-size: var(--fb-fs-sm); list-style: none; cursor: pointer; }
.fb-langs__summary::-webkit-details-marker { display: none; }
.fb-langs__summary .fb-icon { width: 1.05rem; height: 1.05rem; }
.fb-langs--menu .fb-langs__list { position: absolute; inset-block-start: calc(100% + 0.4rem); inset-inline-end: 0; z-index: 70; display: grid; min-width: 11rem; padding: 0.4rem; border-radius: var(--fb-r-md); background: var(--fb-white); box-shadow: var(--fb-sh-3); }
.fb-langs--menu .fb-langs__link { border-radius: var(--fb-r-sm); color: var(--fb-ink); }

/* ---------------- Mobile drawer ---------------- */
.fb-drawer { position: fixed; inset: 0; z-index: 90; }
.fb-drawer__scrim { position: absolute; inset: 0; background: rgba(17, 17, 17, 0.45); opacity: 0; transition: opacity var(--fb-dur-2) var(--fb-ease); }
.fb-drawer__panel {
	position: absolute;
	inset-block: 0;
	inset-inline-end: 0;
	display: flex;
	flex-direction: column;
	width: min(24rem, 92vw);
	background: var(--fb-white);
	box-shadow: var(--fb-sh-3);
	transform: translateX(100%);
	transition: transform var(--fb-dur-2) var(--fb-ease);
}
[dir="rtl"] .fb-drawer__panel { transform: translateX(-100%); }
.fb-drawer.is-open .fb-drawer__scrim { opacity: 1; }
.fb-drawer.is-open .fb-drawer__panel { transform: none; }
.fb-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 0.75rem 1rem; border-block-end: 1px solid var(--fb-line); }
.fb-drawer__body { flex: 1 1 auto; overflow-y: auto; padding: 1rem; }
.fb-drawer__loc { width: 100%; margin-block-end: 1rem; }
.fb-drawer__foot { display: grid; gap: 0.6rem; padding: 1rem; padding-block-end: max(1rem, env(safe-area-inset-bottom)); border-block-start: 1px solid var(--fb-line); }
.fb-drawer__foot .fb-langs { justify-content: center; margin-block-start: 0.25rem; }

.fb-dnav { margin: 0; padding: 0; list-style: none; }
.fb-dnav > li { border-block-end: 1px solid var(--fb-line); }
.fb-dnav__link { display: flex; align-items: center; justify-content: space-between; min-height: 3.25rem; padding-inline: 0.25rem; color: var(--fb-ink); font-size: var(--fb-fs-md); font-weight: 600; text-decoration: none; list-style: none; cursor: pointer; }
.fb-dnav__link::-webkit-details-marker { display: none; }
.fb-dnav__chev { width: 1.1rem; height: 1.1rem; color: var(--fb-muted); transition: transform var(--fb-dur-2) var(--fb-ease); }
.fb-dnav__group[open] .fb-dnav__chev { transform: rotate(180deg); }
.fb-dnav__sub { margin: 0 0 0.75rem; padding: 0; list-style: none; }
.fb-dnav__sub a { display: flex; align-items: center; gap: 0.75rem; min-height: 2.9rem; padding-inline: 0.5rem; border-radius: var(--fb-r-sm); color: var(--fb-ink); text-decoration: none; }
.fb-dnav__sub a:hover { background: var(--fb-ivory); }
.fb-dnav__sub .fb-icon { width: 1.15rem; height: 1.15rem; color: var(--fb-green); }

/* ---------------- Location trigger ---------------- */
.fb-loctrigger {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	min-height: 3rem;
	padding: 0.6rem 1rem;
	border: 1.5px solid var(--fb-line-strong);
	border-radius: var(--fb-r-btn);
	background: var(--fb-white);
	color: var(--fb-muted);
	font: 500 var(--fb-fs-base) / 1.2 var(--fb-font);
	text-align: start;
	transition: border-color var(--fb-dur-1) var(--fb-ease), box-shadow var(--fb-dur-2) var(--fb-ease);
}
.fb-loctrigger:hover { border-color: var(--fb-green); box-shadow: 0 0 0 4px rgba(16, 93, 225, 0.1); }
.fb-loctrigger.is-set { color: var(--fb-ink); font-weight: 600; }
.fb-loctrigger__pin { flex: none; width: 1.3rem; height: 1.3rem; color: var(--fb-green); }
.fb-loctrigger__text { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fb-loctrigger__chev { flex: none; width: 1.1rem; height: 1.1rem; }
.fb-loctrigger--lg { width: 100%; min-height: 3.75rem; padding-inline: 1.15rem; font-size: var(--fb-fs-md); border-radius: var(--fb-r-md); box-shadow: var(--fb-sh-1); }

/* ---------------- Location dialog: panel on wide screens, bottom sheet on phones ---------------- */
.fb-locsheet {
	width: 100%;
	max-width: 100%;
	max-height: 100%;
	margin: auto 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--fb-ink);
	overflow: visible;
}
.fb-locsheet::backdrop { background: rgba(17, 17, 17, 0.5); }
.fb-locsheet[open] { animation: fb-sheet-up var(--fb-dur-2) var(--fb-ease); }
.fb-locsheet[open]::backdrop { animation: fb-fade var(--fb-dur-2) var(--fb-ease); }
@keyframes fb-sheet-up { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }

.fb-locsheet__panel {
	display: flex;
	flex-direction: column;
	max-height: 88vh;
	max-height: 88dvh;
	padding: 0.5rem 1.25rem max(1rem, env(safe-area-inset-bottom));
	border-radius: var(--fb-r-xl) var(--fb-r-xl) 0 0;
	background: var(--fb-white);
	box-shadow: var(--fb-sh-3);
}
.fb-locsheet__grab { width: 2.75rem; height: 0.3rem; margin: 0.25rem auto 0.5rem; border-radius: var(--fb-r-pill); background: var(--fb-line-strong); }
.fb-locsheet__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.fb-locsheet__title { margin: 0; font-size: var(--fb-fs-lg); }
.fb-locsheet__search { position: relative; margin-block: 0.75rem 0.5rem; }
.fb-locsheet__search-icon { position: absolute; inset-inline-start: 0.95rem; inset-block-start: 50%; width: 1.25rem; height: 1.25rem; color: var(--fb-muted); transform: translateY(-50%); pointer-events: none; }
.fb-locsheet__input {
	width: 100%;
	min-height: 3.25rem;
	padding: 0.75rem 1rem;
	padding-inline-start: 2.85rem;
	border: 1.5px solid var(--fb-line-strong);
	border-radius: var(--fb-r-md);
	font-size: var(--fb-fs-md);
}
.fb-locsheet__input:focus { outline: 0; border-color: var(--fb-green); box-shadow: 0 0 0 4px rgba(16, 93, 225, 0.16); }
.fb-locsheet__geo { display: inline-flex; align-items: center; gap: 0.5rem; align-self: flex-start; min-height: 2.75rem; padding: 0.4rem 0.25rem; border: 0; background: none; color: var(--fb-green); font-weight: 600; }
.fb-locsheet__geo:hover { color: var(--fb-green-900); text-decoration: underline; }
.fb-locsheet__geo .fb-icon { width: 1.2rem; height: 1.2rem; }
.fb-locsheet__status { margin: 0.25rem 0 0.5rem; color: var(--fb-muted); font-size: var(--fb-fs-sm); }
.fb-locsheet__status:empty { display: none; }
.fb-locsheet__body { flex: 1 1 auto; min-height: 12rem; overflow-y: auto; overscroll-behavior: contain; margin-inline: -0.25rem; padding-inline: 0.25rem; }
.fb-locsheet__results { margin: 0; padding: 0; list-style: none; }
.fb-locopt { display: grid; gap: 0.1rem; padding: 0.7rem 0.75rem; border-radius: var(--fb-r-md); cursor: pointer; }
.fb-locopt:hover,
.fb-locopt[aria-selected="true"] { background: var(--fb-green-50); }
.fb-locopt__name { font-weight: 600; }
.fb-locopt__meta { color: var(--fb-muted); font-size: var(--fb-fs-sm); }
.fb-locsheet__label { margin: 1rem 0 0.6rem; color: var(--fb-muted); font-size: var(--fb-fs-sm); font-weight: 600; letter-spacing: 0; }
.fb-locsheet__chips { gap: 0.5rem; }
.fb-locsheet__states { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.25rem; margin: 0; padding: 0; list-style: none; }
.fb-locsheet__state { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 2.75rem; padding: 0.5rem 0.75rem; border: 0; border-radius: var(--fb-r-sm); background: transparent; color: var(--fb-ink); text-align: start; }
.fb-locsheet__state:hover { background: var(--fb-ivory); }
.fb-locsheet__count { color: var(--fb-muted); font-size: var(--fb-fs-xs); }
.fb-locsheet__back { margin-block-start: 0.5rem; }
.fb-locsheet__note { color: var(--fb-muted); font-size: var(--fb-fs-sm); }
.fb-locsheet__foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block-start: 0.75rem; border-block-start: 1px solid var(--fb-line); margin-block-start: 0.5rem; }

@media (min-width: 40rem) {
	.fb-locsheet { width: min(38rem, 92vw); margin: auto; }
	.fb-locsheet__panel { max-height: min(42rem, 86vh); padding: 1.25rem 1.5rem 1rem; border-radius: var(--fb-r-xl); }
	.fb-locsheet__grab { display: none; }
	.fb-locsheet__states { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.fb-check { display: inline-flex; align-items: center; gap: 0.5rem; font-size: var(--fb-fs-sm); color: var(--fb-muted); cursor: pointer; }
.fb-check input { width: 1.1rem; height: 1.1rem; accent-color: var(--fb-green); }

/* ---------------- Toast ---------------- */
.fb-toast {
	position: fixed;
	inset-block-end: max(1.25rem, env(safe-area-inset-bottom));
	inset-inline-start: 50%;
	z-index: 120;
	max-width: min(28rem, 90vw);
	padding: 0.85rem 1.15rem;
	border-radius: var(--fb-r-md);
	background: var(--fb-brand-black);
	color: var(--fb-white);
	font-weight: 600;
	box-shadow: var(--fb-sh-3);
	transform: translate(-50%, 12px);
	opacity: 0;
	transition: transform var(--fb-dur-2) var(--fb-ease), opacity var(--fb-dur-2) var(--fb-ease);
}
[dir="rtl"] .fb-toast { transform: translate(50%, 12px); }
.fb-toast.is-in { transform: translate(-50%, 0); opacity: 1; }
[dir="rtl"] .fb-toast.is-in { transform: translate(50%, 0); }

/* ---------------- Chips and tags ---------------- */
.fb-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.fb-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	min-height: 2.5rem;
	padding: 0.4rem 0.95rem;
	border: 1px solid var(--fb-line);
	border-radius: var(--fb-r-pill);
	background: var(--fb-white);
	color: var(--fb-ink);
	font-size: var(--fb-fs-sm);
	font-weight: 500;
	text-decoration: none;
	transition: border-color var(--fb-dur-1) var(--fb-ease), background-color var(--fb-dur-1) var(--fb-ease), color var(--fb-dur-1) var(--fb-ease);
}
.fb-chip .fb-icon { width: 1.05rem; height: 1.05rem; color: var(--fb-green); }
a.fb-chip:hover,
.fb-chip--button:hover { border-color: var(--fb-green); color: var(--fb-green-900); background: var(--fb-green-50); }
.fb-chip--button { cursor: pointer; }
.fb-chip--button[aria-pressed="true"] { border-color: var(--fb-green); background: var(--fb-green); color: var(--fb-white); }
.fb-chip--strong { border-color: var(--fb-green); font-weight: 600; }
.fb-chip--static { cursor: default; }

.fb-tag { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.15rem 0.55rem; border-radius: var(--fb-r-pill); font-size: var(--fb-fs-xs); font-weight: 600; line-height: 1.5; white-space: nowrap; }
.fb-tag--soon { background: var(--fb-gray); color: var(--fb-muted); }
.fb-tag--gold { background: var(--fb-gold-50); color: var(--fb-gold-ink); box-shadow: inset 0 0 0 1px var(--fb-brand-blue-line); }

/* ---------------- Data badges and source line ---------------- */
.fb-badge { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.2rem 0.6rem; border-radius: var(--fb-r-pill); font-size: var(--fb-fs-xs); font-weight: 600; line-height: 1.4; white-space: nowrap; }
.fb-badge .fb-icon { width: 0.95rem; height: 0.95rem; }
.fb-badge--verified { background: var(--fb-ok-bg); color: var(--fb-ok); }
.fb-badge--user { background: var(--fb-user-bg); color: var(--fb-user); }
.fb-badge--unverified { background: var(--fb-warn-bg); color: var(--fb-warn); }
.fb-badge--unavailable { background: var(--fb-na-bg); color: var(--fb-na); }

.fb-source { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.75rem; margin: 0.5rem 0 0; color: var(--fb-muted); font-size: var(--fb-fs-xs); }
.fb-source a { color: inherit; }

.fb-legend { display: grid; gap: 1rem; margin: 0; }
.fb-legend__item { display: grid; gap: 0.35rem; }
.fb-legend__item dt { margin: 0; }
.fb-legend__item dd,
.fb-legend__item p { margin: 0; color: var(--fb-muted); font-size: var(--fb-fs-sm); }

/* ---------------- Notices ---------------- */
.fb-notice { display: flex; gap: 0.75rem; align-items: flex-start; margin: 0 0 1.5rem; padding: 0.9rem 1.1rem; border-radius: var(--fb-r-md); background: var(--fb-brand-blue-surface); border-inline-start: 4px solid var(--fb-brand-blue); color: var(--fb-ink); }
.fb-notice .fb-icon { flex: none; margin-top: 0.15rem; color: var(--fb-gold-ink); }
.fb-notice p { margin: 0; }
.fb-lang-notice { margin-block-start: 0; }

/* ---------------- Empty state ---------------- */
.fb-empty { display: grid; justify-items: start; gap: 0.6rem; padding: clamp(1.5rem, 4vw, 2.25rem); border: 1px dashed var(--fb-line-strong); border-radius: var(--fb-r-lg); background: var(--fb-white); }
.fb-empty__icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: var(--fb-r-md); background: var(--fb-green-50); color: var(--fb-green); }
.fb-empty__title { margin: 0.25rem 0 0; font-size: var(--fb-fs-lg); }
.fb-empty__text { margin: 0; max-width: 40rem; color: var(--fb-muted); }
.fb-empty__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-block-start: 0.4rem; }
.fb-empty__admin { margin: 0.4rem 0 0; padding: 0.6rem 0.8rem; border-radius: var(--fb-r-sm); background: var(--fb-user-bg); color: var(--fb-user); font-size: var(--fb-fs-sm); }

/* ---------------- Generic card (1.x compatible) ---------------- */
.fb-card { display: grid; gap: 0.5rem; height: 100%; padding: 1.4rem; border: 1px solid var(--fb-line); border-radius: var(--fb-r-lg); background: var(--fb-white); transition: box-shadow var(--fb-dur-2) var(--fb-ease), border-color var(--fb-dur-2) var(--fb-ease), transform var(--fb-dur-2) var(--fb-ease); }
.fb-card:hover { border-color: var(--fb-green-100); box-shadow: var(--fb-sh-2); }
.fb-card__icon { width: 1.75rem; height: 1.75rem; color: var(--fb-green); }
.fb-card__title { margin: 0; font-size: var(--fb-fs-md); }
.fb-card__text { margin: 0; color: var(--fb-muted); }
.fb-card__link { font-weight: 600; }

/* ---------------- Tables ---------------- */
.fb-table-wrap { overflow-x: auto; border: 1px solid var(--fb-line); border-radius: var(--fb-r-lg); background: var(--fb-white); }
.fb-table { width: 100%; min-width: 36rem; border-collapse: collapse; font-size: var(--fb-fs-sm); }
.fb-table caption { padding: 0.85rem 1rem; text-align: start; font-weight: 600; }
.fb-table th,
.fb-table td { padding: 0.85rem 1rem; text-align: start; vertical-align: top; border-block-start: 1px solid var(--fb-line); }
.fb-table thead th { border-block-start: 0; background: var(--fb-ivory); color: var(--fb-muted); font-size: var(--fb-fs-xs); font-weight: 600; }
.fb-table tbody th { font-weight: 600; }
.fb-table .is-num { text-align: end; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fb-table__sub { display: block; margin-block-start: 0.15rem; color: var(--fb-muted); font-size: var(--fb-fs-xs); font-weight: 400; white-space: normal; }
.fb-table__empty { padding: 1.25rem 1rem; color: var(--fb-muted); }
.fb-table-note { margin: 0.75rem 0 0; color: var(--fb-muted); font-size: var(--fb-fs-xs); }

/* ---------------- Breadcrumbs and page head ---------------- */
.fb-crumbs { margin: 0 0 0.85rem; font-size: var(--fb-fs-sm); }
.fb-crumbs ol { display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; margin: 0; padding: 0; list-style: none; }
.fb-crumbs li + li::before { content: "/"; margin-inline-end: 0.5rem; color: var(--fb-line-strong); }
.fb-crumbs a { color: var(--fb-muted); text-decoration: none; }
.fb-crumbs a:hover { color: var(--fb-green); text-decoration: underline; }
.fb-crumbs [aria-current] { color: var(--fb-ink); }

.fb-page-head { padding-block: clamp(2rem, 5vw, 3.25rem) clamp(1.5rem, 4vw, 2.25rem); background: linear-gradient(180deg, var(--fb-ivory), var(--fb-white)); border-block-end: 1px solid var(--fb-line); }
.fb-page-head__title { margin: 0; max-width: 48rem; font-size: var(--fb-fs-2xl); }
.fb-page-head__desc { margin: 0.75rem 0 0; max-width: 44rem; color: var(--fb-muted); font-size: var(--fb-fs-md); }

/* ---------------- Pagination ---------------- */
.navigation.pagination { margin-block-start: 2.5rem; }
.nav-links { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.nav-links .page-numbers { display: inline-grid; place-items: center; min-width: 2.75rem; min-height: 2.75rem; padding-inline: 0.75rem; border: 1px solid var(--fb-line); border-radius: var(--fb-r-btn); color: var(--fb-ink); font-weight: 600; text-decoration: none; }
.nav-links .page-numbers.current { background: var(--fb-green); border-color: var(--fb-green); color: var(--fb-white); }
.nav-links a.page-numbers:hover { border-color: var(--fb-green); background: var(--fb-green-50); }

/* ---------------- Accordion ---------------- */
.fb-accordion { display: grid; border-block-start: 1px solid var(--fb-line); }
.fb-accordion__item { border-block-end: 1px solid var(--fb-line); }
.fb-accordion__q { position: relative; display: block; padding: 1.15rem 0; padding-inline-end: 2.5rem; color: var(--fb-ink); font-size: var(--fb-fs-md); font-weight: 600; list-style: none; cursor: pointer; }
.fb-accordion__q::-webkit-details-marker { display: none; }
.fb-accordion__q:hover { color: var(--fb-green); }
.fb-accordion__icon { position: absolute; inset-inline-end: 0.25rem; inset-block-start: 50%; width: 1.25rem; height: 1.25rem; transform: translateY(-50%); }
.fb-accordion__icon::before,
.fb-accordion__icon::after { content: ""; position: absolute; inset: 50% 0 auto; height: 2px; margin-block-start: -1px; border-radius: 2px; background: var(--fb-green); transition: transform var(--fb-dur-2) var(--fb-ease); }
.fb-accordion__icon::after { transform: rotate(90deg); }
.fb-accordion__item[open] .fb-accordion__icon::after { transform: rotate(0deg); }
.fb-accordion__a { padding-block-end: 1.15rem; max-width: 46rem; color: var(--fb-muted); }
.fb-accordion__a p:last-child { margin: 0; }
.fb-accordion__item[open] .fb-accordion__a { animation: fb-rise var(--fb-dur-2) var(--fb-ease); }

/* ---------------- Ads ---------------- */
.fb-ad { margin: 0; padding-block: 1.5rem; }
.fb-ad__inner { max-width: 60rem; margin-inline: auto; padding-inline: var(--fb-gutter); text-align: center; }
.fb-ad__label { margin: 0 0 0.25rem; color: var(--fb-muted); font-size: 0.75rem; }
.fb-ad__slot { display: block; min-height: 7.5rem; overflow: hidden; }
.fb-ad--placeholder .fb-ad__slot { display: grid; place-items: center; padding: 1rem; border: 1px dashed var(--fb-line-strong); border-radius: var(--fb-r-md); background: var(--fb-ivory); color: var(--fb-muted); font-size: var(--fb-fs-sm); }
.entry-content .fb-ad { margin-block: 1.5rem; padding-block: 0; }

/* ---------------- Footer ---------------- */
.fb-footer { margin-block-start: 0; padding-block: clamp(3rem, 6vw, 4.5rem) 2rem; background: var(--fb-brand-black); color: rgba(255, 255, 255, 0.78); }
.fb-footer a { color: rgba(255, 255, 255, 0.86); text-decoration: none; }
.fb-footer a:hover { color: var(--fb-brand-blue-on-dark); text-decoration: underline; }
.fb-footer .fb-logo { color: var(--fb-white); }
.fb-footer .fb-logo__bg { fill: var(--fb-white); }
.fb-footer .fb-logo__f { stroke: var(--fb-brand-black); }
.fb-footer__top { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1.5rem; padding-block-end: 2rem; border-block-end: 1px solid rgba(255, 255, 255, 0.12); }
.fb-footer__brand { max-width: 26rem; }
.fb-footer__brand p { margin: 0.85rem 0 0; }
.fb-footer .fb-langs__list { border-color: rgba(255, 255, 255, 0.2); }
.fb-footer .fb-langs__link { color: rgba(255, 255, 255, 0.8); }
.fb-footer .fb-langs__link:hover { background: rgba(255, 255, 255, 0.08); color: var(--fb-white); text-decoration: none; }
.fb-footer .fb-langs__link.is-current { background: var(--fb-white); color: var(--fb-brand-black); }
.fb-footer__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; padding-block: 2.25rem; }
@media (min-width: 48rem) { .fb-footer__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 72rem) { .fb-footer__cols { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.fb-footer__title { margin: 0 0 0.85rem; color: var(--fb-white); font-size: var(--fb-fs-sm); font-weight: 600; letter-spacing: 0; }
.fb-footer__list { display: grid; gap: 0.6rem; margin: 0; padding: 0; list-style: none; font-size: var(--fb-fs-sm); }
.fb-footer__legal { padding-block-start: 1.5rem; border-block-start: 1px solid rgba(255, 255, 255, 0.12); font-size: var(--fb-fs-xs); }
.fb-footer__legal p { max-width: 62rem; margin: 0 0 1rem; color: rgba(255, 255, 255, 0.62); }
.fb-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem; }
.fb-footer__social { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0; padding: 0; list-style: none; }

/* ---------------- Icons ---------------- */
.fb-icon { flex: none; width: 1.25rem; height: 1.25rem; }
