/*
 * Forex Broker — single + archive shared styles.
 *
 * Keeps the page coherent without invoking the existing Tailwind build (which
 * would require touching tailwind.src.css for every iteration). Tokens chosen
 * to match the theme's existing dark glass aesthetic; refactor into Tailwind
 * utilities later if desired.
 */

:root {
	--fc-broker-accent: #6366f1;
	--fc-broker-card-bg: rgba(20, 24, 38, 0.65);
	--fc-broker-card-border: rgba(255, 255, 255, 0.08);
	--fc-broker-text-dim: rgba(255, 255, 255, 0.62);
	--fc-broker-text-faint: rgba(255, 255, 255, 0.42);
	--fc-broker-radar-shape: var(--fc-broker-accent);
}

.fc-broker-page main {
	color: rgba(255, 255, 255, 0.92);
}

/* ── Section heading + rating chip ─────────────────────────────────── */
.fc-broker-section {
	margin: 48px 0;
}
.fc-broker-section__head {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 18px;
	border-bottom: 1px solid var(--fc-broker-card-border);
	padding-bottom: 10px;
}
.fc-broker-section__title {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 700;
	flex: 1 1 auto;
}
.fc-broker-chip {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 12px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid var(--fc-broker-card-border);
}
.fc-broker-chip--high { background: rgba(34, 197, 94, 0.14); border-color: rgba(34, 197, 94, 0.35); }
.fc-broker-chip--mid  { background: rgba(234, 179, 8, 0.12);  border-color: rgba(234, 179, 8, 0.32); }
.fc-broker-chip--low  { background: rgba(239, 68, 68, 0.14);  border-color: rgba(239, 68, 68, 0.35); }
.fc-broker-chip__label  { font-weight: 600; }
.fc-broker-chip__value  { font-weight: 700; }
.fc-broker-chip__max    { color: var(--fc-broker-text-faint); font-size: 11px; }

/* ── Hero ──────────────────────────────────────────────────────────── */
.fc-broker-hero {
	display: grid;
	grid-template-columns: 1fr 420px;
	gap: 32px;
	padding: 32px;
	background: var(--fc-broker-card-bg);
	border: 1px solid var(--fc-broker-card-border);
	border-radius: 16px;
	margin: 24px 0 48px;
	position: relative;
	overflow: hidden;
}
.fc-broker-hero::before {
	content: '';
	position: absolute; top: 0; left: 0; right: 0; height: 3px;
	background: var(--fc-broker-accent);
	opacity: 0.6;
}
@media (max-width: 900px) {
	.fc-broker-hero { grid-template-columns: 1fr; padding: 20px; }
	.fc-broker-hero__panel { order: -1; }
}
.fc-broker-hero__main { display: flex; flex-direction: column; gap: 14px; }
.fc-broker-hero__logo { display: flex; align-items: center; gap: 12px; }
.fc-broker-hero__logo-name { font-size: 1.4rem; font-weight: 700; }
.fc-broker-hero__title { font-size: 2rem; font-weight: 800; margin: 0; line-height: 1.15; }
.fc-broker-hero__byline { color: var(--fc-broker-text-dim); margin: 0; font-size: 14px; }
.fc-broker-hero__byline a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.fc-broker-hero__tagline { color: var(--fc-broker-text-dim); font-size: 1.05rem; margin: 0; }
.fc-broker-hero__cta { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-top: 8px; }
.fc-broker-hero__website {
	color: var(--fc-broker-text-dim);
	text-decoration: underline;
	text-underline-offset: 3px;
	font-size: 14px;
}
.fc-broker-hero__panel { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.fc-broker-hero__radar-wrap { width: 100%; max-width: 360px; }
.fc-broker-hero__overall {
	display: inline-flex; align-items: baseline; gap: 4px;
	background: rgba(255,255,255,0.04); padding: 8px 16px; border-radius: 999px;
}
.fc-broker-hero__overall-label { color: var(--fc-broker-text-dim); font-size: 13px; }
.fc-broker-hero__overall-value { font-size: 1.6rem; font-weight: 800; }
.fc-broker-hero__overall-max   { color: var(--fc-broker-text-faint); font-size: 13px; }

/* ── Logos (§4.9 spec'd class names) ───────────────────────────────── */
.fc-broker-logo-icon       { aspect-ratio: 1/1;  object-fit: contain; width: 56px; height: 56px; border-radius: 12px; background: rgba(255,255,255,0.04); padding: 6px; }
.fc-broker-logo-full       { aspect-ratio: 3/1;  object-fit: contain; max-height: 64px; max-width: 240px; }
.fc-broker-logo-letterbox  {
	aspect-ratio: 1/1; object-fit: contain;
	background: var(--logo-bg, rgba(255,255,255,0.08));
	padding: 8%; border-radius: 12px;
	display: inline-grid; place-items: center;
	width: 56px; height: 56px;
}
.fc-broker-logo-letterbox img { max-width: 100%; max-height: 100%; object-fit: contain; }
.fc-broker-logo-textbadge {
	background: var(--logo-bg, #1e40af);
	color: white; font-weight: 700;
	aspect-ratio: 1/1; display: grid; place-items: center;
	width: 56px; height: 56px;
	border-radius: 12px; font-size: 1.25rem;
	letter-spacing: 0.02em;
}

/* ── Radar ─────────────────────────────────────────────────────────── */
.fc-broker-radar { width: 100%; height: auto; display: block; }
.fc-broker-radar__grid polygon, .fc-broker-radar__grid line { stroke: rgba(255,255,255,0.10); fill: none; }
.fc-broker-radar__shape {
	fill: var(--fc-broker-radar-shape); fill-opacity: 0.22;
	stroke: var(--fc-broker-radar-shape); stroke-width: 2; stroke-linejoin: round;
	transition: all 200ms ease-out;
}
.fc-broker-radar__label-name { font-size: 11px; font-weight: 600; fill: rgba(255,255,255,0.86); }
.fc-broker-radar__label-value { font-size: 12px; font-weight: 700; fill: var(--fc-broker-radar-shape); }

/* ── View switcher + customise modal ───────────────────────────────── */
.fc-broker-view-switcher { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: center; }
.fc-broker-view-switcher__label { font-size: 12px; color: var(--fc-broker-text-dim); }
.fc-broker-view-switcher__chips { display: flex; gap: 6px; flex-wrap: wrap; }
.fc-broker-view-chip {
	padding: 5px 12px; font-size: 12px; font-weight: 600;
	background: rgba(255,255,255,0.04); color: rgba(255,255,255,0.78);
	border: 1px solid var(--fc-broker-card-border); border-radius: 999px;
	cursor: pointer;
}
.fc-broker-view-chip:hover { background: rgba(255,255,255,0.08); }
.fc-broker-view-chip.is-active { background: var(--fc-broker-accent); color: white; border-color: var(--fc-broker-accent); }
.fc-broker-view-chip--custom { font-style: italic; }

.fc-broker-customise-modal {
	border: 1px solid var(--fc-broker-card-border); border-radius: 12px;
	background: #14182a; color: white; padding: 24px; max-width: 520px;
}
.fc-broker-customise-modal::backdrop { background: rgba(0,0,0,0.55); }
.fc-broker-customise-modal h3 { margin: 0 0 6px; }
.fc-broker-customise-hint { color: var(--fc-broker-text-dim); margin: 0 0 16px; font-size: 13px; }
.fc-broker-customise-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 18px; }
.fc-broker-customise-grid label { display: flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; }
.fc-broker-customise-actions { display: flex; gap: 8px; justify-content: flex-end; }

/* ── CTA ───────────────────────────────────────────────────────────── */
.fc-broker-cta {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	padding: 12px 22px; font-weight: 700;
	background: var(--fc-broker-accent); color: white;
	border-radius: 10px; text-decoration: none;
	transition: filter 120ms ease;
}
.fc-broker-cta:hover, .fc-broker-cta:focus { filter: brightness(1.08); color: white; }
.fc-broker-cta--full-width { width: 100%; padding: 16px 22px; font-size: 1.05rem; }

/* ── Country badge ─────────────────────────────────────────────────── */
.fc-broker-country-badge {
	display: flex; gap: 14px; align-items: flex-start;
	padding: 14px 16px; border-radius: 12px;
	background: rgba(255,255,255,0.04);
	border: 1px solid var(--fc-broker-card-border);
}
.fc-broker-country-badge--supported            { border-color: rgba(34, 197, 94, 0.4); background: rgba(34, 197, 94, 0.08); }
.fc-broker-country-badge--accepts_with_warning { border-color: rgba(234, 179, 8, 0.45); background: rgba(234, 179, 8, 0.08); }
.fc-broker-country-badge--restricted           { border-color: rgba(239, 68, 68, 0.45); background: rgba(239, 68, 68, 0.08); }
.fc-broker-country-badge__icon { font-size: 1.4rem; line-height: 1; }
.fc-broker-country-badge__body { display: flex; flex-direction: column; gap: 4px; }
.fc-broker-country-badge__entity, .fc-broker-country-badge__terms { font-size: 13px; color: var(--fc-broker-text-dim); }
.fc-broker-country-badge__alt { color: inherit; text-decoration: underline; font-size: 14px; }

/* ── Quick facts strip ─────────────────────────────────────────────── */
.fc-broker-quickfacts {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 1px; background: var(--fc-broker-card-border);
	border: 1px solid var(--fc-broker-card-border); border-radius: 12px; overflow: hidden;
	margin: 0 0 24px;
}
.fc-broker-quickfacts > div {
	background: var(--fc-broker-card-bg);
	padding: 14px 16px;
	display: flex; flex-direction: column; gap: 4px;
}
.fc-broker-quickfacts dt { color: var(--fc-broker-text-dim); font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; margin: 0; }
.fc-broker-quickfacts dd { margin: 0; font-size: 1.15rem; font-weight: 700; }

/* ── Tables ────────────────────────────────────────────────────────── */
.fc-broker-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.fc-broker-table th, .fc-broker-table td {
	padding: 10px 12px; text-align: left;
	border-bottom: 1px solid var(--fc-broker-card-border);
}
.fc-broker-table th { font-weight: 700; color: var(--fc-broker-text-dim); font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; }
.fc-broker-table tr:hover td { background: rgba(255,255,255,0.02); }

/* ── Pros / cons ───────────────────────────────────────────────────── */
.fc-broker-proscons { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 700px) { .fc-broker-proscons { grid-template-columns: 1fr; } }
.fc-broker-proscons > div {
	padding: 18px; border-radius: 12px;
	border: 1px solid var(--fc-broker-card-border);
	background: var(--fc-broker-card-bg);
}
.fc-broker-proscons h4 { margin: 0 0 10px; font-size: 1.05rem; }
.fc-broker-proscons ul { margin: 0; padding-left: 1.1em; }
.fc-broker-proscons li { margin: 4px 0; }
.fc-broker-proscons--pros { border-color: rgba(34, 197, 94, 0.35); }
.fc-broker-proscons--cons { border-color: rgba(239, 68, 68, 0.35); }

/* ── Regulation cards ──────────────────────────────────────────────── */
.fc-broker-reg-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.fc-broker-reg-card {
	padding: 18px; border-radius: 12px;
	border: 1px solid var(--fc-broker-card-border);
	background: var(--fc-broker-card-bg);
	display: flex; flex-direction: column; gap: 6px;
}
.fc-broker-reg-card__regulator { font-size: 0.95rem; font-weight: 700; }
.fc-broker-reg-card__license   { color: var(--fc-broker-text-dim); font-family: monospace; font-size: 13px; }
.fc-broker-reg-card__entity    { color: var(--fc-broker-text-dim); font-size: 13px; }
.fc-broker-reg-card__source a  { color: inherit; text-decoration: underline; font-size: 12px; }
.fc-broker-reg-card__status {
	display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 600;
	background: rgba(34,197,94,0.18); color: rgba(34,197,94,0.95);
}
.fc-broker-reg-card__status--revoked { background: rgba(239,68,68,0.18); color: rgba(239,68,68,0.95); }
.fc-broker-reg-card__status--warning { background: rgba(234,179,8,0.18); color: rgba(234,179,8,0.95); }
.fc-broker-reg-card__status--expired { background: rgba(150,150,150,0.18); color: rgba(150,150,150,0.95); }

/* ── Asset universe bars ───────────────────────────────────────────── */
.fc-broker-bars { display: flex; flex-direction: column; gap: 8px; }
.fc-broker-bars__row { display: grid; grid-template-columns: 140px 1fr 60px; align-items: center; gap: 10px; font-size: 14px; }
.fc-broker-bars__name { color: var(--fc-broker-text-dim); }
.fc-broker-bars__bar  { height: 10px; background: rgba(255,255,255,0.06); border-radius: 999px; overflow: hidden; }
.fc-broker-bars__fill { height: 100%; background: var(--fc-broker-accent); border-radius: 999px; }
.fc-broker-bars__count { font-weight: 700; text-align: right; }

/* ── Adjacent products (cards) ─────────────────────────────────────── */
.fc-broker-adjacent { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.fc-broker-adjacent__card {
	padding: 14px; border-radius: 10px;
	border: 1px solid var(--fc-broker-card-border);
	background: var(--fc-broker-card-bg);
}
.fc-broker-adjacent__icon { font-size: 1.4rem; line-height: 1; margin-bottom: 6px; }
.fc-broker-adjacent__name { font-weight: 700; margin: 0 0 4px; }
.fc-broker-adjacent__detail { color: var(--fc-broker-text-dim); font-size: 13px; margin: 0; }

/* ── Events timeline ───────────────────────────────────────────────── */
.fc-broker-timeline { display: flex; flex-direction: column; gap: 14px; padding-left: 24px; border-left: 2px solid var(--fc-broker-card-border); }
.fc-broker-timeline__entry { position: relative; }
.fc-broker-timeline__entry::before {
	content: ''; position: absolute; left: -30px; top: 6px;
	width: 10px; height: 10px; border-radius: 50%;
	background: var(--fc-broker-accent);
}
.fc-broker-timeline__date { color: var(--fc-broker-text-dim); font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; }
.fc-broker-timeline__headline { font-weight: 600; margin: 4px 0; }
.fc-broker-timeline__source { font-size: 12px; }
.fc-broker-timeline__source a { color: var(--fc-broker-text-dim); text-decoration: underline; }
.fc-broker-timeline__entry--severe   { --fc-broker-accent: #ef4444; }
.fc-broker-timeline__entry--warning  { --fc-broker-accent: #eab308; }
.fc-broker-timeline__entry--notable  { --fc-broker-accent: #6366f1; }

/* ── FAQ ───────────────────────────────────────────────────────────── */
.fc-broker-faq__entry {
	padding: 14px 16px;
	border: 1px solid var(--fc-broker-card-border);
	border-radius: 10px;
	background: var(--fc-broker-card-bg);
	margin-bottom: 10px;
}
.fc-broker-faq__entry > summary { cursor: pointer; font-weight: 600; }
.fc-broker-faq__answer { margin: 10px 0 0; color: var(--fc-broker-text-dim); }

/* ── Related rail (cards / mini cards) ─────────────────────────────── */
.fc-broker-related-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.fc-broker-card {
	padding: 16px;
	border: 1px solid var(--fc-broker-card-border);
	border-radius: 12px;
	background: var(--fc-broker-card-bg);
	transition: transform 120ms ease, border-color 120ms ease;
}
.fc-broker-card:hover { transform: translateY(-2px); border-color: var(--fc-broker-accent); }
.fc-broker-card__link { display: flex; flex-direction: column; gap: 8px; color: inherit; text-decoration: none; }
.fc-broker-card__name { margin: 0; font-size: 1.05rem; }
.fc-broker-card__score { font-size: 13px; color: var(--fc-broker-text-dim); }
.fc-broker-card__facts { display: flex; gap: 14px; margin: 0; padding: 0; }
.fc-broker-card__facts > div { display: flex; gap: 4px; font-size: 12px; }
.fc-broker-card__facts dt { color: var(--fc-broker-text-faint); margin: 0; }
.fc-broker-card__facts dd { margin: 0; font-weight: 600; }

.fc-broker-card-mini {
	display: flex; gap: 10px; align-items: center;
	padding: 10px 12px; border-radius: 10px;
	background: var(--fc-broker-card-bg);
	border: 1px solid var(--fc-broker-card-border);
	color: inherit; text-decoration: none;
}
.fc-broker-card-mini:hover { border-color: var(--fc-broker-accent); }
.fc-broker-card-mini__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fc-broker-card-mini__name { font-weight: 600; }
.fc-broker-card-mini__score { font-size: 12px; color: var(--fc-broker-text-dim); }

/* ── Provenance badge ──────────────────────────────────────────────── */
.fc-broker-provenance {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 14px; border-radius: 999px;
	background: rgba(255,255,255,0.04);
	border: 1px solid var(--fc-broker-card-border);
	font-size: 13px;
}

/* ── Editorial verdict footer signals (E-E-A-T §13.4) ──────────────── */
.fc-broker-eeat-footer {
	margin-top: 32px; padding: 18px;
	border: 1px dashed var(--fc-broker-card-border);
	border-radius: 12px;
	color: var(--fc-broker-text-dim);
	font-size: 14px;
}
.fc-broker-eeat-footer a { color: inherit; text-decoration: underline; }
.fc-broker-eeat-footer ul { margin: 8px 0 0; padding-left: 1.1em; }

/* ── Inline citations on regulation source URLs (E-E-A-T) ──────────── */
.fc-broker-cite { font-size: 11px; color: var(--fc-broker-text-faint); margin-left: 4px; }
.fc-broker-cite a { color: inherit; text-decoration: underline; }

/* =============================================================================
   ARCHIVE — filter sidebar + sort bar + grid + pagination
   ============================================================================= */

.fc-broker-archive {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 28px;
	margin: 24px 0;
}
@media (max-width: 900px) { .fc-broker-archive { grid-template-columns: 1fr; } }

.fc-broker-archive__head {
	margin-bottom: 8px;
}
.fc-broker-archive__title {
	font-size: 2rem;
	font-weight: 800;
	margin: 0 0 6px;
}
.fc-broker-archive__intro {
	color: var(--fc-broker-text-dim);
	margin: 0;
}

/* ── Filter sidebar ────────────────────────────────────────────────── */
.fc-broker-filter-form {
	background: var(--fc-broker-card-bg);
	border: 1px solid var(--fc-broker-card-border);
	border-radius: 12px;
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	position: sticky;
	top: 80px;
	max-height: calc(100vh - 100px);
	overflow-y: auto;
}
.fc-broker-filter-form__head {
	display: flex; align-items: center; justify-content: space-between;
	margin-bottom: 8px;
}
.fc-broker-filter-form__clear {
	font-size: 12px;
	color: var(--fc-broker-text-dim);
	text-decoration: underline;
}
.fc-broker-filter-form__apply {
	margin-top: 14px;
	width: 100%;
}
.fc-broker-filter-group {
	border-bottom: 1px solid var(--fc-broker-card-border);
	padding: 8px 0;
}
.fc-broker-filter-group:last-of-type { border-bottom: none; }
.fc-broker-filter-group > summary {
	cursor: pointer;
	font-weight: 600;
	font-size: 13px;
	padding: 4px 0;
	list-style: none;
	display: flex; align-items: center; justify-content: space-between;
}
.fc-broker-filter-group > summary::after { content: '+'; color: var(--fc-broker-text-faint); }
.fc-broker-filter-group[open] > summary::after { content: '–'; }
.fc-broker-filter-group__hint { font-weight: 400; font-size: 11px; color: var(--fc-broker-text-faint); }
.fc-broker-filter-group__body {
	padding: 8px 0 4px;
	display: flex; flex-direction: column; gap: 6px;
}
.fc-broker-filter-group__body label {
	display: flex; align-items: center; gap: 8px;
	font-size: 13px; color: rgba(255,255,255,0.86);
	cursor: pointer;
}
.fc-broker-filter-group__body select {
	width: 100%; padding: 6px 8px;
	background: rgba(255,255,255,0.04); color: white;
	border: 1px solid var(--fc-broker-card-border); border-radius: 6px;
}

/* ── Sort bar ───────────────────────────────────────────────────────── */
.fc-broker-sort-bar {
	display: flex; align-items: center; justify-content: space-between;
	padding: 12px 0 16px;
	gap: 12px; flex-wrap: wrap;
}
.fc-broker-sort-bar__count { color: var(--fc-broker-text-dim); font-size: 14px; }
.fc-broker-sort-bar__form  { display: flex; align-items: center; gap: 8px; }
.fc-broker-sort-bar__label { font-size: 13px; color: var(--fc-broker-text-dim); }
.fc-broker-sort-bar select.fc-select,
.fc-broker-sort-bar__form select {
	padding: 6px 10px;
	background: rgba(255,255,255,0.04); color: white;
	border: 1px solid var(--fc-broker-card-border); border-radius: 6px;
	font-size: 13px;
}

/* ── Grid + cards (compare button) ─────────────────────────────────── */
.fc-broker-archive__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 14px;
}
.fc-broker-card { position: relative; }
.fc-broker-card__compare {
	position: absolute; top: 10px; right: 10px;
	background: rgba(255,255,255,0.08);
	border: 1px solid var(--fc-broker-card-border);
	color: white; font-size: 11px; font-weight: 600;
	padding: 4px 8px; border-radius: 999px;
	cursor: pointer;
	transition: background 120ms ease;
}
.fc-broker-card__compare:hover { background: rgba(255,255,255,0.16); }
.fc-broker-card__compare.is-added {
	background: var(--fc-broker-accent);
	border-color: var(--fc-broker-accent);
}

/* ── Pagination ─────────────────────────────────────────────────────── */
.fc-broker-pagination {
	display: flex; justify-content: center; flex-wrap: wrap; gap: 8px;
	margin: 32px 0 16px;
}
.fc-broker-pagination a, .fc-broker-pagination span, .fc-broker-pagination button {
	padding: 6px 12px; font-size: 13px; font-weight: 600;
	background: rgba(255,255,255,0.06); color: white;
	border: 1px solid var(--fc-broker-card-border); border-radius: 8px;
	text-decoration: none;
}
.fc-broker-pagination a:hover { background: rgba(255,255,255,0.12); }
.fc-broker-pagination .is-current {
	background: var(--fc-broker-accent); border-color: var(--fc-broker-accent);
}
.fc-broker-pagination form { display: flex; align-items: center; gap: 4px; margin-left: 4px; }
.fc-broker-pagination input[type=number] {
	width: 56px; padding: 6px 8px; text-align: center;
	background: rgba(255,255,255,0.04); color: white;
	border: 1px solid var(--fc-broker-card-border); border-radius: 6px;
}

/* ── Empty state ────────────────────────────────────────────────────── */
.fc-broker-archive__empty {
	padding: 40px 20px;
	text-align: center;
	color: var(--fc-broker-text-dim);
	border: 1px dashed var(--fc-broker-card-border);
	border-radius: 12px;
}

/* =============================================================================
   COMPARE CART (floating drawer)
   ============================================================================= */

.fc-broker-compare-cart {
	position: fixed;
	/* Lifted off the bottom edge so it clears the sticky footer ad slot.
	   Tunable via --fc-cart-bottom-offset if a per-page override is needed. */
	bottom: var(--fc-cart-bottom-offset, 96px); right: 16px;
	width: 320px; max-width: calc(100vw - 32px);
	background: #14182a;
	border: 1px solid var(--fc-broker-card-border);
	border-radius: 14px;
	padding: 14px;
	box-shadow: 0 12px 32px rgba(0,0,0,0.45);
	z-index: 50;
	display: flex; flex-direction: column; gap: 10px;
}
@media (max-width: 700px) {
	.fc-broker-compare-cart {
		left: 8px; right: 8px; bottom: var(--fc-cart-bottom-offset, 80px); width: auto;
	}
}
.fc-broker-compare-cart[hidden] { display: none; }
.fc-broker-compare-cart__head {
	display: flex; align-items: center; justify-content: space-between;
}
.fc-broker-compare-cart__title { font-size: 14px; }
.fc-broker-compare-cart__clear {
	background: transparent; border: 0; color: var(--fc-broker-text-faint);
	font-size: 20px; line-height: 1; padding: 0 4px; cursor: pointer;
}
.fc-broker-compare-cart__items {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-direction: column; gap: 6px;
}
.fc-broker-compare-cart__item {
	display: flex; align-items: center; gap: 8px;
	padding: 6px 8px;
	background: rgba(255,255,255,0.05);
	border-radius: 8px;
	font-size: 13px;
}
.fc-broker-compare-cart__icon {
	width: 22px; height: 22px; border-radius: 4px; object-fit: contain;
	background: rgba(255,255,255,0.08);
}
.fc-broker-compare-cart__name { flex: 1 1 auto; }
.fc-broker-compare-cart__remove {
	background: transparent; border: 0; color: var(--fc-broker-text-faint);
	font-size: 16px; line-height: 1; cursor: pointer; padding: 0 4px;
}
.fc-broker-compare-cart__actions { margin-top: 4px; }
.fc-broker-cta.is-disabled {
	opacity: 0.5; cursor: not-allowed; pointer-events: auto;
}

/* =============================================================================
   COMPARE PAGE — side-by-side spec table
   ============================================================================= */

.fc-broker-compare-page {
	padding: 24px 0;
}
.fc-broker-compare-page__head {
	margin-bottom: 24px;
}
.fc-broker-compare-page__title {
	font-size: 1.85rem; font-weight: 800; margin: 0 0 6px;
}
.fc-broker-compare-page__sub {
	color: var(--fc-broker-text-dim); margin: 0;
}
.fc-broker-compare-table {
	width: 100%; border-collapse: collapse;
	background: var(--fc-broker-card-bg);
	border: 1px solid var(--fc-broker-card-border);
	border-radius: 12px;
	overflow: hidden;
	font-size: 14px;
}
.fc-broker-compare-table th, .fc-broker-compare-table td {
	padding: 12px 14px;
	text-align: center;
	border-bottom: 1px solid var(--fc-broker-card-border);
	vertical-align: middle;
}
.fc-broker-compare-table__row-label {
	text-align: left;
	font-weight: 600;
	color: var(--fc-broker-text-dim);
	width: 200px;
}
.fc-broker-compare-table__group th {
	background: rgba(255,255,255,0.04);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 11px;
	color: var(--fc-broker-text-faint);
	text-align: left;
	padding: 10px 14px;
}
.fc-broker-compare-table__broker-cell { width: 22%; padding: 18px 14px; vertical-align: top; }
.fc-broker-compare-table__broker-head {
	display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.fc-broker-compare-table__broker-name {
	font-weight: 700; color: white; text-decoration: none;
}
.fc-broker-compare-table__broker-name:hover { text-decoration: underline; }
.fc-broker-compare-table__overall {
	display: inline-flex; align-items: baseline; gap: 4px;
	background: rgba(255,255,255,0.06); padding: 4px 10px; border-radius: 999px;
	font-size: 13px;
}
.fc-broker-compare-table__overall.is-winner {
	background: rgba(34,197,94,0.18);
	border: 1px solid rgba(34,197,94,0.45);
}
.fc-broker-compare-table td.is-winner {
	background: rgba(34,197,94,0.10);
	font-weight: 700;
}
.fc-broker-compare-table__sub { color: var(--fc-broker-text-faint); font-size: 11px; }
.fc-broker-compare-table__summary {
	text-align: left;
	font-size: 13px;
	line-height: 1.5;
	color: var(--fc-broker-text-dim);
	max-width: 280px;
	vertical-align: top;
}

/* "Add another to compare" picker */
.fc-broker-compare-add-picker {
	display: flex; align-items: center; gap: 10px;
	padding: 16px;
	margin-top: 16px;
	border: 1px dashed var(--fc-broker-card-border);
	border-radius: 12px;
	color: var(--fc-broker-text-dim);
	font-size: 14px;
}
.fc-broker-compare-add-picker select {
	padding: 6px 10px;
	background: rgba(255,255,255,0.04); color: white;
	border: 1px solid var(--fc-broker-card-border); border-radius: 6px;
}

/* ════════════════════════════════════════════════════════════════════
 * Hand-crafted broker reviews — minimal CSS for inline helpers only.
 *
 * The fc_broker_prose() shell uses pure Tailwind utility classes that
 * mirror fc_v2_render_summary / fc_v2_render_verdict (rounded-2xl,
 * bg-fc-card, border-fc-line, text-fc-tealsoft eyebrow, font-heading h2).
 * That keeps prose blocks visually identical to the surrounding v2
 * sections — same teal accent, same card depth, same eyebrow pattern.
 *
 * Only inline cells and the admin-error placeholder need custom CSS.
 * ══════════════════════════════════════════════════════════════════ */

/* Inline comparison cell (fc_broker_compare_inline output).
   Teal-tinted pill, matches the fc-tealsoft accent used elsewhere. */
.fc-broker-compare-cell {
	display: inline-block;
	padding: 1px 7px;
	margin: 0 1px;
	background: rgba(94, 234, 212, 0.12);
	border: 1px solid rgba(94, 234, 212, 0.30);
	border-radius: 6px;
	font-weight: 600;
	font-size: 0.92em;
	color: rgba(255, 255, 255, 0.92);
}
.fc-broker-compare-cell--missing {
	background: rgba(255, 255, 255, 0.04);
	border-color: var(--fc-broker-card-border);
	color: var(--fc-broker-text-faint);
	font-weight: 500;
}
.fc-broker-compare-cell__broker {
	font-size: 0.85em;
	color: var(--fc-broker-text-faint);
	margin-left: 2px;
}

/* Admin-only error placeholder when a per-broker include throws. */
.fc-broker-prose--error {
	border: 1px solid rgba(239, 68, 68, 0.45);
	background: rgba(239, 68, 68, 0.10);
	color: rgba(254, 226, 226, 0.95);
	padding: 16px 20px;
	border-radius: 10px;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 0.85rem;
}


/* ════════════════════════════════════════════════════════════════════════
 * HAND-CRAFTED BROKER REVIEW SYSTEM (fcb-* prefix)
 *
 * Used by per-broker files at theme/breek-child/brokers/{slug}.php via the
 * fc_broker_section_* helpers in inc/broker-loader.php. Visual reference:
 * docs/mockup/broker-xm-full.html.
 *
 * All classes prefixed with `fcb-` to avoid collision with the v1/v2 broker
 * styles above. Body element gets class .fcb-page on hand-crafted broker
 * pages (single-forex_broker.php applies it when a custom file is detected).
 *
 * Design tokens defined as CSS custom properties on .fcb-page — change a
 * variable to re-theme every hand-crafted review on the site.
 * ══════════════════════════════════════════════════════════════════════ */

/* --fcb-* design tokens moved to assets/css/design-tokens.css — loaded first
   on every page. Extend that file, not this one. See docs/design-system/tokens.md. */

/* The site-wide ambient bg (4-radial gradient) is already applied to body in
   portal.css — we don't override it here. Page chrome is the parent theme's
   header + footer. */

/* Matches site-wide .fc-max-w (portal.css:7) so the breadcrumb, hero,
   body, and sidebar all share the same outer edges. */
.fcb-container { max-width: 1160px; margin: 0 auto; padding: 0 10px; }
@media (min-width: 1200px) { .fcb-container { padding: 0; } }
/* Full-width intro zone above the body+sidebar grid. Holds hero + best-for. */
.fcb-intro { padding-top: 24px; padding-bottom: 24px; }
.fcb-intro > .fcb-hero { margin-bottom: 24px; }

/* ─── Pills (used in hero + tables + cards) ───────────────────────────── */
.fcb-pill { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.2rem 0.65rem; border-radius: 999px; font-size: 11px; font-weight: 600; }
.fcb-pill--good   { background: rgba(52,211,153,0.12); color: var(--fcb-good); border: 1px solid rgba(52,211,153,0.30); }
.fcb-pill--warn   { background: rgba(245,158,11,0.12); color: #fbbf24;        border: 1px solid rgba(245,158,11,0.30); }
.fcb-pill--bad    { background: rgba(244,63,94,0.12);  color: #fb7185;        border: 1px solid rgba(244,63,94,0.30); }
.fcb-pill--teal   { background: rgba(94,234,212,0.10); color: var(--fcb-accent-text); border: 1px solid rgba(94,234,212,0.30); }
.fcb-pill--purple { background: rgba(168,85,247,0.12); color: #c4b5fd;        border: 1px solid rgba(168,85,247,0.30); }
.fcb-pill--orange { background: rgba(249,115,22,0.12); color: #fb923c;        border: 1px solid rgba(249,115,22,0.30); }
.fcb-pill--neut   { background: rgba(148,163,184,0.10); color: #cbd5e1;       border: 1px solid rgba(148,163,184,0.20); }

/* ─── Hero ───────────────────────────────────────────────────────────── */
.fcb-hero {
	position: relative; overflow: hidden; margin: 1.5rem 0 1.25rem;
	border: 1px solid var(--fcb-border); border-radius: var(--fcb-radius-lg);
	padding: clamp(1.5rem, 4vw, 2.5rem);
	background: var(--fcb-card); backdrop-filter: blur(8px);
}
.fcb-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at top right, rgba(94,234,212,0.10), transparent 60%); }
.fcb-hero__top { display: grid; grid-template-columns: 1fr 320px; gap: 2rem; align-items: start; position: relative; }
@media (max-width: 900px) { .fcb-hero__top { grid-template-columns: 1fr; } }
.fcb-hero__pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.25rem; }
.fcb-hero__title { font-family: var(--fcb-font-display); font-weight: 800; font-size: clamp(2rem, 5vw, 3.4rem); line-height: 1.06; letter-spacing: -0.025em; margin: 0; color: white; overflow-wrap: anywhere; word-break: normal; hyphens: auto; }
.fcb-hero__title-grad { background: var(--fcb-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.fcb-hero__year { color: var(--fcb-text-faint); font-weight: 400; }
.fcb-hero__tagline { color: var(--fcb-text-soft); margin: 1rem 0 0; font-size: 1.05rem; line-height: 1.65; max-width: 60ch; }

/* Hero CTA — logo + primary affiliate button + value-prop hint, all
   flex siblings. Wraps inline when the column has the room; collapses
   to stacked rows on narrow viewports. */
.fcb-hero__cta { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0.5rem; margin-top: 1rem; }
.fcb-hero__cta-logo { display: flex; align-items: center; justify-content: center; min-height: 38px; min-width: 38px; padding: 0.2rem 0.55rem; background: white; border-radius: 8px; box-shadow: 0 4px 12px -6px rgba(0,0,0,0.45); flex: 0 0 auto; }
.fcb-hero__cta-logo img { display: block; max-height: 100%; max-width: 140px; width: auto; height: auto; object-fit: contain; }
.fcb-hero__cta-btn { display: inline-flex; align-items: center; gap: 0.55rem; padding: 0.4rem 1rem; border-radius: 8px; background: var(--fcb-grad); color: white; text-decoration: none; box-shadow: 0 6px 18px -8px rgba(168,85,247,0.55), inset 0 1px 0 rgba(255,255,255,0.2); transition: transform 150ms, box-shadow 150ms, filter 150ms; flex: 0 0 auto; }
.fcb-hero__cta-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 24px -10px rgba(168,85,247,0.7), inset 0 1px 0 rgba(255,255,255,0.25); filter: brightness(1.04); color: white; text-decoration: none; }
.fcb-hero__cta-btn-label { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.02; gap: 0; }
.fcb-hero__cta-btn-eyebrow { font-size: 8px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.78); }
.fcb-hero__cta-btn-text { font-family: var(--fcb-font-display); font-size: 0.88rem; font-weight: 700; letter-spacing: -0.01em; }
.fcb-hero__cta-btn i { font-size: 0.85em; transition: transform 150ms; }
.fcb-hero__cta-btn:hover i { transform: translateX(3px); }
/* Hint takes the remaining inline space when there's room; once it
   wraps to its own line it expands full-width. min-width prevents it
   from squeezing into nothing on borderline widths. */
.fcb-hero__cta-hint { display: flex; align-items: center; gap: 0.4rem; flex: 1 1 220px; min-width: 220px; color: var(--fcb-text-soft); font-size: 11.5px; line-height: 1.35; padding: 0.3rem 0.65rem; border-radius: 7px; background: rgba(255,255,255,0.03); border: 1px solid var(--fcb-border); }
.fcb-hero__cta-hint i { color: var(--fcb-accent-text); font-size: 0.95em; flex-shrink: 0; }
.fcb-hero__divider { height: 1px; background: var(--fcb-border); margin: 1.5rem 0; }
.fcb-hero__footer-strip { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--fcb-border); display: flex; flex-wrap: wrap; gap: 1.5rem; font-size: 12px; color: var(--fcb-text-faint); }
.fcb-hero__footer-strip a { color: var(--fcb-text-mute); text-decoration: none; }
.fcb-hero__footer-strip a:hover { color: var(--fcb-accent-text); }

/* ─── Score panel (hero) ─────────────────────────────────────────────── */
.fcb-scoremap { background: var(--fcb-card-raised); border: 1px solid var(--fcb-border-strong); border-radius: var(--fcb-radius); padding: 0.95rem 1rem; }
.fcb-scoremap__head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 0.55rem; }
.fcb-scoremap__label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--fcb-text-mute); font-weight: 700; }
.fcb-scoremap__total { font-family: var(--fcb-font-mono); font-weight: 700; font-size: 1.4rem; }
.fcb-scoremap__total-grad { background: var(--fcb-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.fcb-scoremap__total small { color: var(--fcb-text-faint); font-size: 0.7em; -webkit-text-fill-color: initial; background: none; color: var(--fcb-text-faint); margin-left: 2px; font-weight: 600; }
.fcb-scoremap__list { display: flex; flex-direction: column; gap: 0.05rem; }
.fcb-scoremap__foot { font-size: 10px; color: var(--fcb-text-faint); margin-top: 0.55rem; padding-top: 0.5rem; border-top: 1px solid var(--fcb-border); line-height: 1.4; }

.fcb-axis-btn { display: grid; grid-template-columns: 86px 1fr 32px 16px; gap: 0.5rem; align-items: center; font-size: 12px; width: 100%; padding: 0.25rem 0.5rem; border-radius: 6px; cursor: pointer; transition: background 150ms; background: transparent; border: 0; text-align: left; color: inherit; font-family: inherit; }
.fcb-axis-btn:hover { background: rgba(255,255,255,0.04); }
.fcb-axis-btn.is-active { background: rgba(94,234,212,0.10); }
.fcb-axis-btn__name { color: var(--fcb-text-mute); font-weight: 600; }
.fcb-axis-btn.is-active .fcb-axis-btn__name { color: var(--fcb-accent-text); }
.fcb-axis-btn__bar { height: 5px; background: var(--fcb-card-sunk); border-radius: 999px; overflow: hidden; }
.fcb-axis-btn__bar > span { display: block; height: 100%; background: var(--fcb-grad); border-radius: 999px; }
.fcb-axis-btn__score { font-family: var(--fcb-font-mono); color: white; font-weight: 700; text-align: right; }
.fcb-axis-btn__chevron { color: var(--fcb-text-faint); font-size: 10px; transition: transform 200ms; text-align: center; }
.fcb-axis-btn.is-active .fcb-axis-btn__chevron { transform: rotate(180deg); color: var(--fcb-accent-text); }

/* ─── Stat ribbon (hero) ─────────────────────────────────────────────── */
.fcb-stat-ribbon { display: flex; flex-wrap: wrap; gap: 0; align-items: stretch; background: var(--fcb-card-sunk); border-radius: var(--fcb-radius); border: 1px solid var(--fcb-border); overflow: hidden; }
.fcb-stat-ribbon__cell { flex: 1 1 140px; padding: 0.75rem 1rem; border-right: 1px solid var(--fcb-border); min-width: 130px; }
.fcb-stat-ribbon__cell:last-child { border-right: 0; }
.fcb-stat-ribbon__label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--fcb-text-mute); font-weight: 700; }
.fcb-stat-ribbon__value { font-family: var(--fcb-font-mono); font-weight: 700; font-size: 1.05rem; color: white; margin-top: 2px; }
.fcb-stat-ribbon__value--good { color: var(--fcb-good); }
.fcb-stat-ribbon__value--bad  { color: var(--fcb-danger); }
.fcb-stat-ribbon__value--teal { color: var(--fcb-accent-text); }

/* ─── Author byline (hero) ───────────────────────────────────────────── */
.fcb-author { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--fcb-border); }
.fcb-author__avatar { width: 52px; height: 52px; border-radius: 50%; background: var(--fcb-grad); display: flex; align-items: center; justify-content: center; font-weight: 800; color: white; font-family: var(--fcb-font-display); font-size: 1.2rem; flex-shrink: 0; overflow: hidden; }
.fcb-author__avatar img { width: 100%; height: 100%; object-fit: cover; }
.fcb-author__main { flex: 1 1 0; min-width: 0; }
.fcb-author__name { color: white; font-weight: 700; font-family: var(--fcb-font-display); }
.fcb-author__meta { color: var(--fcb-text-mute); font-size: 13px; font-weight: 400; }
.fcb-author__bio { color: var(--fcb-text-soft); font-size: 13px; margin-top: 4px; }
.fcb-author__socials { display: flex; gap: 0.4rem; flex-shrink: 0; }
.fcb-author__socials a { width: 36px; height: 36px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: var(--fcb-card-raised); border: 1px solid var(--fcb-border); color: var(--fcb-text-mute); transition: all 150ms; }
.fcb-author__socials a:hover { color: var(--fcb-accent-text); border-color: rgba(94,234,212,0.40); }

/* ─── Best-for decision cards ────────────────────────────────────────── */
.fcb-bestfor { margin-bottom: 2.5rem; }
.fcb-bestfor__head { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 1rem; font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--fcb-text-mute); font-weight: 700; }
.fcb-bestfor__head::before, .fcb-bestfor__head::after { content: ""; height: 1px; flex: 1; background: var(--fcb-border); }
.fcb-bestfor__grid { display: grid; gap: 0.85rem; grid-template-columns: 1fr; }
@media (min-width: 600px)  { .fcb-bestfor__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .fcb-bestfor__grid { grid-template-columns: repeat(4, 1fr); } }
.fcb-bestfor__card { background: var(--fcb-card); border: 1px solid var(--fcb-border); border-radius: var(--fcb-radius); padding: 1.1rem 1.15rem; position: relative; transition: all 150ms; }
.fcb-bestfor__card:hover { transform: translateY(-2px); border-color: var(--fcb-border-strong); }
.fcb-bestfor__card--yes   { border-top: 3px solid var(--fcb-good); }
.fcb-bestfor__card--maybe { border-top: 3px solid var(--fcb-warn); }
.fcb-bestfor__card--no    { border-top: 3px solid var(--fcb-danger); opacity: 0.85; }
.fcb-bestfor__icon { width: 32px; height: 32px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 0.6rem; font-size: 14px; }
.fcb-bestfor__card--yes   .fcb-bestfor__icon { background: rgba(52,211,153,0.12); color: var(--fcb-good); border: 1px solid rgba(52,211,153,0.30); }
.fcb-bestfor__card--maybe .fcb-bestfor__icon { background: rgba(245,158,11,0.12); color: var(--fcb-warn); border: 1px solid rgba(245,158,11,0.30); }
.fcb-bestfor__card--no    .fcb-bestfor__icon { background: rgba(244,63,94,0.10); color: var(--fcb-danger); border: 1px solid rgba(244,63,94,0.30); }
.fcb-bestfor__title   { font-family: var(--fcb-font-display); font-weight: 700; font-size: 1rem; color: white; margin: 0 0 0.35rem; }
.fcb-bestfor__verdict { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; }
.fcb-bestfor__card--yes   .fcb-bestfor__verdict { color: var(--fcb-good); }
.fcb-bestfor__card--maybe .fcb-bestfor__verdict { color: var(--fcb-warn); }
.fcb-bestfor__card--no    .fcb-bestfor__verdict { color: var(--fcb-danger); }
.fcb-bestfor__why { font-size: 12px; color: var(--fcb-text-soft); line-height: 1.5; margin-top: 0.4rem; }

/* ─── Layout: main + bottom-sticky sidebar ───────────────────────────── */
.fcb-layout { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 1.25rem; align-items: start; position: relative; }
@media (max-width: 1100px) { .fcb-layout { grid-template-columns: 1fr; } }
.fcb-main { min-width: 0; background: var(--fcb-card); border: 1px solid var(--fcb-border); border-radius: var(--fcb-radius-lg); padding: clamp(1.25rem, 3vw, 2rem); backdrop-filter: blur(8px); }
/* Dual-anchor sticky: the sidebar's natural position is at the bottom of
   its grid cell (align-self: end). When the natural-bottom is below the
   viewport bottom (i.e. on a long page) it sticks at bottom:1.5rem. As
   you scroll up, natural-bottom moves up, sticky releases, and the sidebar
   scrolls with the content. When the natural-top would scroll above 96px
   from viewport top, it sticks at top:96px instead. Same element, no JS,
   no jumps — sticky picks whichever boundary the element is crossing. */
.fcb-sidebar { position: sticky; top: 96px; bottom: 1.5rem; align-self: end; display: flex; flex-direction: column; gap: 1.1rem; grid-column: 2; }
@media (max-width: 1100px) {
	.fcb-sidebar { position: static; grid-column: auto; }
}

/* ─── Module shell ───────────────────────────────────────────────────── */
.fcb-module { margin: 0 0 var(--fcb-section-gap); scroll-margin-top: 6rem; position: relative; }
.fcb-module + .fcb-module { padding-top: var(--fcb-section-gap); border-top: 1px solid var(--fcb-border); }
.fcb-module__header { display: flex; align-items: center; gap: 0.85rem; margin-bottom: 1.25rem; padding-right: 90px; flex-wrap: wrap; }
.fcb-module__num { font-family: var(--fcb-font-display); font-weight: 800; color: var(--fcb-accent-text); font-size: clamp(1.4rem, 2.5vw, 1.7rem); line-height: 1; min-width: 2ch; font-variant-numeric: tabular-nums; flex-shrink: 0; }
.fcb-module__icon { width: 36px; height: 36px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; color: var(--fcb-accent-text); background: var(--fcb-card-raised); border: 1px solid var(--fcb-border); flex-shrink: 0; }
.fcb-module--editorial .fcb-module__icon { background: rgba(168,85,247,0.10); border-color: rgba(168,85,247,0.30); color: #c4b5fd; }
.fcb-module--editorial .fcb-module__num { color: #c4b5fd; }
.fcb-module__title { margin: 0; font-family: var(--fcb-font-display); font-weight: 700; color: white; font-size: clamp(1.35rem, 2.5vw, 1.65rem); line-height: 1.2; letter-spacing: -0.01em; flex: 1 1 auto; min-width: 0; }
.fcb-module__tag { position: absolute; top: 0; right: 0; font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; padding: 4px 10px; border-radius: 999px; font-weight: 700; background: var(--fcb-card-raised); border: 1px solid var(--fcb-border); color: var(--fcb-text-mute); }
.fcb-module__tag--data { color: var(--fcb-accent-text); background: rgba(94,234,212,0.08); border-color: rgba(94,234,212,0.25); }
.fcb-module__body { color: var(--fcb-text-soft); }
.fcb-module__body p { margin: 0 0 1rem; line-height: 1.7; }
.fcb-module__body p:last-child { margin-bottom: 0; }
.fcb-module__body strong { color: white; }

/* Main axis section */
.fcb-module--axis .fcb-module__header { padding-right: 0; }
.fcb-module--axis .fcb-module__icon { background: var(--fcb-grad-soft); border-color: rgba(94,234,212,0.30); width: 42px; height: 42px; }
.fcb-score-pill {
	margin-left: auto;
	display: inline-flex; align-items: center; gap: 0.5rem;
	padding: 7px 14px;
	background: var(--fcb-grad);
	border: 0; border-radius: 999px;
	font-family: var(--fcb-font-mono); font-weight: 800; font-size: 1rem;
	color: white;
	cursor: pointer; transition: filter 150ms, transform 150ms;
	box-shadow: 0 4px 16px rgba(20,184,166,0.20);
	flex-shrink: 0;
}
.fcb-score-pill:hover { filter: brightness(1.10); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(20,184,166,0.30); }
.fcb-score-pill__max { font-size: 0.7em; opacity: 0.85; font-weight: 600; margin-left: -2px; }
.fcb-score-pill i { font-size: 11px; opacity: 0.85; }

.fcb-axis-intro { font-size: 1.02rem; color: var(--fcb-text-soft); line-height: 1.7; margin: 0 0 1.5rem; }
.fcb-axis-intro p { margin: 0 0 0.9rem; }
.fcb-axis-intro p:last-child { margin-bottom: 0; }
.fcb-axis-intro__lead { display: inline-block; font-weight: 700; color: white; padding: 2px 10px; margin-right: 6px; background: rgba(94,234,212,0.10); border: 1px solid rgba(94,234,212,0.30); border-radius: 6px; font-size: 0.92em; }

.fcb-axis-inline { display: grid; gap: 0.75rem; grid-template-columns: repeat(2, 1fr); margin-bottom: 1.5rem; }
@media (min-width: 600px) { .fcb-axis-inline { grid-template-columns: repeat(4, 1fr); } }
.fcb-axis-inline__card { background: var(--fcb-card-raised); border: 1px solid var(--fcb-border); border-radius: 10px; padding: 0.7rem 0.85rem; }
.fcb-axis-inline__label { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--fcb-text-mute); font-weight: 700; }
.fcb-axis-inline__value { display: flex; align-items: baseline; gap: 0.4rem; margin-top: 4px; }
.fcb-axis-inline__value-text { color: white; font-family: var(--fcb-font-mono); font-weight: 700; }
.fcb-axis-inline__rating { font-family: var(--fcb-font-mono); font-weight: 700; color: var(--fcb-accent-text); font-size: 0.85rem; margin-left: auto; }
.fcb-axis-inline__rating--low { color: #fbbf24; }
.fcb-axis-inline__hint { font-size: 11px; color: var(--fcb-text-faint); margin-top: 2px; }

/* Sub-section */
.fcb-module--sub { margin-bottom: 0; }
.fcb-module--sub .fcb-module__header { padding-right: 0; }
.fcb-module--sub .fcb-module__num { font-size: 1.05rem; opacity: 0.85; }
.fcb-module--sub .fcb-module__icon { width: 30px; height: 30px; font-size: 13px; }
.fcb-module--sub .fcb-module__title { font-size: clamp(1.1rem, 1.8vw, 1.25rem); }
.fcb-sub-rating {
	margin-left: auto;
	display: inline-flex; align-items: center; gap: 0.3rem;
	padding: 4px 11px;
	background: rgba(94,234,212,0.08); border: 1px solid rgba(94,234,212,0.30);
	border-radius: 999px;
	font-family: var(--fcb-font-mono); font-weight: 700; font-size: 0.85rem;
	color: var(--fcb-accent-text);
	cursor: pointer; transition: all 150ms;
	flex-shrink: 0;
}
.fcb-sub-rating:hover { background: rgba(94,234,212,0.18); border-color: rgba(94,234,212,0.50); color: white; }
.fcb-sub-rating__max { color: var(--fcb-text-faint); font-size: 0.85em; font-weight: 500; }
.fcb-sub-rating--low { background: rgba(245,158,11,0.08); border-color: rgba(245,158,11,0.30); color: #fbbf24; }

/* ─── Expander button + collapsible sub-section group ────────────────── */
.fcb-expander-wrap { display: flex; justify-content: center; margin-top: 1.5rem; }
.fcb-expander {
	display: inline-flex; align-items: center; gap: 0.6rem;
	padding: 0.7rem 1.4rem;
	background: rgba(94,234,212,0.06);
	border: 1px dashed rgba(94,234,212,0.45);
	border-radius: 999px;
	color: var(--fcb-accent-text);
	font-family: inherit; font-size: 12px; font-weight: 700;
	letter-spacing: 0.08em; text-transform: uppercase;
	cursor: pointer; transition: all 200ms;
}
.fcb-expander:hover { border-style: solid; background: rgba(94,234,212,0.12); color: white; transform: translateY(-1px); box-shadow: 0 6px 18px rgba(20,184,166,0.20); }
.fcb-expander__chevron { font-size: 11px; transition: transform 220ms; }
.fcb-expander.is-expanded .fcb-expander__chevron { transform: rotate(180deg); }
.fcb-expander .fcb-expander__hide { display: none; }
.fcb-expander.is-expanded .fcb-expander__show { display: none; }
.fcb-expander.is-expanded .fcb-expander__hide { display: inline; }

.fcb-axis-group { display: block; margin: 2rem 0 var(--fcb-section-gap); position: relative; }
.fcb-axis-group[hidden] { display: none; }
.fcb-axis-group__inner {
	position: relative;
	padding: 2.25rem 1.5rem 1rem 2rem;
	background:
		linear-gradient(to right, rgba(94,234,212,0.05), transparent 70%),
		rgba(255,255,255,0.015);
	border: 1px solid rgba(94,234,212,0.20);
	border-left: 3px solid rgba(94,234,212,0.55);
	border-radius: 0 14px 14px 0;
}
.fcb-axis-group__label {
	position: absolute; top: -11px; left: 1.5rem;
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 3px 12px;
	background: var(--fcb-bg);
	border: 1px solid rgba(94,234,212,0.40);
	border-radius: 999px;
	font-size: 10px; font-weight: 800; letter-spacing: 0.18em;
	color: var(--fcb-accent-text); text-transform: uppercase;
}
.fcb-axis-group__label i { font-size: 9px; }

.fcb-axis-group .fcb-module--sub + .fcb-module--sub {
	padding-top: var(--fcb-subsection-gap);
	border-top: 1px solid rgba(94,234,212,0.15);
	margin-top: var(--fcb-subsection-gap);
}

.fcb-collapse-end {
	display: flex; align-items: center; gap: 0.5rem;
	margin: 2rem auto 0; padding: 0.5rem 1.2rem;
	background: transparent;
	border: 1px dashed rgba(94,234,212,0.30); border-radius: 999px;
	color: var(--fcb-accent-text);
	font-family: inherit; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
	cursor: pointer; transition: all 150ms;
}
.fcb-collapse-end:hover { background: rgba(94,234,212,0.08); border-style: solid; color: white; }

/* ─── Inline breakdown panel (popover content as inline) ─────────────── */
.fcb-breakdown { background: var(--fcb-card); border: 1px solid var(--fcb-border); border-radius: 12px; padding: 1.4rem 1.5rem; margin-bottom: 2rem; }
.fcb-breakdown__explain { font-size: 13.5px; color: var(--fcb-text-soft); line-height: 1.6; padding: 0.7rem 0.95rem; background: var(--fcb-card-sunk); border-radius: 8px; border-left: 2px solid var(--fcb-accent-text); margin: 0 0 1.1rem; }
.fcb-breakdown__subs-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--fcb-text-mute); font-weight: 700; margin-bottom: 0.7rem; }
.fcb-breakdown__subs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.1rem; }
.fcb-breakdown__sub { display: flex; align-items: center; gap: 0.8rem; font-size: 13px; padding: 0.55rem 0.25rem; border-bottom: 1px solid var(--fcb-border); }
.fcb-breakdown__sub:last-child { border-bottom: 0; }
.fcb-breakdown__sub-name { flex: 1; min-width: 0; color: var(--fcb-text-soft); }
.fcb-breakdown__sub-bar { width: 110px; height: 5px; background: var(--fcb-card-sunk); border-radius: 999px; overflow: hidden; flex-shrink: 0; }
.fcb-breakdown__sub-bar > span { display: block; height: 100%; background: rgba(94,234,212,0.7); border-radius: 999px; }
.fcb-breakdown__sub-score { width: 36px; font-family: var(--fcb-font-mono); color: white; font-weight: 700; text-align: right; flex-shrink: 0; }
.fcb-breakdown__sub-link { flex-shrink: 0; display: inline-flex; align-items: center; gap: 0.35rem; padding: 5px 10px; background: rgba(94,234,212,0.10); border: 1px solid rgba(94,234,212,0.30); border-radius: 999px; color: var(--fcb-accent-text); text-decoration: none; font-size: 11px; font-weight: 700; transition: all 150ms; }
.fcb-breakdown__sub-link:hover { background: rgba(94,234,212,0.20); border-color: var(--fcb-accent-text); color: white; }
.fcb-breakdown__sub-link__placeholder { width: 56px; flex-shrink: 0; }
.fcb-breakdown__sub--low .fcb-breakdown__sub-bar > span { background: rgba(245,158,11,0.75); }
.fcb-breakdown__sub--low .fcb-breakdown__sub-score { color: #fbbf24; }

/* ─── Fact grid + tile grid + table + pros/cons ──────────────────────── */
.fcb-fact-grid { display: grid; gap: 0.8rem; grid-template-columns: repeat(2, minmax(0,1fr)); }
@media (min-width: 768px) { .fcb-fact-grid { grid-template-columns: repeat(4, minmax(0,1fr)); } }
.fcb-fact { background: var(--fcb-card-raised); border: 1px solid var(--fcb-border); border-radius: var(--fcb-radius); padding: 0.9rem 1rem; }
.fcb-fact__label { font-size: 11px; color: var(--fcb-text-mute); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; }
.fcb-fact__value { font-family: var(--fcb-font-mono); font-size: 1.25rem; font-weight: 700; margin-top: 4px; color: white; }
.fcb-fact__value--good { color: var(--fcb-good); }
.fcb-fact__value--warn { color: #fbbf24; }
.fcb-fact__value--bad  { color: #fb7185; }
.fcb-fact__value--teal { color: var(--fcb-accent-text); }
.fcb-fact__hint { font-size: 11px; color: var(--fcb-text-faint); margin-top: 2px; }

.fcb-proscons { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 720px) { .fcb-proscons { grid-template-columns: 1fr 1fr; } }
.fcb-proscons__col { background: var(--fcb-card-raised); border: 1px solid var(--fcb-border); border-radius: var(--fcb-radius); padding: 1.25rem; }
.fcb-proscons__col--good { border-top: 3px solid var(--fcb-good); }
.fcb-proscons__col--bad  { border-top: 3px solid var(--fcb-danger); }
.fcb-proscons__title { display: flex; align-items: center; gap: 0.5rem; font-family: var(--fcb-font-display); font-weight: 700; margin: 0 0 0.8rem; font-size: 1.05rem; }
.fcb-proscons__title--good { color: var(--fcb-good); }
.fcb-proscons__title--bad  { color: #fb7185; }
.fcb-proscons__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.6rem; font-size: 14px; line-height: 1.55; }
.fcb-proscons__list li { display: flex; gap: 0.6rem; align-items: flex-start; color: var(--fcb-text-soft); }
.fcb-proscons__list li::before { content: "●"; flex-shrink: 0; margin-top: 1px; }
.fcb-proscons__col--good li::before { color: var(--fcb-good); }
.fcb-proscons__col--bad  li::before { color: var(--fcb-danger); }

.fcb-table-wrap { border: 1px solid var(--fcb-border); border-radius: var(--fcb-radius); overflow-x: auto; background: var(--fcb-card); }
.fcb-table { width: 100%; font-size: 13px; border-collapse: collapse; }
.fcb-table thead th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--fcb-text-mute); padding: 0.7rem 1rem; background: var(--fcb-card-raised); border-bottom: 1px solid var(--fcb-border); font-weight: 700; }
.fcb-table tbody td { padding: 0.85rem 1rem; border-bottom: 1px solid var(--fcb-border); vertical-align: top; }
.fcb-table tbody tr:last-child td { border-bottom: 0; }
.fcb-table .cell--strong { color: white; font-weight: 700; }
.fcb-table .cell--mono   { font-family: var(--fcb-font-mono); }
.fcb-table .cell--accent { color: var(--fcb-accent-text); font-family: var(--fcb-font-mono); font-weight: 700; }
.fcb-table .cell--lead   { background: rgba(94,234,212,0.06); position: relative; }
.fcb-table .cell--lead::after { content: "★"; color: var(--fcb-accent-text); margin-left: 6px; }

/* ─── Editorial callout + pull-quote breakout + verdict ──────────────── */
.fcb-callout { background: rgba(168,85,247,0.06); border-left: 3px solid #c4b5fd; border-radius: var(--fcb-radius); padding: 1.25rem 1.5rem; }
.fcb-callout p { font-size: 1.02rem; line-height: 1.75; }
.fcb-callout em { color: #c4b5fd; font-style: italic; }

.fcb-module--breakout { margin: 1rem -1rem; padding: 1.5rem 1rem; background: linear-gradient(135deg, rgba(94,234,212,0.05), rgba(168,85,247,0.05)); border-top: 1px solid rgba(94,234,212,0.20); border-bottom: 1px solid rgba(168,85,247,0.20); }
.fcb-pull-quote { font-family: var(--fcb-font-display); font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 700; line-height: 1.25; letter-spacing: -0.015em; max-width: 28ch; margin: 0 auto; text-align: center; background: var(--fcb-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.fcb-pull-quote__attrib { display: block; text-align: center; margin-top: 0.85rem; font-size: 11px; color: var(--fcb-text-faint); font-weight: 500; -webkit-text-fill-color: initial; background: none; color: var(--fcb-text-faint); text-transform: uppercase; letter-spacing: 0.12em; }

.fcb-verdict { background: linear-gradient(135deg, rgba(94,234,212,0.05), rgba(168,85,247,0.05)); border: 1px solid var(--fcb-border); border-radius: var(--fcb-radius-lg); padding: 1.5rem 1.75rem; position: relative; overflow: hidden; }
.fcb-verdict::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: var(--fcb-grad); }
.fcb-verdict p { font-size: 1.05rem; line-height: 1.7; }
.fcb-verdict__signoff { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--fcb-border); font-size: 12px; color: var(--fcb-text-faint); }

/* ─── FAQ + Methodology ──────────────────────────────────────────────── */
.fcb-faq details { background: var(--fcb-card-raised); border: 1px solid var(--fcb-border); border-radius: 12px; padding: 0.9rem 1.1rem; margin-bottom: 0.6rem; }
.fcb-faq summary { font-family: var(--fcb-font-display); font-weight: 600; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.fcb-faq summary::-webkit-details-marker { display: none; }
.fcb-faq summary::after { content: "+"; font-size: 1.25rem; color: var(--fcb-accent-text); }
.fcb-faq details[open] summary::after { content: "−"; }
.fcb-faq__body { color: var(--fcb-text-soft); margin-top: 0.65rem; line-height: 1.65; font-size: 14px; }

.fcb-method { background: rgba(255,255,255,0.02); border: 1px dashed var(--fcb-border); border-radius: 12px; padding: 1.1rem 1.25rem; font-size: 13px; color: var(--fcb-text-mute); line-height: 1.7; }

/* ─── Sidebar widgets ────────────────────────────────────────────────── */
.fcb-sb-card { background: var(--fcb-card); border: 1px solid var(--fcb-border); border-radius: var(--fcb-radius); padding: 1.1rem 1.2rem; backdrop-filter: blur(8px); flex-shrink: 0; }
.fcb-sb-card__eyebrow { font-size: 10px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--fcb-text-mute); margin-bottom: 0.6rem; font-weight: 700; }

.fcb-toc__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.3rem; }
.fcb-toc__list li a { display: flex; gap: 0.55rem; align-items: baseline; font-size: 13px; color: var(--fcb-text-mute); padding: 4px 0; text-decoration: none; transition: color 150ms; flex: 1; min-width: 0; }
.fcb-toc__list li a:hover { color: var(--fcb-accent-text); }
.fcb-toc__num { font-family: var(--fcb-font-mono); font-weight: 700; color: var(--fcb-accent-text); min-width: 1.6em; text-align: right; font-size: 11.5px; }
.fcb-toc__list li a.is-active { color: white; }

.fcb-toc__main { display: flex; align-items: center; gap: 0.4rem; }
.fcb-toc__main a { font-weight: 600; color: var(--fcb-text-soft); }
.fcb-toc__main a .fcb-toc__num { color: var(--fcb-accent-text); }
.fcb-toc__main a .fcb-toc__star { color: var(--fcb-accent-text); margin-left: auto; font-size: 11px; padding-right: 0.4rem; }
.fcb-toc__chevron { width: 22px; height: 22px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; border-radius: 6px; color: var(--fcb-text-faint); font-size: 10px; cursor: pointer; transition: all 150ms; }
.fcb-toc__chevron:hover { background: rgba(94,234,212,0.10); color: var(--fcb-accent-text); }
.fcb-toc__chevron i { transition: transform 220ms; }
.fcb-toc__chevron.is-expanded i { transform: rotate(180deg); color: var(--fcb-accent-text); }
.fcb-toc__subs { list-style: none; margin: 0.15rem 0 0.25rem; padding: 0; display: none; flex-direction: column; gap: 0.25rem; }
.fcb-toc__subs.is-expanded { display: flex; }
.fcb-toc__subs li { padding-left: 1.4rem; position: relative; }
.fcb-toc__subs li::before { content: ""; position: absolute; left: 0.4rem; top: 50%; width: 8px; height: 1px; background: var(--fcb-border-strong); }
.fcb-toc__subs li a .fcb-toc__num { font-size: 10.5px; min-width: 2.2em; }
.fcb-toc__subs li a .fcb-toc__rate { color: var(--fcb-text-faint); margin-left: auto; font-family: var(--fcb-font-mono); font-size: 10px; }
.fcb-toc__subs li a:hover .fcb-toc__rate { color: var(--fcb-accent-text); }

.fcb-cta-card { background: var(--fcb-grad); border: 0; border-radius: var(--fcb-radius); padding: 1.1rem 1.2rem; color: white; flex-shrink: 0; }
.fcb-cta-card__eyebrow { font-size: 10px; text-transform: uppercase; letter-spacing: 0.14em; opacity: 0.85; font-weight: 700; }
.fcb-cta-card__title { font-family: var(--fcb-font-display); font-weight: 800; font-size: 1.1rem; margin: 0.3rem 0 0.4rem; }
.fcb-cta-card__hint { font-size: 12px; opacity: 0.92; margin-bottom: 0.8rem; line-height: 1.4; }
.fcb-cta-btn { display: flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.75rem 1rem; border-radius: 8px; background: rgba(0,0,0,0.30); color: white; font-weight: 700; font-size: 14px; text-decoration: none; transition: background 150ms; }
.fcb-cta-btn:hover { background: rgba(0,0,0,0.45); }
.fcb-cta-disclaimer { font-size: 10px; opacity: 0.75; margin-top: 0.6rem; line-height: 1.4; }

.fcb-compare-list { display: flex; flex-direction: column; gap: 0.5rem; }
.fcb-compare-list a { display: flex; align-items: center; gap: 0.6rem; padding: 0.55rem 0.7rem; background: var(--fcb-card-raised); border: 1px solid var(--fcb-border); border-radius: 8px; color: var(--fcb-text-soft); font-size: 13px; text-decoration: none; }
.fcb-compare-list a:hover { border-color: rgba(94,234,212,0.40); color: white; }
.fcb-compare-list__avatar { width: 24px; height: 24px; border-radius: 6px; background: white; color: var(--fcb-bg); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 11px; flex-shrink: 0; }
.fcb-compare-list__delta { margin-left: auto; font-size: 11px; color: var(--fcb-text-faint); }

.fcb-status-card { display: flex; align-items: center; gap: 0.7rem; }
.fcb-status-card__icon { width: 36px; height: 36px; border-radius: 50%; background: rgba(52,211,153,0.10); border: 1px solid rgba(52,211,153,0.30); color: var(--fcb-good); display: inline-flex; align-items: center; justify-content: center; }
.fcb-status-card__title { font-size: 14px; font-weight: 700; color: white; }
.fcb-status-card__sub { font-size: 11px; color: var(--fcb-text-mute); }

/* ─── Bottom dock ────────────────────────────────────────────────────── */
.fcb-dock { position: fixed; bottom: 0; left: 0; right: 0; z-index: 40; background: rgba(10, 15, 26, 0.92); backdrop-filter: blur(16px); border-top: 1px solid var(--fcb-border-strong); padding: 12px 0; transform: translateY(100%); transition: transform 220ms ease; }
.fcb-dock.is-visible { transform: translateY(0); }
.fcb-dock__inner { display: flex; align-items: center; gap: 0.75rem; flex-wrap: nowrap; }
.fcb-dock__toc-btn, .fcb-dock__compare-btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.7rem 1rem; background: var(--fcb-card-raised); border: 1px solid var(--fcb-border); border-radius: 10px; color: var(--fcb-text-soft); font-size: 14px; font-weight: 600; cursor: pointer; transition: all 150ms; white-space: nowrap; }
.fcb-dock__toc-btn:hover, .fcb-dock__compare-btn:hover { border-color: rgba(94,234,212,0.40); color: white; }
.fcb-dock__current strong { color: var(--fcb-accent-text); }
.fcb-dock__cta { margin-left: auto; display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.8rem 1.4rem; background: var(--fcb-grad); color: white; border-radius: 10px; font-weight: 800; font-size: 14px; text-decoration: none; transition: filter 150ms, transform 150ms; white-space: nowrap; box-shadow: 0 4px 16px rgba(20,184,166,0.20); }
.fcb-dock__cta:hover { filter: brightness(1.10); transform: translateY(-1px); }

/* ─── Axis popover ───────────────────────────────────────────────────── */
.fcb-popover-backdrop { position: fixed; inset: 0; z-index: 65; display: none; background: rgba(7,11,20,0.55); backdrop-filter: blur(2px); }
.fcb-popover-backdrop.is-open { display: block; }
/* Centered-modal layout. Always renders mid-viewport so the score
   panel popover never gets clipped by the sticky site header. */
.fcb-popover { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 70; width: min(420px, calc(100vw - 32px)); max-height: calc(100vh - 64px); overflow-y: auto; background: var(--fcb-card); backdrop-filter: blur(16px); border: 1px solid var(--fcb-border-strong); border-radius: 14px; padding: 1.1rem 1.2rem; box-shadow: 0 24px 56px rgba(0,0,0,0.55); display: none; animation: fcbPopIn 160ms ease-out; }
.fcb-popover.is-open { display: block; }
@keyframes fcbPopIn { from { opacity: 0; transform: translate(-50%, calc(-50% - 6px)) scale(0.98); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
.fcb-popover::before { display: none; }
.fcb-popover__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 0.7rem; gap: 0.6rem; }
.fcb-popover__name { font-family: var(--fcb-font-display); font-weight: 700; font-size: 1rem; color: white; display: inline-flex; align-items: center; gap: 0.5rem; margin: 0; }
.fcb-popover__name i { color: var(--fcb-accent-text); width: 18px; }
.fcb-popover__score { font-family: var(--fcb-font-mono); font-weight: 800; font-size: 1.4rem; }
.fcb-popover__score-grad { background: var(--fcb-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.fcb-popover__score small { color: var(--fcb-text-faint); font-size: 0.65em; -webkit-text-fill-color: initial; background: none; color: var(--fcb-text-faint); margin-left: 2px; font-weight: 600; }
.fcb-popover__close { background: transparent; border: 0; color: var(--fcb-text-faint); font-size: 1.3rem; cursor: pointer; padding: 0; margin-left: 0.4rem; line-height: 1; }
.fcb-popover__close:hover { color: white; }
.fcb-popover__explain { font-size: 12px; color: var(--fcb-text-soft); line-height: 1.55; padding: 0.6rem 0.75rem; background: var(--fcb-card-sunk); border-radius: 8px; border-left: 2px solid var(--fcb-accent-text); margin: 0 0 0.85rem; }
.fcb-popover__subs-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--fcb-text-mute); font-weight: 700; margin-bottom: 0.5rem; }
.fcb-popover__subs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.fcb-popover__sub { display: grid; grid-template-columns: 1fr 70px 32px; gap: 0.5rem; align-items: center; font-size: 11.5px; }
.fcb-popover__sub-name { color: var(--fcb-text-mute); }
.fcb-popover__sub-bar { height: 4px; background: var(--fcb-card-sunk); border-radius: 999px; overflow: hidden; }
.fcb-popover__sub-bar > span { display: block; height: 100%; background: rgba(94,234,212,0.7); border-radius: 999px; }
.fcb-popover__sub-score { font-family: var(--fcb-font-mono); color: var(--fcb-text-soft); font-weight: 600; text-align: right; }
.fcb-popover__sub--low .fcb-popover__sub-bar > span { background: rgba(245,158,11,0.75); }
.fcb-popover__sub--low .fcb-popover__sub-score { color: #fbbf24; }
.fcb-popover__foot { margin-top: 0.85rem; padding-top: 0.7rem; border-top: 1px solid var(--fcb-border); display: flex; justify-content: space-between; align-items: center; font-size: 10px; color: var(--fcb-text-faint); }
.fcb-popover__jump { color: var(--fcb-accent-text); text-decoration: none; font-weight: 600; }
.fcb-popover__jump:hover { color: white; }

/* TOC overlay (from dock) */
.fcb-toc-overlay { position: fixed; inset: 0; z-index: 60; background: rgba(0,0,0,0.65); backdrop-filter: blur(8px); display: none; align-items: flex-end; justify-content: center; padding: 24px; }
.fcb-toc-overlay.is-open { display: flex; }
.fcb-toc-overlay__panel { background: var(--fcb-card); border: 1px solid var(--fcb-border-strong); border-radius: var(--fcb-radius-lg); padding: 1.25rem 1.5rem; max-width: 560px; width: 100%; max-height: 80vh; overflow-y: auto; backdrop-filter: blur(8px); }
.fcb-toc-overlay__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.fcb-toc-overlay__close { background: none; border: 0; color: var(--fcb-text-mute); font-size: 1.5rem; cursor: pointer; }

/* ─── User reviews + discussion ──────────────────────────────────────── */
.fcb-uvr { display: flex; flex-direction: column; gap: 1.5rem; }

/* Header — has-reviews variant: big number on the left, CTA on the right */
.fcb-uvr__head--has-reviews { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1.5rem; padding: 1.5rem 1.75rem; background: linear-gradient(135deg, rgba(94,234,212,0.06), rgba(168,85,247,0.06)); border: 1px solid var(--fcb-border-strong); border-radius: 14px; }
@media (max-width: 640px) { .fcb-uvr__head--has-reviews { grid-template-columns: 1fr; text-align: center; } }
.fcb-uvr__score { display: flex; flex-direction: column; gap: 0.4rem; }
.fcb-uvr__score-num { font-family: var(--fcb-font-display); font-weight: 800; font-size: 2.6rem; line-height: 1; background: var(--fcb-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.fcb-uvr__score-num small { font-size: 0.45em; -webkit-text-fill-color: initial; background: none; color: var(--fcb-text-faint); margin-left: 4px; font-weight: 600; }
.fcb-uvr__score-stars { color: #fbbf24; font-size: 1.15rem; line-height: 1; }
.fcb-uvr__score-meta { color: var(--fcb-text-mute); font-size: 13px; }
.fcb-uvr__cta { display: flex; flex-direction: column; align-items: flex-end; gap: 0.55rem; }
@media (max-width: 640px) { .fcb-uvr__cta { align-items: center; } }
.fcb-uvr__cta-line { color: var(--fcb-text-soft); font-size: 13px; margin: 0; }
.fcb-uvr__write-btn { display: inline-flex; align-items: center; gap: 0.55rem; padding: 0.7rem 1.3rem; border-radius: 10px; background: var(--fcb-grad); color: white; border: 0; font-weight: 700; font-size: 14px; cursor: pointer; box-shadow: 0 8px 22px -10px rgba(168,85,247,0.55), inset 0 1px 0 rgba(255,255,255,0.2); transition: transform 150ms, box-shadow 150ms, filter 150ms; text-decoration: none; }
.fcb-uvr__write-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 28px -10px rgba(168,85,247,0.7), inset 0 1px 0 rgba(255,255,255,0.25); filter: brightness(1.04); color: white; text-decoration: none; }
.fcb-uvr__write-btn--big { padding: 0.85rem 1.6rem; font-size: 15px; }

/* Empty state — magazine-style invitation */
.fcb-uvr__head--empty { padding: 2.5rem 1.75rem; background: linear-gradient(135deg, rgba(94,234,212,0.04), rgba(168,85,247,0.04)); border: 1px dashed var(--fcb-border-strong); border-radius: 14px; }
.fcb-uvr__empty-visual { display: flex; flex-direction: column; align-items: center; gap: 0.85rem; max-width: 520px; margin: 0 auto; text-align: center; }
.fcb-uvr__empty-stars { font-size: 2rem; color: var(--fcb-text-faint); display: flex; gap: 0.25rem; }
.fcb-uvr__empty-title { font-family: var(--fcb-font-display); font-size: 1.55rem; font-weight: 800; color: white; margin: 0; }
.fcb-uvr__empty-sub { color: var(--fcb-text-soft); font-size: 14px; line-height: 1.5; margin: 0; }

/* Sort filter chips */
.fcb-uvr__sort { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; padding: 0.25rem 0; }
.fcb-uvr__sort-label { color: var(--fcb-text-mute); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 700; margin-right: 0.4rem; }
.fcb-uvr__sort-btn { background: transparent; border: 1px solid var(--fcb-border); color: var(--fcb-text-mute); padding: 0.3rem 0.85rem; border-radius: 999px; font-size: 12.5px; font-weight: 600; cursor: pointer; transition: all 150ms; }
.fcb-uvr__sort-btn:hover { color: white; border-color: var(--fcb-border-strong); }
.fcb-uvr__sort-btn.is-active { color: var(--fcb-accent-text); border-color: rgba(94,234,212,0.45); background: rgba(94,234,212,0.10); }

.fcb-uvr__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1rem; }

/* Review form */
.fcb-uvr-form { padding: 1.1rem 1.25rem; background: var(--fcb-card); border: 1px solid var(--fcb-border-strong); border-radius: 12px; display: flex; flex-direction: column; gap: 0.85rem; }
.fcb-uvr-form[hidden] { display: none; }
.fcb-uvr-form--reply { padding: 0.85rem 1rem; margin-top: 0.85rem; background: var(--fcb-card-sunk); }
.fcb-uvr-form__row { display: flex; flex-direction: column; gap: 0.35rem; }
.fcb-uvr-form__row label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--fcb-text-mute); }
.fcb-uvr-form input[type="text"],
.fcb-uvr-form input[type="email"],
.fcb-uvr-form textarea,
.fcb-uvr-form select { width: 100%; background: var(--fcb-card-sunk); border: 1px solid var(--fcb-border); border-radius: 8px; padding: 0.65rem 0.85rem; color: var(--fcb-text); font: inherit; font-size: 14px; }
.fcb-uvr-form input:focus,
.fcb-uvr-form textarea:focus,
.fcb-uvr-form select:focus { outline: none; border-color: var(--fcb-accent-text); box-shadow: 0 0 0 3px rgba(94,234,212,0.12); }
.fcb-uvr-form textarea { resize: vertical; min-height: 90px; line-height: 1.55; }
.fcb-uvr-form__row--id { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; }
@media (max-width: 600px) { .fcb-uvr-form__row--id { grid-template-columns: 1fr; } }
.fcb-uvr-form__row--actions { flex-direction: row; align-items: center; gap: 0.65rem; flex-wrap: wrap; }
.fcb-uvr-form__submit { padding: 0.6rem 1.2rem; border-radius: 8px; background: var(--fcb-grad); color: white; border: 0; font-weight: 700; cursor: pointer; }
.fcb-uvr-form__submit:disabled { opacity: 0.6; cursor: not-allowed; }
.fcb-uvr-form__cancel { padding: 0.55rem 1rem; border-radius: 8px; background: transparent; color: var(--fcb-text-mute); border: 1px solid var(--fcb-border); font-weight: 600; cursor: pointer; }
.fcb-uvr-form__status { color: var(--fcb-text-mute); font-size: 13px; }
.fcb-uvr-form__status.is-error { color: var(--fcb-danger); }
.fcb-uvr-form__status.is-ok    { color: var(--fcb-good); }
.fcb-uvr-form__note { font-size: 11px; color: var(--fcb-text-faint); margin: 0; }
/* Optional / required label tags */
.fcb-uvr-form__opt,
.fcb-uvr-form__req { display: inline-block; margin-left: 0.45rem; font-size: 10px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.1rem 0.4rem; border-radius: 4px; vertical-align: middle; }
.fcb-uvr-form__opt { color: var(--fcb-text-faint); background: var(--fcb-card-sunk); border: 1px solid var(--fcb-border); }
.fcb-uvr-form__req { color: var(--fcb-accent-text); background: rgba(94,234,212,0.10); border: 1px solid rgba(94,234,212,0.35); }

/* Inline per-axis star pickers (replaces the dropdown) */
.fcb-axis-pickers { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0.5rem 0.85rem; padding: 0.7rem 0.95rem; background: var(--fcb-card-sunk); border: 1px solid var(--fcb-border); border-radius: 10px; }
.fcb-axis-picker { display: flex; align-items: center; justify-content: space-between; gap: 0.65rem; }
.fcb-axis-picker__label { color: var(--fcb-text-soft); font-size: 12.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; }
.fcb-axis-picker__stars { display: inline-flex; align-items: center; gap: 0.15rem; }
.fcb-axis-picker__star { background: none; border: 0; padding: 0.18rem; font-size: 14px; color: var(--fcb-text-faint); cursor: pointer; transition: color 100ms, transform 100ms; }
.fcb-axis-picker__star:hover { transform: scale(1.15); }
.fcb-axis-picker__star.is-on { color: #fbbf24; }
.fcb-axis-picker__clear { background: none; border: 0; color: var(--fcb-text-faint); cursor: pointer; padding: 0 0.3rem; font-size: 14px; line-height: 1; opacity: 0.5; transition: opacity 120ms; }
.fcb-axis-picker[data-has-value] .fcb-axis-picker__clear { opacity: 1; }
.fcb-axis-picker__clear:hover { color: var(--fcb-danger); }

/* Star picker */
.fcb-uvr-form__row--rating { display: flex; flex-wrap: wrap; align-items: center; gap: 0.85rem; }
.fcb-uvr-form__row--rating > label { width: 100%; }
.fcb-star-picker { display: inline-flex; gap: 0.25rem; }
.fcb-star-picker__star { background: none; border: 0; padding: 0.3rem; font-size: 1.85rem; color: var(--fcb-text-faint); cursor: pointer; transition: color 120ms, transform 120ms; }
.fcb-star-picker__star:hover { transform: scale(1.12); }
.fcb-star-picker__star.is-on { color: #fbbf24; }
.fcb-star-picker__readout { color: var(--fcb-text-soft); font-size: 13px; font-weight: 600; min-width: 110px; }
.fcb-star-picker__readout.is-set { color: #fbbf24; }

/* Star display */
.fcb-stars { color: #fbbf24; display: inline-flex; gap: 1px; font-size: 14px; }
.fcb-stars--empty { color: var(--fcb-text-faint); }

/* Review card */
.fcb-review { list-style: none; padding: 1.25rem 1.4rem; background: var(--fcb-card-raised); border: 1px solid var(--fcb-border); border-radius: 14px; transition: border-color 200ms, box-shadow 200ms; }
.fcb-review:hover { border-color: var(--fcb-border-strong); }
.fcb-review--pinned { border-color: rgba(245,158,11,0.35); background: linear-gradient(180deg, rgba(245,158,11,0.04), var(--fcb-card-raised) 60%); }
.fcb-review__head { display: flex; align-items: center; gap: 0.85rem; margin-bottom: 0.75rem; }
.fcb-review__avatar { width: var(--fcb-av-size, 40px); height: var(--fcb-av-size, 40px); border-radius: 50%; background: var(--fcb-grad); display: flex; align-items: center; justify-content: center; color: white; font-weight: 800; font-family: var(--fcb-font-display); flex-shrink: 0; overflow: hidden; }
.fcb-review__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fcb-review__avatar--sm { background: var(--fcb-card-sunk); border: 1px solid var(--fcb-border); color: var(--fcb-text-mute); font-size: 12px; }
.fcb-review__avatar-initial { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.fcb-review__who { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }
.fcb-review__name { color: white; font-weight: 700; display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; line-height: 1.2; }
.fcb-review__name-text { font-family: var(--fcb-font-display); font-size: 0.98rem; }
.fcb-review__meta { color: var(--fcb-text-mute); font-size: 12.5px; display: flex; align-items: center; gap: 0.45rem; flex-wrap: wrap; }
.fcb-review__meta .fcb-stars { font-size: 13px; }
.fcb-review__meta-rating { color: white; font-family: var(--fcb-font-mono); font-weight: 700; }
.fcb-review__meta-dot { color: var(--fcb-text-faint); }
.fcb-review__title { font-family: var(--fcb-font-display); font-weight: 700; font-size: 1.18rem; color: white; margin: 0 0 0.45rem; line-height: 1.3; letter-spacing: -0.01em; }
.fcb-review__body { color: var(--fcb-text-soft); line-height: 1.65; font-size: 14.5px; }
.fcb-review__axes { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.85rem; }
.fcb-review__axis { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.25rem 0.65rem; border-radius: 7px; background: var(--fcb-card-sunk); border: 1px solid var(--fcb-border); font-size: 11.5px; }
.fcb-review__axis-label { color: var(--fcb-text-mute); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; }
.fcb-review__axis strong { color: white; font-family: var(--fcb-font-mono); }
.fcb-review__foot { display: flex; align-items: center; justify-content: space-between; gap: 0.85rem; margin-top: 1rem; padding-top: 0.85rem; border-top: 1px solid var(--fcb-border); }
.fcb-review__votes { display: flex; gap: 0.4rem; }
.fcb-review__vote { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.4rem 0.8rem; border-radius: 999px; background: transparent; border: 1px solid var(--fcb-border); color: var(--fcb-text-mute); font-size: 12.5px; font-weight: 600; cursor: pointer; transition: all 120ms; }
.fcb-review__vote:hover { color: white; border-color: var(--fcb-border-strong); background: var(--fcb-card-sunk); }
.fcb-review__vote.is-active { color: var(--fcb-accent-text); border-color: rgba(94,234,212,0.45); background: rgba(94,234,212,0.12); }
.fcb-review__vote.is-active i { color: var(--fcb-accent-text); }
.fcb-review__vote-label { display: none; }
@media (min-width: 480px) { .fcb-review__vote-label { display: inline; } }
.fcb-review__vote--small { padding: 0.2rem 0.6rem; font-size: 11.5px; }
.fcb-review__reply-toggle { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.45rem 0.95rem; border-radius: 999px; background: transparent; border: 1px solid var(--fcb-border); color: var(--fcb-text-mute); font-size: 12.5px; font-weight: 600; cursor: pointer; transition: all 120ms; }
.fcb-review__reply-toggle:hover { color: white; border-color: var(--fcb-border-strong); background: var(--fcb-card-sunk); }
.fcb-review__reply-count { color: var(--fcb-accent-text); }

/* Badges */
.fcb-review__badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.1rem 0.45rem; border-radius: 999px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; }
.fcb-review__badge--pinned   { background: rgba(245,158,11,0.18); color: #fbbf24; border: 1px solid rgba(245,158,11,0.35); }
.fcb-review__badge--verified { background: rgba(52,211,153,0.15); color: var(--fcb-good); border: 1px solid rgba(52,211,153,0.35); }
.fcb-review__badge--rep      { background: rgba(168,85,247,0.18); color: #c4b5fd; border: 1px solid rgba(168,85,247,0.40); }

/* Reply thread */
.fcb-review__replies { list-style: none; margin: 1rem 0 0; padding: 1rem 0 0 1rem; border-top: 1px dashed var(--fcb-border); display: flex; flex-direction: column; gap: 0.65rem; position: relative; }
.fcb-review__replies::before { content: ""; position: absolute; left: 0; top: 1rem; bottom: 0; width: 2px; background: linear-gradient(180deg, rgba(94,234,212,0.35), rgba(168,85,247,0.15)); border-radius: 1px; }
.fcb-review__replies-more { list-style: none; }
.fcb-review__expand-replies { display: inline-flex; align-items: center; gap: 0.4rem; background: none; border: 0; color: var(--fcb-accent-text); font-size: 13px; font-weight: 600; cursor: pointer; padding: 0.4rem 0; }
.fcb-review__expand-replies:hover { text-decoration: underline; }
.fcb-reply { list-style: none; display: flex; gap: 0.7rem; padding: 0.7rem 0.95rem; background: var(--fcb-card-sunk); border: 1px solid var(--fcb-border); border-radius: 10px; transition: border-color 150ms; }
.fcb-reply:hover { border-color: var(--fcb-border-strong); }
.fcb-reply__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.fcb-reply__head { display: flex; align-items: center; gap: 0.45rem; flex-wrap: wrap; font-size: 12.5px; }
.fcb-reply__head strong { color: white; font-family: var(--fcb-font-display); }
.fcb-reply__date { color: var(--fcb-text-mute); margin-left: auto; }
.fcb-reply__body { color: var(--fcb-text-soft); font-size: 13.5px; line-height: 1.55; }
.fcb-reply__foot { display: flex; gap: 0.4rem; }

/* ============================================================================
   ARCHIVE — fcb-archive-* + fcb-card (v3)
   ----------------------------------------------------------------------------
   Hybrid expandable cards + sticky horizontal filter bar. Mockup reference:
   docs/mockup/broker-archive-main.html. Partial: partials/broker/card-v3.php.
   Template: archive-forex_broker.php.
   ============================================================================ */

/* Local supplements — orange gradient used for the featured/pinned variant. */
.fcb-page,
.fc-homepage-strip-zone { --fcb-grad-orange: linear-gradient(135deg, #f97316, #fbbf24); }

/* ─── Archive shell ─────────────────────────────────────────────────── */
.fcb-archive { padding-bottom: 80px; }
.fcb-archive__breadcrumb { padding: 0 0 0.5rem; font-size: 13px; color: var(--fcb-text-mute); }
.fcb-archive__head { padding: 0 0 0.5rem; }
.fcb-archive__eyebrow { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--fcb-accent-text); margin-bottom: 0.85rem; }
.fcb-archive__eyebrow::before { content: ""; width: 28px; height: 2px; background: var(--fcb-grad); border-radius: 2px; }
.fcb-archive__title { font-family: var(--fcb-font-display); font-weight: 800; font-size: clamp(2rem, 5vw, 3.2rem); letter-spacing: -0.025em; line-height: 1.05; margin: 0 0 0.85rem; color: var(--fcb-text); }
.fcb-archive__title-grad { background: var(--fcb-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.fcb-archive__intro { color: var(--fcb-text-soft); font-size: 1.02rem; line-height: 1.65; max-width: 70ch; margin: 0; }
.fcb-archive__meta { display: flex; flex-wrap: wrap; gap: 1.25rem; margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--fcb-border); font-size: 12px; color: var(--fcb-text-mute); }
.fcb-archive__meta strong { color: var(--fcb-text-soft); font-weight: 600; }

/* ─── Archive intro zone — white card matching single-broker hero ─────
   Mirrors .fcb-hero structurally: bg + border + radius + clamp padding so
   the card has visible inset on mobile and breathing room on desktop.

   Side gap on mobile: the element inherits .fcb-container's `margin: 0 auto`
   which collapses to 0 on screens narrower than max-width, leaving the
   card edge-to-edge. We override to real side margins so the visible card
   actually inset from the screen, then restore auto centering at the
   container's centering breakpoint (1200px+). */
/* 3-class selector — needed to beat `.fcb-intro.light-surface { margin: 1rem auto }`
   defined later in this file (specificity 0,2,0). With auto on the right side,
   the box collapses against the screen edge on mobile. */
.fcb-intro.light-surface.fcb-archive-intro {
	max-width: 1160px;
	background: var(--fcb-card);
	border: 1px solid var(--fcb-border);
	border-radius: var(--fcb-radius-lg);
	padding: clamp(1rem, 3.5vw, 1.75rem) clamp(1rem, 4vw, 2.25rem);
	margin: 1.5rem 10px 0;
}
@media (min-width: 1200px) {
	.fcb-intro.light-surface.fcb-archive-intro { margin: 1.5rem auto 0; }
}
.fcb-archive-intro .fcb-archive__breadcrumb { padding-top: 0; }

/* The filter bar lives at the top of .fcb-archive (Zone B) so its sticky
   positioning has the full broker-grid height to scroll within. We just
   give it some breathing room above. */
.fcb-archive > .fcb-archive__filterbar { margin-top: 0.5rem; }

/* ─── Sticky filter panel: chips · active · count+sort ──────────────── */
.fcb-archive__filterbar {
	position: sticky; top: 0; z-index: 20;
	background: rgba(10, 15, 26, 0.88); backdrop-filter: blur(14px);
	border: 1px solid var(--fcb-border); border-radius: var(--fcb-radius);
	overflow: hidden;
}
.fcb-filterbar__row {
	display: flex; flex-wrap: wrap; align-items: center;
	gap: 0.5rem 0.85rem;
	padding: 0.7rem 1rem;
}
.fcb-filterbar__row + .fcb-filterbar__row { border-top: 1px solid var(--fcb-border); }
.fcb-filterbar__row--active { background: rgba(94,234,212,0.04); gap: 0.45rem; padding-top: 0.55rem; padding-bottom: 0.55rem; }
.fcb-filterbar__row--meta {
	background: rgba(15, 23, 42, 0.35);
	gap: 0.75rem;
	padding-top: 0.55rem;
	padding-bottom: 0.55rem;
	flex-wrap: nowrap;
	align-items: center;
}
/* Every meta-row item shares the same min-height so the All-filters pill,
   the count text, and the sort dropdown all sit on the same midline. */
.fcb-filterbar__row--meta > * {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
}
.fcb-filterbar__row--meta .fcb-archive__count { flex: 1 1 auto; min-width: 0; gap: 0.3rem; }
.fcb-filterbar__row--meta .fcb-archive__sort-form { flex: 0 0 auto; }
.fcb-filterbar__row--meta .fcb-select {
	/* Match the All-filters button's 32px target so the select doesn't sit a
	   couple of pixels high inside the row. */
	padding-top: 0.42rem;
	padding-bottom: 0.42rem;
}

.fcb-filterbar__group {
	display: inline-flex; align-items: center; gap: 0.35rem; flex-wrap: wrap;
	padding-right: 0.55rem; position: relative;
}
.fcb-filterbar__group:not(:last-of-type)::after {
	content: ""; position: absolute; right: 0; top: 25%; bottom: 25%;
	width: 1px; background: var(--fcb-border);
}
.fcb-filterbar__label {
	font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 700;
	color: var(--fcb-text-mute); padding-right: 0.2rem;
}
.fcb-filterbar__chip {
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 0.3rem 0.7rem; border-radius: 999px;
	background: var(--fcb-card-raised); border: 1px solid var(--fcb-border);
	color: var(--fcb-text-soft); font-size: 12px; font-weight: 500;
	cursor: pointer; transition: all 150ms;
	font-family: inherit; text-decoration: none;
}
.fcb-filterbar__chip:hover { border-color: rgba(94,234,212,0.40); color: white; }
.fcb-filterbar__chip.is-active { background: var(--fcb-grad-soft); border-color: rgba(94,234,212,0.55); color: white; }
.fcb-filterbar__chip i { font-size: 10px; opacity: 0.7; }
.fcb-filterbar__more {
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 0.4rem 0.95rem; border-radius: 999px;
	background: var(--fcb-grad-soft);
	border: 1px solid rgba(94,234,212,0.45);
	color: white; font-size: 12.5px; font-weight: 600; cursor: pointer; font-family: inherit;
	transition: all 150ms; flex: 0 0 auto;
}
.fcb-filterbar__more:hover { color: white; border-color: rgba(94,234,212,0.40); background: rgba(94,234,212,0.06); }

/* Active-filter chips (Row 2) */
.fcb-active-filters__label { color: var(--fcb-text-mute); font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; }
.fcb-active-filter {
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 0.22rem 0.6rem; border-radius: 999px;
	background: rgba(94,234,212,0.10); border: 1px solid rgba(94,234,212,0.30);
	color: var(--fcb-accent-text); font-weight: 600; font-size: 12px; text-decoration: none;
	transition: all 150ms;
}
.fcb-active-filter:hover { color: white; border-color: rgba(94,234,212,0.55); background: rgba(94,234,212,0.18); }
.fcb-active-filters__clear { margin-left: auto; color: var(--fcb-text-mute); text-decoration: underline; cursor: pointer; background: transparent; border: 0; font-family: inherit; font-size: 12px; padding: 0; }
.fcb-active-filters__clear:hover { color: white; }

/* Count + sort (Row 3) */
.fcb-archive__count { font-size: 13px; color: var(--fcb-text-soft); }
.fcb-archive__count strong { color: white; font-weight: 700; font-family: var(--fcb-font-mono); }
.fcb-archive__count-featured { color: var(--fcb-orange); }
.fcb-archive__sort-form { display: inline-flex; align-items: center; gap: 0.55rem; line-height: 1; margin: 0; }
.fcb-archive__sort-label { font-size: 11.5px; color: var(--fcb-text-mute); font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; line-height: 1; }
/* Reset parent Breek theme's generic `select { margin-bottom: 15px }` rule,
   which makes the select sit visibly low inside the inline-flex sort form. */
.fcb-archive__sort-form .fcb-select { line-height: 1; margin: 0; }

@media (max-width: 640px) {
	.fcb-filterbar__row { padding: 0.55rem 0.8rem; }
	.fcb-filterbar__group { padding-right: 0; }
	.fcb-filterbar__group:not(:last-of-type)::after { display: none; }
	.fcb-filterbar__row--meta { gap: 0.5rem; }
	.fcb-filterbar__row--meta .fcb-archive__count { font-size: 12px; }
	.fcb-archive__sort-label { display: none; }
	.fcb-filterbar__more span { display: none; }
	.fcb-filterbar__more { padding: 0.4rem 0.7rem; }
}
.fcb-select {
	background: var(--fcb-card-raised); border: 1px solid var(--fcb-border);
	color: white; padding: 0.35rem 2rem 0.35rem 0.8rem; border-radius: 8px;
	font-family: inherit; font-size: 13px; font-weight: 500;
	cursor: pointer; appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'><path d='M3 4.5L6 7.5L9 4.5' stroke='%2394a3b8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	background-repeat: no-repeat; background-position: right 0.6rem center;
}
.fcb-select:hover { border-color: var(--fcb-border-strong); }

/* ─── All-filters drawer (opened by .fcb-filterbar__more) ──────────── */
.fcb-filter-drawer {
	padding: 0;
	border: 1px solid var(--fcb-border);
	border-radius: var(--fcb-radius);
	background: var(--fcb-card);
	color: var(--fcb-text);
	max-width: 720px;
	width: calc(100% - 2rem);
	max-height: min(90vh, 760px);
	box-shadow: 0 20px 60px rgba(0,0,0,0.4);
}
/* When open, the dialog is the flex column so the form fills it and the
   body grows to take the remaining height. `height: 100%` on the form
   alone resolved against the block dialog as 0 and collapsed the body. */
.fcb-filter-drawer[open] {
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
.fcb-filter-drawer::backdrop {
	background: rgba(15, 23, 42, 0.65);
	backdrop-filter: blur(4px);
}
.fcb-filter-drawer__form {
	display: flex; flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
}
.fcb-filter-drawer__head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 1rem 1.25rem; border-bottom: 1px solid var(--fcb-border);
}
.fcb-filter-drawer__head h3 {
	font-family: var(--fcb-font-display);
	font-size: 1.15rem; font-weight: 700; margin: 0; color: var(--fcb-text);
}
.fcb-filter-drawer__close {
	background: none; border: 0; cursor: pointer;
	font-size: 1.6rem; line-height: 1; color: var(--fcb-text-mute);
	padding: 0 0.35rem;
}
.fcb-filter-drawer__close:hover { color: var(--fcb-text); }
.fcb-filter-drawer__body {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	padding: 1rem 1.25rem;
	display: flex; flex-direction: column; gap: 1rem;
}
.fcb-filter-drawer__group {
	border: 0; padding: 0; margin: 0;
	display: flex; flex-direction: column; gap: 0.45rem;
}
.fcb-filter-drawer__group legend {
	font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em;
	font-weight: 700; color: var(--fcb-text-mute); padding: 0; margin-bottom: 0.25rem;
}
.fcb-filter-drawer__sub {
	font-size: 11.5px; color: var(--fcb-text-mute); font-weight: 600;
	margin-top: 0.15rem;
}
.fcb-filter-drawer__chips {
	display: flex; flex-wrap: wrap; gap: 0.4rem;
}
.fcb-filter-drawer__chip {
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 0.32rem 0.75rem; border-radius: 999px;
	background: var(--fcb-card-raised); border: 1px solid var(--fcb-border);
	color: var(--fcb-text-soft); font-size: 12.5px; font-weight: 500;
	cursor: pointer; transition: all 150ms;
	user-select: none;
}
.fcb-filter-drawer__chip input { position: absolute; opacity: 0; pointer-events: none; }
.fcb-filter-drawer__chip:hover { border-color: rgba(94,234,212,0.40); color: white; }
.fcb-filter-drawer__chip:has(input:checked) {
	background: var(--fcb-grad-soft);
	border-color: rgba(94,234,212,0.55);
	color: white;
}
.fcb-filter-drawer__chip--strong { font-weight: 600; }
.fcb-filter-drawer__foot {
	display: flex; justify-content: space-between; gap: 0.5rem;
	padding: 0.85rem 1.25rem;
	border-top: 1px solid var(--fcb-border);
}
.fcb-filter-drawer__btn {
	border-radius: 8px;
	padding: 0.5rem 1.1rem;
	font-size: 0.92rem;
	font-weight: 600;
	border: 1px solid transparent;
	cursor: pointer;
	font-family: inherit;
	text-decoration: none;
	display: inline-flex; align-items: center; gap: 0.4rem;
}
.fcb-filter-drawer__btn--ghost {
	background: transparent;
	border-color: var(--fcb-border);
	color: var(--fcb-text-mute);
}
.fcb-filter-drawer__btn--ghost:hover {
	color: var(--fcb-text); border-color: var(--fcb-border-strong);
}
.fcb-filter-drawer__btn--primary {
	background: var(--fcb-grad);
	color: #fff;
	box-shadow: 0 6px 18px -8px rgba(168,85,247,0.55), inset 0 1px 0 rgba(255,255,255,0.2);
}
.fcb-filter-drawer__btn--primary:hover { filter: brightness(1.05); }

@media (max-width: 600px) {
	.fcb-filter-drawer {
		max-width: 100vw; width: 100vw;
		max-height: 100vh; height: 100vh;
		border-radius: 0;
	}
}

/* ─── Grid + section labels ─────────────────────────────────────────── */
.fcb-archive__grid { display: flex; flex-direction: column; gap: 1rem; }
.fcb-archive__section-label {
	display: flex; align-items: center; gap: 0.7rem;
	font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; font-weight: 700;
	color: var(--fcb-text-mute); margin: 0.5rem 0 -0.15rem;
}
.fcb-archive__section-label::after { content: ""; flex: 1; height: 1px; background: var(--fcb-border); }
.fcb-archive__section-label--featured { color: var(--fcb-orange); }
.fcb-archive__section-label--featured i { color: var(--fcb-orange); }
/* Tiny inline note next to a section label — only shown when filters are
   active to flag that the featured section ignores them. Plain text, no
   pill background, low-contrast so it doesn't compete with the label. */
.fcb-archive__section-note {
	font-size: 9.5px;
	font-weight: 500;
	letter-spacing: 0.02em;
	text-transform: none;
	color: var(--fcb-text-faint);
	font-style: italic;
	white-space: nowrap;
}

/* ─── The big card ───────────────────────────────────────────────────── */
.fcb-card {
	position: relative;
	border: 1px solid var(--fcb-border); border-radius: var(--fcb-radius-lg);
	background: var(--fcb-card); backdrop-filter: blur(8px);
	overflow: hidden; transition: border-color 200ms;
}
.fcb-card:hover { border-color: var(--fcb-border-strong); }
.fcb-card.is-expanded { border-color: rgba(94,234,212,0.35); }
.fcb-card.is-expanded::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--fcb-grad); }
.fcb-card.is-featured { border-color: rgba(249,115,22,0.30); background: linear-gradient(135deg, rgba(249,115,22,0.05), rgba(168,85,247,0.04)), var(--fcb-card); }
.fcb-card.is-featured::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--fcb-grad-orange); }
.fcb-card.is-featured.is-expanded { border-color: rgba(249,115,22,0.55); }

/* Top-left rank or featured badge */
.fcb-card__rank {
	position: absolute; top: 0.75rem; left: -0.35rem;
	min-width: 26px; height: 26px; padding: 0 0.5rem; border-radius: 999px;
	background: var(--fcb-card-raised); border: 1px solid var(--fcb-border);
	display: inline-flex; align-items: center; justify-content: center; gap: 0.3rem;
	font-family: var(--fcb-font-mono); font-weight: 700; font-size: 11px; color: var(--fcb-text-mute);
	box-shadow: 0 4px 12px rgba(0,0,0,0.3); z-index: 2;
}
.fcb-card__rank--top { background: var(--fcb-grad); border-color: transparent; color: white; }
.fcb-card__rank--featured { background: var(--fcb-grad-orange); border-color: transparent; color: #1a0f00; font-family: var(--fcb-font-display); font-weight: 800; font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.08em; padding: 0 0.6rem; }
.fcb-card__rank--featured i { font-size: 9.5px; }

/* Right-edge column — stacks the labeled compare chip above the labeled
   expand pill in a single grid cell at the topbar's rightmost slot. Both
   pills size to fit their text + icon; align-items:stretch keeps their
   widths equal so they read as a paired control group. */
.fcb-card__rightcol {
	display: flex; flex-direction: column; align-items: stretch; gap: 6px;
	min-width: 86px;
}

/* Compare-cart chip + expand pill share the same pill shape so they read
   as a paired control set. Text label is always visible (no
   icon-only/tooltip pattern); the chevron pill carries a "Details" label
   on the left and the rotating arrow on the right. */
.fcb-card__compare-chip,
.fcb-card__expand {
	height: 30px;
	padding: 0 0.6rem;
	border-radius: 999px;
	background: var(--fcb-card-raised);
	border: 1px solid var(--fcb-border);
	color: var(--fcb-text-soft);
	cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	gap: 0.4rem; white-space: nowrap;
	font-family: var(--fcb-font-display);
	font-size: 11.5px; font-weight: 700; letter-spacing: 0.02em;
	transition: color 150ms, border-color 150ms, background 150ms;
}
.fcb-card__compare-chip i,
.fcb-card__expand i { font-size: 10px; transition: transform 250ms; }

.fcb-card__compare-chip:hover,
.fcb-card__expand:hover {
	color: var(--fcb-accent-text);
	border-color: rgba(94,234,212,0.40);
	background: rgba(20,184,166,0.06);
}

.fcb-card__compare-chip.is-added {
	background: rgba(20,184,166,0.12);
	border-color: rgba(20,184,166,0.45);
	color: var(--fcb-accent-text);
}

/* Light-surface variants — same pill shape, lighter token palette. */
.light-surface .fcb-card__compare-chip,
.light-surface .fcb-card__expand {
	background: rgba(255,255,255,0.92);
	border-color: rgba(15,23,42,0.12);
	color: var(--fcb-text-soft);
}
.light-surface .fcb-card__compare-chip:hover,
.light-surface .fcb-card__expand:hover {
	color: var(--fcb-accent-text);
	border-color: rgba(20,184,166,0.40);
	background: rgba(20,184,166,0.06);
}
.light-surface .fcb-card__compare-chip.is-added {
	background: rgba(20,184,166,0.08);
	border-color: rgba(20,184,166,0.35);
	color: var(--fcb-accent-text);
}

/* Topbar (always visible) — 5 cols: logo | title block | score | action stack | chevron */
.fcb-card__topbar {
	display: grid; gap: 1.1rem; align-items: center;
	padding: 1rem 1.25rem;
	grid-template-columns: auto minmax(220px, 1fr) auto auto auto;
}
@media (max-width: 900px) {
	.fcb-card__topbar { grid-template-columns: auto 1fr auto auto; gap: 0.85rem; }
	.fcb-card__topbar > .fcb-card__score { display: none; }
	.fcb-card__cta--secondary { display: none; }
}
/* Logo container: fixed height (56px), flexible width — lets rectangular
   broker wordmarks render at their natural aspect ratio. Square logos still
   fit; text-only fallback keeps a min-width so initials don't look tiny. */
.fcb-card__logo {
	height: 56px; min-width: 56px; max-width: 160px;
	padding: 0 10px;
	border-radius: 12px; background: white;
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 4px 14px rgba(0,0,0,0.35);
	flex-shrink: 0; overflow: hidden;
}
.fcb-card__logo img {
	display: block;
	max-width: 100%; max-height: 100%;
	width: auto; height: auto;
	object-fit: contain;
}
.fcb-card__logo--text { font-family: var(--fcb-font-display); font-weight: 800; font-size: 1.2rem; color: white; }
.fcb-card__title { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
.fcb-card__name-row { display: flex; align-items: center; gap: 0.65rem; flex-wrap: wrap; min-width: 0; }
.fcb-card__name { font-family: var(--fcb-font-display); font-weight: 700; font-size: 1.25rem; line-height: 1.15; color: var(--fcb-text); margin: 0; letter-spacing: -0.01em; }
.fcb-card__name a { color: inherit; text-decoration: none; }
.fcb-card__name a:hover { color: var(--fcb-accent-text); }
.fcb-card__tagline { color: var(--fcb-text-mute); font-size: 13px; line-height: 1.4; max-width: 60ch; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fcb-card__regline { margin: 0.25rem 0 0; font-size: 12px; color: var(--fcb-text-mute); line-height: 1.4; }
.fcb-card__regline strong { color: var(--fcb-good); font-weight: 600; font-family: var(--fcb-font-display); margin-right: 0.4rem; }
.fcb-card__regline-more { color: var(--fcb-text-faint); }
/* Tier-aware tone for the regulation label — applied via the same palette
   as fcb-pill so the colour story matches the hero pill on each row. */
.fcb-card__regline--good strong { color: var(--fcb-good); }
.fcb-card__regline--teal strong { color: var(--fcb-accent-text); }
.fcb-card__regline--warn strong { color: #fbbf24; }
.light-surface .fcb-card__regline--warn strong { color: var(--fcb-warn); }
.fcb-card__regline--bad  strong { color: #fb7185; }
.light-surface .fcb-card__regline--bad  strong { color: var(--fcb-danger); }

.fcb-card__score { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 96px; min-height: 78px; padding: 0.65rem 1rem; border-radius: 12px; background: var(--fcb-card-raised); border: 1px solid var(--fcb-border-strong); }
.fcb-card__score-num { font-family: var(--fcb-font-mono); font-weight: 700; font-size: 1.85rem; line-height: 1; background: var(--fcb-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.fcb-card__score-num small { font-size: 0.55em; -webkit-text-fill-color: initial; color: var(--fcb-text-faint); margin-left: 1px; font-weight: 600; }
.fcb-card__score-label { font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--fcb-text-mute); font-weight: 700; margin-top: 0.2rem; }
.fcb-card__score-stars { display: inline-block; margin-top: 0.25rem; }

/* Partial-fill 5-star bar — gray track + clipped gold overlay. */
.fcb-stars {
	position: relative; display: inline-block; line-height: 1;
	font-size: 12px; color: rgba(255,255,255,0.18); letter-spacing: 1.5px;
}
.fcb-stars::before { content: '\2605\2605\2605\2605\2605'; }
.fcb-stars__fg {
	position: absolute; top: 0; left: 0;
	overflow: hidden; white-space: nowrap;
	color: var(--fcb-accent-text);
}
.fcb-stars__fg::before { content: '\2605\2605\2605\2605\2605'; letter-spacing: 1.5px; }

.fcb-card__actions { display: flex; flex-direction: column; align-items: stretch; gap: 0.4rem; min-width: 140px; }
.fcb-card__cta {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem;
	padding: 0.55rem 1rem; border-radius: 9px;
	background: var(--fcb-grad); color: white; text-decoration: none;
	font-family: var(--fcb-font-display); font-weight: 700; font-size: 0.85rem; letter-spacing: -0.01em;
	box-shadow: 0 6px 18px -8px rgba(168,85,247,0.55), inset 0 1px 0 rgba(255,255,255,0.2);
	transition: transform 150ms, box-shadow 150ms, filter 150ms;
	white-space: nowrap;
}
.fcb-card__cta:hover { transform: translateY(-1px); box-shadow: 0 10px 24px -10px rgba(168,85,247,0.7); filter: brightness(1.05); color: white; }
.fcb-card__cta i { transition: transform 150ms; }
.fcb-card__cta:hover i { transform: translateX(3px); }
.fcb-card.is-featured .fcb-card__cta { background: var(--fcb-grad-orange); box-shadow: 0 6px 18px -8px rgba(249,115,22,0.55), inset 0 1px 0 rgba(255,255,255,0.25); color: #1a0f00; }
.fcb-card.is-featured .fcb-card__cta:hover { box-shadow: 0 10px 24px -10px rgba(249,115,22,0.7); color: #1a0f00; }

.fcb-card__cta--secondary {
	background: transparent;
	border: 1px solid var(--fcb-border-strong);
	color: var(--fcb-text-soft);
	box-shadow: none;
	padding: 0.55rem 0.9rem;
}
.fcb-card__cta--secondary:hover { background: rgba(94,234,212,0.06); border-color: rgba(94,234,212,0.40); color: var(--fcb-text); transform: translateY(-1px); box-shadow: none; filter: none; }
.fcb-card.is-featured .fcb-card__cta--secondary { background: transparent; box-shadow: none; color: var(--fcb-text-soft); }

/* Expand pill — base styles consolidated up by .fcb-card__compare-chip rule
   (shared pill shape). Only the expanded-state tweaks live here. */
.fcb-card.is-expanded .fcb-card__expand i { transform: rotate(180deg); }
.fcb-card.is-expanded .fcb-card__expand {
	color: var(--fcb-accent-text);
	border-color: rgba(94,234,212,0.40);
	background: rgba(20,184,166,0.06);
}

/* ─── Phone-stacked card (≤640px) ──────────────────────────────────────
   Restructures the topbar grid into a stacked layout using CSS-only
   grid areas. .fcb-card__title flips to display:contents so its children
   (name-row, regline, tagline) participate directly in the parent grid
   and can be placed in named areas. No PHP markup change required.

   Layout:
     ┌─────────────────────────────────────┐
     │ [logo]  Name     [score chip]  [▾] │
     │ [logo]  FCA · CySEC · +N more       │
     │ Tagline two lines max…              │
     │ [ Visit broker ] [ Read review ]    │
     └─────────────────────────────────────┘                                                                                  */
@media (max-width: 640px) {
	.fcb-card__topbar {
		display: grid;
		grid-template-columns: auto 1fr auto;
		grid-template-areas:
			"logo  name   score"
			"logo  ctry   ctry"
			"regs  regs   regs"
			"tag   tag    tag"
			"cta   cta    cta";
		gap: 0.4rem 0.65rem;
		padding: 0.85rem 0.95rem;
		align-items: center;
	}

	/* Surface both .fcb-card__title and .fcb-card__name-row into the parent
	   grid so name and country chip can sit in separate areas. */
	.fcb-card__topbar > .fcb-card__title          { display: contents; }
	.fcb-card__title > .fcb-card__name-row        { display: contents; }
	.fcb-card__topbar > .fcb-card__logo           { grid-area: logo; align-self: start; height: 44px; min-width: 44px; max-width: 100px; padding: 0 8px; border-radius: 10px; }
	.fcb-card__name-row > .fcb-card__name         { grid-area: name; min-width: 0; }
	.fcb-card__name-row > .fcb-card__country      { grid-area: ctry; justify-self: start; }
	.fcb-card__title > .fcb-card__regline         { grid-area: regs; margin: 0.15rem 0 0; }
	.fcb-card__title > .fcb-card__tagline         { grid-area: tag; margin: 0; font-size: 12.5px; }

	.fcb-card__name { font-size: 1.05rem; }

	/* Score chip: number only — no /5 suffix, no OVERALL label, no stars. */
	.fcb-card__topbar > .fcb-card__score {
		display: inline-flex; align-items: center; justify-self: end;
		grid-area: score;
		min-width: 0; min-height: 0;
		padding: 0.25rem 0.6rem; border-radius: 999px;
		background: var(--fcb-card-raised);
		border: 1px solid var(--fcb-border-strong);
	}
	.fcb-card__score-num        { font-size: 1.05rem; }
	.fcb-card__score-num small  { display: none; }
	.fcb-card__score-label      { display: none; }
	.fcb-card__score-stars      { display: none; }

	/* Expand chevron + compare chip not useful on phone — tap the card name
	   to navigate, use the floating cart drawer to add to compare. Hide the
	   whole rightcol so the topbar has clean horizontal room. */
	.fcb-card__topbar > .fcb-card__expand,
	.fcb-card__rightcol > .fcb-card__expand,
	.fcb-card__topbar > .fcb-card__rightcol { display: none; }

	/* Rank / Featured badge gets covered by the logo at this breakpoint
	   because the logo column is now flush with the card's left padding.
	   Lift the badge to sit as a small sticker above the card's top edge
	   so it clears the logo entirely. */
	.fcb-card__rank {
		top: -10px;
		left: 0.6rem;
		height: 22px;
		font-size: 10.5px;
		box-shadow: 0 6px 14px rgba(0,0,0,0.32);
	}
	.fcb-card__rank--featured { font-size: 9px; padding: 0 0.55rem; }

	/* Actions: two equal-width side-by-side buttons. Re-show the
	   secondary CTA that's hidden at the ≤900px breakpoint above. */
	.fcb-card__topbar > .fcb-card__actions {
		grid-area: cta;
		flex-direction: row;
		min-width: 0;
		gap: 0.5rem;
		margin-top: 0.25rem;
	}
	.fcb-card__cta--secondary { display: inline-flex; }
	.fcb-card__actions > .fcb-card__cta {
		flex: 1 1 0;
		min-height: 44px;
		padding: 0.65rem 0.5rem;
		font-size: 0.85rem;
	}

	/* Best-for chips on phone: single row, content-sized so chips aren't
	   forced to fill grid cells (which left big empty side gutters around
	   short labels). Flip parent from grid → flex with nowrap; pills get
	   width: auto + min-width: 0 so the longest can truncate if needed. */
	.fcb-card__strip-bestfor {
		display: flex; flex-wrap: nowrap; gap: 0.3rem;
		grid-template-columns: none;
	}
	.fcb-bestfor-pill {
		width: auto; flex: 0 1 auto; min-width: 0;
		justify-content: flex-start;
		font-size: 9.5px; padding: 0.18rem 0.5rem; gap: 0.25rem;
	}
	.fcb-bestfor-pill i { font-size: 8.5px; }

	/* Propfirm-only: the discount chip sits in .fcb-card__name-row with no
	   grid-area assigned by the phone topbar grid above, so auto-placement
	   would drop it below the CTAs. Hide it on phones — the same code +
	   amount surface in the detail panel and on the firm's review page. */
	.fcb-card--propfirm .fcb-card__name-row > .fcb-pill { display: none; }
}

/* Style B strip — 4 equal-width specs (left) + 3 equal-width best-for cells (right). */
.fcb-card__strip {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	gap: 1.25rem;
	padding: 0.65rem 1.25rem;
	border-top: 1px solid var(--fcb-border);
	background: var(--fcb-card-sunk);
	align-items: center;
}
@media (max-width: 900px) {
	.fcb-card__strip { grid-template-columns: 1fr; }
}
.fcb-card__strip-specs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.85rem;
}
@media (max-width: 700px) {
	.fcb-card__strip-specs { grid-template-columns: repeat(2, 1fr); }
}
.fcb-card__strip-spec { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fcb-card__strip-spec-label { font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--fcb-text-mute); font-weight: 700; }
.fcb-card__strip-spec-value { font-family: var(--fcb-font-mono); font-weight: 700; color: var(--fcb-text); font-size: 13px; line-height: 1.15; }
.fcb-card__strip-spec-value.is-good { color: var(--fcb-good); }
.fcb-card__strip-spec-value small { color: var(--fcb-text-faint); font-weight: 500; font-size: 0.78em; margin-left: 2px; }

.fcb-card__strip-bestfor {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.35rem;
}
@media (max-width: 700px) {
	.fcb-card__strip-bestfor { grid-template-columns: repeat(2, 1fr); }
}
.fcb-bestfor-pill {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.3rem;
	padding: 0.22rem 0.5rem; border-radius: 999px;
	background: rgba(94,234,212,0.08); border: 1px solid rgba(94,234,212,0.25);
	color: var(--fcb-accent-text); font-size: 10.5px; font-weight: 600;
	width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fcb-bestfor-pill i { font-size: 9.5px; flex-shrink: 0; }

/* Card detail (expanded) */
.fcb-card__detail { display: none; padding: 0 1.25rem 1.25rem; border-top: 1px solid var(--fcb-border); }
.fcb-card.is-expanded .fcb-card__detail { display: block; }
.fcb-card__detail-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: 1.25rem;
	padding-top: 1rem;
	align-items: start;  /* don't stretch columns — kills empty space below shorter side */
}
@media (max-width: 900px) { .fcb-card__detail-grid { grid-template-columns: 1fr; gap: 0.85rem; } }
.fcb-card__detail-left, .fcb-card__detail-right { display: flex; flex-direction: column; gap: 0.7rem; min-width: 0; }

.fcb-card__axes { background: var(--fcb-card-raised); border: 1px solid var(--fcb-border-strong); border-radius: var(--fcb-radius); padding: 0.85rem 1rem; }
.fcb-card__axes-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 0.55rem; }
.fcb-card__axes-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--fcb-text-mute); font-weight: 700; }
.fcb-card__axes-meta { font-size: 11px; color: var(--fcb-text-faint); }
.fcb-card__axes-list { display: flex; flex-direction: column; gap: 0.3rem; }
.fcb-axis-row { display: grid; grid-template-columns: 106px 1fr 36px; gap: 0.65rem; align-items: center; font-size: 12px; }
.fcb-axis-row__name { color: var(--fcb-text-soft); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; }
.fcb-axis-row__name i { color: var(--fcb-text-mute); margin-right: 0.4rem; width: 14px; text-align: center; flex-shrink: 0; }
.fcb-axis-row__bar { height: 5px; background: var(--fcb-card-sunk); border-radius: 999px; overflow: hidden; display: block; }
.fcb-axis-row__bar > span { display: block; height: 100%; background: var(--fcb-grad); border-radius: 999px; }
.fcb-axis-row__score { font-family: var(--fcb-font-mono); color: var(--fcb-text); font-weight: 700; text-align: right; font-size: 12px; }
/* Card-grid axis rows are <button>s so each row is clickable. Reset button
   chrome and add a subtle hover affordance — the bar gradient itself is the
   visual cue that the row is interactive. */
button.fcb-axis-row { width: 100%; background: transparent; border: 0; padding: 0.25rem 0; margin: 0; cursor: pointer; text-align: left; color: inherit; font: inherit; border-radius: 6px; transition: background 120ms ease; }
button.fcb-axis-row:hover { background: var(--fcb-card-sunk); }
button.fcb-axis-row:hover .fcb-axis-row__name { color: var(--fcb-accent-text); }
button.fcb-axis-row:focus-visible { outline: 2px solid var(--fcb-accent-text); outline-offset: 2px; }

.fcb-card__rep { display: flex; flex-wrap: wrap; gap: 0.85rem 1.25rem; padding: 0.6rem 0.85rem; border: 1px solid var(--fcb-border); border-radius: 10px; background: var(--fcb-card-sunk); }
.fcb-card__rep-item { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 12px; color: var(--fcb-text-mute); }
.fcb-card__rep-item strong { color: var(--fcb-text); font-weight: 700; font-family: var(--fcb-font-mono); }
.fcb-card__rep-item i { color: var(--fcb-accent-text); }
.fcb-card__rep-item small { color: var(--fcb-text-faint); font-weight: 500; }

.fcb-card__readrow { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.5rem; padding: 0.5rem 0.85rem; border: 1px dashed var(--fcb-border); border-radius: 10px; }
.fcb-card__readrow-meta { font-size: 11.5px; color: var(--fcb-text-faint); }
.fcb-card__readrow-meta a { color: var(--fcb-text-mute); text-decoration: none; }
.fcb-card__readrow-meta a:hover { color: var(--fcb-accent-text); }
.fcb-card__review-link { display: inline-flex; align-items: center; gap: 0.45rem; color: var(--fcb-accent-text); text-decoration: none; font-weight: 600; font-size: 13.5px; }
.fcb-card__review-link:hover { color: var(--fcb-text); }
.fcb-card__review-link i { transition: transform 150ms; }
.fcb-card__review-link:hover i { transform: translateX(3px); }

/* Country availability chip in the card topbar (after the regulator line).
   Renders inline with the title block, click navigates to the broker page
   with `#countries` hash so the in-place popup opens on landing. */
.fcb-card__country { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.18rem 0.55rem 0.18rem 0.32rem; border-radius: 999px; font-size: 11.5px; font-weight: 600; line-height: 1.2; text-decoration: none; white-space: nowrap; max-width: 100%; overflow: hidden; transition: filter 120ms, transform 120ms; }
.fcb-card__country:hover { transform: translateY(-1px); filter: brightness(1.08); }
.fcb-card__country-icon { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 999px; font-size: 10px; font-weight: 700; font-family: var(--fcb-font-mono); }
.fcb-card__country-label { overflow: hidden; text-overflow: ellipsis; }
.fcb-card__country-more { font-size: 11px; opacity: 0.75; }
.fcb-card__country--good { background: rgba(94, 234, 212, 0.10); border: 1px solid rgba(94, 234, 212, 0.32); color: var(--fcb-good); }
.fcb-card__country--good .fcb-card__country-icon { background: rgba(94, 234, 212, 0.18); }
.fcb-card__country--bad  { background: rgba(248, 113, 113, 0.10); border: 1px solid rgba(248, 113, 113, 0.32); color: var(--fcb-bad); }
.fcb-card__country--bad  .fcb-card__country-icon { background: rgba(248, 113, 113, 0.18); }
.fcb-card__country--warn { background: rgba(251, 191, 36, 0.10); border: 1px solid rgba(251, 191, 36, 0.32); color: #fbbf24; }
.fcb-card__country--warn .fcb-card__country-icon { background: rgba(251, 191, 36, 0.18); }

/* Funding methods chip row inside the expanded detail-left column. Sits
   between the reputation strip and the read-review row, balancing the
   column height against the regulator + ecosystem stack on the right. */
.fcb-card__funding { display: flex; align-items: center; gap: 0.7rem; padding: 0.55rem 0.85rem; border: 1px solid var(--fcb-border); border-radius: 10px; background: var(--fcb-card-sunk); text-decoration: none; color: inherit; transition: border-color 120ms, background 120ms; flex-wrap: wrap; }
.fcb-card__funding:hover { border-color: rgba(94, 234, 212, 0.35); background: rgba(94, 234, 212, 0.05); }
.fcb-card__funding-label { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--fcb-text-mute); font-weight: 700; white-space: nowrap; }
.fcb-card__funding-label i { color: var(--fcb-accent-text); font-size: 11px; }
.fcb-card__funding-chips { display: flex; flex-wrap: wrap; gap: 0.3rem; flex: 1; min-width: 0; }
.fcb-card__funding-chip { display: inline-flex; align-items: center; padding: 0.18rem 0.55rem; border-radius: 999px; background: var(--fcb-card-raised); border: 1px solid var(--fcb-border); color: var(--fcb-text-soft); font-size: 11px; font-weight: 600; line-height: 1.25; white-space: nowrap; }
.fcb-card__funding-chip--more { color: var(--fcb-text-mute); border-style: dashed; }
.fcb-card__funding-cta { color: var(--fcb-accent-text); font-size: 11px; transition: transform 150ms; }
.fcb-card__funding:hover .fcb-card__funding-cta { transform: translateX(3px); }

.fcb-card__reg-block { display: flex; flex-direction: column; gap: 0.4rem; }
.fcb-card__reg-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--fcb-text-mute); font-weight: 700; }
.fcb-card__reg-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }

.fcb-card__features { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.fcb-feature-pill {
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 0.28rem 0.65rem; border-radius: 999px;
	background: var(--fcb-card-raised); border: 1px solid var(--fcb-border);
	color: var(--fcb-text-soft); font-size: 11px; font-weight: 600;
}
.fcb-feature-pill i { color: var(--fcb-accent-text); font-size: 10px; }

.fcb-card__procons { display: grid; grid-template-columns: 1fr 1fr; gap: 0.85rem; }
@media (max-width: 600px) { .fcb-card__procons { grid-template-columns: 1fr; } }
.fcb-card__procon-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.fcb-card__procon-list li { display: flex; gap: 0.5rem; font-size: 12.5px; line-height: 1.45; color: var(--fcb-text-soft); }
.fcb-card__procon-list i { font-size: 11px; flex-shrink: 0; margin-top: 0.2rem; }
.fcb-card__procon-list--pros i { color: var(--fcb-good); }
.fcb-card__procon-list--cons i { color: var(--fcb-danger); }
.fcb-card__procon-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--fcb-text-mute); font-weight: 700; margin: 0 0 0.45rem; display: flex; align-items: center; gap: 0.4rem; }

/* Pagination */
.fcb-archive__pagination { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; justify-content: center; margin: 2rem 0 0; }
.fcb-archive__pagination a, .fcb-archive__pagination span {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 36px; height: 36px; padding: 0 0.8rem;
	border-radius: 8px; border: 1px solid var(--fcb-border);
	color: var(--fcb-text-soft); text-decoration: none; font-weight: 600; font-size: 13px;
	background: var(--fcb-card); transition: all 150ms;
}
.fcb-archive__pagination a:hover { border-color: rgba(94,234,212,0.40); color: white; }
.fcb-archive__pagination .is-current { background: var(--fcb-grad); border-color: transparent; color: white; }
.fcb-archive__pagination .is-disabled { opacity: 0.4; pointer-events: none; }
.fcb-archive__pagination .gap { background: transparent; border-color: transparent; color: var(--fcb-text-faint); }

/* Empty state + footer */
.fcb-archive__empty { padding: 2.5rem 1rem; text-align: center; color: var(--fcb-text-soft); border: 1px dashed var(--fcb-border); border-radius: var(--fcb-radius); }
.fcb-archive__empty p { margin: 0 0 0.6rem; }
.fcb-archive__empty-hint { color: var(--fcb-text-mute); font-size: 13.5px; max-width: 56ch; margin-left: auto; margin-right: auto; }
.fcb-archive__footer {
	margin-top: 2.5rem; padding: 1.4rem; border: 1px solid var(--fcb-border); border-radius: var(--fcb-radius); background: var(--fcb-card);
	display: grid; grid-template-columns: auto 1fr; gap: 1.1rem; align-items: start;
}
@media (max-width: 700px) { .fcb-archive__footer { grid-template-columns: 1fr; } }
.fcb-archive__footer-icon {
	width: 42px; height: 42px; border-radius: 12px; background: var(--fcb-grad-soft); border: 1px solid rgba(94,234,212,0.30);
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--fcb-accent-text); font-size: 1.05rem;
}
.fcb-archive__footer h3 { margin: 0 0 0.35rem; font-family: var(--fcb-font-display); font-weight: 700; color: white; font-size: 1rem; }
.fcb-archive__footer p { margin: 0; color: var(--fcb-text-mute); font-size: 12.5px; line-height: 1.6; }
.fcb-archive__footer a { color: var(--fcb-accent-text); text-decoration: none; font-weight: 600; }
.fcb-archive__footer a:hover { text-decoration: underline; }
.fcb-archive__footer-links { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.75rem; }
.fcb-archive__footer-link {
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 0.3rem 0.75rem; border-radius: 999px;
	background: var(--fcb-card-raised); border: 1px solid var(--fcb-border);
	color: var(--fcb-text-soft); font-size: 12px; font-weight: 500; text-decoration: none;
	transition: border-color 0.15s, color 0.15s;
}
.fcb-archive__footer-link:hover { border-color: rgba(94,234,212,0.40); color: white; text-decoration: none; }

/* ─── Trust badges row ───────────────────────────────────────────────── */
.fcb-archive__trust { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-top: 1rem; }
.fcb-archive__trust-badge {
	display: inline-flex; align-items: center; gap: 0.4rem;
	font-size: 11.5px; font-weight: 500; color: var(--fcb-text-mute);
}
.fcb-archive__trust-badge i { color: var(--fcb-green); font-size: 10px; }

/* ─── Archive tool CTAs (finder + compare side-by-side) ──────────────── */
.fcb-archive-cta-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.85rem;
	margin: 1.25rem 0 0.25rem;
}
@media (max-width: 720px) {
	.fcb-archive-cta-grid { grid-template-columns: 1fr; }
}
/* Two-column grid: icon (top-left) + body (top-right with title+sub).
   Button slots underneath the body column, indented past the icon track. */
.fcb-archive-cta {
	display: grid;
	grid-template-columns: 40px 1fr;
	grid-template-areas:
		"icon body"
		".    btn";
	column-gap: 0.85rem;
	row-gap: 0.5rem;
	padding: 1rem 1.1rem;
	border-radius: var(--fcb-radius);
	background: linear-gradient(135deg, rgba(94,234,212,0.06) 0%, rgba(168,85,247,0.06) 100%);
	border: 1px solid rgba(94,234,212,0.20);
}
.fcb-archive-cta--compare {
	background: linear-gradient(135deg, rgba(168,85,247,0.06) 0%, rgba(94,234,212,0.06) 100%);
	border-color: rgba(168,85,247,0.22);
}
.fcb-archive-cta__icon {
	grid-area: icon;
	align-self: start;
	width: 40px; height: 40px;
	border-radius: 10px;
	background: var(--fcb-grad-soft);
	border: 1px solid rgba(94,234,212,0.25);
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--fcb-accent-text);
	font-size: 1rem;
}
.fcb-archive-cta--compare .fcb-archive-cta__icon {
	border-color: rgba(168,85,247,0.30);
	color: #a855f7;
}
.fcb-archive-cta__body {
	grid-area: body;
	min-width: 0;
}
.fcb-archive-cta__title {
	display: block;
	font-weight: 700;
	color: var(--fcb-text);
	font-size: 0.98rem;
	line-height: 1.3;
}
.fcb-archive-cta__sub {
	display: block;
	color: var(--fcb-text-mute);
	font-size: 12.5px;
	line-height: 1.5;
	margin-top: 0.3rem;
}
.fcb-archive-cta__btn {
	grid-area: btn;
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	white-space: nowrap;
	padding: 0.5rem 1.1rem;
	border-radius: 999px;
	background: var(--fcb-grad);
	color: #0a0f1a;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	transition: opacity 0.15s, transform 0.12s;
	justify-self: start;
	margin-top: 0.2rem;
}
.fcb-archive-cta__btn:hover {
	opacity: 0.92;
	transform: translateY(-1px);
	color: #0a0f1a;
	text-decoration: none;
}

/* Legacy aliases — keep old .fcb-finder-cta* references working until callers
   are migrated. Same visuals as a single full-width finder card. */
.fcb-finder-cta { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin: 1.25rem 0 0.25rem; padding: 1rem 1.2rem; border-radius: var(--fcb-radius); background: linear-gradient(135deg, rgba(94,234,212,0.06) 0%, rgba(168,85,247,0.06) 100%); border: 1px solid rgba(94,234,212,0.20); }
.fcb-finder-cta__icon { flex-shrink: 0; width: 40px; height: 40px; border-radius: 10px; background: var(--fcb-grad-soft); border: 1px solid rgba(94,234,212,0.25); display: inline-flex; align-items: center; justify-content: center; color: var(--fcb-accent-text); font-size: 1rem; }
.fcb-finder-cta__body { flex: 1; min-width: 180px; }
.fcb-finder-cta__title { display: block; font-weight: 700; color: var(--fcb-text); font-size: 0.92rem; line-height: 1.3; }
.fcb-finder-cta__sub { display: block; color: var(--fcb-text-mute); font-size: 12.5px; margin-top: 0.2rem; }
.fcb-finder-cta__cta { flex-shrink: 0; display: inline-flex; align-items: center; gap: 0.45rem; white-space: nowrap; padding: 0.5rem 1.1rem; border-radius: 999px; background: var(--fcb-grad); color: #0a0f1a; font-size: 13px; font-weight: 700; text-decoration: none; transition: opacity 0.15s; }
.fcb-finder-cta__cta:hover { opacity: 0.88; color: #0a0f1a; text-decoration: none; }
@media (max-width: 600px) {
	.fcb-finder-cta { gap: 0.75rem; }
	.fcb-finder-cta__cta { width: 100%; justify-content: center; }
}

/* ─── Bottom guide cards ─────────────────────────────────────────────── */
.fcb-archive__guides { margin: 2.5rem 0 0; }
.fcb-archive__guides-title {
	font-family: var(--fcb-font-display); font-weight: 700; font-size: 1.05rem;
	color: white; margin: 0 0 1rem; display: flex; align-items: center; gap: 0.6rem;
}
.fcb-archive__guides-title::after { content: ""; flex: 1; height: 1px; background: var(--fcb-border); }
.fcb-archive__guides-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.9rem; }
@media (max-width: 860px) { .fcb-archive__guides-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .fcb-archive__guides-grid { grid-template-columns: 1fr; } }
.fcb-guide-card {
	display: flex; flex-direction: column; gap: 0.4rem;
	padding: 1rem 1.1rem; border-radius: var(--fcb-radius);
	background: var(--fcb-card); border: 1px solid var(--fcb-border);
	text-decoration: none; transition: border-color 0.15s, background 0.15s;
}
.fcb-guide-card:hover { border-color: rgba(94,234,212,0.35); background: var(--fcb-card-raised); text-decoration: none; }
.fcb-guide-card i { color: var(--fcb-accent-text); font-size: 1rem; }
.fcb-guide-card strong { color: white; font-size: 0.88rem; font-weight: 700; line-height: 1.3; }
.fcb-guide-card span { color: var(--fcb-text-mute); font-size: 12px; line-height: 1.5; }

/* ============================================================================
   BROKER FINDER — /find-my-broker/
   ----------------------------------------------------------------------------
   Adaptive question tree with live broker matches. White surface via
   .light-surface (re-themer block below). All colors read from --fcb-*
   tokens — change the token, the whole finder retones.
   ============================================================================ */

.fcb-finder {
	margin: 1.5rem auto 5rem;
	padding: clamp(1.25rem, 3vw, 2.25rem);
	background: var(--fcb-card);
	border: 1px solid var(--fcb-border);
	border-radius: var(--fcb-radius-lg);
	box-shadow: 0 4px 24px rgba(15, 23, 42, 0.06);
	color: var(--fcb-text);
}

/* ─── Header ─────────────────────────────────────────────────────────── */
.fcb-finder__head { margin-bottom: 1.75rem; text-align: left; }
.fcb-finder__eyebrow {
	display: inline-flex; align-items: center; gap: 0.5rem;
	font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase;
	color: var(--fcb-accent-text); margin-bottom: 0.65rem;
}
.fcb-finder__eyebrow::before {
	content: ""; width: 28px; height: 2px;
	background: var(--fcb-grad); border-radius: 2px;
}
.fcb-finder__title {
	font-family: var(--fcb-font-display); font-weight: 800;
	font-size: clamp(1.7rem, 4vw, 2.5rem); letter-spacing: -0.025em; line-height: 1.1;
	margin: 0 0 0.65rem; color: var(--fcb-text);
}
.fcb-finder__sub {
	color: var(--fcb-text-soft); font-size: 0.98rem; line-height: 1.6;
	max-width: 62ch; margin: 0;
}

/* ─── Detected country chip ─────────────────────────────────────────── */
.fcb-finder__country {
	display: inline-flex; align-items: center; gap: 0.6rem;
	margin-top: 1.1rem; padding: 0.45rem 0.85rem;
	background: var(--fcb-card-sunk);
	border: 1px solid var(--fcb-border);
	border-radius: 999px;
	font-size: 13px;
}
.fcb-finder__country-icon { color: var(--fcb-accent-text); font-size: 0.92rem; }
.fcb-finder__country-label { color: var(--fcb-text-soft); }
.fcb-finder__country-label strong { color: var(--fcb-text); font-weight: 700; }
.fcb-finder__country-change {
	border: 0; background: transparent;
	color: var(--fcb-accent-text); font-weight: 600; cursor: pointer;
	font-size: 12.5px; padding: 0; text-decoration: underline; text-underline-offset: 2px;
}
.fcb-finder__country-change:hover { color: var(--fcb-accent); }

/* ─── Two-column body ───────────────────────────────────────────────── */
.fcb-finder__body {
	display: grid; gap: 1.5rem;
	grid-template-columns: minmax(0, 1fr) 360px;
}
@media (max-width: 900px) {
	.fcb-finder__body { grid-template-columns: 1fr; }
}

/* ─── LEFT: breadcrumb + question card ──────────────────────────────── */
.fcb-finder__left { min-width: 0; }

.fcb-finder__breadcrumb {
	display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 1rem;
}
.fcb-finder__crumb {
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 0.32rem 0.7rem 0.32rem 0.8rem;
	background: var(--fcb-card-sunk);
	border: 1px solid var(--fcb-border);
	border-radius: 999px;
	font-size: 12px; color: var(--fcb-text-soft); cursor: pointer;
	transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.fcb-finder__crumb:hover {
	border-color: var(--fcb-accent-text); color: var(--fcb-text);
	background: var(--fcb-card);
}
.fcb-finder__crumb strong { color: var(--fcb-text); font-weight: 600; }
.fcb-finder__crumb-x {
	display: inline-flex; align-items: center; justify-content: center;
	width: 16px; height: 16px; border-radius: 999px;
	color: var(--fcb-text-faint); font-size: 10px;
}
.fcb-finder__crumb:hover .fcb-finder__crumb-x { color: var(--fcb-danger); }

/* ─── Question card ─────────────────────────────────────────────────── */
.fcb-finder__card {
	background: var(--fcb-card);
	border: 1px solid var(--fcb-border);
	border-radius: var(--fcb-radius);
	padding: clamp(1.1rem, 2.5vw, 1.6rem);
}

.fcb-finder__q-head {
	display: flex; gap: 0.85rem; align-items: flex-start;
	margin-bottom: 1.1rem;
}
.fcb-finder__q-icon {
	width: 44px; height: 44px; border-radius: 12px; flex-shrink: 0;
	background: var(--fcb-grad-soft);
	border: 1px solid rgba(20, 184, 166, 0.25);
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--fcb-accent-text); font-size: 1.05rem;
}
.fcb-finder__q-headings { min-width: 0; }
.fcb-finder__q-title {
	font-family: var(--fcb-font-display); font-weight: 800;
	font-size: clamp(1.15rem, 2.5vw, 1.4rem); letter-spacing: -0.015em;
	color: var(--fcb-text); margin: 0 0 0.25rem; line-height: 1.25;
}
.fcb-finder__q-sub { color: var(--fcb-text-mute); font-size: 0.9rem; margin: 0; line-height: 1.5; }

/* ─── Option grid ───────────────────────────────────────────────────── */
.fcb-finder__opts { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; }
@media (max-width: 520px) { .fcb-finder__opts { grid-template-columns: 1fr; } }

.fcb-finder__opt {
	display: grid; grid-template-columns: 36px 1fr 18px;
	gap: 0.7rem; align-items: center;
	padding: 0.85rem 0.95rem;
	background: var(--fcb-card); border: 1.5px solid var(--fcb-border);
	border-radius: 12px;
	cursor: pointer; text-align: left; width: 100%;
	transition: border-color 0.15s, background 0.15s, box-shadow 0.15s, transform 0.12s;
	color: var(--fcb-text); font-family: inherit;
}
.fcb-finder__opt:hover {
	border-color: var(--fcb-accent-text);
	background: var(--fcb-card-raised);
	transform: translateY(-1px);
	box-shadow: 0 4px 14px -8px rgba(20, 184, 166, 0.30);
}
.fcb-finder__opt.is-selected {
	border-color: var(--fcb-accent);
	background: rgba(20, 184, 166, 0.06);
	box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.10);
}
.fcb-finder__opt-icon {
	width: 36px; height: 36px; border-radius: 10px;
	background: var(--fcb-card-sunk);
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--fcb-accent-text); font-size: 0.95rem;
	transition: background 0.15s, color 0.15s;
}
.fcb-finder__opt:hover .fcb-finder__opt-icon,
.fcb-finder__opt.is-selected .fcb-finder__opt-icon {
	background: rgba(20, 184, 166, 0.12);
}
.fcb-finder__opt-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.fcb-finder__opt-label {
	font-weight: 700; font-size: 0.93rem; line-height: 1.3;
	color: var(--fcb-text);
}
.fcb-finder__opt-sub {
	color: var(--fcb-text-mute); font-size: 11.5px; line-height: 1.4;
}
.fcb-finder__opt-check {
	display: inline-flex; align-items: center; justify-content: center;
	width: 18px; height: 18px; border-radius: 6px;
	border: 1.5px solid var(--fcb-border);
	background: var(--fcb-card);
	color: var(--fcb-card); /* hides the check */
	font-size: 9px; transition: all 0.15s;
}
.fcb-finder__opt.is-selected .fcb-finder__opt-check {
	background: var(--fcb-grad);
	border-color: transparent;
	color: #ffffff;
}
/* Single-select (radio) gets a circle, multi-select keeps the rounded square */
.fcb-finder__q[data-multi="0"] .fcb-finder__opt-check { border-radius: 999px; }

/* ─── Q-card navigation ─────────────────────────────────────────────── */
.fcb-finder__q-nav {
	display: flex; align-items: center; justify-content: space-between;
	gap: 0.6rem; margin-top: 1.25rem;
	padding-top: 1rem; border-top: 1px solid var(--fcb-border);
}
.fcb-finder__q-nav-right { display: inline-flex; gap: 0.5rem; align-items: center; }

.fcb-finder__nav-back,
.fcb-finder__nav-skip,
.fcb-finder__nav-next {
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 0.5rem 1rem; border-radius: 999px;
	font: inherit; font-size: 13px; font-weight: 600;
	cursor: pointer; transition: all 0.15s;
	border: 1px solid var(--fcb-border); background: transparent;
	color: var(--fcb-text-soft);
}
.fcb-finder__nav-back:hover,
.fcb-finder__nav-skip:hover {
	border-color: var(--fcb-border-strong); color: var(--fcb-text);
	background: var(--fcb-card-sunk);
}
.fcb-finder__nav-skip { border: 0; color: var(--fcb-text-mute); }
.fcb-finder__nav-skip:hover { background: var(--fcb-card-sunk); }

.fcb-finder__nav-next {
	background: var(--fcb-grad);
	color: #ffffff; border: 0;
	box-shadow: 0 4px 14px -6px rgba(20, 184, 166, 0.5);
}
.fcb-finder__nav-next:hover { transform: translateY(-1px); filter: brightness(1.05); color: #ffffff; }

/* ─── "All done" state ──────────────────────────────────────────────── */
.fcb-finder__done {
	text-align: center; padding: 2rem 1rem;
	background: var(--fcb-card);
	border: 1px solid var(--fcb-border);
	border-radius: var(--fcb-radius);
}
.fcb-finder__done-icon {
	width: 64px; height: 64px; border-radius: 999px; margin: 0 auto 1rem;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--fcb-grad-soft); color: var(--fcb-accent-text);
	font-size: 1.6rem;
}
.fcb-finder__done-title {
	font-family: var(--fcb-font-display); font-weight: 800;
	font-size: 1.4rem; color: var(--fcb-text); margin: 0 0 0.5rem;
}
.fcb-finder__done-body { color: var(--fcb-text-soft); margin: 0 auto 1.25rem; max-width: 40ch; }
.fcb-finder__done-restart {
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 0.55rem 1.1rem; border-radius: 999px;
	background: var(--fcb-card-sunk); border: 1px solid var(--fcb-border);
	color: var(--fcb-text-soft); font-weight: 600; cursor: pointer;
	font: inherit; font-size: 13.5px;
	transition: all 0.15s;
}
.fcb-finder__done-restart:hover { color: var(--fcb-text); border-color: var(--fcb-border-strong); }

/* ─── RIGHT: live results ───────────────────────────────────────────── */
.fcb-finder__right {
	position: sticky; top: 1rem; align-self: start;
	display: flex; flex-direction: column; gap: 0.85rem;
}
@media (max-width: 900px) { .fcb-finder__right { position: static; } }

.fcb-finder__results-head {
	display: flex; align-items: center; justify-content: space-between;
	gap: 0.5rem; flex-wrap: wrap;
}
.fcb-finder__results-label {
	display: inline-flex; align-items: center; gap: 0.45rem;
	font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--fcb-text-mute);
}
.fcb-finder__results-label i { color: var(--fcb-accent-text); }
.fcb-finder__results-count {
	font-size: 12px; color: var(--fcb-text-mute);
}
.fcb-finder__results-count strong { color: var(--fcb-text); font-weight: 700; }

.fcb-finder__cards { display: flex; flex-direction: column; gap: 0.7rem; }
.fcb-finder__empty {
	padding: 1.5rem 1rem; text-align: center;
	color: var(--fcb-text-mute); font-size: 13px;
	background: var(--fcb-card-sunk);
	border: 1px dashed var(--fcb-border);
	border-radius: var(--fcb-radius);
}

/* ─── Match card (medium density) ───────────────────────────────────── */
.fcb-finder__match {
	background: var(--fcb-card);
	border: 1px solid var(--fcb-border);
	border-radius: var(--fcb-radius);
	overflow: hidden;
	transition: border-color 0.15s, box-shadow 0.15s, transform 0.12s;
}
.fcb-finder__match:hover {
	border-color: var(--fcb-accent-text);
	box-shadow: 0 8px 28px -12px rgba(15, 23, 42, 0.18);
	transform: translateY(-2px);
}
.fcb-finder__match-body {
	display: grid; grid-template-columns: 52px 1fr;
	gap: 0.85rem; align-items: flex-start;
	padding: 0.95rem 1rem; text-decoration: none;
	color: inherit;
}
.fcb-finder__match-body:hover { text-decoration: none; color: inherit; }
.fcb-finder__match-logo {
	width: 52px; height: 52px; border-radius: 10px;
	background: #ffffff; border: 1px solid var(--fcb-border);
	display: inline-flex; align-items: center; justify-content: center;
	padding: 6px; overflow: hidden; flex-shrink: 0;
}
.fcb-finder__match-logo img {
	max-width: 100%; max-height: 100%; object-fit: contain;
}
.fcb-finder__match-logo-text {
	font-family: var(--fcb-font-display); font-weight: 800; font-size: 1.1rem;
	color: var(--fcb-accent-text); letter-spacing: 0.02em;
}
.fcb-finder__match-main { min-width: 0; }
.fcb-finder__match-row {
	display: flex; align-items: center; justify-content: space-between;
	gap: 0.5rem; margin-bottom: 0.35rem;
}
.fcb-finder__match-name {
	font-family: var(--fcb-font-display); font-weight: 700;
	font-size: 1.02rem; color: var(--fcb-text);
	margin: 0; line-height: 1.2; letter-spacing: -0.01em;
}
.fcb-finder__match-score {
	display: inline-flex; align-items: baseline; gap: 1px;
	padding: 0.18rem 0.55rem; border-radius: 999px;
	background: var(--fcb-grad-soft);
	border: 1px solid rgba(20, 184, 166, 0.30);
	font-family: var(--fcb-font-mono); font-size: 11.5px;
	color: var(--fcb-accent-text);
}
.fcb-finder__match-score strong { font-weight: 800; color: var(--fcb-text); font-size: 13px; }
.fcb-finder__match-score-max { color: var(--fcb-text-faint); font-size: 10px; }

.fcb-finder__match-reasons {
	list-style: none; padding: 0; margin: 0.4rem 0 0;
	display: flex; flex-direction: column; gap: 2px;
}
.fcb-finder__match-reasons li {
	display: flex; align-items: center; gap: 0.4rem;
	color: var(--fcb-text-soft); font-size: 12.5px; line-height: 1.4;
}
.fcb-finder__match-reasons li i { color: var(--fcb-good); font-size: 10px; flex-shrink: 0; }

.fcb-finder__match-facts {
	display: flex; flex-wrap: wrap; gap: 0.65rem;
	margin-top: 0.5rem; padding-top: 0.5rem;
	border-top: 1px dashed var(--fcb-border);
	font-size: 11.5px; color: var(--fcb-text-mute);
}
.fcb-finder__match-fact {
	display: inline-flex; align-items: center; gap: 0.3rem;
}
.fcb-finder__match-fact i { color: var(--fcb-text-faint); font-size: 10px; }

.fcb-finder__match-cta-row {
	display: flex; gap: 0.4rem;
	padding: 0.55rem 1rem 0.8rem;
	border-top: 1px solid var(--fcb-border);
}
.fcb-finder__match-review {
	flex: 1; text-align: center;
	padding: 0.5rem 0.7rem; border-radius: 8px;
	background: var(--fcb-card-sunk);
	color: var(--fcb-text-soft);
	font-size: 12.5px; font-weight: 600; text-decoration: none;
	transition: all 0.15s;
}
.fcb-finder__match-review:hover {
	background: var(--fcb-card-raised); color: var(--fcb-text);
	text-decoration: none;
}
.fcb-finder__match-cta {
	flex: 1; text-align: center;
	padding: 0.5rem 0.7rem; border-radius: 8px;
	background: var(--fcb-grad); color: #ffffff;
	font-size: 12.5px; font-weight: 700; text-decoration: none;
	transition: all 0.15s;
}
.fcb-finder__match-cta:hover { filter: brightness(1.05); color: #ffffff; text-decoration: none; transform: translateY(-1px); }
.fcb-finder__match-cta i { font-size: 9px; margin-left: 2px; }

/* ─── "See all matches" footer link ─────────────────────────────────── */
.fcb-finder__see-all {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	padding: 0.75rem 1.1rem; border-radius: var(--fcb-radius);
	background: var(--fcb-card-sunk); border: 1px solid var(--fcb-border);
	color: var(--fcb-text); font-weight: 700; font-size: 13.5px;
	text-decoration: none; text-align: center;
	transition: all 0.15s;
}
.fcb-finder__see-all:hover {
	background: var(--fcb-card); border-color: var(--fcb-accent-text);
	color: var(--fcb-text); text-decoration: none;
}
.fcb-finder__see-all i { color: var(--fcb-accent-text); font-size: 11px; transition: transform 0.15s; }
.fcb-finder__see-all:hover i { transform: translateX(3px); }

/* ─── Country override modal ────────────────────────────────────────── */
.fcb-finder__country-modal {
	max-width: 460px; width: calc(100% - 2rem);
	padding: 1.4rem;
	background: var(--fcb-card);
	border: 1px solid var(--fcb-border);
	border-radius: var(--fcb-radius-lg);
	color: var(--fcb-text);
}
.fcb-finder__country-modal::backdrop { background: rgba(15, 23, 42, 0.55); }
.fcb-finder__country-modal h3 { margin: 0 0 0.35rem; font-family: var(--fcb-font-display); font-weight: 800; }
.fcb-finder__country-modal-sub { margin: 0 0 1rem; color: var(--fcb-text-soft); font-size: 13.5px; }
.fcb-finder__country-search {
	width: 100%; padding: 0.65rem 0.85rem; border-radius: 10px;
	background: var(--fcb-card-sunk); border: 1px solid var(--fcb-border);
	color: var(--fcb-text); font: inherit; font-size: 14px;
}
.fcb-finder__country-search:focus { outline: 2px solid rgba(20,184,166,0.4); outline-offset: 0; }
.fcb-finder__country-list {
	list-style: none; padding: 0; margin: 0.8rem 0 0;
	max-height: 300px; overflow-y: auto;
	display: flex; flex-direction: column; gap: 2px;
}
.fcb-finder__country-list li {
	padding: 0.55rem 0.85rem; border-radius: 8px;
	cursor: pointer; font-size: 14px;
	display: flex; justify-content: space-between; align-items: center;
}
.fcb-finder__country-list li:hover,
.fcb-finder__country-list li[aria-selected="true"] {
	background: var(--fcb-card-sunk); color: var(--fcb-text);
}
.fcb-finder__country-list li small { color: var(--fcb-text-faint); font-size: 11px; }
.fcb-finder__country-modal-actions {
	display: flex; justify-content: flex-end; gap: 0.5rem;
	margin-top: 1rem; padding-top: 0.85rem; border-top: 1px solid var(--fcb-border);
}
.fcb-finder__country-modal-actions button {
	padding: 0.5rem 1rem; border-radius: 8px;
	border: 1px solid var(--fcb-border); background: transparent;
	color: var(--fcb-text-soft); font: inherit; font-size: 13px; font-weight: 600;
	cursor: pointer;
}
.fcb-finder__country-modal-actions button:hover { background: var(--fcb-card-sunk); }

/* ============================================================================
   LIGHT SURFACE re-themer moved to assets/css/design-tokens.css — loaded first
   on every page so .light-surface works site-wide. See docs/design-system/surfaces.md.
   ============================================================================ */

/* ── Country chip (lives inline in the .fcb-hero__pills row) ──────────── */
.fcb-country-badge {
	display: inline-flex;
	align-items: center;
	flex-wrap: nowrap;
	white-space: nowrap;
	gap: 0.35rem;
	padding: 0.22rem 0.65rem 0.22rem 0.3rem;
	margin: 0;
	max-width: 100%;
	border: 1px solid var(--fcb-border);
	border-radius: 999px;
	background: var(--fcb-card-raised);
	color: var(--fcb-text-soft);
	font-size: 0.78rem;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
	transition: border-color 120ms, color 120ms, background-color 120ms;
}
.fcb-country-badge:hover { border-color: var(--fcb-border-strong); color: var(--fcb-text); }
.fcb-country-badge__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.05rem;
	height: 1.05rem;
	border-radius: 999px;
	font-weight: 700;
	font-size: 0.7rem;
	flex-shrink: 0;
}
.fcb-country-badge--good .fcb-country-badge__icon { background: rgba(94, 234, 212, 0.18); color: var(--fcb-good); }
.fcb-country-badge--bad  .fcb-country-badge__icon { background: rgba(239, 68, 68, 0.18);  color: var(--fcb-danger); }
.fcb-country-badge--warn .fcb-country-badge__icon { background: rgba(245, 158, 11, 0.18); color: var(--fcb-warn); }
.fcb-country-badge__label {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.fcb-country-badge__more {
	color: var(--fcb-accent-text);
	font-size: 0.92em;
	margin-left: 0.15rem;
	opacity: 0.85;
}
.fcb-country-badge:hover .fcb-country-badge__more { opacity: 1; }

/* ── Popup (shared: countries + payments) ─────────────────────────────── */
/* Force dark tokens inside the popup regardless of .light-surface page scope —
   the modal is always dark-themed for consistency with the score popover.
   z-index has to clear the site header which uses 999999 in portal.css. */
.fcb-popup {
	--fcb-card:          rgba(15, 23, 42, 0.96);
	--fcb-card-raised:   rgba(30, 41, 59, 0.96);
	--fcb-card-sunk:     rgba(0, 0, 0, 0.40);
	--fcb-text:          rgba(255, 255, 255, 0.92);
	--fcb-text-soft:     rgba(255, 255, 255, 0.78);
	--fcb-text-mute:     rgba(255, 255, 255, 0.55);
	--fcb-border:        rgba(255, 255, 255, 0.12);
	--fcb-border-strong: rgba(255, 255, 255, 0.22);

	position: fixed;
	inset: 0;
	z-index: 1000000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(8, 12, 24, 0.78);
	backdrop-filter: blur(6px);
	padding: 2rem 1rem;
	color: var(--fcb-text);
}
.fcb-popup[hidden] { display: none; }
.fcb-popup__panel {
	background: var(--fcb-card);
	border: 1px solid var(--fcb-border-strong);
	border-radius: 16px;
	max-width: 720px;
	width: 100%;
	max-height: 86vh;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.55);
}
.fcb-popup__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.4rem;
	border-bottom: 1px solid var(--fcb-border);
	background: var(--fcb-card-raised);
}
.fcb-popup__title {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--fcb-text);
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
}
.fcb-popup__title i { color: var(--fcb-accent-text); }
.fcb-popup__close {
	background: transparent;
	border: 0;
	color: var(--fcb-text-soft);
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
	padding: 0.2rem 0.6rem;
}
.fcb-popup__close:hover { color: var(--fcb-text); }
.fcb-popup__body {
	overflow-y: auto;
	padding: 1.2rem 1.4rem 1.6rem;
}
.fcb-popup__visitor {
	margin: 0 0 1.2rem;
	padding: 0.6rem 0.85rem;
	background: var(--fcb-card-sunk);
	border-radius: 8px;
	font-size: 0.9em;
	color: var(--fcb-text-soft);
}
.fcb-popup__section + .fcb-popup__section { margin-top: 1.4rem; }
.fcb-popup__section-title { margin: 0 0 0.7rem; font-size: 0.95rem; }
.fcb-popup__regions {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 0.65rem;
}
.fcb-popup__region {
	padding: 0.65rem 0.8rem;
	background: var(--fcb-card-sunk);
	border: 1px solid var(--fcb-border);
	border-radius: 10px;
}
.fcb-popup__region-key { font-weight: 600; font-size: 0.95rem; color: var(--fcb-text); }
.fcb-popup__region-entity { font-size: 0.82em; color: var(--fcb-text-soft); margin-top: 0.15rem; }
.fcb-popup__region-reg { font-size: 0.82em; color: var(--fcb-accent-text); margin-top: 0.2rem; font-weight: 600; }
.fcb-popup__restrictions {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 0.55rem;
}
.fcb-popup__restriction {
	padding: 0.6rem 0.8rem;
	background: var(--fcb-card-sunk);
	border-left: 3px solid var(--fcb-danger);
	border-radius: 6px;
}
.fcb-popup__restriction--sanctions { border-left-color: var(--fcb-danger); }
.fcb-popup__restriction--disputed  { border-left-color: var(--fcb-warn); }
.fcb-popup__restriction-name { font-weight: 600; font-size: 0.92rem; }
.fcb-popup__restriction-sev  { font-size: 0.78em; color: var(--fcb-text-soft); text-transform: uppercase; letter-spacing: 0.04em; margin-top: 0.15rem; }
.fcb-popup__restriction-notes { font-size: 0.85em; color: var(--fcb-text-soft); margin-top: 0.3rem; }
.fcb-popup__caveat {
	margin: 1.6rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--fcb-border);
	font-size: 0.82em;
	color: var(--fcb-text-mute);
	font-style: italic;
}

/* Clickable inline card (opens a popup) */
button.fcb-axis-inline__card {
	border: 1px solid var(--fcb-border);
	cursor: pointer;
	text-align: left;
	font: inherit;
	color: inherit;
	transition: border-color 120ms, transform 120ms;
}
button.fcb-axis-inline__card:hover {
	border-color: var(--fcb-accent-text);
	transform: translateY(-1px);
}
.fcb-axis-inline__popup-icon {
	font-size: 0.7em;
	margin-left: 0.3rem;
	color: var(--fcb-accent-text);
	opacity: 0.7;
}

/* ── Country popup additions (search + visitor card + region expanders) ── */
.fcb-popup__search-row { margin: 0 0 1rem; }
.fcb-popup__search {
	display: flex; align-items: center; gap: 0.55rem;
	padding: 0.6rem 0.85rem;
	background: var(--fcb-card-sunk);
	border: 1px solid var(--fcb-border);
	border-radius: 10px;
}
.fcb-popup__search i { color: var(--fcb-text-mute); }
.fcb-popup__search input {
	flex: 1; background: transparent; border: 0;
	color: var(--fcb-text); font-size: 0.95rem; outline: none;
}
.fcb-popup__search input::placeholder { color: var(--fcb-text-mute); }

.fcb-popup__visitor {
	margin: 0 0 1.2rem;
	padding: 0.9rem 1rem;
	background: var(--fcb-card-sunk);
	border: 1px solid var(--fcb-border);
	border-radius: 10px;
}
.fcb-popup__visitor--supported  { border-left: 4px solid var(--fcb-good); }
.fcb-popup__visitor--restricted { border-left: 4px solid var(--fcb-danger); }
.fcb-popup__visitor--unverified { border-left: 4px solid var(--fcb-warn); }
.fcb-popup__visitor-label { font-size: 0.78em; color: var(--fcb-text-mute); text-transform: uppercase; letter-spacing: 0.04em; }
.fcb-popup__visitor-country { margin: 0.2rem 0 0.4rem; font-size: 1.05rem; color: var(--fcb-text); }
.fcb-popup__visitor-status { display: flex; align-items: center; gap: 0.55rem; flex-wrap: wrap; }

.fcb-popup__region-details { margin-top: 0.5rem; }
.fcb-popup__region-details summary {
	cursor: pointer;
	color: var(--fcb-accent-text);
	font-size: 0.82em;
	list-style: none;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
}
.fcb-popup__region-details summary::-webkit-details-marker { display: none; }
.fcb-popup__region-details summary i { font-size: 0.7em; transition: transform 120ms; }
.fcb-popup__region-details[open] summary i { transform: rotate(180deg); }
.fcb-popup__region-countries {
	margin-top: 0.55rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}
.fcb-popup__country-chip {
	display: inline-block;
	padding: 0.2rem 0.55rem;
	background: rgba(255, 255, 255, 0.05);
	border-radius: 999px;
	font-size: 0.78em;
	color: var(--fcb-text-soft);
}
.fcb-popup__region-catchall { margin-top: 0.45rem; font-size: 0.82em; }

.fcb-popup__search-results { margin-top: 0.5rem; }
.fcb-popup__search-row {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0.4rem 0.8rem;
	align-items: center;
	padding: 0.6rem 0.8rem;
	background: var(--fcb-card-sunk);
	border: 1px solid var(--fcb-border);
	border-radius: 8px;
	margin-bottom: 0.4rem;
}
.fcb-popup__search-row-main { display: inline-flex; align-items: center; gap: 0.45rem; }
.fcb-popup__search-row-name { font-weight: 600; color: var(--fcb-text); }
.fcb-popup__search-row-extra {
	grid-column: 1 / -1;
	font-size: 0.82em;
	color: var(--fcb-text-mute);
}

/* ═══════════════════════════════════════════════════════════════════════
   PROPFIRM WIDGETS — used on fc_prop_firm singles + archive.
   All classes are fcb-* and reference --fcb-* tokens defined above so the
   broker side can adopt any of these later without porting tokens.
   Ported from docs/mockup/propfirm-{ftmo,moneta-funded}-full.html, with the
   programs-row summary grid fixed to a 2-row layout on desktop to stop the
   pitch text squishing against the stats column.
   ═══════════════════════════════════════════════════════════════════════ */

/* ─── Programs & Pricing — accordion rows (one per program; expand for pricing) */
.fcb-programs { display: flex; flex-direction: column; gap: 0.85rem; margin-top: 0.5rem; }
.fcb-program-row {
	background: var(--fcb-card-raised);
	border: 1px solid var(--fcb-border);
	border-radius: 14px;
	overflow: hidden;
	transition: border-color 200ms;
}
.fcb-program-row[open]              { border-color: rgba(94,234,212,0.40); }
.fcb-program-row--featured          { border-top: 3px solid var(--fcb-accent); }
.fcb-program-row--sprint            { border-top: 3px solid var(--fcb-orange); }
.fcb-program-row--tier              { border-top: 3px solid var(--fcb-accent2); }
.fcb-program-row--free              { opacity: 0.85; }

/*
   Summary row layout — FIXED from the mockup:
   Two-row grid on desktop so pitch sits under title and the stat-ribbon +
   chips occupy a full row below. Mockup's 5-column 1.6fr+auto+auto squished
   long pitches against the stats column.

     row 1: icon | title-block (type + title + pitch) | chevron
     row 2: .    | stats + chips                       | .
*/
.fcb-program-row__summary {
	display: grid;
	grid-template-columns: 38px 1fr 18px;
	grid-template-areas:
		"icon title chev"
		"icon meta  chev";
	gap: 0.35rem 1rem;
	padding: 0.95rem 1.15rem;
	align-items: start;
	cursor: pointer;
	list-style: none;
}
.fcb-program-row__summary::-webkit-details-marker { display: none; }
.fcb-program-row__summary::marker { content: ''; }
.fcb-program-row__summary:hover   { background: rgba(94,234,212,0.04); }
.fcb-program-row__icon            { grid-area: icon; }
.fcb-program-row__title-block     { grid-area: title; min-width: 0; }
.fcb-program-row__meta            { grid-area: meta; display: flex; flex-wrap: wrap; gap: 0.6rem 1.1rem; align-items: center; }
.fcb-program-row__chev            { grid-area: chev; align-self: center; }

@media (max-width: 760px) {
	.fcb-program-row__summary {
		grid-template-columns: 38px 1fr 18px;
		grid-template-areas:
			"icon title chev"
			"meta meta  meta";
		row-gap: 0.7rem;
	}
}

.fcb-program-row__icon {
	width: 32px; height: 32px;
	border-radius: 8px;
	background: rgba(94,234,212,0.10);
	border: 1px solid rgba(94,234,212,0.25);
	color: var(--fcb-accent);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 14px;
	flex-shrink: 0;
}
.fcb-program-row--sprint .fcb-program-row__icon { background: rgba(249,115,22,0.10); border-color: rgba(249,115,22,0.25); color: var(--fcb-orange); }
.fcb-program-row--tier   .fcb-program-row__icon { background: rgba(168,85,247,0.10); border-color: rgba(168,85,247,0.25); color: var(--fcb-accent2); }

.fcb-program-row__title-block { display: flex; flex-direction: column; gap: 0.15rem; }
.fcb-program-row__type  { font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--fcb-text-mute); font-weight: 700; }
.fcb-program-row__title { font-family: 'Montserrat', sans-serif; font-weight: 700; color: var(--fcb-text); font-size: 1.05rem; line-height: 1.2; margin: 0; }
.fcb-program-row__pitch { font-size: 12.5px; line-height: 1.5; color: var(--fcb-text-soft); margin: 0.15rem 0 0; }

.fcb-program-row__stats      { display: flex; gap: 1.1rem; align-items: center; flex-wrap: wrap; }
.fcb-program-row__stat       { display: flex; flex-direction: column; gap: 0.1rem; }
.fcb-program-row__stat-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--fcb-text-mute); font-weight: 600; }
.fcb-program-row__stat-value { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 13px; font-weight: 700; color: var(--fcb-text); line-height: 1.2; }
.fcb-program-row__stat-value--good   { color: var(--fcb-good); }
.fcb-program-row__stat-value--warn   { color: var(--fcb-warn); }
.fcb-program-row__stat-value--orange { color: var(--fcb-orange); }

.fcb-program-row__chips { display: flex; gap: 0.3rem; flex-wrap: wrap; }
.fcb-program-row__chev  { color: var(--fcb-text-mute); font-size: 12px; transition: transform 200ms; }
.fcb-program-row[open] .fcb-program-row__chev { transform: rotate(180deg); color: var(--fcb-accent); }

.fcb-program-row__detail {
	padding: 1.2rem 1.2rem 1.4rem;
	background: var(--fcb-card);
	border-top: 1px solid var(--fcb-border);
}
.fcb-program-row__detail-meta        { display: flex; gap: 1rem; font-size: 12px; color: var(--fcb-text-mute); flex-wrap: wrap; margin-bottom: 0.85rem; }
.fcb-program-row__detail-meta strong { color: var(--fcb-text); font-weight: 600; }
.fcb-program-row__detail-note        { margin-top: 0.85rem; padding: 0.7rem 0.85rem; background: var(--fcb-card-sunk); border-left: 3px solid var(--fcb-accent); border-radius: 6px; font-size: 12.5px; color: var(--fcb-text-soft); }

/* ─── Pricing matrix inside the expanded accordion ──────────────────────── */
.fcb-pricing-matrix                       { display: flex; flex-direction: column; gap: 1.4rem; }
.fcb-pricing-matrix__program              { background: var(--fcb-card-raised); border: 1px solid var(--fcb-border); border-radius: 14px; overflow: hidden; }
.fcb-pricing-matrix__program-head         { padding: 0.85rem 1.1rem; background: rgba(168,85,247,0.06); border-bottom: 1px solid var(--fcb-border); display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.fcb-pricing-matrix__program--sprint .fcb-pricing-matrix__program-head { background: rgba(249,115,22,0.08); }
.fcb-pricing-matrix__program--tier   .fcb-pricing-matrix__program-head { background: rgba(168,85,247,0.10); }
.fcb-pricing-matrix__program-name         { font-family: 'Montserrat', sans-serif; font-weight: 700; color: var(--fcb-text); font-size: 1rem; }
.fcb-pricing-matrix__program-meta         { display: flex; gap: 0.85rem; font-size: 11.5px; color: var(--fcb-text-mute); flex-wrap: wrap; }
.fcb-pricing-matrix__program-meta strong  { color: var(--fcb-text); font-weight: 600; }
.fcb-pricing-matrix__table                { width: 100%; border-collapse: collapse; font-size: 13px; }
.fcb-pricing-matrix__table th,
.fcb-pricing-matrix__table td             { padding: 0.55rem 0.85rem; text-align: left; border-bottom: 1px solid var(--fcb-border); color: var(--fcb-text-soft); }
.fcb-pricing-matrix__table th             { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--fcb-text-mute); font-weight: 700; }
.fcb-pricing-matrix__table td.fee         { font-family: 'JetBrains Mono', monospace; font-weight: 700; color: var(--fcb-accent); }
.fcb-pricing-matrix__table td.promo       { color: var(--fcb-good); font-size: 11.5px; }

/* ─── Tier-ladder (Phoenix-style tier_scaling programs) ─────────────────── */
.fcb-tier-ladder    { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0.5rem; padding: 1rem; background: rgba(168,85,247,0.05); border: 1px dashed rgba(168,85,247,0.25); border-radius: 12px; margin-bottom: 1rem; }
.fcb-tier           { background: var(--fcb-card); border: 1px solid var(--fcb-border); border-radius: 10px; padding: 0.65rem 0.8rem; position: relative; }
.fcb-tier--passed   { border-color: rgba(168,85,247,0.40); background: rgba(168,85,247,0.08); }
.fcb-tier__num      { font-family: 'Montserrat', sans-serif; font-weight: 800; color: var(--fcb-accent2); font-size: 13px; }
.fcb-tier__capital  { font-family: 'JetBrains Mono', monospace; font-weight: 700; color: var(--fcb-text); font-size: 14px; margin-top: 0.2rem; }
.fcb-tier__target   { font-size: 11px; color: var(--fcb-text-mute); margin-top: 0.1rem; }

/* ─── Rule chips per program (Trading-Rules axis) ───────────────────────── */
.fcb-rule-chips     { display: flex; flex-wrap: wrap; gap: 0.35rem; padding: 0.6rem 0; }
.fcb-rule-chip      { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.2rem 0.55rem; border-radius: 6px; font-size: 11px; font-weight: 600; background: var(--fcb-card-sunk); border: 1px solid var(--fcb-border); color: var(--fcb-text-soft); }
.fcb-rule-chip--ok  { background: rgba(52,211,153,0.12); color: var(--fcb-good);   border-color: rgba(52,211,153,0.30); }
.fcb-rule-chip--meh { background: rgba(245,158,11,0.12); color: var(--fcb-warn);   border-color: rgba(245,158,11,0.30); }
.fcb-rule-chip--no  { background: rgba(244,63,94,0.12);  color: var(--fcb-danger); border-color: rgba(244,63,94,0.30); }

/* ─── Rule-changes timeline ────────────────────────────────────────────── */
.fcb-timeline                          { position: relative; padding: 0.5rem 0 0.5rem 1.5rem; }
.fcb-timeline::before                  { content: ""; position: absolute; left: 5px; top: 0.6rem; bottom: 0.6rem; width: 2px; background: rgba(94,234,212,0.30); border-radius: 2px; }
.fcb-timeline__entry                   { position: relative; padding: 0.5rem 0 1.1rem; }
.fcb-timeline__entry::before           { content: ""; position: absolute; left: -1.25rem; top: 0.85rem; width: 12px; height: 12px; border-radius: 50%; background: var(--fcb-card); border: 2px solid var(--fcb-accent); }
.fcb-timeline__entry--positive::before { border-color: var(--fcb-good); }
.fcb-timeline__entry--negative::before { border-color: var(--fcb-danger); }
.fcb-timeline__date                    { font-size: 11px; color: var(--fcb-text-mute); font-family: 'JetBrains Mono', monospace; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; }
.fcb-timeline__title                   { font-family: 'Montserrat', sans-serif; font-weight: 700; color: var(--fcb-text); font-size: 1rem; margin: 0.15rem 0 0.35rem; }
.fcb-timeline__body                    { font-size: 13.5px; line-height: 1.55; color: var(--fcb-text-soft); }
.fcb-timeline__impact                  { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.15rem 0.5rem; border-radius: 999px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; margin-left: 0.5rem; vertical-align: middle; }
.fcb-timeline__impact--neutral         { background: rgba(100,116,139,0.10); color: var(--fcb-text-mute); }
.fcb-timeline__impact--positive        { background: rgba(52,211,153,0.12);  color: var(--fcb-good); }
.fcb-timeline__impact--negative        { background: rgba(244,63,94,0.12);   color: var(--fcb-danger); }

/* ─── Promo / discount-code stack — dark card, stays outside .light-surface */
.fcb-promo-card        { background: rgba(15,23,42,0.85); border: 1px solid rgba(94,234,212,0.30); border-radius: 14px; padding: 1rem 1.1rem; }
.fcb-promo-card__head  { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.6rem; }
.fcb-promo-card__title { font-family: 'Montserrat', sans-serif; font-weight: 700; color: white; font-size: 0.95rem; }
.fcb-promo-card__badge { font-size: 10px; padding: 0.15rem 0.5rem; border-radius: 999px; background: var(--fcb-grad); color: white; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.fcb-promo-card__list  { display: flex; flex-direction: column; gap: 0.5rem; }
.fcb-promo-code        { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; padding: 0.5rem 0.7rem; background: rgba(0,0,0,0.30); border: 1px dashed rgba(94,234,212,0.30); border-radius: 8px; font-family: 'JetBrains Mono', monospace; font-size: 12px; }
.fcb-promo-code__code  { color: var(--fcb-accent-text); font-weight: 700; letter-spacing: 0.05em; }
.fcb-promo-code__off   { color: white; font-weight: 700; }
.fcb-promo-code__src   { font-size: 10px; color: rgba(255,255,255,0.55); font-family: 'Poppins', sans-serif; font-weight: 600; }
.fcb-promo-card__foot  { font-size: 11px; color: rgba(255,255,255,0.55); margin-top: 0.6rem; }

/* ─── Hero stat-ribbon color variants used by propfirm hero ───────────── */
.fcb-stat-ribbon__value--purple { color: #c4b5fd; }
.fcb-stat-ribbon__value--orange { color: var(--fcb-orange); }

/* ─── Parent-broker badge (propfirm identity when broker-backed) ──────── */
.fcb-parent-badge   { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.25rem 0.65rem; border-radius: 8px; background: rgba(168,85,247,0.08); border: 1px solid rgba(168,85,247,0.25); color: #c4b5fd; font-size: 11.5px; font-weight: 600; }
.fcb-parent-badge i { font-size: 10px; }

/* ─── Custom-section variants emitted by fcp_render_custom_sections() ──── */
.fcb-custom-section--callout  { background: rgba(94,234,212,0.04); border-left: 3px solid var(--fcb-accent); border-radius: 0 12px 12px 0; padding-left: 1.1rem; }
.fcb-custom-section--warning  { background: rgba(245,158,11,0.04); border-left: 3px solid var(--fcb-warn);   border-radius: 0 12px 12px 0; padding-left: 1.1rem; }
.fcb-custom-section--positive { background: rgba(52,211,153,0.04); border-left: 3px solid var(--fcb-good);   border-radius: 0 12px 12px 0; padding-left: 1.1rem; }
.fcb-custom-section--note     { font-size: 13.5px; color: var(--fcb-text-soft); }

/* ============================================================================
 * Homepage promotion strip — broker + propfirm
 *
 * Two strips emitted by fc_homepage_strip_render() (one per CPT) sharing
 * a single eyebrow + trust-badges banner above them, plus a 2-column grid:
 * left = featured archive-style card + Find/Compare CTAs, right = three
 * compact ranked cards. Mobile hides the 3rd ranked card and stacks columns.
 *
 * Reuses .fcb-card, .light-surface, .fcb-pill, .fcb-stars, etc. — additions
 * scoped under .fc-homepage-strip-zone / .fcb-strip-card to override only
 * what differs from the archive card.
 * ============================================================================ */

.fc-homepage-strip-zone {
	position: relative;
	padding: 2rem 1rem 2.5rem;
	background:
		radial-gradient(70% 55% at 50% 0%,   rgba(94,234,212,0.06), transparent 65%),
		radial-gradient(70% 55% at 50% 100%, rgba(168,85,247,0.06), transparent 65%);
}
/* Top + bottom gradient bracket lines — section frame */
.fc-homepage-strip-zone::before,
.fc-homepage-strip-zone::after {
	content: "";
	position: absolute;
	left: 50%; transform: translateX(-50%);
	width: min(1100px, 90%); height: 1px;
	background: linear-gradient(90deg,
		transparent 0%,
		rgba(94,234,212,0.55) 30%,
		rgba(168,85,247,0.55) 70%,
		transparent 100%);
}
.fc-homepage-strip-zone::before { top: 0; }
.fc-homepage-strip-zone::after  { bottom: 0; }

/* Editorial-picks badge — sits above the trust eyebrow so the section
   opens with "this is special" cue before the trust framing kicks in. */
.fc-strip-zone__badge {
	display: flex; align-items: center; gap: 0.45rem;
	width: fit-content;
	padding: 0.3rem 0.85rem; border-radius: 999px;
	background: var(--fcb-grad-soft);
	border: 1px solid rgba(94,234,212,0.30);
	color: #fff;
	font-family: var(--fcb-font-display, inherit);
	font-size: 11px; font-weight: 700;
	letter-spacing: 0.1em; text-transform: uppercase;
	margin-bottom: 0.75rem;
}
.fc-strip-zone__badge i {
	color: var(--fcb-accent-text); font-size: 11px;
}
.fc-homepage-strip-zone__inner { max-width: 1160px; margin: 0 auto; }

.fc-strip-zone__shared-header { margin-bottom: 1.25rem; }
.fc-strip__eyebrow {
	display: inline-flex; align-items: center; gap: 0.5rem;
	font-family: var(--fcb-font-display, inherit);
	font-size: 11.5px; font-weight: 700; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--fcb-accent-text);
	margin-bottom: 0.6rem;
}
.fc-strip__eyebrow::before {
	content: ''; width: 22px; height: 2px;
	background: var(--fcb-grad); border-radius: 1px;
}
.fc-strip__trust {
	display: flex; flex-wrap: wrap; gap: 0.5rem 1rem;
}
.fc-strip__trust-badge {
	display: inline-flex; align-items: center; gap: 0.35rem;
	font-size: 12.5px; color: rgba(255,255,255,0.72);
}
.fc-strip__trust-badge i { color: var(--fcb-good); font-size: 11.5px; }

/* ─── Per-strip wrapper ──────────────────────────────────────────────── */
.fc-homepage-strip { margin-top: 1.5rem; }
.fc-homepage-strip:first-child { margin-top: 0; }
.fc-homepage-strip__inner {}

.fc-strip__header {
	display: flex; align-items: baseline; justify-content: space-between;
	gap: 1rem; margin-bottom: 0.85rem; flex-wrap: wrap;
}
.fc-strip__title {
	font-family: var(--fcb-font-display, inherit);
	font-size: clamp(22px, 2.4vw, 28px); font-weight: 800;
	letter-spacing: -0.015em; margin: 0; line-height: 1.1;
	color: #fff;
}
.fc-strip__title-grad {
	background: var(--fcb-grad);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
}
.fc-strip__viewall {
	font-size: 13px; font-weight: 700; line-height: 1.2;
	color: var(--fcb-accent-text); text-decoration: none;
	display: inline-flex; align-items: center; gap: 0.5rem;
	padding: 0.55rem 1.1rem;
	background: rgba(94,234,212,0.06);
	border: 1px solid rgba(94,234,212,0.22);
	border-radius: 999px;
	transition: background 180ms, border-color 180ms, color 180ms, transform 180ms, box-shadow 180ms;
	white-space: nowrap; flex-shrink: 0;
}
.fc-strip__viewall:hover {
	background: var(--fcb-grad-soft);
	border-color: rgba(94,234,212,0.50);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 8px 22px -10px rgba(94,234,212,0.45);
}
.fc-strip__viewall i { font-size: 11px; opacity: 0.85; transition: transform 180ms, opacity 180ms; }
.fc-strip__viewall:hover i { transform: translateX(3px); opacity: 1; }

/* ─── 2-col grid: left = featured + CTAs (60%), right = ranked stack (40%) ─
   align-items:stretch lets the right column match the left column's height
   so we can space-between the compact cards to bottom-align with the CTA row. */
.fc-strip__grid {
	display: grid; grid-template-columns: 6fr 4fr;
	gap: 14px; align-items: stretch;
}
.fc-strip__left {
	display: flex; flex-direction: column; gap: 10px;
	min-width: 0;
}
/* Right column fills the row height (via grid stretch) and pushes the 2
   compact cards apart with space-between so they bottom-align with the
   left column. Cards keep their natural compact size; the gap between
   them absorbs any extra height. */
.fc-strip__right {
	display: flex; flex-direction: column;
	justify-content: space-between;
	gap: 10px;
	min-width: 0;
}

/* ─── Featured card (reuses .fcb-card.light-surface.is-featured) ───────
   The orange top-strip + small Featured chip both come from existing rules
   (.fcb-card.is-featured::before + .fcb-card__rank--featured). No extra
   banner element — we used to emit one and it ate too much vertical space. */

/* Featured strip-card overrides — tighter padding, drops the rightcol since
   we don't show compare/expand on the homepage. Topbar grid collapses to
   4 columns: logo / title / score / actions. */
.fcb-strip-card--featured .fcb-card__topbar {
	padding: 0.85rem 1rem;
	grid-template-columns: auto minmax(180px, 1fr) auto auto;
	gap: 0.85rem;
}
.fcb-strip-card--featured .fcb-card__logo {
	height: 56px; min-width: 80px; max-width: 130px;
}
.fcb-strip-card--featured .fcb-card__name { font-size: 1.1rem; }
.fcb-strip-card--featured .fcb-card__tagline { font-size: 12.5px; -webkit-line-clamp: 2; }
.fcb-strip-card--featured .fcb-card__regline { font-size: 11.5px; margin-top: 0.2rem; }
.fcb-strip-card--featured .fcb-card__score {
	min-height: 64px; min-width: 84px; padding: 0.4rem 0.85rem;
}
.fcb-strip-card--featured .fcb-card__score-num { font-size: 1.45rem; }
.fcb-strip-card--featured .fcb-card__score-label { font-size: 9px; }
.fcb-strip-card--featured .fcb-card__actions { min-width: 120px; gap: 0.3rem; }
.fcb-strip-card--featured .fcb-card__cta { padding: 0.45rem 0.85rem; font-size: 0.8rem; }

/* Strip ribbon at the bottom of the featured card */
.fcb-strip-card--featured .fcb-card__strip {
	display: flex; gap: 1rem; align-items: center;
	padding: 0.6rem 1rem 0.75rem;
	border-top: 1px solid var(--fcb-border);
	background: rgba(249,115,22,0.04);
	flex-wrap: wrap;
}
.fcb-strip-card--featured.is-featured .fcb-card__strip {
	background: rgba(249,115,22,0.06);
}
.fcb-strip-card--featured:not(.is-featured) .fcb-card__strip {
	background: rgba(0,0,0,0.025);
}
.light-surface.fcb-strip-card--featured:not(.is-featured) .fcb-card__strip {
	background: rgba(15,23,42,0.025);
}
.fcb-strip-card--featured .fcb-card__strip-specs {
	display: flex; gap: 1.3rem; flex: 1 1 auto; flex-wrap: wrap;
}
.fcb-strip-card--featured .fcb-card__strip-spec {
	display: flex; flex-direction: column; gap: 1px;
}
.fcb-strip-card--featured .fcb-card__strip-spec-label {
	font-size: 9px; font-weight: 700; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--fcb-text-faint);
}
.fcb-strip-card--featured .fcb-card__strip-spec-value {
	font-size: 13px; font-weight: 700; color: var(--fcb-text);
	font-family: var(--fcb-font-display, inherit);
}
.fcb-strip-card--featured .fcb-card__strip-spec-value.is-good { color: var(--fcb-good); }
.fcb-strip-card--featured .fcb-card__strip-spec-value small {
	font-size: 10px; color: var(--fcb-text-faint); margin-left: 2px; font-weight: 600;
}
/* Featured card bestfor — broker.css default grid (3 equal columns) is what
   we want here. Just lighten the pill chrome for the white-card context. */
.fcb-strip-card--featured .fcb-card__strip-bestfor {
	max-width: 360px; /* keep pills compact, don't stretch across the whole row */
}
.fcb-strip-card .fcb-bestfor-pill {
	background: rgba(20,184,166,0.10);
	color: #0f766e;
	border: 1px solid rgba(20,184,166,0.18);
}
.fcb-strip-card .fcb-bestfor-pill i {
	color: var(--fcb-accent);
}

/* ─── Find/Compare CTA row (right under featured) ─────────────────────── */
.fc-strip__cta-row {
	display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
.fc-strip__cta {
	background: rgba(255,255,255,0.04);
	border: 1px solid rgba(255,255,255,0.10);
	border-radius: 12px;
	padding: 0.7rem 0.85rem;
	display: grid; grid-template-columns: 32px 1fr; gap: 0.6rem;
	align-items: center;
	text-decoration: none;
	transition: background 150ms, border-color 150ms, transform 150ms;
}
.fc-strip__cta:hover {
	background: rgba(255,255,255,0.07);
	border-color: rgba(255,255,255,0.18);
	transform: translateY(-1px);
}
.fc-strip__cta-icon {
	width: 32px; height: 32px; border-radius: 8px;
	display: flex; align-items: center; justify-content: center;
	font-size: 14px;
}
.fc-strip__cta--finder .fc-strip__cta-icon {
	background: rgba(20,184,166,0.14); color: var(--fcb-accent-text);
	border: 1px solid rgba(94,234,212,0.30);
}
.fc-strip__cta--compare .fc-strip__cta-icon {
	background: rgba(168,85,247,0.16); color: #c4b5fd;
	border: 1px solid rgba(168,85,247,0.30);
}
.fc-strip__cta-body {
	display: flex; flex-direction: column; gap: 1px; min-width: 0;
}
.fc-strip__cta-title {
	font-size: 12.5px; font-weight: 700; color: #fff;
	display: inline-flex; align-items: center; gap: 0.3rem;
}
.fc-strip__cta-title::after {
	content: '→'; font-size: 11px; color: rgba(255,255,255,0.5);
	transition: transform 150ms, color 150ms;
}
.fc-strip__cta:hover .fc-strip__cta-title::after {
	transform: translateX(3px); color: var(--fcb-accent-text);
}
.fc-strip__cta-sub {
	font-size: 10.5px; color: rgba(255,255,255,0.55);
	line-height: 1.3; overflow: hidden;
	display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical;
}

/* ─── Compact ranked card (right ×2 desktop) ─────────────────────────── */
.fcb-strip-card--compact {
	position: relative;
	padding: 9px 12px;
}
.fcb-strip-card__row {
	display: grid;
	grid-template-columns: auto minmax(110px, 1fr) auto auto;
	gap: 0.55rem; align-items: center;
	padding: 0;
}
.fcb-strip-card--compact .fcb-card__logo {
	height: 40px; min-width: 56px; max-width: 80px;
	padding: 0 6px;
}
.fcb-strip-card__title {
	display: flex; flex-direction: column; gap: 1px; min-width: 0;
}
.fcb-strip-card--compact .fcb-card__name {
	font-size: 0.95rem; line-height: 1.15;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
	min-width: 0;
}
.fcb-strip-card--compact .fcb-card__name-row {
	flex-wrap: nowrap; min-width: 0;
}
.fcb-strip-card--compact .fcb-card__regline { font-size: 11px; margin: 0; line-height: 1.4; }
.fcb-strip-card--compact .fcb-card__regline strong { font-size: 11px; }
.fcb-strip-card--compact .fcb-card__country {
	padding: 1px 7px; font-size: 9.5px;
}
.fcb-strip-card--compact .fcb-card__country-more { display: none; }
.fcb-strip-card--compact .fcb-card__country-label {
	max-width: 8ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.fcb-strip-card__score-mini {
	display: flex; flex-direction: column; align-items: flex-end;
	gap: 2px; min-width: 56px;
}
.fcb-strip-card__score-mini-num {
	font-family: var(--fcb-font-mono, inherit);
	font-size: 17px; font-weight: 800;
	background: var(--fcb-grad);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
	line-height: 1;
}
.fcb-strip-card__score-mini-num small {
	font-size: 10px; color: var(--fcb-text-faint);
	-webkit-text-fill-color: initial;
	font-weight: 600; margin-left: 1px;
}
.fcb-strip-card__score-mini-stars { font-size: 10px; }
.fcb-strip-card__score-mini-stars .fcb-stars { font-size: 10px; letter-spacing: 1px; }

.fcb-strip-card__actions {
	display: flex; flex-direction: column;
	gap: 4px; flex-shrink: 0; align-items: stretch;
	min-width: 76px;
}
.fcb-strip-card__actions .fcb-card__cta {
	padding: 0.35rem 0.7rem; font-size: 11.5px;
	border-radius: 7px; min-width: 0;
	width: 100%; justify-content: center;
}

/* Review link: small underlined text under the Visit button, NOT a button.
   Keeps both CTAs available but slashes ~20px of vertical space per card. */
.fcb-strip-card__review-link {
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 11px; font-weight: 600;
	color: var(--fcb-text-mute);
	text-decoration: none;
	padding: 0;
	line-height: 1.3;
	transition: color 120ms;
}
.fcb-strip-card__review-link:hover {
	color: var(--fcb-accent);
	text-decoration: underline;
}

/* Single-row specs strip — must fit MIN/EUR-USD/Lev/Est without wrapping. */
.fcb-strip-card__footer {
	margin-top: 7px; padding-top: 7px;
	border-top: 1px solid var(--fcb-border);
}
.fcb-strip-card__specs {
	display: flex; gap: 0.4rem; align-items: baseline;
	flex-wrap: nowrap; white-space: nowrap;
	overflow: hidden;
}
.fcb-strip-card__spec {
	display: inline-flex; align-items: baseline; gap: 0.2rem;
	min-width: 0;
}
.fcb-strip-card__spec em {
	font-style: normal; font-weight: 600;
	color: var(--fcb-text-faint);
	font-size: 9px; text-transform: uppercase; letter-spacing: 0.04em;
}
/* Default: show full labels, hide short labels. Mobile media query
   below swaps these so short labels show on compact cards <720px. */
.fcb-strip-card__spec em .lbl-short { display: none; }
.fcb-strip-card__spec strong {
	font-weight: 700; color: var(--fcb-text);
	font-size: 11px;
	font-family: var(--fcb-font-display, inherit);
}
.fcb-strip-card__spec strong.is-good { color: var(--fcb-good); }
.fcb-strip-card__spec strong small {
	font-size: 9px; color: var(--fcb-text-faint);
	margin-left: 1px; font-weight: 600;
}
.fcb-strip-card__spec-sep {
	color: var(--fcb-text-faint); font-weight: 400;
}

/* ─── Mobile / responsive ─────────────────────────────────────────────── */
@media (max-width: 1020px) {
	/* Single column at narrow widths.
	   Reorder children so visitor sees: featured → compact ranked → CTAs.
	   display:contents pulls the .left/.right wrappers out of layout so
	   their children become direct flex items of the grid container and
	   can be ordered globally. */
	.fc-strip__grid {
		display: flex; flex-direction: column; gap: 10px;
	}
	.fc-strip__left, .fc-strip__right { display: contents; }
	.fcb-strip-card--featured { order: 1; }
	.fcb-strip-card--compact  { order: 2; }
	.fc-strip__cta-row         { order: 3; }

	.fc-homepage-strip-zone { padding: 2rem 1rem; }
}

@media (max-width: 720px) {
	/* ═══════════════════════════════════════════════════════════════
	   FEATURED CARD — MOBILE LAYOUT (clean rewrite, no bandages)

	   Topbar is a single-row grid: logo | title | score-box.
	   Title's name-row stacks name above country chip vertically.
	   Logo and score auto-center against the 2-line title.
	   Actions sit on row 2 below, full width.
	   ─── visual ─────────────────────────────────────────────────
	     ┌────┐  XM Group         ┌─────────┐
	     │LOGO│  ✓ Sri Lanka      │  4.2/5  │
	     └────┘                   │ ★★★★☆  │
	                              └─────────┘
	     [ Visit broker → ]  [ Read review ]
	   ═══════════════════════════════════════════════════════════════ */

	.fcb-strip-card--featured .fcb-card__topbar {
		grid-template-columns: auto 1fr auto;
		grid-template-rows: auto auto;
		grid-template-areas:
			"logo name  score"
			"logo ctry  ctry"
			"cta  cta   cta";
		column-gap: 0.7rem;
		row-gap: 0.6rem;
		padding: 0.7rem 0.85rem;
		align-items: center;
	}
	.fcb-strip-card--featured .fcb-card__actions {
		grid-row: 2;
		grid-column: 1 / -1;
		flex-direction: row;
	}

	/* Title stacks name + country vertically (instead of wrapping). */
	.fcb-strip-card--featured .fcb-card__name-row {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
	}

	/* Score: small rectangular box, not a pill. */
	.fcb-strip-card--featured .fcb-card__score {
		min-width: 0;
		min-height: 0;
		padding: 6px 10px;
		border-radius: 8px;
		gap: 2px;
	}
	.fcb-strip-card--featured .fcb-card__score-num   { font-size: 1.05rem; }
	.fcb-strip-card--featured .fcb-card__score-num small {
		font-size: 0.7em;     /* was 0.55em — too small to read on phone */
		font-weight: 700;
		margin-left: 2px;
	}
	.fcb-strip-card--featured .fcb-card__score-label { display: none; }
	.fcb-strip-card--featured .fcb-card__score-stars { display: inline-block; margin-top: 2px; }

	/* Hide tagline (the regline rule below handles both cards). */
	.fcb-strip-card--featured .fcb-card__tagline { display: none; }

	/* FEATURED chip on mobile — sticker that sits ON TOP of the card
	   (z-index above content) but FULLY INSIDE so overflow:hidden
	   doesn't clip it. broker.css archive mobile (line 1900) pulls
	   .fcb-card__rank to top: -10px which would clip the chip's upper
	   half here. We target both .fcb-card__rank AND
	   .fcb-card__rank--featured under .fcb-strip-card--featured to
	   override that with higher specificity for both properties. */
	.fcb-strip-card--featured .fcb-card__rank,
	.fcb-strip-card--featured .fcb-card__rank--featured {
		top: 0.45rem;
		left: 0.5rem;
		height: 20px;
		padding: 0 0.5rem;
		font-size: 9px;
		z-index: 5;
	}
	.fcb-strip-card--featured .fcb-card__rank--featured i { font-size: 8.5px; }

	/* Country chip on featured: match compact card size on mobile
	   (smaller padding + font), drop the trailing arrow indicator. */
	.fcb-strip-card--featured .fcb-card__country {
		padding: 1px 7px;
		font-size: 9.5px;
	}
	.fcb-strip-card--featured .fcb-card__country-more { display: none; }

	/* Best-for pills: 3 in ONE row at equal width. Overrides broker.css
	   line 1981 which forces 2-col grid at ≤700px. */
	.fcb-strip-card--featured .fcb-card__strip-bestfor {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 4px;
	}
	.fcb-strip-card--featured .fcb-bestfor-pill {
		padding: 0.2rem 0.5rem;
		font-size: 10px;
	}

	/* Compact card: Visit + Read horizontal on mobile, 70/30 split so
	   the primary CTA keeps its weight and Read sits beside it as a
	   secondary text link. */
	.fcb-strip-card--compact .fcb-strip-card__actions {
		flex-direction: row; min-width: 0;
		gap: 8px; align-items: stretch;
	}
	.fcb-strip-card--compact .fcb-strip-card__actions > .fcb-card__cta {
		flex: 7 1 0; min-width: 0;
	}
	.fcb-strip-card--compact .fcb-strip-card__actions > .fcb-strip-card__review-link {
		flex: 3 1 0; min-width: 0; text-align: center;
	}

	/* Compact card specs: swap full labels for short ones on mobile so
	   all 4 fit (Leverage→Lev, Founded→Est, Min dep→Min). User asked
	   not to hide a spec — abbreviate the labels instead. */
	.fcb-strip-card--compact .fcb-strip-card__spec em .lbl-full { display: none; }
	.fcb-strip-card--compact .fcb-strip-card__spec em .lbl-short { display: inline; }

	/* Hide regline on BOTH card types at mobile — saves a row of
	   vertical space and the "Top-tier regulated +N" line is more
	   useful on the review page than on the homepage strip. */
	.fcb-strip-card .fcb-card__regline { display: none; }

	/* Compact card mobile grid:
	     Row 1: logo (rowspan)  |  name + country chip
	     Row 2: logo (cont)     |  4.3/5  ★★★★☆  (inline, no box)
	     Row 3: actions full width — Visit (70%) / Read (30%) */
	.fcb-strip-card--compact .fcb-strip-card__row {
		grid-template-columns: auto minmax(0, 1fr);
		grid-template-rows: auto auto;
		column-gap: 0.7rem;
		row-gap: 4px;
		align-items: center;
	}
	.fcb-strip-card--compact .fcb-strip-card__row > .fcb-card__logo {
		grid-row: 1 / span 2;
		grid-column: 1;
		align-self: center;
	}
	.fcb-strip-card--compact .fcb-strip-card__row > .fcb-strip-card__title {
		grid-row: 1;
		grid-column: 2;
	}
	.fcb-strip-card--compact .fcb-strip-card__row > .fcb-strip-card__score-mini {
		grid-row: 2;
		grid-column: 2;
		flex-direction: row;
		align-items: center;
		justify-content: flex-start;
		gap: 0.45rem;
		min-width: 0;
	}
	.fcb-strip-card--compact .fcb-strip-card__row > .fcb-strip-card__actions {
		grid-row: 3;
		grid-column: 1 / -1;
		margin-top: 4px;
	}

	/* Compact title (mobile): name + country chip horizontal on row 1,
	   nothing else (regline hidden above). Name truncates if needed so
	   country chip stays visible to the right. */
	.fcb-strip-card--compact .fcb-card__name-row {
		display: flex; flex-wrap: nowrap; gap: 0.4rem;
		align-items: center; min-width: 0;
	}
	.fcb-strip-card--compact .fcb-card__name {
		flex: 1 1 auto; min-width: 0;
		overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
	}
	.fcb-strip-card--compact .fcb-card__name-row > .fcb-card__country {
		flex-shrink: 0;
	}

	/* CTA row → 1 column */
	.fc-strip__cta-row { grid-template-columns: 1fr; }

	/* Section dividers: bigger gaps + centered titles + soft gradient line
	   above each strip's header so the broker / propfirm / infra sections
	   read as clearly separate on mobile. */
	.fc-homepage-strip { margin-top: 2.5rem; position: relative; }
	.fc-homepage-strip:first-of-type { margin-top: 0; }
	.fc-homepage-strip:not(:first-of-type)::before {
		content: ""; display: block;
		width: 50%; height: 1px; margin: 0 auto 1.25rem;
		background: linear-gradient(90deg,
			transparent 0%,
			rgba(94,234,212,0.40) 30%,
			rgba(168,85,247,0.40) 70%,
			transparent 100%);
	}
	.fc-strip__header {
		flex-direction: column; align-items: center; text-align: center;
		gap: 0.4rem;
	}

	/* Center the zone-level shared header on mobile — Editorial picks
	   badge, "Independent · Affiliate-neutral · Updated MMM YYYY"
	   eyebrow, and the 4 trust badges all sit centered. */
	.fc-strip-zone__shared-header { text-align: center; }
	.fc-strip-zone__badge { margin-left: auto; margin-right: auto; }
	.fc-strip__trust { justify-content: center; }

	/* Infrastructure section title also centers on mobile. Its desktop
	   rule (.fc-homepage-strip--infra .fc-strip__header--infra) has
	   higher specificity than the generic .fc-strip__header rule above,
	   so we re-target it explicitly. */
	.fc-homepage-strip--infra .fc-strip__header--infra {
		flex-direction: column; align-items: center; text-align: center;
		gap: 0.4rem;
	}
}

@media (max-width: 500px) {
	/* Very narrow: compact card row reflows */
	.fcb-strip-card__row {
		grid-template-columns: auto 1fr;
		grid-template-rows: auto auto;
		gap: 0.5rem 0.6rem;
	}
	.fcb-strip-card__score-mini,
	.fcb-strip-card__actions {
		grid-column: 1 / -1;
	}
	.fcb-strip-card__score-mini {
		flex-direction: row; align-items: center; gap: 0.5rem;
	}
	.fcb-strip-card--featured .fcb-card__name { font-size: 1rem; }
	.fc-strip__title { font-size: 20px; }
}

/* ============================================================================
 * Trading Infrastructure tile row (hardcoded — FXVM / TradingView / Deriv)
 *
 * Sits below the broker + propfirm strips, inside the same Editorial picks
 * zone. Visually subordinate: smaller H3 title, no score/regulator chrome,
 * compact tiles. Targets ~150-180px total section height.
 * ============================================================================ */

.fc-homepage-strip--infra .fc-strip__header--infra {
	display: flex; align-items: baseline; gap: 0.75rem;
	flex-wrap: wrap; margin-bottom: 0.7rem;
}
.fc-strip__title--small {
	font-size: clamp(16px, 1.7vw, 19px); font-weight: 800;
	line-height: 1.15; margin: 0; color: #fff;
	letter-spacing: -0.01em;
}
.fc-strip__subtitle {
	font-size: 12.5px; color: rgba(255,255,255,0.55);
	line-height: 1.3;
}

.fc-infra-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
}

.fc-infra-tile {
	display: grid;
	grid-template-columns: 64px 1fr auto;
	gap: 12px; align-items: center;
	padding: 11px 14px;
	text-decoration: none;
	color: var(--fcb-text);
	transition: transform 150ms, box-shadow 150ms, border-color 150ms;
	min-width: 0;
}
.fc-infra-tile:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 22px rgba(0,0,0,0.30);
	border-color: rgba(94,234,212,0.35);
}
.fc-infra-tile__logo {
	width: 64px; height: 42px;
	border-radius: 8px;
	background: #fff;
	border: 1px solid var(--fcb-border);
	display: flex; align-items: center; justify-content: center;
	padding: 5px 7px;
	overflow: hidden;
	flex-shrink: 0;
}
.fc-infra-tile__logo img {
	display: block;
	max-width: 100%; max-height: 100%;
	width: auto; height: auto;
	object-fit: contain;
}
.fc-infra-tile__body {
	display: flex; flex-direction: column; gap: 2px;
	min-width: 0;
}
.fc-infra-tile__name {
	font-family: var(--fcb-font-display, inherit);
	font-size: 14.5px; font-weight: 700;
	color: var(--fcb-text);
	line-height: 1.15;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fc-infra-tile__tagline {
	font-size: 11.5px; color: var(--fcb-text-mute);
	line-height: 1.35;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fc-infra-tile__cta {
	display: inline-flex; align-items: center; gap: 0.3rem;
	padding: 0.4rem 0.75rem; border-radius: 8px;
	background: var(--fcb-grad);
	color: #fff;
	font-family: var(--fcb-font-display, inherit);
	font-size: 11.5px; font-weight: 700;
	white-space: nowrap;
	box-shadow: 0 3px 9px rgba(168,85,247,0.30);
	transition: transform 150ms, box-shadow 150ms;
}
.fc-infra-tile:hover .fc-infra-tile__cta {
	transform: translateX(2px);
	box-shadow: 0 5px 13px rgba(168,85,247,0.40);
}
.fc-infra-tile__cta i { font-size: 10px; }

/* Section spacing — clear gap from the propfirm strip above so infra
   reads as its own subordinate section, not stuck to propfirm. */
.fc-homepage-strip--infra { margin-top: 2rem; }

@media (max-width: 720px) {
	.fc-infra-grid { grid-template-columns: 1fr; }
	.fc-infra-tile { grid-template-columns: 56px 1fr auto; gap: 10px; padding: 9px 11px; }
	.fc-infra-tile__logo { width: 56px; height: 36px; }
}

/* =============================================================================
   BROKER MINI v2 — [fc_broker_mini_v2] in-article block (CPT-driven)
   PHP: inc/broker-mini-v2.php · partials/broker-mini/{hero,row}.php
   The hero reuses .fcb-card.light-surface.fcb-strip-card--featured chrome.
   Rows reuse .fc-infra-tile chrome. Everything visual cascades from those.
   This section only adds:
     1. Outer .fcb-mini wrapper (vertical stack, in-article margin).
     2. A small inline badge on the slim VPS/binary tiles.
     3. AGGRESSIVE resets so article-body CSS (link gradients, h3 colors,
        ::after arrows, paragraph margins) doesn't leak into the card.
   ============================================================================= */

.fcb-mini {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 28px 0;
}

/* ─── Compact mini-hero layout ──────────────────────────────────────────
   The strip-card-featured chrome was sized for the homepage's wide grid
   slot. Inside an article body the column is narrower, so the topbar grid
   + actions row get cramped. Compact every dimension unconditionally
   (scale, not media query) so the card stays self-contained at whatever
   width the article gives it. The visual hierarchy is identical — just
   smaller. Layout:

     ┌─────────────────────────────────────────────────────────┐
     │ ┌────┐ XM Group              ✓ Sri Lanka      ┌───────┐ │
     │ │LOGO│ Tagline · 1-2 lines                    │ 4.2/5 │ │
     │ └────┘ Top-tier regulated · +8 entities       └───────┘ │
     │ ┌──────────────────────────┐ ┌──────────────────────┐   │
     │ │ Open account →           │ │ Read review          │   │
     │ └──────────────────────────┘ └──────────────────────┘   │
     │ MIN $5 · EUR/USD 0.10p · LEV 1:1000 · ★ pills          │
     └─────────────────────────────────────────────────────────┘
*/
.fcb-mini-hero .fcb-card__topbar {
	grid-template-columns: auto minmax(120px, 1fr) auto;
	grid-template-rows: auto auto;
	grid-template-areas:
		"logo  title  score"
		"actions actions actions";
	column-gap: 0.65rem;
	row-gap: 0.55rem;
	padding: 0.7rem 0.85rem;
	align-items: center;
}
.fcb-mini-hero .fcb-card__logo {
	grid-area: logo;
	height: 48px;
	min-width: 56px;
	max-width: 96px;
}
.fcb-mini-hero .fcb-card__title  { grid-area: title; min-width: 0; }
.fcb-mini-hero .fcb-card__score {
	grid-area: score;
	min-width: 0;
	min-height: 0;
	padding: 5px 9px;
	border-radius: 8px;
	gap: 2px;
}
.fcb-mini-hero .fcb-card__score-num   { font-size: 1.05rem; }
.fcb-mini-hero .fcb-card__score-num small {
	font-size: 0.65em;
	font-weight: 700;
	margin-left: 1px;
}
.fcb-mini-hero .fcb-card__score-label { font-size: 8px; }
.fcb-mini-hero .fcb-card__score-stars { display: inline-block; margin-top: 2px; }

.fcb-mini-hero .fcb-card__actions {
	grid-area: actions;
	flex-direction: row;
	width: 100%;
	min-width: 0;
	gap: 0.4rem;
}
.fcb-mini-hero .fcb-card__cta {
	flex: 1 1 auto;
	justify-content: center;
	text-align: center;
	padding: 0.42rem 0.7rem;
	font-size: 0.78rem;
	white-space: nowrap;
}
.fcb-mini-hero .fcb-card__cta--secondary { flex: 0 1 auto; }

.fcb-mini-hero .fcb-card__name { font-size: 1rem; }
.fcb-mini-hero .fcb-card__tagline {
	font-size: 12px;
	-webkit-line-clamp: 2;
	margin-top: 0.15rem;
}
.fcb-mini-hero .fcb-card__regline { font-size: 11px; margin-top: 0.15rem; }

/* Strip ribbon: tighter padding + spec sizes. */
.fcb-mini-hero .fcb-card__strip {
	padding: 0.5rem 0.85rem 0.6rem;
	gap: 0.7rem;
}
.fcb-mini-hero .fcb-card__strip-specs { gap: 0.85rem; }
.fcb-mini-hero .fcb-card__strip-spec-label { font-size: 8.5px; }
.fcb-mini-hero .fcb-card__strip-spec-value { font-size: 12px; }
.fcb-mini-hero .fcb-card__strip-spec-value small { font-size: 9.5px; }
.fcb-mini-hero .fcb-bestfor-pill {
	font-size: 11px;
	padding: 0.18rem 0.45rem;
	gap: 0.3rem;
}

/* Featured chip top-left — sticker stays fully inside the card. */
.fcb-mini-hero .fcb-card__rank,
.fcb-mini-hero .fcb-card__rank--featured {
	top: 0.4rem;
	left: 0.45rem;
}

/* Slim tiles: tighten too so they sit naturally alongside the compact hero. */
.fcb-mini-tile {
	padding: 8px 12px;
	gap: 10px;
	grid-template-columns: 44px 1fr auto;
}
.fcb-mini-tile .fc-infra-tile__logo {
	width: 44px;
	height: 36px;
}
.fcb-mini-tile .fc-infra-tile__name    { font-size: 13px; }
.fcb-mini-tile .fc-infra-tile__tagline { font-size: 11.5px; }
.fcb-mini-tile .fc-infra-tile__cta {
	font-size: 0.78rem;
	padding: 0.38rem 0.7rem;
}

/* Slim tile inline badge ("Recommended VPS" / "Binary trading"). */
.fcb-mini-tile .fc-infra-tile__name {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}
.fcb-mini-tile__badge {
	display: inline-block;
	padding: 1px 7px;
	font-size: 9.5px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-radius: 4px;
	background: rgba(20, 184, 166, 0.10);
	color: #0f766e;
	border: 1px solid rgba(20, 184, 166, 0.25);
	line-height: 1.45;
}
.fcb-mini-tile--binary .fcb-mini-tile__badge {
	background: rgba(249, 115, 22, 0.10);
	color: #c2410c;
	border-color: rgba(249, 115, 22, 0.25);
}

/* ─── Article-body containment ──────────────────────────────────────────
   Article themes paint anchors with pink gradients, underline borders,
   ::after arrows, and heading link recoloring. None of that should reach
   into the card. These rules are deliberately loud (!important) because
   article CSS frequently uses high-specificity selectors itself. */

.main-article .fcb-mini,
.post-content .fcb-mini,
.entry-content .fcb-mini,
.fc-article-body .fcb-mini,
.text .fcb-mini {
	line-height: 1.45;
}

/* Every link inside the card resets to inherit + no decoration. The card's
   own button/CTA rules (already loaded above) repaint primary CTAs with
   their gradient background, so we're only stripping the article overlay. */
.main-article .fcb-mini a,
.post-content .fcb-mini a,
.entry-content .fcb-mini a,
.fc-article-body .fcb-mini a,
.text .fcb-mini a,
.main-article .fcb-mini a:hover,
.post-content .fcb-mini a:hover,
.entry-content .fcb-mini a:hover,
.fc-article-body .fcb-mini a:hover,
.text .fcb-mini a:hover {
	color: inherit;
	text-decoration: none !important;
	border-bottom: 0 !important;
	background-image: none;
	-webkit-text-fill-color: currentColor;
	box-shadow: none;
}

/* Kill external-link / heading-anchor ::after arrows article themes inject. */
.main-article .fcb-mini a::after,
.main-article .fcb-mini a::before,
.post-content .fcb-mini a::after,
.post-content .fcb-mini a::before,
.entry-content .fcb-mini a::after,
.entry-content .fcb-mini a::before,
.fc-article-body .fcb-mini a::after,
.fc-article-body .fcb-mini a::before,
.text .fcb-mini a::after,
.text .fcb-mini a::before {
	content: none !important;
	display: none !important;
}

/* Paragraphs inside the card have their own spacing rules from .fcb-card. */
.main-article .fcb-mini p,
.post-content .fcb-mini p,
.entry-content .fcb-mini p,
.fc-article-body .fcb-mini p,
.text .fcb-mini p { margin: 0; }

/* Heading elements inside the card inherit — the .fcb-card__name rule
   then re-styles them with the right font/color/size. */
.main-article .fcb-mini h1,
.main-article .fcb-mini h2,
.main-article .fcb-mini h3,
.main-article .fcb-mini h4,
.post-content .fcb-mini h1,
.post-content .fcb-mini h2,
.post-content .fcb-mini h3,
.post-content .fcb-mini h4,
.entry-content .fcb-mini h1,
.entry-content .fcb-mini h2,
.entry-content .fcb-mini h3,
.entry-content .fcb-mini h4,
.fc-article-body .fcb-mini h1,
.fc-article-body .fcb-mini h2,
.fc-article-body .fcb-mini h3,
.fc-article-body .fcb-mini h4,
.text .fcb-mini h1,
.text .fcb-mini h2,
.text .fcb-mini h3,
.text .fcb-mini h4 {
	margin: 0;
	padding: 0;
	color: inherit;
	background: none;
	background-image: none;
	-webkit-text-fill-color: currentColor;
	border: 0;
	font-family: inherit;
	line-height: inherit;
}

/* Restore .fcb-card__name specifically — the article reset above wipes
   font-family/line-height; the card system needs its own values back. */
.fcb-mini .fcb-card__name {
	font-family: var(--fcb-font-display);
	line-height: 1.2;
}
.fcb-mini .fcb-card__name a { color: var(--fcb-text); }
.light-surface.fcb-mini-hero .fcb-card__name a { color: #0f172a; }
