/* ============================================================
   FinBox Legacy Components — finbox-legacy.css
   Recovered orphaned component styles for templates NOT covered
   by the v5.29 design-system rewrite of finbox.css:
     author, newsletters (per-list), landing/download-form (gated
     case studies & reports), resources, reading-path, guide-card
     partial, tabs/filter-bar, pagination.
   Loaded AFTER finbox.css. All selectors are uniquely namespaced
   so they do not override the new design system.
   ============================================================ */

/* ---- Legacy design tokens (aliased to the new palette) ---- */
:root {
  --fb-blue:      #194CFF;
  --fb-blue-dim:  rgba(25,76,255,0.1);
  --fb-blue-pale: #EEF3FF;
  --fb-dim:       #6B7280;
  --fb-dim2:      #9CA3AF;
  --fb-font:      "Satoshi", "Inter", system-ui, sans-serif;
  --fb-ink:       #0E0E0C;
  --fb-nav-h:     62px;
  --fb-navy:      #0B1628;
  --fb-px:        clamp(20px, 4vw, 44px);
  --fb-w:         1180px;
  --fb-white:     #FFFFFF;
}

/* ============================================================
   Recovered component blocks
   ============================================================ */
.fb-main { }
.fb-page-wrap { max-width: var(--fb-w); margin: 0 auto; padding: 0 var(--fb-px) 80px; }
.fb-filterbar {
  background: var(--fb-white);
  border-bottom: 1px solid var(--fb-border);
  position: sticky; top: var(--fb-nav-h); z-index: 100;
}
.fb-filterbar-inner {
  max-width: var(--fb-w); margin: 0 auto;
  padding: 0 var(--fb-px);
}
.fb-filterbar-tabs {
  display: flex; align-items: center; gap: 2px;
  overflow-x: auto; padding: 12px 0 0;
  -ms-overflow-style: none; scrollbar-width: none;
  border-bottom: 1px solid var(--fb-border);
  margin-bottom: 10px;
}
.fb-filterbar-tabs::-webkit-scrollbar { display: none; }
.fb-tab {
  font-size: 14px; font-weight: 500; color: var(--fb-dim);
  text-decoration: none; padding: 8px 14px 10px;
  border-bottom: 2px solid transparent; white-space: nowrap;
  transition: color .15s, border-color .15s;
  margin-bottom: -1px;
}
.fb-tab:hover { color: var(--fb-ink); }
.fb-tab-active { color: var(--fb-ink); border-bottom-color: var(--fb-ink); font-weight: 600; }
.fb-tab-atlas.fb-tab-active { color: #065f46; border-bottom-color: #065f46; }
.fb-tab-sentinel.fb-tab-active { color: #1d4ed8; border-bottom-color: #1d4ed8; }
.fb-tab-deviceconnect.fb-tab-active { color: #0f766e; border-bottom-color: #0f766e; }
.fb-tab-bankconnect.fb-tab-active { color: #7c3aed; border-bottom-color: #7c3aed; }
.fb-tab-prism.fb-tab-active { color: #be185d; border-bottom-color: #be185d; }
.fb-filterbar-chips { display: flex; align-items: center; gap: 6px; padding: 0 0 12px; flex-wrap: wrap; }
.fb-chips-label { font-size: 11px; font-weight: 600; letter-spacing: .8px; text-transform: uppercase; color: var(--fb-dim2); margin-right: 4px; }
.fb-author-profile { display: flex; align-items: center; gap: 24px; padding: 48px 0 32px; }
.fb-author-profile-img { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.fb-pagination {
  display: flex; justify-content: center; align-items: center;
  gap: 16px; padding: 48px 0 16px;
}
.fb-home-section-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 48px 0 24px;
}
.fb-home-section-title {
  font-size: 22px; font-weight: 800; color: var(--fb-ink); letter-spacing: -.5px;
}
.fb-newsletters-strip .fb-home-section-head { padding-top: 56px; }
.fb-newsletters-strip .fb-home-section-title { color: white; }
.fb-pagination-links {
  display: flex; justify-content: center; align-items: center;
  gap: 16px; padding: 24px 0 16px;
}
.fb-guides-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px; padding-top: 32px;
}
.fb-guide-card {
  background: white; border: 1px solid var(--fb-border);
  border-radius: 14px; overflow: hidden;
  transition: transform .18s;
}
.fb-guide-card:hover { transform: translateY(-3px); }
.fb-guide-card-link { display: flex; flex-direction: column; text-decoration: none; height: 100%; }
.fb-guide-card-image {
  aspect-ratio: 1.91/1; background: var(--fb-navy);
  overflow: hidden; position: relative; flex-shrink: 0;
}
.fb-guide-card-image img { width: 100%; height: 100%; object-fit: cover; }
.fb-guide-card-placeholder {
  width: 100%; height: 100%; display: flex;
  align-items: center; justify-content: center;
}
.fb-guide-type {
  position: absolute; top: 12px; left: 12px;
  font-size: 10px; font-weight: 700; letter-spacing: 1px;
  text-transform: uppercase; color: white;
  background: rgba(25,76,255,0.85);
  padding: 4px 10px; border-radius: 4px;
}
.fb-guide-card-body { padding: 20px 22px 20px; flex: 1; display: flex; flex-direction: column; }
.fb-guide-title {
  font-size: 16px; font-weight: 700; color: var(--fb-ink);
  line-height: 1.35; margin-bottom: 10px; letter-spacing: -.1px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.fb-guide-excerpt {
  font-size: 13px; color: var(--fb-dim); line-height: 1.6;
  margin-bottom: 16px; flex: 1;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.fb-guide-cta {
  font-size: 13px; font-weight: 600; color: var(--fb-blue);
  margin-top: auto;
}
.fb-dform {
  margin: 40px 0;
}
.fb-dform-inner {
  background: var(--fb-white);
  border: 1px solid var(--fb-border);
  border-radius: 16px;
  padding: 36px 40px 32px;
  box-shadow: 0 4px 24px rgba(14,14,12,0.06);
  max-width: 680px;
}
.fb-dform-head { margin-bottom: 24px; }
.fb-dform-eyebrow {
  display: inline-block;
  font-size: 11px; font-weight: 700; letter-spacing: 1px;
  text-transform: uppercase; color: var(--fb-blue);
  background: var(--fb-blue-pale);
  padding: 4px 10px; border-radius: 100px;
  margin-bottom: 10px;
}
.fb-dform-sub {
  font-size: 14px; color: var(--fb-dim); margin: 0; line-height: 1.5;
}
.fb-dform-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
  margin-bottom: 16px;
}
.fb-dform-field { display: flex; flex-direction: column; gap: 6px; }
.fb-dform-field label {
  font-size: 13px; font-weight: 600; color: var(--fb-ink);
}
.fb-dform-field label span { color: var(--fb-blue); margin-left: 1px; }
.fb-dform-field input {
  font-family: var(--fb-font); font-size: 14px; color: var(--fb-ink);
  background: var(--fb-bg); border: 1.5px solid var(--fb-border);
  border-radius: 8px; padding: 10px 14px;
  outline: none; transition: border-color .15s, box-shadow .15s;
  width: 100%;
}
.fb-dform-field input::placeholder { color: var(--fb-dim2); }
.fb-dform-field input:focus {
  border-color: var(--fb-blue);
  box-shadow: 0 0 0 3px rgba(25,76,255,0.1);
  background: var(--fb-white);
}
.fb-dform-field input.fb-dform-invalid {
  border-color: #EF4444;
  box-shadow: 0 0 0 3px rgba(239,68,68,0.1);
}
.fb-dform-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; margin-top: 8px;
  font-family: var(--fb-font); font-size: 15px; font-weight: 700;
  color: var(--fb-white); background: var(--fb-blue);
  border: none; border-radius: 10px; padding: 14px 24px;
  cursor: pointer; transition: opacity .15s, transform .1s;
}
.fb-dform-btn:hover { opacity: .88; }
.fb-dform-btn:active { transform: scale(0.99); }
.fb-dform-btn:disabled { opacity: .6; cursor: not-allowed; }
.fb-dform-btn-spinner {
  display: none; align-items: center; gap: 8px;
}
.fb-dform-btn-spinner svg {
  animation: fb-spin .7s linear infinite;
}
.fb-dform-btn.fb-dform-loading .fb-dform-btn-text { display: none; }
.fb-dform-btn.fb-dform-loading .fb-dform-btn-spinner { display: flex; }
.fb-dform-privacy {
  font-size: 12px; color: var(--fb-dim2); text-align: center;
  margin: 12px 0 0; line-height: 1.5;
}
.fb-dform-privacy a { color: var(--fb-dim2); text-decoration: underline; text-underline-offset: 2px; }
.fb-dform-privacy a:hover { color: var(--fb-dim); }
.fb-dform-success {
  text-align: center; padding: 8px 0 4px;
}
.fb-dform-success-check {
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 16px;
}
.fb-dform-success h3 {
  font-size: 20px; font-weight: 800; color: var(--fb-ink);
  letter-spacing: -.3px; margin-bottom: 10px;
}
.fb-dform-success p {
  font-size: 15px; color: var(--fb-dim); line-height: 1.65; max-width: 420px; margin: 0 auto;
}
.fb-dform-error {
  background: #FEF2F2; border: 1px solid #FECACA;
  border-radius: 10px; padding: 14px 18px; margin-top: 16px;
}
.fb-dform-error p {
  font-size: 14px; color: #991B1B; margin: 0; line-height: 1.55;
}
.fb-dform-error a { color: #991B1B; text-decoration: underline; }
.fb-landing-body {
  padding-top: 48px;
}
.fb-landing-cover {
  margin: 0 0 40px;
  border-radius: 14px;
  overflow: hidden;
  max-height: 460px;
}
.fb-landing-cover img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.modal-body .fb-dform { margin: 0; }
.modal-body .fb-dform-inner {
  box-shadow: none;
  border: none;
  padding: 0;
  max-width: 100%;
}
.fb-chip-active {
  background: var(--fb-blue) !important;
  color: #fff !important;
  border-color: var(--fb-blue) !important;
}
.fb-author-hero {
  padding: 48px 0 32px;
  border-bottom: 1px solid var(--fb-border);
  margin-bottom: 0;
}
.fb-author-hero-identity {
  display: flex; align-items: center; gap: 20px; margin-bottom: 16px;
}
.fb-author-hero-img {
  width: 72px; height: 72px; border-radius: 50%; object-fit: cover;
  border: 2px solid var(--fb-border); flex-shrink: 0;
}
.fb-author-hero-avatar {
  width: 72px; height: 72px; border-radius: 50%; flex-shrink: 0;
  background: var(--fb-blue-dim); color: var(--fb-blue);
  font-size: 24px; font-weight: 800; display: flex;
  align-items: center; justify-content: center;
}
.fb-author-hero-name {
  font-size: clamp(22px, 3vw, 32px); font-weight: 800;
  color: var(--fb-ink); margin: 0 0 6px; letter-spacing: -.5px;
}
.fb-author-hero-bio {
  font-size: 15px; color: var(--fb-dim); line-height: 1.6; margin: 0;
}
.fb-author-expertise {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
  font-size: 13px; min-height: 22px;
}
.fb-author-total {
  font-weight: 700; color: var(--fb-ink);
}
.fb-author-sep { color: var(--fb-dim2); }
.fb-author-topic {
  
  background: none; border: none; font-family: inherit; font-size: inherit;
  padding: 0; cursor: pointer;
  color: var(--fb-dim); display: inline-flex; align-items: center; gap: 4px;
  transition: color .15s;
}
.fb-author-topic:hover { color: var(--fb-ink); }
.fb-author-topic:hover .fb-author-topic-count {
  background: var(--fb-blue); color: #fff;
}
.fb-author-topic-count {
  font-size: 11px; font-weight: 700; color: var(--fb-blue);
  background: var(--fb-blue-pale); padding: 1px 6px; border-radius: 10px;
}
.fb-path-dot { opacity: .4; }
.fb-pagination-btn{
display:inline-flex;
align-items:center;
justify-content:center;
padding:14px 22px;
border-radius:14px;
background:#0f172a;
color:#fff;
text-decoration:none;
font-weight:700;
transition:all .2s ease
}
.fb-pagination-btn:hover{
transform:translateY(-2px);
background:#1e293b
}
.fb-pagination-meta{
font-size:14px;
font-weight:600;
color:#64748b
}
.fb-newsletter-hero{
    padding:72px 0 44px;
}
.fb-newsletter-label{
    margin-bottom:18px;
    font-size:12px;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:#2563eb;
}
.fb-newsletter-title{
    max-width:980px;
    margin-bottom:22px;
    font-size:72px;
    line-height:0.98;
    letter-spacing:-0.05em;
}
.fb-newsletter-description{
    max-width:760px;
    margin-bottom:30px;
    font-size:22px;
    line-height:1.7;
    color:#64748b;
}
.fb-newsletter-actions{
    display:flex;
    align-items:center;
    gap:16px;
}
.fb-newsletter-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:14px 24px;
    border-radius:14px;
    background:#1d4ed8;
    color:#fff;
    font-weight:700;
    text-decoration:none;
    transition:all .2s ease;
}
.fb-newsletter-btn:hover{
    transform:translateY(-2px);
}
.fb-home-section{
    padding:10px 0 48px;
}
.fb-home-last{
    padding-bottom:90px;
}
.fb-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:24px;
}
.fb-section-title{
    font-size:32px;
    line-height:1.1;
    letter-spacing:-0.03em;
}
.fb-section-link{
    color:#2563eb;
    font-weight:700;
    text-decoration:none;
}

/* ============================================================
   Supplement — classes absent from all recovery sources
   ============================================================ */
.fb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 22px; }
.fb-dform-form { display: flex; flex-direction: column; gap: 12px; }
.fb-landing-main { min-height: 50vh; }
.fb-newsletter-feed { } /* also carries .fb-grid */
.fb-newsletter-item { display: block; }
.fb-nl-empty { text-align: center; color: var(--fb-grey-09); padding: 56px 0; font-size: 15px; }
.fb-load-more-btn { cursor: pointer; }
.fb-post-share { display: flex; align-items: center; }
.fb-post-nav-prev { text-align: left; }

/* ============================================================
   Double-nav fix — imported case-study / report page content
   embeds a full marketing document (nested <body> + <nav class="nav">).
   Hide that embedded marketing nav; the theme nav stays.
   ============================================================ */
.fb-post-content nav.nav,
.gh-content nav.nav,
.fb-landing-body nav.nav { display: none !important; }

/* ============================================================
   Resources hub (/resources/) — fr-* components
   ============================================================ */
.fr-hero {
  background: var(--fb-navy);
  padding: 72px 0 64px;
  position: relative;
  overflow: hidden;
}
.fr-hero::before {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 700px 350px at 20% 0%, rgba(25,76,255,.15) 0%, transparent 60%),
    radial-gradient(ellipse 500px 250px at 80% 100%, rgba(6,182,212,.08) 0%, transparent 55%);
  pointer-events: none;
}
.fr-hero-inner {
  position: relative; z-index: 1;
}
.fr-hero-label {
  font-size: 11px; font-weight: 700; letter-spacing: 1.2px;
  text-transform: uppercase; color: rgba(255,255,255,.35);
  margin-bottom: 16px;
}
.fr-hero-title {
  font-size: clamp(26px, 4vw, 40px); font-weight: 800;
  color: #fff; line-height: 1.18; letter-spacing: -.5px;
  margin: 0 0 16px;
}
.fr-hero-sub {
  font-size: 15px; color: rgba(255,255,255,.5);
  max-width: 500px; line-height: 1.65; margin: 0 0 40px;
}
.fr-hero-stats {
  display: flex; gap: 40px; flex-wrap: wrap;
}
.fr-stat { display: flex; flex-direction: column; gap: 2px; }
.fr-stat-n {
  font-size: 26px; font-weight: 800; color: #fff; letter-spacing: -.5px;
  line-height: 1;
}
.fr-stat-l { font-size: 12px; font-weight: 500; color: rgba(255,255,255,.4); }
.fr-section-sub {
  font-size: 13px; color: var(--fb-dim); margin: 2px 0 0;
}
.fr-section-paths { background: var(--fb-bg); }
.fr-paths-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 860px) {
  .fr-paths-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .fr-paths-grid { grid-template-columns: 1fr; }
}
.fr-path-card {
  display: flex; flex-direction: column;
  background: var(--fb-white);
  border: 1px solid var(--fb-border);
  border-radius: 14px; overflow: hidden;
  text-decoration: none;
  transition: transform .18s, box-shadow .18s, border-color .18s;
}
.fr-path-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0,0,0,.07);
  border-color: transparent;
}
.fr-path-card-top { height: 4px; flex-shrink: 0; }
.fr-path-card-body { flex: 1; padding: 18px 20px 14px; display: flex; flex-direction: column; gap: 8px; }
.fr-path-cat {
  display: inline-block; font-size: 10px; font-weight: 700;
  letter-spacing: .8px; text-transform: uppercase;
  padding: 3px 7px; border-radius: 5px; align-self: flex-start;
}
.fr-path-title { font-size: 15px; font-weight: 700; color: var(--fb-ink); line-height: 1.35; margin: 0; }
.fr-path-desc {
  font-size: 12px; color: var(--fb-dim); line-height: 1.6; margin: 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.fr-path-foot {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 20px 14px; border-top: 1px solid var(--fb-border); margin-top: auto;
}
.fr-path-meta { font-size: 11px; font-weight: 500; color: var(--fb-dim2); }
.fr-path-start { font-size: 12px; font-weight: 700; }
.fr-brochures-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
@media (max-width: 700px) {
  .fr-brochures-grid { grid-template-columns: 1fr; }
}
.fr-brochure-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 20px;
  background: var(--fb-white);
  border: 1px solid var(--fb-border);
  border-radius: 12px;
  text-decoration: none;
  transition: box-shadow .18s, border-color .18s, transform .18s;
}
.fr-brochure-card:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,.07);
  border-color: var(--fb-blue-pale);
  transform: translateY(-2px);
}
.fr-bc-featured {
  grid-column: 1 / -1;
  background: linear-gradient(135deg, #f0f4ff 0%, #f8f9fb 100%);
  border-color: var(--fb-blue-dim);
}
.fr-bc-icon { flex-shrink: 0; margin-top: 2px; }
.fr-bc-body { flex: 1; min-width: 0; }
.fr-bc-tag {
  display: inline-block; font-size: 10px; font-weight: 700;
  letter-spacing: .8px; text-transform: uppercase; color: var(--fb-blue);
  margin-bottom: 5px;
}
.fr-bc-title { font-size: 14px; font-weight: 700; color: var(--fb-ink); margin: 0 0 5px; line-height: 1.35; }
.fr-bc-desc {
  font-size: 12px; color: var(--fb-dim); line-height: 1.55; margin: 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.fr-bc-dl {
  flex-shrink: 0; align-self: flex-end;
  font-size: 12px; font-weight: 600; color: var(--fb-blue);
  white-space: nowrap; margin-left: 8px;
}
.fr-brochures-cta {
  font-size: 13px; font-weight: 500; color: var(--fb-dim);
  text-decoration: none; transition: color .15s;
}
.fr-brochures-cta:hover { color: var(--fb-blue); }
.fr-videos-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 860px) {
  .fr-videos-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 500px) {
  .fr-videos-grid { grid-template-columns: 1fr; }
}
.fr-video-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--fb-border);
  background: var(--fb-white);
  transition: transform .18s, box-shadow .18s;
}
.fr-video-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0,0,0,.08);
}
.fr-video-thumb {
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--fb-navy);
}
.fr-video-thumb img {
  width: 100%; height: 100%; object-fit: cover;
  display: block;
  transition: opacity .2s;
}
.fr-video-card:hover .fr-video-thumb img { opacity: .85; }
.fr-video-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  color: white;
  background: rgba(0,0,0,.35);
  opacity: 0;
  transition: opacity .18s;
}
.fr-video-card:hover .fr-video-play { opacity: 1; }
.fr-video-body { padding: 14px 16px 16px; flex: 1; }
.fr-video-tag {
  display: inline-block;
  font-size: 10px; font-weight: 700; letter-spacing: .8px;
  text-transform: uppercase; color: var(--fb-blue);
  margin-bottom: 6px;
}
.fr-video-title {
  font-size: 13px; font-weight: 600; color: var(--fb-ink);
  line-height: 1.45; margin: 0;
  display: -webkit-box; -webkit-line-clamp: 3;
  -webkit-box-orient: vertical; overflow: hidden;
}
