/* Fusion DB Connect — shared UI
   One stylesheet for every FDBC page. Scoped per page-type class so nothing
   leaks into the WordPress theme. Tokens are declared once, below.

   *** SIZES ARE IN PX, NOT REM, ON PURPOSE. ***
   The theme's main_optimize.css sets html{font-size:10px}, so every rem here
   resolved to 62.5% of its intended size -- body copy rendered at 9-11px
   against a 16px header. Do not reintroduce rem in this file.

   Scopes:  .fdbc-pricing  pricing grid
            .fdbc-lm       product / learn-more page
            .fdbc-doc      documentation pages
            .fdbc-lib      query library index
            .fdbc-page     light pages (contact, news, sitemap, legal)
*/

/* The theme header is position:fixed at 120px tall, so anything linked to by
   fragment (#pricing, #install, #quote, the docs TOC) lands underneath it.
   Push scroll targets clear of it. */
.fdbc-pricing [id], .fdbc-lm [id], .fdbc-doc [id], .fdbc-lib [id], .fdbc-page [id],
.fdbc-pricing, .fdbc-lm, .fdbc-doc, .fdbc-lib, .fdbc-page { scroll-margin-top: 136px; }

.fdbc-pricing, .fdbc-lm, .fdbc-doc, .fdbc-lib, .fdbc-page {
  --brand:      #1A4FE6;
  --brand-ink:  #0B45C8;
  --brand-tint: #EEF3FE;
  --brand-edge: #C9D8FB;
  --ink:        #0A1030;
  --body:       #3E4561;
  --muted:      #6E7591;
  --rule:       #E2E1F0;
  --rule-soft:  #EFEEF8;
  --surface:    #ffffff;
  --ground:     #F7F7FC;
  --deep:       #0A1030;
  --yes:        #2f7d5d;
  color: var(--body);
  background: var(--surface);
  font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 19.5px; line-height: 1.6;
  overflow-x: clip; max-width: 100vw;
}
.fdbc-pricing *, .fdbc-lm *, .fdbc-doc *, .fdbc-lib *, .fdbc-page *,
.fdbc-pricing *::before, .fdbc-lm *::before, .fdbc-doc *::before, .fdbc-lib *::before, .fdbc-page *::before,
.fdbc-pricing *::after, .fdbc-lm *::after, .fdbc-doc *::after, .fdbc-lib *::after, .fdbc-page *::after { box-sizing: border-box; }


/* ==================== pricing grid ==================== */
.fdbc-pricing { background: var(--ground); padding: 56px 20px 64px; }
.fdbc-pricing .wrap { max-width: min(1500px, 95vw); margin: 0 auto; }
.fdbc-pricing .sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ---------- masthead ---------- */
.fdbc-pricing .eyebrow {
  font-size: 15.6px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--brand-ink); font-weight: 700; margin: 0 0 9.6px;
}
.fdbc-pricing h1.fp-title {
  font-size: clamp(36.8px, 4.4vw, 50.9px); line-height: 1.1; margin: 0 0 13.6px;
  color: var(--ink); font-weight: 700; letter-spacing: -.02em;
}
.fdbc-pricing .fp-lede {
  font-size: 21.5px; max-width: 736px; margin: 0 auto 17.6px; color: var(--body);
}
.fdbc-pricing .fp-head { text-align: center; margin-bottom: 44px; }
.fdbc-pricing .fp-assure {
  display: inline-flex; flex-wrap: wrap; gap: 7.2px 21.6px; justify-content: center;
  padding: 11.2px 19.2px; border: 1px solid var(--brand-edge); border-radius: 999px;
  background: var(--surface); font-size: 17.1px; color: var(--ink);
}
.fdbc-pricing .fp-assure span { display: inline-flex; align-items: center; gap: 6.4px; white-space: nowrap; }
.fdbc-pricing .fp-assure svg { flex: none; color: var(--yes); }

/* ---------- tier cards ---------- */
.fdbc-pricing .fp-tiers {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 52px;
}
.fdbc-pricing .fp-card {
  position: relative; display: flex; flex-direction: column;
  background: var(--surface); border: 1px solid var(--rule); border-radius: 14px;
  padding: 28px 24px 24px;
  box-shadow: 0 1px 2px rgba(10,16,48,.04), 0 8px 24px -16px rgba(10,16,48,.18);
  transition: transform .18s ease, box-shadow .18s ease;
}
.fdbc-pricing .fp-card:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(10,16,48,.05), 0 18px 36px -20px rgba(10,16,48,.28); }
.fdbc-pricing .fp-card.is-featured { border-color: var(--brand); box-shadow: 0 0 0 1px var(--brand), 0 18px 40px -22px rgba(26,79,230,.6); }
.fdbc-pricing .fp-badge {
  position: absolute; top: -11.2px; left: 50%; transform: translateX(-50%);
  background: var(--brand); color: #fff; font-size: 15.1px; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; padding: 4.8px 12.8px; border-radius: 999px;
  white-space: nowrap;
}
.fdbc-pricing .fp-name { font-size: 23.9px; font-weight: 700; color: var(--ink); margin: 0 0 2.4px; }
.fdbc-pricing .fp-for { font-size: 18.3px; color: var(--muted); margin: 0 0 17.6px; min-height: 2.4em; }
.fdbc-pricing .fp-price { display: flex; align-items: baseline; gap: 4.8px; color: var(--ink); }
.fdbc-pricing .fp-amt { font-size: 42.4px; font-weight: 700; letter-spacing: -.03em; line-height: 1; }
.fdbc-pricing .fp-per { font-size: 17.6px; color: var(--muted); }
.fdbc-pricing .fp-annual { font-size: 18.1px; color: var(--muted); margin: 7.2px 0 20px; min-height: 1.3em; }
.fdbc-pricing .fp-pitch { font-size: 18.0px; color: var(--body); margin: 0 0 21.6px; flex: 1 1 auto; }
.fdbc-pricing .fp-cta {
  display: block; width: 100%; text-align: center; cursor: pointer; text-decoration: none;
  border: 1px solid var(--brand); border-radius: 8px; padding: 12.8px 16px;
  font-size: 19.1px; font-weight: 700; background: var(--surface); color: var(--brand-ink);
  transition: background .15s ease, color .15s ease;
}
.fdbc-pricing .fp-cta:hover, .fdbc-pricing .fp-cta:focus-visible { background: var(--brand-tint); text-decoration: none; color: var(--brand-ink); }
.fdbc-pricing .fp-cta.is-solid { background: var(--brand); color: #fff; }
.fdbc-pricing .fp-cta.is-solid:hover, .fdbc-pricing .fp-cta.is-solid:focus-visible { background: var(--brand-ink); border-color: var(--brand-ink); color: #fff; }
.fdbc-pricing .fp-note { font-size: 17.6px; color: var(--muted); text-align: center; margin: 9.6px 0 0; min-height: 1.1em; }

/* ---------- comparison grid ---------- */
.fdbc-pricing .fp-compare-head { text-align: center; margin: 0 0 24px; }
.fdbc-pricing .fp-compare-head h2 { font-size: 29.4px; color: var(--ink); font-weight: 700; margin: 0 0 5.6px; }
.fdbc-pricing .fp-compare-head p { color: var(--muted); margin: 0; font-size: 18.5px; }

.fdbc-pricing .fp-hint {
  display: none; align-items: center; justify-content: center; gap: 6.4px;
  font-size: 17.7px; color: var(--muted); margin: 0 0 9.6px;
}
.fdbc-pricing .fp-hint svg { animation: fp-nudge 1.6s ease-in-out infinite; }
@keyframes fp-nudge { 0%,100% { transform: translateX(0); } 50% { transform: translateX(4px); } }
@media (prefers-reduced-motion: reduce) { .fdbc-pricing .fp-hint svg { animation: none; } }

.fdbc-pricing .fp-scroll {
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  background: var(--surface); border: 1px solid var(--rule); border-radius: 14px;
  box-shadow: 0 1px 2px rgba(10,16,48,.04), 0 10px 30px -22px rgba(10,16,48,.25);
}
.fdbc-pricing table.fp-grid { width: 100%; min-width: 860px; border-collapse: collapse; }
.fdbc-pricing table.fp-grid th,
.fdbc-pricing table.fp-grid td { border: 0; }

.fdbc-pricing .fp-grid thead th {
  position: sticky; top: 0; z-index: 3; background: var(--surface);
  padding: 16px 12px; text-align: center; vertical-align: bottom;
  border-bottom: 2px solid var(--rule); font-size: 19.5px; color: var(--ink);
}
.fdbc-pricing .fp-grid thead th:first-child { text-align: left; z-index: 4; left: 0; min-width: 272px; }
.fdbc-pricing .fp-grid thead .fp-th-name { font-weight: 700; display: block; }
.fdbc-pricing .fp-grid thead .fp-th-price { display: block; font-size: 18.1px; font-weight: 400; color: var(--muted); margin-top: 2.4px; }
.fdbc-pricing .fp-grid thead th.is-featured { background: var(--brand-tint); border-bottom-color: var(--brand); }
.fdbc-pricing .fp-grid thead th.is-featured .fp-th-name { color: var(--brand-ink); }

.fdbc-pricing .fp-grid tbody th.fp-group {
  text-align: left; background: var(--rule-soft); color: var(--ink);
  font-size: 15.4px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase;
  padding: 10.4px 20px; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
}
.fdbc-pricing .fp-grid tbody th.fp-group.is-soon { background: #F1F0FA; color: var(--brand-ink); }
.fdbc-pricing .fp-grid tbody th.fp-group .fp-soon-tag {
  float: right; letter-spacing: .04em; text-transform: none; font-weight: 600; color: var(--muted);
}
.fdbc-pricing .fp-grid tbody tr.fp-row:hover td,
.fdbc-pricing .fp-grid tbody tr.fp-row:hover th { background: #FAFAFE; }
.fdbc-pricing .fp-grid tbody tr.fp-row:hover td.is-featured { background: #E8EFFD; }

.fdbc-pricing .fp-grid th.fp-feat {
  text-align: left; font-weight: 400; padding: 13.6px 20px;
  border-bottom: 1px solid var(--rule-soft); background: var(--surface);
  position: sticky; left: 0; z-index: 2;
}
.fdbc-pricing .fp-feat b { display: block; color: var(--ink); font-weight: 600; font-size: 18.5px; }
.fdbc-pricing .fp-feat small { display: block; color: var(--muted); font-size: 17.7px; line-height: 1.4; margin-top: 2.4px; }
.fdbc-pricing .fp-grid td {
  text-align: center; padding: 13.6px 12px; border-bottom: 1px solid var(--rule-soft);
  font-size: 18.0px; color: var(--ink); background: var(--surface); white-space: nowrap;
}
.fdbc-pricing .fp-grid td.is-featured { background: var(--brand-tint); }
.fdbc-pricing .fp-grid tbody tr:last-child td,
.fdbc-pricing .fp-grid tbody tr:last-child th.fp-feat { border-bottom: 0; }
.fdbc-pricing .fp-grid td.is-soon { color: var(--muted); }
.fdbc-pricing .fp-grid td.is-soon .fp-yes { color: #b6bdc5; }
.fdbc-pricing .fp-grid td.is-soon .fp-val { color: var(--muted); font-weight: 500; }

.fdbc-pricing .fp-yes { color: var(--yes); }
.fdbc-pricing .fp-no  { color: #c3c9d0; font-size: 21.5px; }
.fdbc-pricing .fp-val { font-weight: 600; }
.fdbc-pricing .fp-val.is-strong { color: var(--brand-ink); }
.fdbc-pricing .fp-val.is-good { color: var(--yes); }
.fdbc-pricing .fp-sub { display: block; font-size: 17.3px; color: var(--muted); font-weight: 400; white-space: normal; }

/* ---------- enterprise band ---------- */
.fdbc-pricing .fp-ent {
  margin: 0 0 52px; background: var(--ink); color: #dfe4e9; border-radius: 14px;
  padding: 33.6px 32px; display: flex; flex-wrap: wrap; gap: 24px;
  align-items: center; justify-content: space-between;
}
.fdbc-pricing .fp-ent > div { flex: 1 1 560px; min-width: 0; }
.fdbc-pricing .fp-ent-cta { flex: 0 0 auto; }
.fdbc-pricing .fp-ent h2 { color: #fff; font-size: 26.7px; font-weight: 700; margin: 0 0 7.2px; }
.fdbc-pricing .fp-ent p { margin: 0; max-width: 640px; font-size: 18.5px; }
.fdbc-pricing .fp-ent ul {
  list-style: none; margin: 14.4px 0 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 6.4px 22.4px; font-size: 17.1px;
}
.fdbc-pricing .fp-ent li { display: flex; align-items: center; gap: 6.4px; }
.fdbc-pricing .fp-ent li svg { color: var(--brand); flex: none; }
.fdbc-pricing .fp-ent-cta {
  display: inline-block; background: var(--brand); color: #fff; font-weight: 700;
  padding: 13.6px 25.6px; border-radius: 8px; white-space: nowrap; text-decoration: none;
  transition: background .15s ease;
}
.fdbc-pricing .fp-ent-cta:hover, .fdbc-pricing .fp-ent-cta:focus-visible { background: #1A4FE6; color: #fff; text-decoration: none; }

/* ---------- footnotes ---------- */
.fdbc-pricing .fp-fine { margin-top: 36px; font-size: 18.3px; color: var(--muted); }
.fdbc-pricing .fp-fine h3 { font-size: 15.5px; letter-spacing: .13em; text-transform: uppercase; color: var(--ink); margin: 0 0 11.2px; }
.fdbc-pricing .fp-fine p { margin: 0 0 9.6px; max-width: 992px; }
.fdbc-pricing .fp-fine code { background: var(--rule-soft); padding: .1em .35em; border-radius: 3px; font-size: .92em; }
.fdbc-pricing .fp-fine a { color: var(--brand-ink); text-decoration: underline; }

/* ---------- responsive ---------- */
@media (max-width: 900px) {
  .fdbc-pricing .fp-tiers { grid-template-columns: 1fr; max-width: 416px; margin-inline: auto; }
  .fdbc-pricing .fp-for { min-height: 0; }
  .fdbc-pricing .fp-ent { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 760px) {
  .fdbc-pricing { padding: 40px 12px 48px; }
  .fdbc-pricing table.fp-grid { min-width: 544px; font-size: 18.3px; }
  .fdbc-pricing .fp-grid thead th:first-child,
  .fdbc-pricing .fp-grid th.fp-feat { min-width: 184px; }
  .fdbc-pricing .fp-grid th.fp-feat { padding: 11.2px 12.8px; }
  .fdbc-pricing .fp-feat b { font-size: 18.9px; }
  .fdbc-pricing .fp-feat small { font-size: 17.1px; }
  .fdbc-pricing .fp-grid td { padding: 11.2px 6.4px; font-size: 18.3px; }
  .fdbc-pricing .fp-scroll { border-radius: 10px; }
  .fdbc-pricing .fp-hint { display: flex; }
}
@media (prefers-reduced-motion: reduce) {
  .fdbc-pricing .fp-card, .fdbc-pricing .fp-cta, .fdbc-pricing .fp-ent-cta { transition: none; }
  .fdbc-pricing .fp-card:hover { transform: none; }
}
@media print {
  .fdbc-pricing .fp-scroll { overflow: visible; box-shadow: none; }
  .fdbc-pricing .fp-card:hover { transform: none; }
}


/* ==================== product page ==================== */
.fdbc-lm .wrap { max-width: min(1500px, 95vw); margin: 0 auto; padding: 0 20px; }
.fdbc-lm section { padding: 72px 0; }
.fdbc-lm .is-ground { background: var(--ground); }
.fdbc-lm .is-tint   { background: var(--brand-tint); }

.fdbc-lm .eyebrow {
  font-size: 15.6px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--brand-ink); font-weight: 700; margin: 0 0 11.2px;
}
.fdbc-lm h2 {
  font-size: clamp(29.4px, 2.9vw, 36.5px); line-height: 1.18; color: var(--ink);
  font-weight: 700; letter-spacing: -.015em; margin: 0 0 11.2px;
}
.fdbc-lm h3 { font-size: 21.1px; color: var(--ink); font-weight: 700; margin: 0 0 6.4px; }
.fdbc-lm .lede { font-size: 21.1px; max-width: 768px; margin: 0 0 36px; }
.fdbc-lm .sec-head { text-align: center; margin-bottom: 44px; }
.fdbc-lm .sec-head .lede { margin-left: auto; margin-right: auto; margin-bottom: 0; }

/* ---------- hero ---------- */
.fdbc-lm .hero { padding: 64px 0 56px; background: var(--ground); border-bottom: 1px solid var(--rule); }
.fdbc-lm .hero-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.08fr); gap: 48px; align-items: center; }
.fdbc-lm .hero h1 {
  font-size: clamp(35.6px, 4.6vw, 53.4px); line-height: 1.07; color: var(--ink);
  font-weight: 700; letter-spacing: -.025em; margin: 0 0 16px;
}
.fdbc-lm .hero p.sub { font-size: 21.9px; margin: 0 0 28px; max-width: 544px; }
.fdbc-lm .cta-row { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.fdbc-lm .btn {
  display: inline-block; border-radius: 8px; padding: 13.6px 25.6px; font-weight: 700;
  font-size: 19.5px; text-decoration: none; border: 1px solid var(--brand); cursor: pointer;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.fdbc-lm .btn-solid { background: var(--brand); color: #fff; }
.fdbc-lm .btn-solid:hover, .fdbc-lm .btn-solid:focus-visible { background: var(--brand-ink); border-color: var(--brand-ink); color: #fff; text-decoration: none; }
.fdbc-lm .btn-ghost { background: var(--surface); color: var(--brand-ink); }
.fdbc-lm .btn-ghost:hover, .fdbc-lm .btn-ghost:focus-visible { background: var(--brand-tint); color: var(--brand-ink); text-decoration: none; }
.fdbc-lm .btn-onDark { background: var(--brand); color: #fff; border-color: var(--brand); }
.fdbc-lm .btn-onDark:hover, .fdbc-lm .btn-onDark:focus-visible { background: #1A4FE6; border-color: #1A4FE6; color: #fff; text-decoration: none; }

.fdbc-lm .assure { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.fdbc-lm .assure li { display: flex; align-items: flex-start; gap: 8.8px; font-size: 18.2px; color: var(--ink); }
.fdbc-lm .assure svg { flex: none; color: var(--yes); margin-top: 3.52px; }

.fdbc-lm .shot {
  border-radius: 12px; overflow: hidden; border: 1px solid var(--rule); background: var(--surface);
  box-shadow: 0 2px 6px rgba(10,16,48,.06), 0 26px 50px -28px rgba(10,16,48,.45);
}
.fdbc-lm .shot img { display: block; width: 100%; height: auto; }
.fdbc-lm .shot figcaption {
  font-size: 17.7px; color: var(--muted); padding: 10.4px 14.4px;
  border-top: 1px solid var(--rule-soft); background: var(--ground); margin: 0;
}
.fdbc-lm figure.shot { margin: 0; }

/* Screenshots on documentation pages.  These captures are 468px wide; the figure
   is capped at that so the browser never upscales one -- a stretched screenshot
   reads as a low-quality product, not a big picture.  Replace a capture with a
   larger file and it will simply occupy more of the column. */
.fdbc-doc .shot {
  /* The figure shrink-wraps to the image's natural width, so the frame hugs the
     screenshot instead of stretching across the column with the capture stranded
     in one corner. The caption below is given a zero intrinsic width so its text
     does not drive that calculation -- see the figcaption rule. A wider capture
     grows the figure until max-width clamps it. */
  margin: 0 0 24px; max-width: 100%; width: fit-content;
  border-radius: 12px; overflow: hidden; border: 1px solid var(--rule); background: var(--surface);
  box-shadow: 0 2px 6px rgba(10,16,48,.06), 0 26px 50px -28px rgba(10,16,48,.45);
}
.fdbc-doc .shot img { display: block; max-width: 100%; height: auto; }

/* Two captures side by side. Both are 468px, so a pair fits the column with room
   to spare; they wrap to a stack when it gets narrower. align-items:start keeps a
   short caption from stretching its frame to match a taller neighbour. */
.fdbc-doc .shot-pair { display: flex; flex-wrap: wrap; align-items: start; gap: 20px; margin: 0 0 24px; }
.fdbc-doc .shot-pair .shot { margin: 0; }

/* Security page: the three standing facts, and the architecture diagram.
   The diagram is a 1000x560 SVG, so it scales to the column instead of being
   capped at a natural width the way the screenshots are. */
.fdbc-doc .facts {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px; margin: 0 0 26px;
}
.fdbc-doc .fact {
  border: 1px solid var(--rule); border-left: 3px solid var(--brand);
  border-radius: 10px; background: var(--ground); padding: 14px 16px;
  font-size: 17px; line-height: 1.55; color: var(--muted);
}
.fdbc-doc .fact b { display: block; color: var(--ink); margin-bottom: 4px; font-size: 18px; }
.fdbc-doc figure.diagram {
  margin: 0 0 26px; border: 1px solid var(--rule); border-radius: 12px;
  background: #fff; padding: 14px;
}
.fdbc-doc figure.diagram img { display: block; width: 100%; height: auto; }
.fdbc-doc .shot figcaption {
  /* width:0 + min-width:100% -- the caption fills the figure but contributes
     nothing to its intrinsic width, so the image alone decides how wide the
     frame is. Without this the longest caption word sets the width. */
  box-sizing: border-box; width: 0; min-width: 100%;
  font-size: 16.5px; line-height: 1.5; color: var(--muted); padding: 10.4px 14.4px;
  border-top: 1px solid var(--rule-soft); background: var(--ground); margin: 0;
}

/* ---------- proof strip ---------- */
.fdbc-lm .proof { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); background: var(--surface); padding: 25.6px 0; }
.fdbc-lm .proof-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 9.6px 32px; }
.fdbc-lm .proof-lab { font-size: 15.4px; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.fdbc-lm .proof-in b { color: var(--ink); font-size: 19.1px; font-weight: 600; white-space: nowrap; }

/* ---------- generic card grids ---------- */
.fdbc-lm .grid { display: grid; gap: 20px; }
.fdbc-lm .g2 { grid-template-columns: repeat(2, 1fr); }
.fdbc-lm .g3 { grid-template-columns: repeat(3, 1fr); }
.fdbc-lm .g4 { grid-template-columns: repeat(4, 1fr); }
.fdbc-lm .card {
  background: var(--surface); border: 1px solid var(--rule); border-radius: 12px; padding: 25.6px 22.4px;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.fdbc-lm .card:hover { transform: translateY(-3px); border-color: var(--brand-edge); box-shadow: 0 16px 34px -22px rgba(10,16,48,.35); }
.fdbc-lm .card p { margin: 0; font-size: 18.2px; }
.fdbc-lm .card .ico {
  width: 40px; height: 40px; border-radius: 9px; display: grid; place-items: center;
  background: var(--brand-tint); color: var(--brand-ink); margin-bottom: 16px;
}
.fdbc-lm .card .ico svg { display: block; }

/* ---------- pain / gain ---------- */
.fdbc-lm .vs { display: grid; grid-template-columns: 1fr auto 1fr; gap: 28px; align-items: stretch; }
.fdbc-lm .vs-col { border-radius: 12px; padding: 28px 25.6px; border: 1px solid var(--rule); background: var(--surface); }
.fdbc-lm .vs-col.is-after { border-color: var(--brand); background: var(--brand-tint); }
.fdbc-lm .vs-tag { font-size: 15.2px; letter-spacing: .13em; text-transform: uppercase; font-weight: 700; color: var(--muted); margin: 0 0 14.4px; }
.fdbc-lm .vs-col.is-after .vs-tag { color: var(--brand-ink); }
.fdbc-lm .vs ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 11.2px; }
.fdbc-lm .vs li { display: flex; gap: 9.6px; font-size: 18.5px; align-items: flex-start; }
.fdbc-lm .vs li svg { flex: none; margin-top: 4px; }
.fdbc-lm .vs-col li svg { color: #b9807f; }
.fdbc-lm .vs-col.is-after li svg { color: var(--yes); }
.fdbc-lm .vs-arrow { display: grid; place-items: center; color: var(--brand); }

/* ---------- numbered steps ---------- */
.fdbc-lm .steps { counter-reset: s; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.fdbc-lm .step { position: relative; padding-top: 49.6px; }
.fdbc-lm .step::before {
  counter-increment: s; content: counter(s, decimal-leading-zero);
  position: absolute; top: 0; left: 0; font-size: 20.5px; font-weight: 700; color: var(--brand-ink);
  background: var(--brand-tint); border: 1px solid var(--brand-edge); border-radius: 50%;
  width: 38.4px; height: 38.4px; display: grid; place-items: center;
}
.fdbc-lm .step p { margin: 0; font-size: 18.5px; }
.fdbc-lm .step code { background: var(--rule-soft); padding: .1em .35em; border-radius: 3px; font-size: .9em; }

/* ---------- dark security band ---------- */
.fdbc-lm .dark { background: var(--deep); color: #C9C8E0; }
.fdbc-lm .dark h2, .fdbc-lm .dark h3 { color: #fff; }
.fdbc-lm .dark .eyebrow { color: var(--brand); }
.fdbc-lm .dark .lede { color: #C9C8E0; }
.fdbc-lm .pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 36px; }
.fdbc-lm .pillar { background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; padding: 25.6px 22.4px; }
.fdbc-lm .pillar .ico { background: rgba(26,79,230,.16); color: var(--brand); }
.fdbc-lm .pillar p { font-size: 18.2px; margin: 0; color: #B9B8D6; }
.fdbc-lm .pull {
  border-left: 3px solid var(--brand); padding: 4.8px 0 4.8px 20px; margin: 0 0 28px;
  font-size: 21.9px; color: #fff; max-width: 736px;
}

/* ---------- capability list ---------- */
.fdbc-lm .caps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px 40px; }
.fdbc-lm .cap { display: flex; gap: 13.6px; align-items: flex-start; padding: 14.4px 0; border-bottom: 1px solid var(--rule-soft); }
.fdbc-lm .cap svg { flex: none; color: var(--brand); margin-top: 4.8px; }
.fdbc-lm .cap b { display: block; color: var(--ink); font-size: 19.1px; }
.fdbc-lm .cap span { font-size: 17.2px; color: var(--muted); }

/* ---------- gallery ---------- */
.fdbc-lm .split { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 48px; align-items: center; }
.fdbc-lm .split .lede { margin-bottom: 20px; }
.fdbc-lm .split code { background: var(--rule-soft); padding: .1em .35em; border-radius: 3px; font-size: .9em; }

.fdbc-lm a.card.dl { display: block; text-decoration: none; }
.fdbc-lm a.card.dl h3 { color: var(--ink); }
.fdbc-lm a.card.dl p { color: var(--muted); }
.fdbc-lm a.card.dl:hover h3 { color: var(--brand-ink); }

/* ---------- testimonial ---------- */
.fdbc-lm .quote { max-width: 832px; margin: 0 auto; text-align: center; }
.fdbc-lm .quote blockquote {
  font-size: clamp(22.4px, 2.2vw, 27.6px); line-height: 1.45; color: var(--ink);
  margin: 0 0 20px; border: 0; padding: 0; font-weight: 400;
}
.fdbc-lm .quote .who { font-size: 18.0px; color: var(--muted); margin: 0; }
.fdbc-lm .quote .who b { color: var(--ink); display: block; font-size: 19.5px; }
.fdbc-lm .quote-mark { color: var(--brand); font-size: 50.9px; line-height: 1; margin-bottom: 4px; }

/* ---------- closing CTA ---------- */
.fdbc-lm .close-cta { background: var(--deep); color: #C9C8E0; text-align: center; }
.fdbc-lm .close-cta h2 { color: #fff; }
.fdbc-lm .close-cta .lede { color: #C9C8E0; margin-left: auto; margin-right: auto; }
.fdbc-lm .close-cta .cta-row { justify-content: center; margin-bottom: 14.4px; }
.fdbc-lm .close-cta .fineprint { font-size: 18.3px; color: #8c96a1; margin: 0; }
.fdbc-lm .close-cta .btn-ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.4); }
.fdbc-lm .close-cta .btn-ghost:hover { background: rgba(255,255,255,.08); color: #fff; }

.fdbc-lm .sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ---------- responsive ---------- */
@media (max-width: 980px) {
  .fdbc-lm .hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .fdbc-lm .g4 { grid-template-columns: repeat(2, 1fr); }
  .fdbc-lm .steps, .fdbc-lm .pillars { grid-template-columns: 1fr; gap: 24px; }
  .fdbc-lm .vs { grid-template-columns: 1fr; }
  .fdbc-lm .split { grid-template-columns: 1fr; gap: 32px; }
  .fdbc-lm .vs-arrow { transform: rotate(90deg); padding: 4px 0; }
}
@media (max-width: 720px) {
  .fdbc-lm section { padding: 48px 0; }
  .fdbc-lm .g2, .fdbc-lm .g3, .fdbc-lm .g4,
  .fdbc-lm .caps { grid-template-columns: 1fr; }
  .fdbc-lm .cta-row .btn { flex: 1 1 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
  .fdbc-lm .card { transition: none; }
  .fdbc-lm .card:hover { transform: none; }
}


/* ==================== documentation pages ==================== */
.fdbc-doc .doc-head { background: var(--ground); border-bottom: 1px solid var(--rule); padding: 48px 0 40px; }
.fdbc-doc .wrap { max-width: min(1400px, 95vw); margin: 0 auto; padding: 0 20px; }
.fdbc-doc h1 {
  font-size: clamp(35.0px, 3.8vw, 45.8px); line-height: 1.1; color: var(--ink);
  font-weight: 700; letter-spacing: -.02em; margin: 0 0 12px;
}
.fdbc-doc .doc-head .lede { font-size: 21.1px; max-width: 736px; margin: 0; }
.fdbc-doc .eyebrow { font-size: 15.6px; letter-spacing: .14em; text-transform: uppercase; color: var(--brand-ink); font-weight: 700; margin: 0 0 11.2px; }

.fdbc-doc .doc-body { display: grid; grid-template-columns: 240px minmax(0,1fr); gap: 48px; padding: 44px 0 64px; }
.fdbc-doc .toc { position: sticky; top: 24px; align-self: start; max-height: calc(100vh - 48px); overflow-y: auto; }
.fdbc-doc .toc-mark { font-size: 15.4px; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); font-weight: 700; display: block; margin-bottom: 12.8px; }
.fdbc-doc .toc ol { list-style: none; margin: 0; padding: 0; counter-reset: t; }
.fdbc-doc .toc li { margin: 0; }
.fdbc-doc .toc a {
  display: block; padding: 6.4px 0 6.4px 13.6px; font-size: 17.6px; color: var(--body);
  border-left: 2px solid var(--rule); text-decoration: none; transition: color .15s ease, border-color .15s ease;
}
.fdbc-doc .toc a:hover, .fdbc-doc .toc a:focus-visible { color: var(--brand-ink); border-left-color: var(--brand); text-decoration: none; }

.fdbc-doc .doc-main > section { padding: 0 0 44px; scroll-margin-top: 136px; }
.fdbc-doc .doc-main h2 {
  font-size: 27.6px; color: var(--ink); font-weight: 700; margin: 0 0 14.4px;
  padding-bottom: 8.8px; border-bottom: 1px solid var(--rule);
}
.fdbc-doc .doc-main h3 { font-size: 20.5px; color: var(--ink); font-weight: 700; margin: 28px 0 8px; }
.fdbc-doc .doc-main p { margin: 0 0 16px; }
.fdbc-doc .doc-main ul, .fdbc-doc .doc-main ol { margin: 0 0 18.4px; padding-left: 20.8px; }
.fdbc-doc .doc-main li { margin-bottom: 7.2px; }
.fdbc-doc .doc-main a { color: var(--brand-ink); text-decoration: underline; }

.fdbc-doc code, .fdbc-lib code, .fdbc-page code {
  font-family: "SF Mono", ui-monospace, Menlo, Consolas, monospace;
  background: var(--rule-soft); color: var(--ink); padding: .12em .4em; border-radius: 4px;
  font-size: .88em; word-break: break-word;
}
.fdbc-doc pre {
  background: var(--deep); color: #dfe6ed; border-radius: 10px; padding: 18.4px 20px;
  overflow-x: auto; margin: 0 0 20px; border: 0; font-size: 18.3px; line-height: 1.6;
}
.fdbc-doc pre code { background: none; color: inherit; padding: 0; font-size: inherit; white-space: pre; }
.fdbc-doc .codewrap { position: relative; margin: 0 0 20px; }
.fdbc-doc .codewrap pre { margin: 0; }
.fdbc-doc .codewrap .lang {
  position: absolute; top: 8.8px; right: 12px; font-size: 15.1px; letter-spacing: .1em;
  text-transform: uppercase; color: #7f8b98; font-weight: 700; pointer-events: none;
}

/* numbered procedure */
.fdbc-doc ol.proc { list-style: none; counter-reset: pr; padding: 0; margin: 0 0 24px; }
.fdbc-doc ol.proc > li {
  counter-increment: pr; position: relative; padding: 0 0 18.4px 46.4px; margin: 0;
  border-left: 1px solid var(--rule); margin-left: 15.2px;
}
.fdbc-doc ol.proc > li:last-child { border-left-color: transparent; padding-bottom: 0; }
.fdbc-doc ol.proc > li::before {
  content: counter(pr); position: absolute; left: -15.2px; top: -2.4px;
  width: 30.4px; height: 30.4px; border-radius: 50%; display: grid; place-items: center;
  background: var(--brand-tint); border: 1px solid var(--brand-edge);
  color: var(--brand-ink); font-weight: 700; font-size: 18.1px;
}
.fdbc-doc ol.proc b { color: var(--ink); }

/* callouts */
.fdbc-doc .note {
  border-left: 3px solid var(--brand); background: var(--brand-tint);
  padding: 15.2px 18.4px; border-radius: 0 8px 8px 0; margin: 0 0 20px; font-size: 18.3px;
}
.fdbc-doc .note.is-warn { border-left-color: #b8860b; background: #fbf4e4; }
.fdbc-doc .note.is-safe { border-left-color: var(--yes); background: #e9f3ee; }
.fdbc-doc .note b { display: block; color: var(--ink); margin-bottom: 3.2px; }

/* key/value reference table */
.fdbc-doc table.ref { width: 100%; border-collapse: collapse; margin: 0 0 24px; font-size: 18.2px; }
.fdbc-doc table.ref th, .fdbc-doc table.ref td { text-align: left; padding: 11.2px 13.6px; border-bottom: 1px solid var(--rule-soft); vertical-align: top; }
.fdbc-doc table.ref thead th { background: var(--rule-soft); color: var(--ink); font-weight: 700; font-size: 15.9px; letter-spacing: .07em; text-transform: uppercase; border-bottom: 1px solid var(--rule); }
.fdbc-doc table.ref td:first-child { white-space: nowrap; }

.fdbc-doc .nextprev { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 16px; }
.fdbc-doc .nextprev a {
  display: block; border: 1px solid var(--rule); border-radius: 10px; padding: 16px 18.4px;
  text-decoration: none; transition: border-color .15s ease, background .15s ease;
}
.fdbc-doc .nextprev a:hover { border-color: var(--brand-edge); background: var(--brand-tint); text-decoration: none; }
.fdbc-doc .nextprev span { display: block; font-size: 15.4px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 700; margin-bottom: 3.2px; }
.fdbc-doc .nextprev b { color: var(--ink); font-size: 19.1px; }

/* ==================== query library ==================== */
.fdbc-lib { background: var(--ground); padding: 48px 0 64px; }
.fdbc-lib .wrap { max-width: min(1500px, 95vw); margin: 0 auto; padding: 0 20px; }
.fdbc-lib .lib-head { text-align: center; margin-bottom: 32px; }
.fdbc-lib .eyebrow { font-size: 15.6px; letter-spacing: .14em; text-transform: uppercase; color: var(--brand-ink); font-weight: 700; margin: 0 0 11.2px; }
.fdbc-lib h1 { font-size: clamp(35.0px, 3.8vw, 45.8px); line-height: 1.1; color: var(--ink); font-weight: 700; letter-spacing: -.02em; margin: 0 0 12px; }
.fdbc-lib .lede { font-size: 20.5px; max-width: 704px; margin: 0 auto; }

.fdbc-lib .lib-tools { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; align-items: center; margin-bottom: 14.4px; }
.fdbc-lib .search { position: relative; flex: 1 1 352px; max-width: 480px; }
.fdbc-lib .search input {
  width: 100%; padding: 12.8px 16px 12.8px 41.6px; border: 1px solid var(--rule); border-radius: 8px;
  font-size: 19.5px; font-family: inherit; color: var(--ink); background: var(--surface);
}
.fdbc-lib .search input:focus { outline: 2px solid var(--brand); outline-offset: 1px; border-color: var(--brand); }
.fdbc-lib .search svg { position: absolute; left: 13.6px; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; }
.fdbc-lib .chips { display: flex; flex-wrap: wrap; gap: 7.2px; justify-content: center; margin-bottom: 28px; }
.fdbc-lib .chip {
  border: 1px solid var(--rule); background: var(--surface); color: var(--body);
  border-radius: 999px; padding: 6.08px 13.6px; font-size: 18.3px; cursor: pointer;
  font-family: inherit; transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.fdbc-lib .chip:hover { border-color: var(--brand-edge); }
.fdbc-lib .chip[aria-pressed="true"] { background: var(--brand); border-color: var(--brand); color: #fff; font-weight: 700; }
.fdbc-lib .count { text-align: center; font-size: 18.5px; color: var(--muted); margin: 0 0 24px; }

.fdbc-lib .modgroup { margin-bottom: 36px; }
.fdbc-lib .modgroup h2 {
  font-size: 15.9px; letter-spacing: .13em; text-transform: uppercase; color: var(--ink);
  font-weight: 700; margin: 0 0 14.4px; padding-bottom: 8px; border-bottom: 1px solid var(--rule);
}
.fdbc-lib .qgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13.6px; }
.fdbc-lib .qcard {
  text-align: left; width: 100%; background: var(--surface); border: 1px solid var(--rule);
  border-radius: 10px; padding: 15.2px 16.8px; cursor: pointer; font-family: inherit;
  display: flex; gap: 11.2px; align-items: flex-start;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.fdbc-lib .qcard:hover { border-color: var(--brand); transform: translateY(-2px); box-shadow: 0 12px 24px -18px rgba(10,16,48,.4); }
.fdbc-lib .qcard svg { flex: none; color: var(--brand); margin-top: 2.4px; }
.fdbc-lib .qcard b { display: block; color: var(--ink); font-size: 18.3px; font-weight: 600; line-height: 1.35; }
.fdbc-lib .qcard span { display: block; font-size: 17.7px; color: var(--muted); margin-top: 1.92px; }
.fdbc-lib .empty { text-align: center; color: var(--muted); padding: 40px 0; display: none; }
.fdbc-lib .lib-foot { margin-top: 32px; text-align: center; font-size: 17.2px; color: var(--muted); }
.fdbc-lib .lib-foot a { color: var(--brand-ink); text-decoration: underline; }

/* ==================== light pages ==================== */
.fdbc-page { padding: 48px 0 64px; }
.fdbc-page .wrap { max-width: 860px; margin: 0 auto; padding: 0 20px; }
.fdbc-page .wrap.is-wide { max-width: 1120px; }
.fdbc-page .eyebrow { font-size: 15.6px; letter-spacing: .14em; text-transform: uppercase; color: var(--brand-ink); font-weight: 700; margin: 0 0 11.2px; }
.fdbc-page h1 { font-size: clamp(35.0px, 3.8vw, 44.1px); line-height: 1.12; color: var(--ink); font-weight: 700; letter-spacing: -.02em; margin: 0 0 12px; }
.fdbc-page .lede { font-size: 20.7px; margin: 0 0 32px; }
.fdbc-page h2 { font-size: 23.9px; color: var(--ink); font-weight: 700; margin: 36px 0 11.2px; }
.fdbc-page h3 { font-size: 19.9px; color: var(--ink); font-weight: 700; margin: 24px 0 6.4px; }
.fdbc-page p { margin: 0 0 16px; }
.fdbc-page ul, .fdbc-page ol { margin: 0 0 18.4px; padding-left: 20.8px; }
.fdbc-page li { margin-bottom: 6.4px; }
.fdbc-page a { color: var(--brand-ink); text-decoration: underline; }

/* legal pages use the same callouts as the documentation pages */
.fdbc-page .note {
  border-left: 3px solid var(--brand); background: var(--brand-tint);
  padding: 15.2px 18.4px; border-radius: 0 8px 8px 0; margin: 0 0 20px; font-size: 18.3px;
}
.fdbc-page .note.is-warn { border-left-color: #b8860b; background: #fbf4e4; }
.fdbc-page .note.is-safe { border-left-color: var(--yes); background: #e9f3ee; }
.fdbc-page .note b { display: block; color: var(--ink); margin-bottom: 3.2px; }

.fdbc-page .updated { font-size: 18.3px; color: var(--muted); border-top: 1px solid var(--rule); padding-top: 16px; margin-top: 40px; }

.fdbc-page .tiles, .fdbc-doc .tiles { display: grid; padding-left: 0; grid-template-columns: repeat(3, 1fr); gap: 17.6px; margin: 0 0 24px; padding: 0; list-style: none; }
.fdbc-page .tiles li, .fdbc-doc .tiles li { margin: 0; }
.fdbc-page .tile, .fdbc-doc .tile { display: block; text-decoration: none; border: 1px solid var(--rule); border-radius: 10px; padding: 17.6px 19.2px; text-decoration: none; height: 100%; transition: border-color .15s ease, background .15s ease; }
.fdbc-page .tile:hover, .fdbc-doc .tile:hover { border-color: var(--brand-edge); background: var(--brand-tint); text-decoration: none; }
.fdbc-doc .doc-main .tile, .fdbc-doc .doc-main .tile:hover { text-decoration: none; }
.fdbc-page .tile b, .fdbc-doc .tile b { display: block; color: var(--ink); font-size: 19.5px; margin-bottom: 2.4px; }
.fdbc-page .tile span, .fdbc-doc .tile span { font-size: 18.9px; color: var(--muted); }

.fdbc-page .news { list-style: none; padding: 0; margin: 0; }
.fdbc-page .news li { border-bottom: 1px solid var(--rule-soft); padding: 21.6px 0; margin: 0; display: grid; grid-template-columns: 136px minmax(0,1fr); gap: 24px; }
.fdbc-page .news time { font-size: 18.3px; color: var(--muted); font-weight: 600; padding-top: 2.4px; }
.fdbc-page .news b { display: block; color: var(--ink); font-size: 20.5px; margin-bottom: 4px; }
.fdbc-page .news p { margin: 0; font-size: 18.5px; }

/* ==================== shared responsive ==================== */
@media (max-width: 980px) {
  .fdbc-doc .doc-body { grid-template-columns: 1fr; gap: 28px; }
  .fdbc-doc .toc { position: static; max-height: none; border-bottom: 1px solid var(--rule); padding-bottom: 20px; }
  .fdbc-doc .toc ol { display: flex; flex-wrap: wrap; gap: 6.4px; }
  .fdbc-doc .toc a { border-left: 0; border: 1px solid var(--rule); border-radius: 999px; padding: 5.6px 12.8px; }
  .fdbc-lib .qgrid { grid-template-columns: repeat(2, 1fr); }
  .fdbc-page .tiles, .fdbc-doc .tiles { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .fdbc-lib .qgrid, .fdbc-page .tiles, .fdbc-doc .tiles { grid-template-columns: 1fr; }
  .fdbc-doc .nextprev { grid-template-columns: 1fr; }
  .fdbc-page .news li { grid-template-columns: 1fr; gap: 4.8px; }
}

/* pricing FAQ */
.fdbc-pricing .fp-faq { margin-top: 40px; }
.fdbc-pricing .fp-faq h2 { font-size: 27.6px; color: var(--ink); font-weight: 700; margin: 0 0 20px; text-align: center; }
.fdbc-pricing .fp-faq dl { margin: 0; columns: 2; column-gap: 48px; }
.fdbc-pricing .fp-faq dt {
  color: var(--ink); font-weight: 700; font-size: 19.5px; margin: 0 0 4.8px;
  break-after: avoid; break-inside: avoid;
}
.fdbc-pricing .fp-faq dd {
  margin: 0 0 24px; font-size: 18.2px; color: var(--body); break-inside: avoid;
}
@media (max-width: 760px) { .fdbc-pricing .fp-faq dl { columns: 1; } }

/* region switcher */
/* Local pricing notice, inserted by fdbc-geo-pricing.js under the region control.
   It says which country's prices are shown and that the charge follows the billing
   address, so a visitor is never surprised at checkout. */
.fdbc-pricing .fp-geo-note {
  margin: 10px 0 0; font-size: 16px; line-height: 1.5; color: var(--muted);
}
.fdbc-pricing .fp-geo-note b { color: var(--ink); }
.fdbc-pricing .fp-geo-reset {
  border: 1px solid var(--rule); background: var(--surface); color: var(--ink);
  border-radius: 999px; padding: 3px 12px; font: inherit; font-size: 15px; cursor: pointer;
}
.fdbc-pricing .fp-geo-reset:hover { border-color: var(--brand); color: var(--brand); }

.fdbc-pricing .fp-region {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 6.4px; margin: 17.6px 0 0;
}
.fdbc-pricing .fp-region-lab {
  font-size: 15.4px; letter-spacing: .13em; text-transform: uppercase;
  color: var(--muted); font-weight: 700; margin-right: 5.6px;
}
.fdbc-pricing .fp-dev-fail {
  margin: 8px 0 0; font-size: 15px; color: #0B45C8; font-family: ui-monospace, Menlo, Consolas, monospace;
}
/* Development-only country picker, injected by fdbc-geo-pricing.js when domain.js
   points at a dev host. Deliberately plain so it never reads as customer UI. */
.fdbc-pricing .fp-dev-cc { display: inline-flex; align-items: center; gap: 6px; margin-left: 10px; }
.fdbc-pricing .fp-dev-cc label {
  font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700;
  color: #fff; background: #0B45C8; border-radius: 4px; padding: 2px 6px;
}
.fdbc-pricing .fp-dev-cc select {
  font: inherit; font-size: 15px; padding: 3px 6px; border: 1px dashed #0B45C8;
  border-radius: 6px; background: var(--surface); color: var(--ink);
}
.fdbc-pricing .fp-region-now {
  border: 1px solid var(--rule); background: var(--surface); color: var(--body);
  border-radius: 999px; padding: 5.44px 12.8px; font-size: 18.3px;
}
.fdbc-pricing .fp-region-now span { color: var(--muted); font-size: 16px; margin-left: 4px; }
.fdbc-pricing .fp-region-opt {
  border: 1px solid var(--rule); background: var(--surface); color: var(--body);
  border-radius: 999px; padding: 5.44px 12.8px; font-size: 18.3px; text-decoration: none;
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.fdbc-pricing .fp-region-opt:hover { border-color: var(--brand-edge); color: var(--brand-ink); text-decoration: none; }
.fdbc-pricing .fp-region-opt span { color: var(--muted); font-weight: 700; }
.fdbc-pricing .fp-region-opt.is-on {
  background: var(--brand); border-color: var(--brand); color: #fff; font-weight: 700;
}
.fdbc-pricing .fp-region-opt.is-on span { color: rgba(255,255,255,.75); }

/* ---------- homepage hero film ----------
   Restores the background video from the original landing page. The film sits
   behind a scrim so the hero copy keeps its contrast whether the video plays,
   fails, or is suppressed for reduced motion. */
.fdbc-lm .hero.has-video { position: relative; overflow: hidden; background: var(--deep); }
.fdbc-lm .hero.has-video .wrap { position: relative; z-index: 2; }
.fdbc-lm .hero-video { position: absolute; inset: 0; z-index: 0; }
.fdbc-lm .hero-video video {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.fdbc-lm .hero-video::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(100deg,
      rgba(12,17,22,.93) 0%, rgba(12,17,22,.86) 42%, rgba(12,17,22,.62) 100%);
}
/* hero copy inverts over the film */
.fdbc-lm .hero.has-video h1 { color: #fff; }
.fdbc-lm .hero.has-video p.sub { color: #cfd6dd; }
.fdbc-lm .hero.has-video .eyebrow { color: var(--brand); }
.fdbc-lm .hero.has-video .assure li { color: #e6ebf0; }
.fdbc-lm .hero.has-video .btn-ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.45); }
.fdbc-lm .hero.has-video .btn-ghost:hover { background: rgba(255,255,255,.1); color: #fff; }
.fdbc-lm .hero.has-video .shot { border-color: rgba(255,255,255,.18); }
.fdbc-lm .hero.has-video .shot figcaption { background: rgba(255,255,255,.06); color: #B9B8D6; border-top-color: rgba(255,255,255,.12); }
@media (prefers-reduced-motion: reduce) {
  .fdbc-lm .hero-video video { display: none; }
}

/* pull quote in documentation */
.fdbc-doc .pullquote, .fdbc-page .pullquote {
  margin: 0 0 28px; padding: 18px 24px; border: 0;
  border-left: 3px solid var(--brand); background: var(--brand-tint); border-radius: 0 10px 10px 0;
}
.fdbc-doc .pullquote p, .fdbc-page .pullquote p { font-size: 17.5px; line-height: 1.55; color: var(--ink); margin: 0 0 10px; }
.fdbc-doc .pullquote footer, .fdbc-page .pullquote footer { font-size: 14.5px; color: var(--muted); }
.fdbc-doc .pullquote footer b, .fdbc-page .pullquote footer b { color: var(--ink); }
