/* ============================================================
   FinBox Research — Content Hub Design System
   Merged: colors_and_type.css + finbox-cms.css + page components
   Ghost theme edition — paths adjusted for /assets/css/ location
   ============================================================ */

/* ---------- Satoshi @font-face ---------- */
@font-face { font-family:"Satoshi"; src:url("../fonts/Satoshi-Light.otf") format("opentype"); font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:"Satoshi"; src:url("../fonts/Satoshi-LightItalic.otf") format("opentype"); font-weight:300; font-style:italic; font-display:swap; }
@font-face { font-family:"Satoshi"; src:url("../fonts/Satoshi-Regular.otf") format("opentype"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Satoshi"; src:url("../fonts/Satoshi-Italic.otf") format("opentype"); font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:"Satoshi"; src:url("../fonts/Satoshi-Medium.otf") format("opentype"); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:"Satoshi"; src:url("../fonts/Satoshi-MediumItalic.otf") format("opentype"); font-weight:500; font-style:italic; font-display:swap; }
@font-face { font-family:"Satoshi"; src:url("../fonts/Satoshi-Bold.otf") format("opentype"); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:"Satoshi"; src:url("../fonts/Satoshi-BoldItalic.otf") format("opentype"); font-weight:700; font-style:italic; font-display:swap; }
@font-face { font-family:"Satoshi"; src:url("../fonts/Satoshi-Black.otf") format("opentype"); font-weight:900; font-style:normal; font-display:swap; }
@font-face { font-family:"Satoshi"; src:url("../fonts/Satoshi-BlackItalic.otf") format("opentype"); font-weight:900; font-style:italic; font-display:swap; }

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap");

/* ---------- Design Tokens ---------- */
:root {
  --fb-stellar-blue: #194CFF;
  --fb-orbital-blue: #1237B8;
  --fb-deep-ocean:   #001033;
  --fb-arctic-mist:  #DEE5F8;
  --fb-aqua:           #12C1D3;
  --fb-aqua-light:     #2DCFE0;
  --fb-marine-cyan:    #56E2F1;
  --fb-marine-blue:    #9EE1FF;
  --fb-ethereal-white: #F7F8FC;
  --fb-sand:           #F5F0E8;
  --fb-grey-01: #FFFFFF; --fb-grey-02: #FAFAFA; --fb-grey-03: #F9F9FA;
  --fb-grey-04: #F5F5F7; --fb-grey-05: #ECECEC; --fb-grey-06: #E3E4E5;
  --fb-grey-07: #C3C3C3; --fb-grey-08: #A3A3A4; --fb-grey-09: #6B7280;
  --fb-grey-10: #374151; --fb-grey-11: #212121; --fb-grey-12: #0A0A0A; --fb-grey-13: #1D1D1F;
  --fb-black:   #000000;
  --fb-success: #15A85A; --fb-success-bg: #F0FBF6; --fb-success-border: #BAE8D0;
  --fb-danger:  #D92B2B; --fb-danger-bg: #FBEAEA;
  --fb-info-bg: #E6F7F5; --fb-info-border: #2DCFE0; --fb-warning: #E5A23B;
  --fb-gradient-aqua-fusion:   linear-gradient(180deg, #194CFF 25%, #12C1D3 100%);
  --fb-gradient-marine-breeze: linear-gradient(180deg, #56E2F1 0%, #9EE1FF 33%, #FFFFFF 100%);
  --fb-gradient-deep:          linear-gradient(180deg, #001033 0%, #1237B8 100%);
  --fb-bg: var(--fb-grey-01); --fb-bg-subtle: var(--fb-grey-04); --fb-bg-muted: var(--fb-ethereal-white);
  --fb-surface: #FFFFFF; --fb-surface-hover: var(--fb-grey-04);
  --fb-border: var(--fb-grey-06); --fb-border-strong: var(--fb-grey-08);
  --fb-fg: var(--fb-grey-11); --fb-fg-secondary: var(--fb-grey-09); --fb-fg-tertiary: var(--fb-grey-08);
  --fb-link: var(--fb-stellar-blue);
  --fb-font-display: "Satoshi", "Helvetica Neue", system-ui, sans-serif;
  --fb-font-sans:    "Inter", "Satoshi", system-ui, -apple-system, sans-serif;
  --fb-font-mono:    ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;
  --fb-radius-xs: 4px; --fb-radius-sm: 6px; --fb-radius-md: 8px; --fb-radius-lg: 12px;
  --fb-radius-xl: 16px; --fb-radius-2xl: 24px; --fb-radius-pill: 999px;
  --fb-shadow-xs: 0 1px 2px rgba(16,24,40,0.04);
  --fb-shadow-sm: 0 1px 3px rgba(16,24,40,0.06),0 1px 2px rgba(16,24,40,0.04);
  --fb-shadow-md: 0 4px 8px -2px rgba(16,24,40,0.06),0 2px 4px -2px rgba(16,24,40,0.04);
  --fb-shadow-lg: 0 12px 16px -4px rgba(16,24,40,0.08),0 4px 6px -2px rgba(16,24,40,0.03);
  --fb-shadow-xl: 0 20px 24px -4px rgba(16,24,40,0.10),0 8px 8px -4px rgba(16,24,40,0.04);
  --fb-shadow-blue: 0 8px 24px -6px rgba(25,76,255,0.30);
  --fb-ease: cubic-bezier(0.2,0.8,0.2,1); --fb-ease-out: cubic-bezier(0.16,1,0.3,1);
  --fb-dur-fast: 120ms; --fb-dur: 200ms; --fb-dur-slow: 320ms;
}

/* ---------- Base reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--fb-surface); color: var(--fb-grey-12); font-family: var(--fb-font-sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
i[data-lucide] { width: 18px; height: 18px; display: inline-block; flex-shrink: 0; }
::selection { background: var(--fb-arctic-mist); color: var(--fb-grey-12); }

.fb-wrap { max-width: 1300px; margin: 0 auto; padding: 0 44px; }
.fb-eyebrow { font-family: var(--fb-font-sans); font-size: 12px; font-weight: 700; color: var(--fb-stellar-blue); letter-spacing: 0.08em; text-transform: uppercase; }
.fb-eyebrow-i { display: inline-flex; align-items: center; gap: 8px; }
.fb-eyebrow-i i { width: 14px; height: 14px; }

/* ---------- Buttons ---------- */
.fb-btn { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-family: var(--fb-font-sans); font-size: 14px; font-weight: 600; padding: 11px 18px; border-radius: var(--fb-radius-md); border: 0; transition: background var(--fb-dur) var(--fb-ease), box-shadow var(--fb-dur) var(--fb-ease), color var(--fb-dur) var(--fb-ease); }
.fb-btn i { width: 16px; height: 16px; }
.fb-btn-primary { background: var(--fb-stellar-blue); color: #fff; }
.fb-btn-primary:hover { background: var(--fb-orbital-blue); box-shadow: var(--fb-shadow-blue); }
.fb-btn-outline { background: #fff; color: var(--fb-grey-12); border: 1px solid var(--fb-border-strong); }
.fb-btn-outline:hover { border-color: var(--fb-stellar-blue); color: var(--fb-stellar-blue); }
.fb-btn-ghost { background: transparent; color: var(--fb-grey-11); padding: 11px 4px; border: 0; }
.fb-btn-ghost:hover { color: var(--fb-stellar-blue); }
.fb-link { font-size: 14px; font-weight: 700; color: var(--fb-stellar-blue); display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; transition: gap var(--fb-dur) var(--fb-ease); }
.fb-link:hover { gap: 9px; }
.fb-link i { width: 16px; height: 16px; }

/* ======================================================
   TOP BAR
====================================================== */
.fb-topbar { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,0.93); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--fb-grey-12); }
.fb-topbar .row { display: flex; align-items: center; justify-content: space-between; height: 62px; }
.fb-brand { display: flex; align-items: center; gap: 9px; }
.fb-brand img { height: 30px; width: auto; }
.fb-brand .word { font-family: var(--fb-font-display); font-weight: 700; font-size: 20px; letter-spacing: -0.01em; color: var(--fb-grey-12); }
.fb-brand .tag { font-family: var(--fb-font-sans); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fb-grey-08); padding-left: 11px; margin-left: 3px; border-left: 1px solid var(--fb-border); }
.fb-nav-links { display: flex; gap: 24px; align-items: center; }
.fb-nav-links a { font-size: 14px; font-weight: 500; color: var(--fb-grey-10); transition: color var(--fb-dur) var(--fb-ease); }
.fb-nav-links a:hover { color: var(--fb-stellar-blue); }
.fb-nav-links a.active { color: var(--fb-stellar-blue); font-weight: 600; }
.fb-nav-actions { display: flex; align-items: center; gap: 14px; }
.fb-nav-actions .signin { font-size: 14px; font-weight: 600; color: var(--fb-grey-11); }
.fb-burger { display: none; background: none; border: none; cursor: pointer; padding: 4px; flex-direction: column; gap: 5px; align-items: center; }
.fb-burger span { display: block; width: 22px; height: 2px; background: var(--fb-grey-12); border-radius: 2px; transition: all var(--fb-dur) var(--fb-ease); }
.fb-mobile-nav { display: none; position: fixed; inset: 62px 0 0 0; background: #fff; z-index: 49; padding: 24px 24px 32px; flex-direction: column; gap: 4px; border-top: 1px solid var(--fb-border); overflow-y: auto; }
.fb-mobile-nav.open { display: flex; }
.fb-mobile-nav a { font-size: 17px; font-weight: 600; color: var(--fb-grey-12); padding: 14px 0; border-bottom: 1px solid var(--fb-border); display: block; }
.fb-mobile-nav a.active { color: var(--fb-stellar-blue); }
.fb-mobile-actions { margin-top: 20px; display: flex; flex-direction: column; gap: 12px; }
.fb-mobile-actions a { font-size: 15px; border-bottom: none !important; padding: 10px 0 !important; }

/* ======================================================
   MASTHEAD (home hero)
====================================================== */
.fb-masthead { border-bottom: 2px solid var(--fb-grey-12); }
.fb-mh-grid { display: grid; grid-template-columns: 1fr 360px; }
.fb-mh-left { padding: 46px 56px 44px 0; border-right: 1px solid var(--fb-grey-12); }
.fb-index-label { font-family: var(--fb-font-mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fb-stellar-blue); font-weight: 600; }
.fb-mh-title { font-family: var(--fb-font-display); font-weight: 900; font-size: 104px; line-height: 0.9; letter-spacing: -0.045em; margin: 22px 0 0; color: var(--fb-grey-12); }
.fb-mh-title em { font-style: italic; font-weight: 900; color: var(--fb-stellar-blue); }
.fb-mh-sub { font-size: 18px; line-height: 1.55; font-weight: 500; color: var(--fb-grey-10); max-width: 560px; margin: 26px 0 0; }
/* command-bar */
.fb-cmd { margin-top: 30px; background: var(--fb-grey-12); border-radius: var(--fb-radius-md); padding: 4px 4px 4px 18px; display: flex; align-items: center; gap: 12px; max-width: 620px; box-shadow: var(--fb-shadow-lg); cursor: text; }
.fb-cmd .prompt { font-family: var(--fb-font-mono); color: var(--fb-marine-cyan); font-size: 18px; font-weight: 700; user-select: none; }
.fb-cmd input { flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; color: #fff; font-family: var(--fb-font-mono); font-size: 15px; padding: 15px 0; cursor: text; }
.fb-cmd input::placeholder { color: rgba(255,255,255,0.45); }
.fb-cmd .caret { width: 9px; height: 20px; background: var(--fb-marine-cyan); flex-shrink: 0; }
.fb-cmd .run { background: var(--fb-stellar-blue); color: #fff; border: 0; cursor: pointer; border-radius: var(--fb-radius-sm); padding: 12px 18px; font-family: var(--fb-font-mono); font-size: 13px; font-weight: 700; letter-spacing: 0.04em; display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0; transition: background var(--fb-dur) var(--fb-ease); }
.fb-cmd .run:hover { background: var(--fb-orbital-blue); }
.fb-cmd .run i { width: 15px; height: 15px; }
@media (prefers-reduced-motion: no-preference) { .fb-blink { animation: fb-blink 1.1s steps(1) infinite; } @keyframes fb-blink { 50% { opacity: 0; } } }
.fb-cmd-hints { display: flex; gap: 8px; margin-top: 14px; flex-wrap: wrap; }
.fb-cmd-hints .h { font-family: var(--fb-font-mono); font-size: 12.5px; color: var(--fb-grey-10); border: 1px solid var(--fb-grey-06); padding: 6px 11px; cursor: pointer; transition: all var(--fb-dur) var(--fb-ease); }
.fb-cmd-hints .h:hover { background: var(--fb-grey-12); color: #fff; border-color: var(--fb-grey-12); }
/* rail */
.fb-rail { padding: 30px 0 30px 40px; display: flex; flex-direction: column; }
.fb-rail-h { font-family: var(--fb-font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fb-grey-08); padding-bottom: 14px; border-bottom: 1px solid var(--fb-border); display: flex; justify-content: space-between; align-items: center; }
.fb-rail-h .live { color: var(--fb-success); display: inline-flex; align-items: center; gap: 6px; }
.fb-rail-h .live::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--fb-success); }
.fb-rail-row { display: flex; align-items: baseline; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--fb-border); }
.fb-rail-row .k { font-size: 13.5px; color: var(--fb-grey-10); font-weight: 500; }
.fb-rail-row .v { font-family: var(--fb-font-display); font-weight: 700; font-size: 22px; letter-spacing: -0.02em; color: var(--fb-grey-12); }
.fb-rail-row.accent .v { color: var(--fb-stellar-blue); }
.fb-rail-foot { margin-top: auto; padding-top: 18px; font-family: var(--fb-font-mono); font-size: 11.5px; color: var(--fb-grey-08); line-height: 1.6; }

/* ======================================================
   PAGE HEADER (listing pages)
====================================================== */
.fb-pagehead { border-bottom: 1px solid var(--fb-grey-12); padding: 56px 0 44px; position: relative; overflow: hidden; }
.fb-pagehead.muted { background: var(--fb-bg-muted); }
.fb-pagehead .gridbg { position: absolute; inset: 0; background-image: url("../images/lines-and-grids.svg"); background-size: 1000px; background-position: top right; opacity: 0.4; pointer-events: none; -webkit-mask-image: linear-gradient(110deg,transparent 45%,#000 90%); mask-image: linear-gradient(110deg,transparent 45%,#000 90%); }
.fb-pagehead .inner { position: relative; }
.fb-ph-label { font-family: var(--fb-font-mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fb-stellar-blue); font-weight: 600; }
.fb-ph-title { font-family: var(--fb-font-display); font-weight: 900; font-size: 66px; line-height: 0.95; letter-spacing: -0.04em; margin: 16px 0 0; color: var(--fb-grey-12); }
.fb-ph-title em { font-style: italic; color: var(--fb-stellar-blue); }
.fb-ph-sub { font-size: 18px; line-height: 1.55; font-weight: 500; color: var(--fb-grey-10); max-width: 600px; margin: 18px 0 0; }
.fb-ph-meta { font-family: var(--fb-font-mono); font-size: 13px; color: var(--fb-grey-09); margin-top: 18px; display: flex; gap: 18px; flex-wrap: wrap; }
.fb-ph-meta b { color: var(--fb-grey-12); font-weight: 600; }

/* ======================================================
   SECTION SCAFFOLDING
====================================================== */
.fb-section { padding: 88px 0; }
.fb-section.tight { padding: 64px 0; }
.fb-secbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
.fb-secbar h2 { font-family: var(--fb-font-display); font-weight: 700; font-size: 38px; line-height: 1.08; letter-spacing: -0.02em; margin: 12px 0 0; color: var(--fb-grey-12); }
.fb-secbar p { font-size: 16px; color: var(--fb-grey-09); margin: 9px 0 0; max-width: 460px; }
.fb-secbar-ix { display: flex; align-items: baseline; gap: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--fb-grey-12); margin-bottom: 0; }
.fb-secbar-ix .no { font-family: var(--fb-font-display); font-weight: 900; font-size: 28px; letter-spacing: -0.03em; color: var(--fb-stellar-blue); }
.fb-secbar-ix h2 { font-family: var(--fb-font-display); font-weight: 700; font-size: 28px; letter-spacing: -0.02em; margin: 0; color: var(--fb-grey-12); }
.fb-secbar-ix .count { font-family: var(--fb-font-mono); font-size: 12px; color: var(--fb-grey-08); margin-left: auto; }

/* ======================================================
   TAGS / PILLS / FILTERS
====================================================== */
.fb-tag { font-family: var(--fb-font-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; padding: 4px 9px; border-radius: var(--fb-radius-xs); border: 1px solid var(--fb-border); color: var(--fb-grey-10); display: inline-block; }
.fb-tag.report { background: var(--fb-arctic-mist); color: var(--fb-orbital-blue); border-color: transparent; }
.fb-tag.whitepaper { background: var(--fb-deep-ocean); color: #fff; border-color: transparent; }
.fb-tag.case { background: var(--fb-info-bg); color: #0a7b86; border-color: transparent; }
.fb-tag.hub { background: #efe9fb; color: #6b21d6; border-color: transparent; }
.fb-tag.product { background: var(--fb-grey-04); color: var(--fb-grey-11); }
.fb-chip { font-size: 13px; font-weight: 500; color: var(--fb-grey-10); background: var(--fb-grey-04); border: 1px solid var(--fb-border); border-radius: var(--fb-radius-pill); padding: 7px 14px; cursor: pointer; transition: all var(--fb-dur) var(--fb-ease); display: inline-block; }
.fb-chip:hover { border-color: var(--fb-stellar-blue); color: var(--fb-stellar-blue); background: #fff; }
.fb-chip.on { background: var(--fb-grey-12); color: #fff; border-color: var(--fb-grey-12); }
.fb-filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.fb-filter-bar { position: sticky; top: 62px; z-index: 30; background: rgba(255,255,255,0.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid var(--fb-border); }
.fb-filter-bar .inner { display: flex; align-items: center; gap: 14px; padding: 16px 0; flex-wrap: wrap; }
.fb-filter-bar .lbl { font-family: var(--fb-font-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--fb-grey-08); }

/* ======================================================
   EDITORIAL CARDS
====================================================== */
.fb-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.fb-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.fb-card { background: #fff; border: 1px solid var(--fb-border); border-radius: var(--fb-radius-lg); overflow: hidden; display: flex; flex-direction: column; transition: transform var(--fb-dur) var(--fb-ease), box-shadow var(--fb-dur) var(--fb-ease), border-color var(--fb-dur) var(--fb-ease); cursor: pointer; }
.fb-card:hover { transform: translateY(-3px); box-shadow: var(--fb-shadow-lg); border-color: var(--fb-border-strong); }
.fb-card .thumb { aspect-ratio: 16/9; position: relative; overflow: hidden; }
.fb-card .thumb .g { position: absolute; inset: 0; background-image: url("../images/lines-and-grids.svg"); background-size: 360px; opacity: 0.3; }
.fb-card .thumb .lbl { position: absolute; top: 14px; left: 14px; }
.fb-card .thumb .ovr { position: absolute; left: 20px; bottom: 18px; right: 20px; font-family: var(--fb-font-display); font-weight: 700; font-size: 22px; line-height: 1.12; letter-spacing: -0.01em; color: #fff; }
.fb-card .body { padding: 22px 22px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.fb-card .ttl { font-family: var(--fb-font-display); font-weight: 700; font-size: 20px; line-height: 1.22; letter-spacing: -0.01em; color: var(--fb-grey-12); }
.fb-card .dsc { font-size: 14px; line-height: 1.55; color: var(--fb-grey-09); }
.fb-card .foot { margin-top: auto; padding-top: 14px; display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--fb-grey-08); font-weight: 500; }
.fb-card .foot .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--fb-grey-07); display: inline-block; }
/* thumb gradients */
.thumb-blue { background: linear-gradient(150deg,#194CFF,#12C1D3); }
.thumb-ocean { background: linear-gradient(150deg,#001033,#1237B8); }
.thumb-arctic { background: linear-gradient(150deg,#DEE5F8,#c2cef0); }
.thumb-aqua { background: linear-gradient(150deg,#12C1D3,#56E2F1); }
.thumb-violet { background: linear-gradient(150deg,#5b21d6,#7C3AED); }
.thumb .lbl-pill { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; background: rgba(255,255,255,0.92); color: var(--fb-grey-11); padding: 5px 10px; border-radius: var(--fb-radius-pill); }
.thumb-arctic .lbl-pill, .thumb-arctic .ovr { color: var(--fb-deep-ocean); }
/* index rows */
.fb-row { display: grid; grid-template-columns: 54px 1fr 190px 120px 92px 30px; align-items: center; gap: 16px; padding: 18px 12px 18px 0; border-top: 1px solid var(--fb-border); cursor: pointer; position: relative; transition: background var(--fb-dur) var(--fb-ease); }
.fb-row::before { content: ''; position: absolute; left: -44px; top: 0; bottom: 0; width: 4px; background: var(--fb-stellar-blue); transform: scaleY(0); transform-origin: center; transition: transform var(--fb-dur) var(--fb-ease); }
.fb-row:hover { background: var(--fb-bg-muted); }
.fb-row:hover::before { transform: scaleY(1); }
.fb-row:hover .r-arrow { color: var(--fb-stellar-blue); transform: translateX(3px); }
.fb-row .r-idx { font-family: var(--fb-font-mono); font-size: 13px; color: var(--fb-grey-08); }
.fb-row .r-title { font-family: var(--fb-font-display); font-weight: 700; font-size: 19px; letter-spacing: -0.01em; color: var(--fb-grey-12); line-height: 1.2; }
.fb-row .r-title .sub { display: block; font-family: var(--fb-font-sans); font-weight: 500; font-size: 13.5px; color: var(--fb-grey-09); margin-top: 4px; letter-spacing: 0; }
.fb-row .r-topic { font-family: var(--fb-font-mono); font-size: 12.5px; color: var(--fb-grey-10); }
.fb-row .r-time { font-family: var(--fb-font-mono); font-size: 12.5px; color: var(--fb-grey-08); }
.fb-row .r-arrow { color: var(--fb-grey-07); transition: all var(--fb-dur) var(--fb-ease); justify-self: end; }
.fb-row .r-arrow i { width: 17px; height: 17px; }
/* ---- simple article list rows (used in "More articles" on blog index) ---- */
.fb-article-row { display: flex; align-items: center; gap: 16px; padding: 18px 0; border-top: 1px solid var(--fb-border); text-decoration: none; transition: background var(--fb-dur) var(--fb-ease); border-radius: 0; }
.fb-article-row:hover { background: var(--fb-bg-muted); margin: 0 -16px; padding-left: 16px; padding-right: 16px; }
.fb-article-row .ar-body { flex: 1; min-width: 0; }
.fb-article-row .ar-tag { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--fb-stellar-blue); margin-bottom: 4px; display: block; }
.fb-article-row .ar-title { font-family: var(--fb-font-display); font-weight: 700; font-size: 17px; line-height: 1.25; letter-spacing: -0.01em; color: var(--fb-grey-12); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fb-article-row .ar-meta { font-size: 12px; color: var(--fb-grey-08); margin-top: 5px; }
.fb-article-row .ar-img { width: 80px; height: 60px; border-radius: var(--fb-radius-sm); background: var(--fb-arctic-mist); flex-shrink: 0; overflow: hidden; background-size: cover; background-position: center; }
.fb-article-row:hover .ar-title { color: var(--fb-stellar-blue); }

/* ======================================================
   LEARNING PATHS DARK BAND
====================================================== */
.fb-paths { background: var(--fb-grey-12); color: #fff; position: relative; overflow: hidden; }
.fb-paths .gb { position: absolute; inset: 0; background-image: url("../images/lines-and-grids.svg"); background-size: 760px; opacity: 0.1; }
.fb-paths .glow { position: absolute; width: 760px; height: 760px; left: -180px; bottom: -300px; background: radial-gradient(circle,rgba(18,193,211,0.4),transparent 62%); filter: blur(20px); }
.fb-paths .head { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 28px; }
.fb-paths .eyb { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--fb-marine-cyan); display: inline-flex; align-items: center; gap: 7px; }
.fb-paths .eyb i { width: 14px; height: 14px; }
.fb-paths h2 { font-family: var(--fb-font-display); font-weight: 700; font-size: 46px; line-height: 1.03; letter-spacing: -0.025em; margin: 14px 0 0; color: #fff; }
.fb-paths h2 em { font-style: italic; color: var(--fb-marine-cyan); }
.fb-paths .sub { font-size: 16px; color: rgba(255,255,255,0.66); margin: 12px 0 0; max-width: 460px; }
.fb-paths .metar { display: flex; align-items: center; gap: 14px; margin-top: 16px; font-family: var(--fb-font-mono); font-size: 13px; color: rgba(255,255,255,0.7); }
.fb-paths .metar b { color: #fff; }
.fb-paths .allw { color: #fff; font-weight: 700; font-size: 14px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid rgba(255,255,255,0.3); padding: 11px 18px; border-radius: var(--fb-radius-pill); transition: all var(--fb-dur) var(--fb-ease); white-space: nowrap; }
.fb-paths .allw:hover { background: #fff; color: var(--fb-grey-12); }
.fb-paths .allw i { width: 15px; height: 15px; }
.fb-tracks { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 26px; }
.fb-track { font-size: 13px; font-weight: 600; padding: 8px 15px; border-radius: var(--fb-radius-pill); border: 1px solid rgba(255,255,255,0.22); background: rgba(255,255,255,0.05); color: rgba(255,255,255,0.8); cursor: pointer; transition: all var(--fb-dur) var(--fb-ease); }
.fb-track.on { background: #fff; color: var(--fb-grey-12); border-color: #fff; }
.fb-track:not(.on):hover { border-color: var(--fb-marine-cyan); color: #fff; }
.fb-deckrow { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
/* dark deck */
.fb-deck { position: relative; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.14); border-radius: var(--fb-radius-lg); padding: 22px; cursor: pointer; min-height: 240px; display: flex; flex-direction: column; transition: transform var(--fb-dur) var(--fb-ease), background var(--fb-dur) var(--fb-ease), border-color var(--fb-dur) var(--fb-ease); }
.fb-deck:hover { transform: translateY(-4px); background: rgba(255,255,255,0.09); border-color: var(--fb-marine-cyan); }
.fb-deck .top { display: flex; align-items: center; justify-content: space-between; }
.fb-deck .cat { font-size: 11px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; padding: 5px 10px; border-radius: var(--fb-radius-pill); }
.fb-deck .cards-n { font-family: var(--fb-font-mono); font-size: 12px; color: rgba(255,255,255,0.55); }
.fb-deck h3 { font-family: var(--fb-font-display); font-weight: 700; font-size: 21px; line-height: 1.18; letter-spacing: -0.01em; margin: 18px 0 8px; color: #fff; }
.fb-deck .pdesc { font-size: 13.5px; line-height: 1.5; color: rgba(255,255,255,0.66); flex: 1; }
.fb-deck .foot { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; }
.fb-deck .dots { display: flex; gap: 5px; }
.fb-deck .dots span { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,0.25); }
.fb-deck .dots span:first-child { background: var(--fb-marine-cyan); width: 16px; border-radius: 3px; }
.fb-deck .time { font-size: 12.5px; font-weight: 600; color: rgba(255,255,255,0.75); display: inline-flex; align-items: center; gap: 6px; }
.fb-deck .time i { width: 14px; height: 14px; }
/* track chips dark */
.cat-risk { background: rgba(25,76,255,0.25); color: #9EC0FF; }
.cat-data { background: rgba(18,193,211,0.22); color: #7FE6F0; }
.cat-growth { background: rgba(21,168,90,0.22); color: #7CE0AC; }
.cat-ai { background: rgba(124,58,237,0.25); color: #C9AEF7; }
/* track chips light */
.catl-risk { background: var(--fb-arctic-mist); color: var(--fb-orbital-blue); }
.catl-data { background: var(--fb-info-bg); color: #0a7b86; }
.catl-growth { background: var(--fb-success-bg); color: var(--fb-success); }
.catl-ai { background: #efe9fb; color: #6b21d6; }
/* light deck (paths listing) */
.fb-deck-light { position: relative; background: #fff; border: 1px solid var(--fb-border); border-radius: var(--fb-radius-lg); padding: 22px; cursor: pointer; min-height: 234px; display: flex; flex-direction: column; transition: transform var(--fb-dur) var(--fb-ease), box-shadow var(--fb-dur) var(--fb-ease); }
.fb-deck-light:hover { transform: translateY(-4px); box-shadow: var(--fb-shadow-lg); border-color: var(--fb-border-strong); }
.fb-deck-light .top { display: flex; align-items: center; justify-content: space-between; }
.fb-deck-light .cat { font-size: 11px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; padding: 5px 10px; border-radius: var(--fb-radius-pill); }
.fb-deck-light .cards-n { font-family: var(--fb-font-mono); font-size: 12px; color: var(--fb-grey-08); }
.fb-deck-light h3 { font-family: var(--fb-font-display); font-weight: 700; font-size: 21px; line-height: 1.18; letter-spacing: -0.01em; margin: 18px 0 8px; color: var(--fb-grey-12); }
.fb-deck-light .pdesc { font-size: 13.5px; line-height: 1.5; color: var(--fb-grey-09); flex: 1; }
.fb-deck-light .foot { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; }
.fb-deck-light .dots { display: flex; gap: 5px; }
.fb-deck-light .dots span { width: 6px; height: 6px; border-radius: 50%; background: var(--fb-grey-06); }
.fb-deck-light .dots span:first-child { background: var(--fb-stellar-blue); width: 16px; border-radius: 3px; }
.fb-deck-light .time { font-size: 12.5px; font-weight: 600; color: var(--fb-grey-09); display: inline-flex; align-items: center; gap: 6px; }
.fb-deck-light .time i { width: 14px; height: 14px; }

/* ======================================================
   TOPIC HUBS
====================================================== */
.fb-hubs { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.fb-hub { display: flex; align-items: center; gap: 16px; background: #fff; border: 1px solid var(--fb-border); border-radius: var(--fb-radius-lg); padding: 20px 22px; cursor: pointer; transition: transform var(--fb-dur) var(--fb-ease), box-shadow var(--fb-dur) var(--fb-ease), border-color var(--fb-dur) var(--fb-ease); }
.fb-hub:hover { transform: translateY(-2px); box-shadow: var(--fb-shadow-md); border-color: var(--fb-border-strong); }
.fb-hub:hover .ar { color: var(--fb-stellar-blue); transform: translateX(3px); }
.fb-hub .ic { width: 44px; height: 44px; border-radius: var(--fb-radius-md); background: var(--fb-arctic-mist); color: var(--fb-stellar-blue); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.fb-hub .ic i { width: 21px; height: 21px; }
.fb-hub .nm { font-family: var(--fb-font-display); font-weight: 700; font-size: 18px; letter-spacing: -0.01em; color: var(--fb-grey-12); }
.fb-hub .ct { font-size: 13px; color: var(--fb-grey-09); margin-top: 1px; }
.fb-hub .ar { margin-left: auto; color: var(--fb-grey-07); transition: all var(--fb-dur) var(--fb-ease); }

/* ======================================================
   NEWSLETTER CARDS
====================================================== */
.fb-nl { background: #fff; border: 1px solid var(--fb-border); border-radius: var(--fb-radius-lg); padding: 28px; display: flex; flex-direction: column; gap: 12px; transition: transform var(--fb-dur) var(--fb-ease), box-shadow var(--fb-dur) var(--fb-ease); }
.fb-nl:hover { transform: translateY(-3px); box-shadow: var(--fb-shadow-lg); }
.fb-nl .ic { width: 46px; height: 46px; border-radius: var(--fb-radius-md); display: flex; align-items: center; justify-content: center; color: #fff; }
.fb-nl .ic i { width: 22px; height: 22px; }
.fb-nl h3 { font-family: var(--fb-font-display); font-weight: 700; font-size: 21px; margin: 0; letter-spacing: -0.01em; color: var(--fb-grey-12); }
.fb-nl p { font-size: 14px; line-height: 1.55; color: var(--fb-grey-09); margin: 0; flex: 1; }
.fb-nl .latest { font-size: 13.5px; line-height: 1.5; color: var(--fb-grey-10); margin: 0; }
.fb-nl .latest b { color: var(--fb-grey-08); font-weight: 600; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; display: block; margin-bottom: 4px; }
.fb-nl .freq { font-size: 12px; font-weight: 600; color: var(--fb-grey-08); display: flex; align-items: center; gap: 7px; }
.fb-nl .freq i { width: 14px; height: 14px; }

/* ======================================================
   FEATURED SPLASH (dark)
====================================================== */
.fb-splash { background: var(--fb-deep-ocean); color: #fff; position: relative; overflow: hidden; }
.fb-splash .glow { position: absolute; width: 700px; height: 700px; right: -160px; top: -220px; background: radial-gradient(circle,rgba(25,76,255,0.5),transparent 62%); filter: blur(20px); pointer-events: none; }
.fb-splash .inner { position: relative; display: grid; grid-template-columns: 1fr 0.82fr; gap: 56px; align-items: center; }
.fb-splash .eyebrow { color: var(--fb-marine-cyan); }
.fb-splash h2 { font-family: var(--fb-font-display); font-weight: 700; font-size: 48px; line-height: 1.05; letter-spacing: -0.025em; margin: 14px 0 16px; color: #fff; }
.fb-splash p { font-size: 17px; line-height: 1.62; color: rgba(255,255,255,0.74); margin: 0 0 26px; max-width: 500px; }
.fb-splash .meta { display: flex; gap: 26px; margin-bottom: 28px; }
.fb-splash .meta .m .n { font-family: var(--fb-font-display); font-weight: 700; font-size: 26px; color: #fff; }
.fb-splash .meta .m .l { font-size: 12.5px; color: rgba(255,255,255,0.6); }
.fb-cover { aspect-ratio: 3/3.7; border-radius: var(--fb-radius-lg); background: linear-gradient(160deg,#0a2a8a,#194CFF 45%,#12C1D3); box-shadow: 0 40px 80px -24px rgba(0,0,0,0.6); border: 1px solid rgba(255,255,255,0.16); position: relative; overflow: hidden; padding: 34px; display: flex; flex-direction: column; justify-content: space-between; }
.fb-cover .cv-strip { position: absolute; top: 0; left: 0; right: 0; height: 6px; background: var(--fb-marine-cyan); }
.fb-cover .cv-grid { position: absolute; inset: 0; background-image: url("../images/lines-and-grids.svg"); background-size: 460px; opacity: 0.22; }
.fb-cover .cv-eyebrow { position: relative; font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.8); }
.fb-cover .cv-title { position: relative; font-family: var(--fb-font-display); font-weight: 700; font-size: 34px; line-height: 1.08; letter-spacing: -0.02em; color: #fff; }
.fb-cover .cv-foot { position: relative; display: flex; align-items: center; gap: 9px; font-size: 13px; color: rgba(255,255,255,0.85); }
.fb-cover .cv-foot i { width: 16px; height: 16px; }

/* ======================================================
   CTA BAND
====================================================== */
.fb-cta { background: var(--fb-gradient-aqua-fusion); color: #fff; text-align: center; }
.fb-cta .inner { padding: 90px 0; }
.fb-cta h2 { font-family: var(--fb-font-display); font-weight: 700; font-size: 50px; line-height: 1.06; letter-spacing: -0.025em; margin: 0 auto 14px; max-width: 720px; color: #fff; }
.fb-cta p { font-size: 18px; color: rgba(255,255,255,0.88); margin: 0 auto 30px; max-width: 520px; }
.fb-cta .row { display: flex; gap: 14px; justify-content: center; }
.fb-cta .w { background: #fff; color: var(--fb-stellar-blue); padding: 15px 26px; border-radius: var(--fb-radius-md); font-weight: 700; font-size: 16px; transition: transform var(--fb-dur) var(--fb-ease); }
.fb-cta .w:hover { transform: translateY(-2px); }
.fb-cta .o { border: 1.5px solid rgba(255,255,255,0.6); color: #fff; padding: 14px 24px; border-radius: var(--fb-radius-md); font-weight: 600; font-size: 16px; }

/* ======================================================
   FOOTER
====================================================== */
.fb-footer { background: var(--fb-grey-12); color: #fff; padding: 64px 0 30px; }
.fb-footer .cols { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 32px; }
.fb-footer .word { font-family: var(--fb-font-display); font-weight: 700; font-size: 22px; color: #fff; }
.fb-footer .desc { font-family: var(--fb-font-mono); font-size: 13px; color: rgba(255,255,255,0.6); margin: 14px 0 0; max-width: 290px; line-height: 1.6; }
.fb-footer h4 { font-family: var(--fb-font-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin: 0 0 16px; }
.fb-footer .col a { display: block; font-size: 14px; color: rgba(255,255,255,0.82); margin-bottom: 11px; transition: color var(--fb-dur) var(--fb-ease); }
.fb-footer .col a:hover { color: #fff; }
.fb-footer .bottom { display: flex; justify-content: space-between; margin-top: 48px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.14); font-family: var(--fb-font-mono); font-size: 12px; color: rgba(255,255,255,0.5); }

/* ======================================================
   BLOG — FEATURED ARTICLE
====================================================== */
.fb-feature { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 36px; align-items: center; margin-bottom: 56px; }
.fb-feature .fthumb { aspect-ratio: 16/10; border-radius: var(--fb-radius-lg); position: relative; overflow: hidden; border: 1px solid var(--fb-border); }
.fb-feature .fthumb .g { position: absolute; inset: 0; background-image: url("../images/lines-and-grids.svg"); background-size: 420px; opacity: 0.25; }
.fb-feature .fthumb .pill { position: absolute; top: 18px; left: 18px; }
.fb-feature .meta { font-family: var(--fb-font-mono); font-size: 12.5px; color: var(--fb-grey-08); display: flex; gap: 14px; margin-bottom: 0; }
.fb-feature h2 { font-family: var(--fb-font-display); font-weight: 700; font-size: 40px; line-height: 1.08; letter-spacing: -0.025em; color: var(--fb-grey-12); margin: 16px 0 14px; }
.fb-feature p { font-size: 17px; line-height: 1.6; color: var(--fb-grey-09); margin: 0 0 22px; }

/* ======================================================
   CASE STUDY CARDS
====================================================== */
.fb-cscard { background: #fff; border: 1px solid var(--fb-border); border-radius: var(--fb-radius-lg); overflow: hidden; cursor: pointer; transition: transform var(--fb-dur) var(--fb-ease), box-shadow var(--fb-dur) var(--fb-ease); display: flex; flex-direction: column; }
.fb-cscard:hover { transform: translateY(-3px); box-shadow: var(--fb-shadow-lg); }
/* image area at top of card */
.fb-cscard .cs-img { height: 160px; background-size: cover; background-position: center; position: relative; flex-shrink: 0; }
.fb-cscard .cs-img-default { background: linear-gradient(135deg, var(--fb-deep-ocean) 0%, var(--fb-stellar-blue) 100%); }
.fb-cscard .cs-img .g { position: absolute; inset: 0; background-image: url("../images/lines-and-grids.svg"); background-size: 280px; opacity: 0.12; }
/* padded card body */
.fb-cscard .cs-body { padding: 20px 24px 24px; display: flex; flex-direction: column; flex: 1; }
.fb-cscard .badge { font-size: 11px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--fb-stellar-blue); background: var(--fb-arctic-mist); padding: 5px 11px; border-radius: var(--fb-radius-pill); display: inline-block; align-self: flex-start; }
.fb-cscard .lab { font-size: 16px; font-weight: 700; color: var(--fb-grey-11); line-height: 1.3; margin: 12px 0 18px; min-height: 2.6em; }
.fb-cscard .dsc { font-size: 14px; line-height: 1.55; color: var(--fb-grey-09); margin: 8px 0 0; flex: 1; }
.fb-cscard .by { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--fb-border); font-size: 13px; color: var(--fb-grey-08); font-weight: 500; display: flex; align-items: center; gap: 8px; }
.fb-cscard .by i { width: 15px; height: 15px; }
.fb-feature-cs { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 0; border: 1px solid var(--fb-border); border-radius: var(--fb-radius-xl); overflow: hidden; margin-bottom: 48px; }
.fb-feature-cs .left { background: var(--fb-deep-ocean); color: #fff; padding: 44px; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: center; }
.fb-feature-cs .left .g { position: absolute; inset: 0; background-image: url("../images/lines-and-grids.svg"); background-size: 460px; opacity: 0.14; }
.fb-feature-cs .left .badge { position: relative; font-family: var(--fb-font-mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fb-marine-cyan); }
.fb-feature-cs .left .big { position: relative; font-family: var(--fb-font-display); font-weight: 900; font-size: 96px; letter-spacing: -0.04em; line-height: 0.95; background: linear-gradient(180deg,#fff,#9EE1FF); -webkit-background-clip: text; background-clip: text; color: transparent; margin: 16px 0 6px; }
.fb-feature-cs .left .lab { position: relative; font-size: 17px; color: rgba(255,255,255,0.8); }
.fb-feature-cs .right { padding: 44px; display: flex; flex-direction: column; justify-content: center; }
.fb-feature-cs .right h2 { font-family: var(--fb-font-display); font-weight: 700; font-size: 34px; line-height: 1.12; letter-spacing: -0.02em; margin: 0 0 14px; color: var(--fb-grey-12); }
.fb-feature-cs .right p { font-size: 16px; line-height: 1.6; color: var(--fb-grey-09); margin: 0 0 22px; }

/* ======================================================
   GUIDE CARDS
====================================================== */
.fb-guide { background: #fff; border: 1px solid var(--fb-border); border-radius: var(--fb-radius-lg); overflow: hidden; cursor: pointer; display: flex; flex-direction: column; transition: transform var(--fb-dur) var(--fb-ease), box-shadow var(--fb-dur) var(--fb-ease), border-color var(--fb-dur) var(--fb-ease); }
.fb-guide:hover { transform: translateY(-3px); box-shadow: var(--fb-shadow-lg); border-color: var(--fb-border-strong); }
.fb-guide .cv { aspect-ratio: 4/3; position: relative; overflow: hidden; display: flex; align-items: flex-end; padding: 22px; }
.fb-guide .cv .g { position: absolute; inset: 0; background-image: url("../images/lines-and-grids.svg"); background-size: 320px; opacity: 0.2; }
.fb-guide .cv .strip { position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--fb-marine-cyan); }
.fb-guide .cv .cvt { position: relative; font-family: var(--fb-font-display); font-weight: 700; font-size: 22px; line-height: 1.12; letter-spacing: -0.01em; color: #fff; }
.fb-guide .body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.fb-guide .dsc { font-size: 14px; line-height: 1.55; color: var(--fb-grey-09); flex: 1; }
.fb-guide .foot { margin-top: auto; display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--fb-grey-08); font-weight: 500; }
.fb-guide .foot .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--fb-grey-07); display: inline-block; }

/* ======================================================
   NEWSLETTER ROWS (newsletters listing)
====================================================== */
.fb-nlfeat { display: grid; grid-template-columns: 1fr; gap: 24px; }
.fb-nlrow { display: grid; grid-template-columns: 340px 1fr; gap: 0; border: 1px solid var(--fb-border); border-radius: var(--fb-radius-xl); overflow: hidden; background: #fff; }
.fb-nlrow .ident { padding: 36px; color: #fff; position: relative; overflow: hidden; display: flex; flex-direction: column; }
.fb-nlrow .ident .g { position: absolute; inset: 0; background-image: url("../images/lines-and-grids.svg"); background-size: 360px; opacity: 0.14; }
.fb-nlrow .ident .ic { position: relative; width: 50px; height: 50px; border-radius: var(--fb-radius-md); background: rgba(255,255,255,0.18); display: flex; align-items: center; justify-content: center; }
.fb-nlrow .ident .ic i { width: 24px; height: 24px; }
.fb-nlrow .ident h2 { position: relative; font-family: var(--fb-font-display); font-weight: 700; font-size: 30px; letter-spacing: -0.02em; margin: 20px 0 8px; color: #fff; }
.fb-nlrow .ident .desc { position: relative; font-size: 14.5px; line-height: 1.55; color: rgba(255,255,255,0.82); flex: 1; margin: 0; }
.fb-nlrow .ident .freq { position: relative; font-family: var(--fb-font-mono); font-size: 12px; color: rgba(255,255,255,0.7); margin-top: 16px; }
.fb-nlrow .ident .form { position: relative; display: flex; gap: 8px; margin-top: 16px; }
.fb-nlrow .ident .form .nl-subscribe-form { display: flex; gap: 10px; width: 100%; }
.fb-nlrow .ident .form input { flex: 1; min-width: 0; background: rgba(255,255,255,0.14); border: 1px solid rgba(255,255,255,0.28); border-radius: var(--fb-radius-md); padding: 11px 13px; color: #fff; font-family: var(--fb-font-sans); font-size: 13.5px; outline: none; }
.fb-nlrow .ident .form input::placeholder { color: rgba(255,255,255,0.6); }
.fb-nlrow .ident .form button { background: #fff; color: var(--fb-grey-12); border: 0; border-radius: var(--fb-radius-md); padding: 11px 16px; font-family: var(--fb-font-sans); font-weight: 600; font-size: 13.5px; cursor: pointer; white-space: nowrap; }
.fb-nlrow .issues { padding: 14px 32px; overflow-y: auto; }
.fb-nlrow .issue { display: flex; align-items: center; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--fb-border); cursor: pointer; transition: padding-left var(--fb-dur) var(--fb-ease); }
.fb-nlrow .issue:last-child { border-bottom: 0; }
.fb-nlrow .issue:hover { padding-left: 6px; }
.fb-nlrow .issue:hover .ar { color: var(--fb-stellar-blue); transform: translateX(3px); }
.fb-nlrow .issue .date { font-family: var(--fb-font-mono); font-size: 12px; color: var(--fb-grey-08); width: 92px; flex-shrink: 0; }
.fb-nlrow .issue .t { font-family: var(--fb-font-display); font-weight: 700; font-size: 17px; letter-spacing: -0.01em; color: var(--fb-grey-12); line-height: 1.25; }
.fb-nlrow .issue .ar { margin-left: auto; color: var(--fb-grey-07); transition: all var(--fb-dur) var(--fb-ease); flex-shrink: 0; }
.id-loop { background: var(--fb-stellar-blue); }
.id-pattern { background: linear-gradient(160deg,#0a7d8a,#12C1D3); }
.id-founder { background: linear-gradient(160deg,#5b21d6,#7C3AED); }

/* ======================================================
   TOPIC HUB CARDS (topics page)
====================================================== */
.fb-hubgrid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.fb-hubcard { border: 1px solid var(--fb-border); border-radius: var(--fb-radius-lg); overflow: hidden; background: #fff; display: flex; flex-direction: column; transition: transform var(--fb-dur) var(--fb-ease), box-shadow var(--fb-dur) var(--fb-ease); cursor: pointer; }
.fb-hubcard:hover { transform: translateY(-3px); box-shadow: var(--fb-shadow-lg); }
.fb-hubcard .hd { padding: 24px; color: #fff; position: relative; overflow: hidden; }
.fb-hubcard .hd .g { position: absolute; inset: 0; background-image: url("../images/lines-and-grids.svg"); background-size: 300px; opacity: 0.16; }
.fb-hubcard .hd .ic { position: relative; width: 44px; height: 44px; border-radius: var(--fb-radius-md); background: rgba(255,255,255,0.2); display: flex; align-items: center; justify-content: center; }
.fb-hubcard .hd .ic i { width: 22px; height: 22px; }
.fb-hubcard { cursor: pointer; }
.fb-hubcard .hd .nm { position: relative; display: block; font-family: var(--fb-font-display); font-weight: 700; font-size: 23px; letter-spacing: -0.01em; margin-top: 16px; color: #fff; text-decoration: none; }
.fb-hubcard .hd .nm:hover { color: #fff; }
.fb-hubcard .hd .ct { position: relative; font-family: var(--fb-font-mono); font-size: 12.5px; color: rgba(255,255,255,0.85); margin-top: 4px; }
.fb-hubcard .bd { padding: 20px 24px 24px; display: flex; flex-direction: column; flex: 1; }
.fb-hubcard .bd .dsc { font-size: 14px; line-height: 1.55; color: var(--fb-grey-09); margin: 0; }
.fb-hubcard .bd .links { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--fb-border); display: flex; flex-direction: column; gap: 10px; flex: 1; }
.fb-hubcard .bd .links a { font-size: 13.5px; font-weight: 600; color: var(--fb-grey-11); display: flex; align-items: center; gap: 8px; }
.fb-hubcard .bd .links a i { width: 14px; height: 14px; color: var(--fb-grey-07); }
.fb-hubcard .bd .links a:hover { color: var(--fb-stellar-blue); }
.fb-hubcard .bd .more { margin-top: 16px; font-size: 13px; font-weight: 700; color: var(--fb-stellar-blue); display: inline-flex; align-items: center; gap: 6px; }
.hd-ef { background: linear-gradient(150deg,#194CFF,#12C1D3); }
.hd-cd { background: linear-gradient(150deg,#001033,#1237B8); }
.hd-msme { background: linear-gradient(150deg,#c77c12,#E5A23B); }
.hd-aa { background: linear-gradient(150deg,#0a7d8a,#2DCFE0); }
.hd-bre { background: linear-gradient(150deg,#5b21d6,#7C3AED); }
.hd-atlas { background: linear-gradient(150deg,#15803d,#15A85A); }
/* Explicit text resets inside hub card body — prevent Ghost injected styles from leaking in */
.fb-hubcard .bd .dsc { font-size: 14px; line-height: 1.55; color: var(--fb-grey-09); margin: 0; font-weight: 400; }
.fb-hubcard .bd .links a { font-size: 13.5px; font-weight: 600; line-height: 1.4; }
.fb-hubcard .hd .nm { font-size: 23px; font-weight: 700; line-height: 1.2; }
.fb-hubcard .hd .ct { font-size: 12.5px; font-weight: 400; }
/* product strip */
.fb-prodstrip { display: grid; grid-template-columns: repeat(5,1fr); gap: 16px; }
.fb-prod { border: 1px solid var(--fb-border); border-radius: var(--fb-radius-lg); padding: 22px; background: #fff; cursor: pointer; transition: border-color var(--fb-dur) var(--fb-ease), transform var(--fb-dur) var(--fb-ease); }
.fb-prod:hover { border-color: var(--fb-stellar-blue); transform: translateY(-2px); }
.fb-prod .pn { font-family: var(--fb-font-display); font-weight: 700; font-size: 18px; letter-spacing: -0.01em; color: var(--fb-grey-12); }
.fb-prod .pd { font-size: 13px; color: var(--fb-grey-09); margin-top: 6px; line-height: 1.5; }

/* ======================================================
   TAG PAGE HERO
====================================================== */
.fb-tag-hero { padding: 56px 0 44px; border-bottom: 1px solid var(--fb-grey-12); position: relative; overflow: hidden; }
.fb-tag-hero .gridbg { position: absolute; inset: 0; background-image: url("../images/lines-and-grids.svg"); background-size: 900px; background-position: top right; opacity: 0.3; pointer-events: none; -webkit-mask-image: linear-gradient(110deg,transparent 40%,#000 85%); mask-image: linear-gradient(110deg,transparent 40%,#000 85%); }
.fb-tag-hero .inner { position: relative; display: flex; align-items: flex-start; justify-content: space-between; gap: 40px; }
.fb-tag-hero .ph-label { font-family: var(--fb-font-mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fb-stellar-blue); font-weight: 600; }
.fb-tag-hero .ph-title { font-family: var(--fb-font-display); font-weight: 900; font-size: 66px; line-height: 0.95; letter-spacing: -0.04em; margin: 16px 0 0; color: var(--fb-grey-12); }
.fb-tag-hero .ph-desc { font-size: 18px; line-height: 1.55; font-weight: 500; color: var(--fb-grey-10); max-width: 600px; margin: 18px 0 0; }
.fb-tag-hero .count-box { text-align: right; flex-shrink: 0; padding-top: 8px; }
.fb-tag-hero .count-n { font-family: var(--fb-font-display); font-weight: 900; font-size: 72px; letter-spacing: -0.04em; color: var(--fb-stellar-blue); line-height: 1; }
.fb-tag-hero .count-l { font-family: var(--fb-font-mono); font-size: 12px; color: var(--fb-grey-08); margin-top: 4px; }

/* ======================================================
   PATHS LISTING
====================================================== */
.fb-paths-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; row-gap: 36px; }

/* ======================================================
   LEGACY PATH CARD READER (backwards compat)
====================================================== */
.fb-path-deck { min-height: 100vh; display: flex; flex-direction: column; background: radial-gradient(900px 600px at 50% 0%,#fff,var(--fb-ethereal-white) 55%,#e9eefb 100%); }
.fb-path-topbar { border-bottom: 1px solid var(--fb-border); background: rgba(255,255,255,0.7); backdrop-filter: blur(10px); }
.fb-path-topbar-row { display: flex; align-items: center; padding: 0 28px; height: 60px; gap: 18px; }
.fb-path-back-link { font-size: 13px; font-weight: 600; color: var(--fb-grey-10); display: inline-flex; align-items: center; gap: 7px; }
.fb-path-back-link:hover { color: var(--fb-stellar-blue); }
.fb-path-title-small { font-family: var(--fb-font-display); font-weight: 700; font-size: 15px; letter-spacing: -0.01em; color: var(--fb-grey-12); padding-left: 14px; border-left: 1px solid var(--fb-border); flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fb-path-counter { font-family: var(--fb-font-mono); font-size: 13px; color: var(--fb-grey-08); white-space: nowrap; }
.fb-path-prog { height: 4px; background: var(--fb-grey-05); }
#fb-path-prog-fill { height: 100%; background: var(--fb-stellar-blue); transition: width 0.3s var(--fb-ease); }
#fb-path-stage { flex: 1; display: flex; align-items: center; justify-content: center; padding: 32px 24px 8px; }
.fb-path-controls { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 12px 24px 30px; }
#fb-path-dots { display: flex; gap: 7px; }
#fb-path-dots span { width: 8px; height: 8px; border-radius: 50%; background: var(--fb-grey-06); cursor: pointer; transition: all var(--fb-dur) var(--fb-ease); }
#fb-path-dots span.active { background: var(--fb-stellar-blue); width: 22px; border-radius: 4px; }
.fpc-nav-btn { width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--fb-border-strong); background: #fff; color: var(--fb-grey-11); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: var(--fb-shadow-sm); transition: all var(--fb-dur) var(--fb-ease); }
.fpc-nav-btn:hover { border-color: var(--fb-stellar-blue); color: var(--fb-stellar-blue); transform: scale(1.05); }
.fpc-nav-btn:disabled { opacity: 0.35; cursor: default; transform: none; }
/* reading path list */
.fb-path-hero { padding: 40px 0 24px; }
.fb-path-eyebrow { font-family: var(--fb-font-mono); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--fb-stellar-blue); }
.fb-path-title { font-family: var(--fb-font-display); font-weight: 700; font-size: 46px; line-height: 1.1; letter-spacing: -0.03em; color: var(--fb-grey-12); margin: 12px 0 0; }
.fb-path-desc { font-size: 17px; line-height: 1.55; color: var(--fb-grey-09); margin: 12px 0 0; }
.fb-path-meta { font-family: var(--fb-font-mono); font-size: 13px; color: var(--fb-grey-08); margin: 16px 0 32px; }
.fb-path-list { list-style: none; margin: 0; padding: 0; }
.fb-path-item { display: flex; gap: 16px; align-items: flex-start; padding: 20px 0; border-bottom: 1px solid var(--fb-border); }
.fb-path-num { font-family: var(--fb-font-mono); font-size: 12px; color: var(--fb-grey-07); padding-top: 4px; width: 24px; flex-shrink: 0; }
.fb-path-card { flex: 1; display: flex; align-items: center; gap: 20px; padding: 18px; border: 1px solid var(--fb-border); border-radius: var(--fb-radius-lg); background: #fff; transition: border-color var(--fb-dur) var(--fb-ease), box-shadow var(--fb-dur) var(--fb-ease); }
.fb-path-card:hover { border-color: var(--fb-stellar-blue); box-shadow: var(--fb-shadow-md); }
.fb-path-card-img { width: 80px; height: 60px; border-radius: var(--fb-radius-md); overflow: hidden; flex-shrink: 0; background: var(--fb-arctic-mist); }
.fb-path-card-img img { width: 100%; height: 100%; object-fit: cover; }
.fb-path-card-body { flex: 1; }
.fb-path-card-tag { font-size: 11px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--fb-stellar-blue); }
.fb-path-card-title { font-family: var(--fb-font-display); font-weight: 700; font-size: 18px; line-height: 1.2; letter-spacing: -0.01em; color: var(--fb-grey-12); margin: 5px 0 6px; }
.fb-path-card-excerpt { font-size: 13.5px; line-height: 1.5; color: var(--fb-grey-09); margin: 0; }
.fb-path-card-meta { margin-top: 8px; font-size: 12.5px; color: var(--fb-grey-08); display: flex; gap: 8px; font-family: var(--fb-font-mono); }
.fb-path-card-arrow { font-size: 18px; color: var(--fb-grey-07); flex-shrink: 0; }
.fb-path-cta { margin-top: 48px; padding: 28px; background: var(--fb-arctic-mist); border-radius: var(--fb-radius-lg); text-align: center; }
.fb-path-subscribe { display: inline-flex; align-items: center; gap: 8px; background: var(--fb-stellar-blue); color: #fff; padding: 12px 22px; border-radius: var(--fb-radius-md); font-weight: 600; margin-top: 12px; }

/* ======================================================
   SINGLE POST / ARTICLE  (post.hbs, page.hbs)
====================================================== */
.fb-post-main { }
.fb-post-wrap { max-width: 740px; margin: 0 auto; padding: 48px 44px 80px; }
/* header */
.fb-post-header { margin-bottom: 32px; }
.fb-post-tag { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--fb-stellar-blue); text-decoration: none; display: inline-block; margin-bottom: 14px; transition: color var(--fb-dur) var(--fb-ease); }
.fb-post-tag:hover { color: var(--fb-orbital-blue); }
.fb-post-title { font-family: var(--fb-font-display); font-weight: 900; font-size: 48px; line-height: 1.08; letter-spacing: -0.03em; color: var(--fb-grey-12); margin: 0 0 16px; }
.fb-post-excerpt { font-size: 20px; line-height: 1.5; color: var(--fb-grey-09); margin: 0 0 20px; font-weight: 400; }
.fb-post-meta { font-size: 14px; color: var(--fb-grey-08); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.fb-post-author { color: var(--fb-grey-10); font-weight: 600; text-decoration: none; }
.fb-post-author:hover { color: var(--fb-stellar-blue); }
.fb-post-dot { color: var(--fb-grey-06); }
/* feature image */
.fb-post-image { margin: 32px 0 40px; border-radius: var(--fb-radius-lg); overflow: hidden; }
.fb-post-image img { width: 100%; max-height: 480px; object-fit: cover; display: block; }
.fb-post-image figcaption { font-size: 13px; color: var(--fb-grey-08); text-align: center; margin-top: 10px; padding: 0 16px; }
/* prose / article body */
.fb-post-content, .gh-content { line-height: 1.72; }
.fb-post-content h2, .gh-content h2 { font-family: var(--fb-font-display); font-weight: 700; font-size: 30px; letter-spacing: -0.02em; color: var(--fb-grey-12); margin: 44px 0 16px; }
.fb-post-content h3, .gh-content h3 { font-family: var(--fb-font-display); font-weight: 700; font-size: 24px; letter-spacing: -0.01em; color: var(--fb-grey-12); margin: 36px 0 12px; }
.fb-post-content h4, .gh-content h4 { font-family: var(--fb-font-display); font-weight: 700; font-size: 19px; color: var(--fb-grey-12); margin: 28px 0 10px; }
.fb-post-content p, .gh-content p { font-size: 17px; line-height: 1.72; color: var(--fb-grey-10); margin: 0 0 24px; }
.fb-post-content ul, .fb-post-content ol, .gh-content ul, .gh-content ol { font-size: 17px; line-height: 1.7; color: var(--fb-grey-10); margin: 0 0 24px; padding-left: 28px; }
.fb-post-content li, .gh-content li { margin-bottom: 10px; }
.fb-post-content blockquote, .gh-content blockquote { border-left: 4px solid var(--fb-stellar-blue); padding: 4px 0 4px 24px; margin: 32px 0; }
.fb-post-content blockquote p, .gh-content blockquote p { color: var(--fb-grey-11); font-size: 19px; font-style: italic; margin: 0; }
.fb-post-content a, .gh-content a { color: var(--fb-stellar-blue); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.fb-post-content strong, .gh-content strong { font-weight: 700; color: var(--fb-grey-12); }
.fb-post-content code, .gh-content code { font-family: var(--fb-font-mono); font-size: 14px; background: var(--fb-grey-04); padding: 2px 6px; border-radius: 4px; color: var(--fb-grey-11); }
.fb-post-content pre, .gh-content pre { background: var(--fb-grey-12); padding: 20px 24px; border-radius: var(--fb-radius-md); overflow-x: auto; margin: 0 0 24px; }
.fb-post-content pre code, .gh-content pre code { background: transparent; color: #e8f0fe; font-size: 14px; padding: 0; }
.fb-post-content hr, .gh-content hr { border: 0; border-top: 1px solid var(--fb-border); margin: 40px 0; }
.fb-post-content img, .gh-content img { border-radius: var(--fb-radius-md); max-width: 100%; height: auto; }
.fb-post-content figure, .gh-content figure { margin: 24px 0; }
.fb-post-content figcaption, .gh-content figcaption { font-size: 13px; color: var(--fb-grey-08); text-align: center; margin-top: 8px; }
.fb-post-content table, .gh-content table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 0 0 24px; }
.fb-post-content th, .gh-content th { background: var(--fb-grey-04); font-weight: 700; color: var(--fb-grey-12); padding: 10px 14px; text-align: left; border: 1px solid var(--fb-border); }
.fb-post-content td, .gh-content td { padding: 10px 14px; border: 1px solid var(--fb-border); color: var(--fb-grey-10); vertical-align: top; }
.fb-post-content tr:nth-child(even) td, .gh-content tr:nth-child(even) td { background: var(--fb-grey-02); }
/* Gated case-study / guide / report posts are ingested as FULL standalone HTML
   pages (doctype + head + body + their own <footer>© FinBox…</footer>) inside a
   single HTML card. The theme already renders the real site footer, so the
   baked-in one is a duplicate. The baked <footer> lives INSIDE .fb-post-content;
   the theme's own .fb-post-footer is a SIBLING, so this only hits the embedded one. */
.fb-post-content footer { display: none !important; }

/* post footer / tags */
.fb-post-footer { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--fb-border); display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.fb-post-tags { display: flex; gap: 8px; flex-wrap: wrap; }
.fb-post-footer-tag { font-size: 12px; font-weight: 600; color: var(--fb-grey-09); background: var(--fb-grey-04); padding: 5px 12px; border-radius: var(--fb-radius-pill); text-decoration: none; border: 1px solid var(--fb-border); transition: all var(--fb-dur) var(--fb-ease); }
.fb-post-footer-tag:hover { border-color: var(--fb-stellar-blue); color: var(--fb-stellar-blue); background: #fff; }
/* ---- Share bar (partials/fb-share.hbs) ---- */
.fb-share { display: inline-flex; align-items: center; gap: 8px; }
.fb-share-label { font-size: 13px; font-weight: 600; color: var(--fb-grey-09); margin-right: 2px; }
.fb-share-btn { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--fb-border); background: #fff; color: var(--fb-grey-10); cursor: pointer; padding: 0; position: relative; transition: border-color var(--fb-dur) var(--fb-ease), color var(--fb-dur) var(--fb-ease), transform var(--fb-dur) var(--fb-ease); }
.fb-share-btn:hover { border-color: var(--fb-stellar-blue); color: var(--fb-stellar-blue); transform: translateY(-1px); }
.fb-share-copied { position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); background: var(--fb-grey-12); color: #fff; font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 4px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity var(--fb-dur) var(--fb-ease); }
.fb-share-btn.copied .fb-share-copied { opacity: 1; }
/* compact variant for the learning-path topbar */
.fb-path-topbar-row .fb-share { gap: 6px; }
.fb-path-topbar-row .fb-share-label { display: none; }
.fb-path-topbar-row .fb-share-btn { width: 32px; height: 32px; }
/* Ask AI block */
.fb-post-ask-ai { background: var(--fb-deep-ocean); border-radius: var(--fb-radius-lg); padding: 24px; margin: 40px 0 0; }
.fb-post-ask-ai-hd { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 16px; }
.fb-post-ask-ai-icon { width: 40px; height: 40px; background: rgba(255,255,255,0.1); border-radius: var(--fb-radius-md); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--fb-aqua); }
.fb-post-ask-ai-title { font-family: var(--fb-font-display); font-weight: 700; font-size: 17px; color: #fff; }
.fb-post-ask-ai-sub { font-size: 13px; color: rgba(255,255,255,0.65); margin-top: 3px; }
.fb-post-ask-ai-qs { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.fb-post-ask-ai-q { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.12); color: rgba(255,255,255,0.9); font-size: 13.5px; padding: 10px 14px; border-radius: var(--fb-radius-md); text-align: left; cursor: pointer; font-family: var(--fb-font-sans); transition: all var(--fb-dur) var(--fb-ease); }
.fb-post-ask-ai-q:hover { background: rgba(255,255,255,0.14); border-color: rgba(255,255,255,0.25); }
.fb-post-ask-ai-open { background: var(--fb-stellar-blue); color: #fff; border: 0; padding: 11px 18px; border-radius: var(--fb-radius-md); font-size: 14px; font-weight: 600; cursor: pointer; width: 100%; font-family: var(--fb-font-sans); transition: background var(--fb-dur) var(--fb-ease); }
.fb-post-ask-ai-open:hover { background: var(--fb-orbital-blue); }
/* Newsletter CTA in post */
.fb-post-nl-cta { background: var(--fb-arctic-mist); border-radius: var(--fb-radius-lg); padding: 28px; margin: 28px 0 0; }
.fb-post-nl-label { font-family: var(--fb-font-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--fb-stellar-blue); font-weight: 600; margin: 0 0 8px; }
.fb-post-nl-title { font-family: var(--fb-font-display); font-weight: 700; font-size: 24px; letter-spacing: -0.02em; color: var(--fb-grey-12); margin: 0 0 8px; }
.fb-post-nl-body { font-size: 15px; color: var(--fb-grey-09); margin: 0 0 18px; line-height: 1.55; }
.fb-post-nl-btn { display: inline-flex; align-items: center; background: var(--fb-stellar-blue); color: #fff; padding: 11px 20px; border-radius: var(--fb-radius-md); font-size: 14px; font-weight: 600; text-decoration: none; transition: background var(--fb-dur) var(--fb-ease); }
.fb-post-nl-btn:hover { background: var(--fb-orbital-blue); }
/* Related reading / author sections */
.fb-related-section { margin-top: 44px; padding-top: 32px; border-top: 1px solid var(--fb-border); }
.fb-author-more { margin-top: 20px; }
.fb-related-title { font-family: var(--fb-font-display); font-weight: 700; font-size: 22px; letter-spacing: -0.01em; color: var(--fb-grey-12); margin: 0 0 20px; }
.fb-related-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.fb-related-see-all { display: inline-block; margin-top: 16px; font-size: 14px; font-weight: 700; color: var(--fb-stellar-blue); text-decoration: none; }
.fb-related-see-all:hover { color: var(--fb-orbital-blue); }
/* fb-card partial (used in related grid, more-from-author, etc.) */
.fb-card-link { text-decoration: none; display: flex; flex-direction: column; height: 100%; }
.fb-card-image { height: 130px; background: var(--fb-arctic-mist); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.fb-card-image img { width: 100%; height: 100%; object-fit: cover; }
.fb-card-image-placeholder { display: flex; align-items: center; justify-content: center; }
.fb-card-body { padding: 16px; flex: 1; display: flex; flex-direction: column; }
.fb-card-tag { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--fb-stellar-blue); margin-bottom: 8px; display: block; }
.fb-card-title { font-family: var(--fb-font-display); font-weight: 700; font-size: 16px; line-height: 1.3; letter-spacing: -0.01em; color: var(--fb-grey-12); margin: 0 0 8px; flex: 1; }
.fb-card-link:hover .fb-card-title { color: var(--fb-stellar-blue); }
.fb-card-excerpt { font-size: 13px; color: var(--fb-grey-09); margin: 0 0 8px; line-height: 1.5; }
.fb-card-meta { font-size: 12px; color: var(--fb-grey-08); display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.fb-card-dot { color: var(--fb-grey-06); }
/* Author box */
.fb-author-box { margin-top: 44px; padding-top: 32px; border-top: 1px solid var(--fb-border); display: flex; flex-direction: column; gap: 24px; }
.fb-author-item { display: flex; align-items: flex-start; gap: 16px; }
.fb-author-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.fb-author-avatar-placeholder { width: 48px; height: 48px; border-radius: 50%; background: var(--fb-arctic-mist); display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 700; color: var(--fb-stellar-blue); flex-shrink: 0; }
.fb-author-info { flex: 1; }
.fb-author-name { font-family: var(--fb-font-display); font-weight: 700; font-size: 17px; color: var(--fb-grey-12); text-decoration: none; display: block; }
.fb-author-name:hover { color: var(--fb-stellar-blue); }
.fb-author-bio { font-size: 14px; color: var(--fb-grey-09); margin: 6px 0 0; line-height: 1.55; }
/* Prev / next post nav */
.fb-post-nav { margin-top: 44px; padding-top: 32px; border-top: 1px solid var(--fb-border); display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.fb-post-nav-item { display: flex; flex-direction: column; gap: 6px; padding: 18px; border: 1px solid var(--fb-border); border-radius: var(--fb-radius-md); text-decoration: none; transition: border-color var(--fb-dur) var(--fb-ease); }
.fb-post-nav-item:hover { border-color: var(--fb-stellar-blue); }
.fb-post-nav-next { text-align: right; }
.fb-post-nav-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--fb-grey-08); }
.fb-post-nav-title { font-family: var(--fb-font-display); font-weight: 700; font-size: 16px; letter-spacing: -0.01em; color: var(--fb-grey-12); line-height: 1.3; }
.fb-post-nav-item:hover .fb-post-nav-title { color: var(--fb-stellar-blue); }

/* ======================================================
   RESPONSIVE
====================================================== */
@media (max-width: 1080px) {
  .fb-wrap { padding: 0 24px; }
  .fb-nav-links { display: none; }
  .fb-nav-actions .signin { display: none; }
  .fb-burger { display: flex; }
  .fb-mh-grid { grid-template-columns: 1fr; }
  .fb-mh-left { border-right: 0; padding-right: 0; }
  .fb-rail { padding-left: 0; border-top: 1px solid var(--fb-border); }
  .fb-mh-title { font-size: 60px; }
  .fb-ph-title { font-size: 46px; }
  .fb-grid-3 { grid-template-columns: repeat(2,1fr); }
  .fb-deckrow { grid-template-columns: repeat(2,1fr); }
  .fb-hubs { grid-template-columns: repeat(2,1fr); }
  .fb-splash .inner { grid-template-columns: 1fr; }
  .fb-row { grid-template-columns: 40px 1fr 80px 24px; }
  .fb-row .r-topic, .fb-row .r-type { display: none; }
  .fb-footer .cols { grid-template-columns: 1fr 1fr; gap: 28px; }
  .fb-feature { grid-template-columns: 1fr; }
  .fb-feature-cs { grid-template-columns: 1fr; }
  .fb-nlrow { grid-template-columns: 1fr; }
  .fb-hubgrid { grid-template-columns: repeat(2,1fr); }
  .fb-prodstrip { grid-template-columns: repeat(2,1fr); }
  .fb-paths-grid { grid-template-columns: repeat(2,1fr); }
  .fb-tag-hero .inner { flex-direction: column; }
  .fb-tag-hero .count-box { text-align: left; }
  .fb-tag-hero .ph-title { font-size: 46px; }
  .fb-post-wrap { padding: 40px 24px 64px; }
  .fb-post-title { font-size: 36px; }
  .fb-related-grid { grid-template-columns: repeat(2,1fr); }
  .fb-post-nav { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .fb-grid-3, .fb-grid-2, .fb-deckrow, .fb-hubs, .fb-hubgrid { grid-template-columns: 1fr; }
  .fb-mh-title { font-size: 44px; }
  .fb-ph-title { font-size: 36px; }
  .fb-paths-grid { grid-template-columns: 1fr; }
  .fb-prodstrip { grid-template-columns: 1fr 1fr; }
  .fb-cta h2 { font-size: 36px; }
  .fb-splash h2 { font-size: 34px; }
  .fb-paths h2 { font-size: 32px; }
  .fb-paths .head { flex-direction: column; align-items: flex-start; }
  .fb-cta .row { flex-direction: column; align-items: center; }
  .fb-post-wrap { padding: 32px 20px 56px; }
  .fb-post-title { font-size: 28px; }
  .fb-post-excerpt { font-size: 17px; }
  .fb-related-grid { grid-template-columns: 1fr; }
  .gh-content h2, .fb-post-content h2 { font-size: 24px; }
  .gh-content h3, .fb-post-content h3 { font-size: 20px; }
  .gh-content p, .fb-post-content p, .gh-content ul, .gh-content ol { font-size: 16px; }
}


/* ════════════════════════════════════════════════════════════════════════════
   AI Knowledge Graph integration — Phase 2  (2026-06)
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Homepage hero: AI search section ───────────────────────────────────── */
.fb-home-ai {
  margin: 0 0 32px;
  max-width: 580px;
}
.fb-home-ai-label {
  font-size: 11px; font-weight: 700; letter-spacing: 1.2px;
  text-transform: uppercase; color: rgba(255,255,255,0.38);
  margin-bottom: 14px;
}
/* Override widget's hero button for the dark hero background */
#kg-search-mount .fb-kg-hero-btn {
  background: rgba(255,255,255,0.07);
  border-color: rgba(255,255,255,0.18);
  color: rgba(255,255,255,0.55);
  box-shadow: none;
}
#kg-search-mount .fb-kg-hero-btn:hover {
  border-color: rgba(255,255,255,0.42);
  background: rgba(255,255,255,0.12);
  box-shadow: 0 4px 24px rgba(0,0,0,0.25);
  color: rgba(255,255,255,0.88);
}
.fb-home-ai-prompts {
  display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px;
}
.fb-home-ai-prompt {
  font-size: 12.5px; padding: 6px 13px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 20px; color: rgba(255,255,255,0.5);
  cursor: pointer; transition: all .15s;
  font-family: var(--fb-font); line-height: 1.3;
}
.fb-home-ai-prompt:hover {
  background: rgba(255,255,255,0.13);
  border-color: rgba(255,255,255,0.30);
  color: rgba(255,255,255,0.9);
}

/* ── Post: Ask AI block ──────────────────────────────────────────────────── */
.fb-post-ask-ai {
  background: linear-gradient(135deg, #EEF3FF 0%, #F4F8FF 100%);
  border: 1px solid #D4E1FF; border-radius: 14px;
  padding: 22px 24px; margin: 40px 0;
}
.fb-post-ask-ai-hd {
  display: flex; align-items: flex-start; gap: 14px; margin-bottom: 16px;
}
.fb-post-ask-ai-icon {
  width: 38px; height: 38px; border-radius: 9px;
  background: var(--fb-blue); color: #fff; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.fb-post-ask-ai-title {
  font-size: 15px; font-weight: 700; color: var(--fb-ink); margin-bottom: 3px;
}
.fb-post-ask-ai-sub {
  font-size: 13px; color: var(--fb-dim); line-height: 1.5;
}
.fb-post-ask-ai-qs {
  display: flex; flex-direction: column; gap: 7px; margin-bottom: 16px;
}
.fb-post-ask-ai-q {
  display: flex; align-items: center; gap: 8px;
  width: 100%; text-align: left; background: #fff;
  border: 1px solid #D4E1FF; border-radius: 9px;
  padding: 10px 14px; cursor: pointer; font-family: var(--fb-font);
  font-size: 13.5px; color: var(--fb-blue); line-height: 1.45;
  transition: border-color .14s, box-shadow .14s;
}
.fb-post-ask-ai-q::before { content: '→'; opacity: .5; flex-shrink: 0; }
.fb-post-ask-ai-q:hover {
  border-color: var(--fb-blue);
  box-shadow: 0 1px 8px rgba(25,76,255,0.1);
}
.fb-post-ask-ai-open {
  font-size: 13px; font-weight: 600;
  color: var(--fb-blue); background: none;
  border: 1.5px solid var(--fb-blue); border-radius: 8px;
  padding: 8px 16px; cursor: pointer; font-family: var(--fb-font);
  transition: background .14s, color .14s;
}
.fb-post-ask-ai-open:hover { background: var(--fb-blue); color: #fff; }

/* ── Auto-rendered branded card thumbnails (no feature_image) ───────────── */
.fb-thumb-cap{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:16px 18px;z-index:2;pointer-events:none;}
.fb-thumb-cap .fb-thumb-eyebrow{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--fb-marine-cyan);}
.fb-thumb-cap .fb-thumb-ttl{font-size:18px;line-height:1.25;font-weight:700;color:#fff;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.fb-thumb-auto{position:absolute;inset:0;background:linear-gradient(135deg,var(--fb-deep-ocean) 0%,var(--fb-stellar-blue) 100%);}
.fb-thumb-auto .g{position:absolute;inset:0;background-image:url("../images/lines-and-grids.svg");background-size:280px;opacity:.12;}
.fb-thumb-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

/* Cover slots render the FULL 16:9 cover (no side-crop of the headline) */
.fb-card .thumb,
.fb-cscard .cs-img,
.fb-guide .cv,
.fb-guide-card-image { aspect-ratio: 16 / 9 !important; height: auto !important; min-height: 0 !important; }
.fb-card .thumb { background-size: cover; background-position: center; }

.fb-cover-img{background-size:cover;background-position:center;}

/* ── Global newsletter modal (HubSpot) — opened by any [data-fb-nl] trigger ── */
.fb-nl-overlay { position: fixed; inset: 0; z-index: 200; background: rgba(10,10,10,0.72); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; padding: 24px; opacity: 0; pointer-events: none; transition: opacity 220ms var(--fb-ease); }
.fb-nl-overlay.open { opacity: 1; pointer-events: all; }
.fb-nl-modal { background: var(--fb-surface); border: 1px solid var(--fb-grey-12); border-radius: var(--fb-radius-xl); width: 100%; max-width: 520px; max-height: 90vh; overflow-y: auto; transform: translateY(12px); transition: transform 240ms var(--fb-ease-out); box-shadow: var(--fb-shadow-xl); }
.fb-nl-overlay.open .fb-nl-modal { transform: translateY(0); }
.fb-nl-modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 28px 28px 20px; border-bottom: 1px solid var(--fb-border); }
.fb-nl-eyebrow { font-family: var(--fb-font-mono); font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fb-stellar-blue); display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
.fb-nl-eyebrow i { width: 13px; height: 13px; }
.fb-nl-title { font-family: var(--fb-font-display); font-weight: 700; font-size: 20px; letter-spacing: -0.02em; line-height: 1.2; color: var(--fb-grey-12); margin: 0; }
.fb-nl-close { flex-shrink: 0; width: 32px; height: 32px; background: var(--fb-grey-04); border: 1px solid var(--fb-border); border-radius: var(--fb-radius-md); cursor: pointer; display: flex; align-items: center; justify-content: center; margin-top: 2px; transition: background var(--fb-dur) var(--fb-ease); }
.fb-nl-close:hover { background: var(--fb-grey-05); }
.fb-nl-close i { width: 15px; height: 15px; color: var(--fb-grey-10); }
.fb-nlform { margin: 0; }
.fb-nlform-form { display: flex; flex-direction: column; gap: 12px; }
/* [hidden] must beat the flex display above, else the form stays visible on success */
.fb-nlform-form[hidden], .fb-dform-form[hidden] { display: none !important; }
.fb-nl-modal .fb-dform-inner { background: transparent; border: 0; box-shadow: none; max-width: 100%; padding: 22px 28px 28px; }
body.fb-nl-open { overflow: hidden; }
@media (max-width: 480px) { .fb-nl-overlay { padding: 0; align-items: flex-end; } .fb-nl-modal { border-radius: var(--fb-radius-xl) var(--fb-radius-xl) 0 0; max-height: 92vh; } }
