/* ============ Flowbird — base CSS v1 (global) ============ */

/* ---- Site tokens (colours, sizes, radii, etc.) ---- */
:root{
  --navy:#0B3A86;
  --ink:#0F1D3B;
  --copy:#2B3A55;
  --muted:#6B778C;
  --border:#E6EEFF;
  --border-strong:#D9E6FF;   /* stronger border for hovers/focus */
  --bg:#FFFFFF;
  --sky:#F4F8FF;

  --r-card:22px;
  --r-img:16px;
  --container:1160px;
  --pad:16px;

  --sh1:0 16px 40px rgba(16,34,62,.10);
}

/* ---- Core utilities ---- */
.fb-container{max-width:var(--container);margin:0 auto;padding:0 var(--pad);}
.fb-h1{color:var(--ink);font:800 clamp(28px,4vw,40px)/1.1 ui-sans-serif,system-ui;margin:0 0 10px;}
.fb-h2{color:var(--ink);font:800 clamp(22px,3.2vw,28px)/1.2 ui-sans-serif,system-ui;margin:0 0 8px;}
.fb-p{color:var(--copy);font:400 16px/1.7 ui-sans-serif,system-ui;margin:0;}

/* Footnote (global “small print”) */
.fb-footnote{
  margin-top:12px;
  color:var(--muted);
  font:400 14px/1.7 ui-sans-serif,system-ui;
}

/* Eyebrow line (muted, no caps, not bold) */
.fb-eyebrow{
  margin:0 0 6px;
  color:var(--muted);
  font:500 13px/1 ui-sans-serif,system-ui;
  letter-spacing:.02em;
  text-transform:none;
}
/* ======== GLOBAL — Meet the Team polish (all sections) ======== */
/* Put the role on its own line, just under the name (works even if there is no wrapper class) */
#fb-team-slt article strong + span,
#fb-team-sales article strong + span,
#fb-team-tech article strong + span,
#fb-team-delivery article strong + span,
#fb-team-ops article strong + span{
  display:block;
  margin-top:4px;           /* subtle separation from the name */
}

/* Consistent breathing room above any CTA row inside team cards (if/when present) */
#fb-team-slt article .fb-hero-actions,
#fb-team-sales article .fb-hero-actions,
#fb-team-tech article .fb-hero-actions,
#fb-team-delivery article .fb-hero-actions,
#fb-team-ops article .fb-hero-actions{
  margin-top:14px;
}


/* ========== Unified card visuals (NO layout changes) ========== */
.fb-card,
.fb-pd-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--r-card);
  box-shadow:var(--sh1);
  padding:16px;
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.fb-card:hover,
.fb-card:focus-within,
.fb-pd-card:hover,
.fb-pd-card:focus-within{
  background:var(--sky);
  border-color:var(--border-strong);
  box-shadow:var(--sh1);
}
.fb-card > strong,
.fb-pd-card > strong{
  display:block;
  margin:0 0 6px;
  color:var(--ink);
  font-weight:800;
  font-size:16px;
  line-height:1.25;
  font-family: ui-sans-serif,system-ui;
}
.fb-card p,
.fb-pd-card p{
  margin:8px 0 0;
  color:var(--copy);
  font:400 15px/1.6 ui-sans-serif,system-ui;
}

/* Images */
.fb-img{display:block;width:100%;height:auto;border-radius:var(--r-img);}
.fb-img--framed{border:1px solid var(--border);}
/* Avatar (headshot) utility */
:root { --avatar:72px; }

.fb-avatar{
  display:block;
  width:var(--avatar);
  height:var(--avatar);
  border-radius:var(--r-img);   /* matches your global image radius */
  object-fit:cover;
  border:1px solid var(--border);
}

/* Navy button (general) — premium motion */
.fb-btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 18px;border-radius:999px;
  background:var(--navy);color:#fff;font-weight:700;text-decoration:none;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.fb-btn:hover,
.fb-btn:focus-visible{
  color:#fff;
  filter:brightness(.98);
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(16,34,62,.18);
}

/* ===== Generic hero layout (reusable) ===== */
.fb-hero{margin:48px auto; max-width:1160px; padding:0 16px;}
.fb-hero-grid{
  display:grid; gap:32px; align-items:center;
  grid-template-columns:minmax(280px,1fr) minmax(280px,1fr);
}
@media (max-width:880px){
  .fb-hero-grid{grid-template-columns:1fr; gap:22px;}
}

/* Chip / badge pill */
.fb-chip{
  display:inline-flex; align-items:center; gap:8px;
  height:28px;
  padding:0 10px;
  border-radius:999px;
  background:#fff; border:1px solid var(--border);
  color:var(--navy); font:700 12px/1 ui-sans-serif,system-ui; letter-spacing:.2px;
}

/* Hero text styles */
.fb-hero h1{margin:0 0 12px; color:var(--ink); font:800 clamp(32px,5.2vw,40px)/1.12; letter-spacing:-.01em;}
.fb-hero .lead{margin:0 0 16px; color:var(--copy); font:400 16px/1.6; max-width:60ch;}

/* Primary & secondary CTAs (pair) */
.fb-hero-actions{display:flex; gap:12px; flex-wrap:wrap; margin:0 0 10px;}
.fb-btn-main{
  display:inline-flex; align-items:center; justify-content:center;
  padding:14px 22px;
  border-radius:999px;
  background:var(--navy);
  color:#fff; text-decoration:none; font-weight:800; line-height:1.1;
  border:1px solid var(--navy);
  box-shadow:0 8px 20px rgba(11,58,134,.22);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.fb-btn-main:hover,
.fb-btn-main:focus-visible{
  color:#fff;
  filter:brightness(.98);
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(16,34,62,.18);
}
.fb-link-secondary{
  display:inline-flex; align-items:center; gap:8px; padding:10px 0;
  color:var(--navy); text-decoration:none; font-weight:800;
  transition: color .18s ease, transform .18s ease;
}
.fb-link-secondary:hover,
.fb-link-secondary:focus-visible{
  color:#2d74ff;
  transform:translateY(-1px);}
/* If a link already contains an SVG icon, suppress the arrow */
.fb-link-secondary:has(svg)::after{
  content:"" !important;
}
/* ========== Image card frame (with subtle hover zoom) ========== */
.fb-figure{
  background:#fff;
  border:2px solid var(--border);
  padding:0;
  border-radius:22px; 
  overflow:hidden;
  box-shadow:0 22px 56px rgba(16,34,62,.12);
  position:relative;
  will-change: box-shadow;
  transition: box-shadow .35s ease;
}
.fb-figure img{
  display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover;
  border:none; border-radius:20px;
  transform-origin:center center;
  will-change: transform, filter;
  transition: transform .45s ease, filter .45s ease;
}
.fb-figure:hover img,
.fb-figure:focus-within img{
  transform: scale(1.03);
  filter: saturate(1.02);
}
.fb-figure:hover,
.fb-figure:focus-within{
  box-shadow: 0 26px 64px rgba(16,34,62,.14);
}

/* Optional utility: apply the same hover effect anywhere */
.fb-zoom{ overflow:hidden; }
.fb-zoom img{
  transition: transform .45s ease, filter .45s ease;
  transform-origin:center;
}
.fb-zoom:hover img,
.fb-zoom:focus-within img{
  transform: scale(1.03);
  filter: saturate(1.02);
}

/* Partner row */
.fb-partner{
  display:flex; align-items:center; gap:10px; margin:0 0 8px;
  line-height:0;
}
.fb-partner img{
  height:28px; width:auto; display:block;
  position:relative; top:-2px;
}

/* ========== Generic section layout (2-col) ========== */
.fb-section{
  max-width: var(--container);
  margin: 48px auto;
  padding: 0 var(--pad);
}
.fb-section-grid{
  display: grid;
  gap: 20px;
  grid-template-columns: 480fr 620fr;
  align-items: start;
}
@media (max-width: 900px){
  .fb-section-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 900px){
  .fb-section-grid.reverse-mobile > aside{ order: 2; }
  .fb-section-grid.reverse-mobile > section{ order: 1; }
}

/* ========== Four-up cards grid (unchanged) ========== */
.fb-four{
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 560px){
  .fb-four{ grid-template-columns: 1fr; }
}

/* ========== NEW: three-up cards row (desktop 3 / tablet 2 / mobile 1) ========== */
.fb-cards-3,
#fb-pd-cases-grid{
  display:grid;
  gap:14px;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
}
@media (max-width:1024px){
  .fb-cards-3,
  #fb-pd-cases-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px){
  .fb-cards-3,
  #fb-pd-cases-grid{ grid-template-columns:1fr; }
}

/* ========== Modal/lightbox (polished, global visual upgrade) ========== */
/* Hidden by default */
#fb-pd-modal[aria-hidden="true"]{ display:none; }

/* Open state: full-viewport flex layer — CENTERED by default */
#fb-pd-modal{
  position:fixed !important;
  inset:0 !important;
  z-index:2147483647;
  display:flex;
  align-items:center;            /* center vertically */
  justify-content:center;
  padding:clamp(20px,6vh,60px) 16px;
  /* Block external style/layout leakage */
  contain:layout paint style;
  isolation:isolate;
}

/* Backdrop — deeper, crisper blur for premium feel */
#fb-pd-modal .fb-pd-scrim{
  position:absolute; inset:0;
  background:rgba(11,18,32,.46);
  backdrop-filter:saturate(120%) blur(3px);
  -webkit-backdrop-filter:saturate(120%) blur(3px);
  z-index:1;
  opacity:.001;
  transition:opacity .22s ease;
}

/* Dialog */
#fb-pd-modal .fb-pd-dialog{
  position:relative;
  z-index:2;
  max-width:980px; width:min(96vw,980px);
  max-height:calc(100vh - clamp(40px,12vh,120px));
  overflow:auto;
  background:#fff;
  border:1px solid var(--border);
  border-radius:22px;
  box-shadow:0 22px 56px rgba(16,34,62,.22);
  padding:clamp(18px,2.4vw,26px) clamp(18px,2.6vw,28px) clamp(16px,2.2vw,24px);
  isolation:isolate;
  opacity:.001;
  transform:translateY(8px);
  transition:opacity .22s ease, transform .22s ease, box-shadow .35s ease;
}

/* Smooth reveal */
#fb-pd-modal[aria-hidden="false"] .fb-pd-scrim{ opacity:1; }
#fb-pd-modal[aria-hidden="false"] .fb-pd-dialog{ opacity:1; transform:none; }

/* --- Header alignment (kept), but ICON SLOT HIDDEN GLOBALLY --- */
#fb-pd-modal .fb-pd-head .fb-eyebrow{
  display:flex; align-items:center; gap:8px;
}
/* HIDE the optional icon slot site-wide */
.fb-modal-icon{ display:none !important; }

/* Divider just below header */
#fb-pd-modal .fb-modal-sep{
  border:0; height:1px; background:var(--border); margin:6px 0 14px;
}

/* Two-column grid and inset highlight card */
#fb-pd-modal .fb-modal-grid{
  display:grid; gap:18px;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, .9fr);
  align-items:start;
}
#fb-pd-modal .fb-modal-aside-card{
  background:var(--sky);
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px 14px;
  margin-bottom:12px;       /* space between card and CTA row */
}
#fb-pd-modal .fb-modal-actions{
  display:flex; gap:12px; flex-wrap:wrap; align-items:center;
  margin-top:12px;          /* space above CTAs everywhere */
}

/* Modal content typography (scoped, elevated like example) */
#fb-pd-modal .modal-title,
#fb-pd-modal .fb-modal-title{
  margin:2px 0 10px; color:var(--ink);
  font:800 clamp(22px,2.4vw,28px)/1.25 ui-sans-serif,system-ui;
  letter-spacing:-.2px;
}
#fb-pd-modal .intro-long,
#fb-pd-modal .fb-modal-intro{
  margin:0 0 16px; color:var(--copy);
  font:400 16px/1.8 ui-sans-serif,system-ui;
}

/* List labels and bullets */
#fb-pd-modal .list-h,
#fb-pd-modal .fb-list-label{
  margin:14px 0 8px; color:var(--muted);
  font:700 12.5px/1.2 ui-sans-serif,system-ui; letter-spacing:.02em; text-transform:none;
}
#fb-pd-modal .bullets,
#fb-pd-modal .fb-bullets{
  margin:0 0 14px; padding:0; list-style:none;
  color:var(--copy); font:400 15px/1.75 ui-sans-serif,system-ui;
}
#fb-pd-modal .bullets li,
#fb-pd-modal .fb-bullets li{ position:relative; padding-left:18px; margin:0 0 8px; }
#fb-pd-modal .bullets li::before,
#fb-pd-modal .fb-bullets li::before{
  content:""; position:absolute; left:0; top:.66em;
  width:8px; height:8px; border-radius:50%;
  background:var(--navy); box-shadow:0 0 0 2px #fff inset;
}

/* Mobile & short-viewports: top align and larger spacing */
@media (max-width:900px), (max-height:720px){
  #fb-pd-modal{ align-items:flex-start; }
  #fb-pd-modal .fb-modal-grid{ grid-template-columns:1fr; gap:14px; }
  #fb-pd-modal .fb-pd-dialog{ padding:18px 16px 16px; border-radius:20px; }
  #fb-pd-modal .fb-modal-aside-card{ margin-bottom:16px; }
  #fb-pd-modal .fb-modal-actions{ margin-top:16px; }
}

/* ===== GLOBAL close button standardisation (canonical class + back-compat) ===== */
.fb-modal-close,
#fb-pd-modal .close{
  position:absolute; top:14px; right:14px;
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px;
  border:1px solid var(--border);
  background:#fff; color:#fff; /* neutralized by final override below */
  border-radius:999px;
  font:700 18px/1 ui-sans-serif,system-ui;
  cursor:pointer; box-shadow:none;
  padding:0; margin:0;
}
.fb-modal-close:focus,
#fb-pd-modal .close:focus{
  outline:2px solid var(--border-strong); outline-offset:2px;
}
.fb-modal-close:hover,
#fb-pd-modal .close:hover{ filter:brightness(0.98); }
@media (max-width:900px){
  .fb-modal-close,
  #fb-pd-modal .close{ top:10px; right:10px; width:30px; height:30px; font-size:17px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .fb-btn, .fb-btn-main, .fb-link-secondary{ transition:none !important; transform:none !important; }
  .fb-figure, .fb-figure img, .fb-zoom img{ transition:none !important; transform:none !important; filter:none !important; box-shadow:0 22px 56px rgba(16,34,62,.12) !important; }
  #fb-pd-modal .fb-pd-dialog, #fb-pd-modal .fb-pd-scrim{ transition:none !important; transform:none !important; opacity:1 !important; }
}
/* ===== GLOBAL: SIMPLE MODAL CLOSE (plain “×”) — final override ===== */
#fb-pd-modal .fb-modal-close,
#fb-pd-modal .close,
.fb-modal-close{
  /* nuke all inherited theme styles */
  all: unset !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  width: auto !important;
  height: auto !important;

  /* place + look */
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  z-index: 3 !important;
  color: var(--ink) !important;
  font: 700 20px/1 ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Inter,Arial,sans-serif !important; /* font lock */
  cursor: pointer !important;
}

/* kill any theme pseudo-content (e.g., Bootstrap .btn-close) */
#fb-pd-modal .fb-modal-close::before,
#fb-pd-modal .fb-modal-close::after,
#fb-pd-modal .close::before,
#fb-pd-modal .close::after{
  content: none !important;
}

/* add our own invisible hit area for easy tapping (no visual chrome) */
#fb-pd-modal .fb-modal-close[aria-label="Close"]::after,
#fb-pd-modal .close[aria-label="Close"]::after,
.fb-modal-close[aria-label="Close"]::after{
  content: "" !important;
  position: absolute !important;
  inset: -8px !important;        /* expands click target */
}

/* tasteful hover/focus */
#fb-pd-modal .fb-modal-close:hover,
#fb-pd-modal .close:hover,
.fb-modal-close:hover{
  color: var(--copy) !important;
}
#fb-pd-modal .fb-modal-close:focus-visible,
#fb-pd-modal .close:focus-visible,
.fb-modal-close:focus-visible{
  outline: 2px solid var(--border-strong) !important;
  outline-offset: 2px !important;
}

/* small-screen nudge */
@media (max-width:900px){
  #fb-pd-modal .fb-modal-close,
  #fb-pd-modal .close,
  .fb-modal-close{
    top: 10px !important;
    right: 10px !important;
    font-size: 19px !important;
  }
}

/* =========================
   FLOWBIRD — GLOBAL RHYTHM & ALIGNMENT PATCH
   (align figures to container edges + add breathable spacing before grids)
   ========================= */

/* 1) Remove native figure margins so image cards align with container edges */
.fb-figure{ margin:0 !important; }
.fb-section-grid > aside{ margin:0 !important; }

/* 2) Ensure figure fills its grid column cleanly */
.fb-section-grid > aside .fb-figure{ width:100%; display:block; }
.fb-section-grid > aside .fb-figure img{
  width:100%; height:auto; display:block; object-fit:cover;
}

/* 3) Vertical rhythm: heading → lead */
.fb-section :where(.fb-h2) + :where(.fb-p, .lead){ margin-top:8px; }

/* 4) Breathing room before card grids that follow copy */
.fb-section :where(.fb-p, .lead) + :where(.fb-four, .fb-cards-3){ margin-top:18px; }

/* 5) Slightly roomier grids */
.fb-four{ gap:16px; }
.fb-cards-3{ gap:16px; }

/* 6) Section header spacing */
.fb-section > header{ margin-bottom:18px; }
@media (min-width:900px){
  .fb-section{ margin:56px auto; }
  .fb-section > header{ margin-bottom:22px; }
}

/* 7) If a grid follows a heading directly, still add air */
.fb-section :where(.fb-h2) + :where(.fb-four, .fb-cards-3){ margin-top:14px; }

/* 8) If copy is followed by a figure, space it consistently */
.fb-section :where(.fb-p, .lead) + .fb-figure{ margin-top:16px; }

/* =========================
   FLOWBIRD — Check/tick list (brand-aligned, higher contrast)
   ========================= */

.fb-list{ margin:0; padding:0; list-style:none; }
.fb-list--check{ margin:0; padding:0; list-style:none; }

.fb-list--check li{
  position:relative;
  margin:0 0 10px;
  padding-left:28px;
  color:var(--copy);
  font:400 16px/1.7 ui-sans-serif,system-ui;
}

.fb-list--check li::before{
  content:"";
  position:absolute;
  left:0; top:.40em;
  width:18px; height:18px;
  background-color:var(--ink);
  border-radius:4px;
  box-shadow:0 0 0 1px rgba(15,29,59,.10);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M20 6L9 17l-5-5' stroke='%23FFFFFF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / 16px 16px no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M20 6L9 17l-5-5' stroke='%23FFFFFF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / 16px 16px no-repeat;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><rect width='24' height='24' rx='6' fill='%230F1D3B'/><path d='M20 6L9 17l-5-5' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat; background-position:center; background-size:18px 18px;
}

.fb-list--check.sm li{ margin-bottom:8px; }
.fb-list--check.lg li{ margin-bottom:12px; padding-left:32px; }
.fb-list--check.lg li::before{
  width:20px; height:20px;
  background-size:18px 18px;
  -webkit-mask-size:18px 18px; mask-size:18px 18px;
}
.fb-list--check.muted li::before{ background-color:var(--navy); }
.fb-list--check.success li::before{ background-color:#16a34a; }

/* ========== Partners logos (scoped to #fb-partners) ========== */
#fb-partners #fb-partners-grid{
  display:grid;
  gap:14px;
  margin:14px 0 0;
  padding:0;
  list-style:none;
}
#fb-partners .fb-logo{
  width:100%;
  height:72px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:0 1px 0 rgba(16,34,62,.03);
  cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background-color .2s ease;
  outline:none;
}
#fb-partners .fb-logo img{
  max-height:52px;
  width:auto;
  height:auto;
  object-fit:contain;
  filter:grayscale(100%);
  opacity:.88;
  transition: filter .2s ease, opacity .2s ease;
}
#fb-partners .fb-logo:hover,
#fb-partners .fb-logo:focus{ border-color:var(--border-strong); box-shadow:0 6px 18px rgba(16,34,62,.10); transform:translateY(-1px) }
#fb-partners .fb-logo:hover img,
#fb-partners .fb-logo:focus img{ filter:grayscale(0%); opacity:1 }
#fb-partners .fb-logo:active{ transform:none; box-shadow:0 1px 0 rgba(16,34,62,.03) }
#fb-partners .fb-logo:focus-visible{ outline:2px solid var(--navy); outline-offset:3px }
#fb-partners-cta-tile{ display:none }
@media (max-width:900px){ #fb-partners-cta-tile{ display:block } }
#fb-partners .fb-logo--cta{ background:#FAFBFD; border:1px dashed var(--border-strong); }
#fb-partners .fb-logo--cta span{
  display:inline-flex; align-items:center; gap:8px;
  color:var(--navy); font-weight:800;
}

/* ========== Accordion (global, reusable, matches inline look) ========== */
#fb-sales #fb-sales-accordion{ display:flex; flex-direction:column; gap:14px; }
#fb-sales .fb-surface{
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
  box-shadow:var(--sh1);
  overflow:hidden;
  position:relative;
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
#fb-sales .fb-surface:hover,
#fb-sales .fb-surface:focus-within{ background:var(--sky); border-color:var(--border-strong); }
#fb-sales .fb-acc-btn{
  display:flex; align-items:center; gap:12px; width:100%;
  padding:16px; background:#fff; color:var(--ink);
  text-align:left; cursor:pointer; border:0; border-bottom:1px solid var(--border);
  font:700 16px/1.2 ui-sans-serif,system-ui; transition: background-color .15s ease, color .15s ease;
}
#fb-sales .fb-acc-btn:hover{ background:#FBFDFF; }
#fb-sales .fb-acc-btn:focus-visible{ outline:2px solid var(--navy); outline-offset:3px; border-radius:8px; }
#fb-sales .fb-acc-panel{ padding:14px 16px; color:var(--copy); }
#fb-sales .fb-acc-panel p{ margin:0 0 8px; }
#fb-sales .fb-acc-icon{
  margin-left:auto; color:var(--muted); font-weight:800;
  display:inline-block; min-width:1.1em; text-align:center; line-height:1; user-select:none;
}
#fb-sales .fb-acc-btn[aria-expanded="true"]  .fb-acc-icon::before{ content:"–"; }
#fb-sales .fb-acc-btn[aria-expanded="false"] .fb-acc-icon::before{ content:"+"; }
#fb-sales .accentable::before,
#fb-sales .accentable::after{
  content:""; position:absolute; left:0; right:0; top:0; opacity:0; pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}
#fb-sales .accentable::before{
  height:3px; background:var(--navy);
  border-top-left-radius:inherit; border-top-right-radius:inherit;
  transform:translateY(-2px);
}
#fb-sales .accentable::after{
  height:12px; background:linear-gradient(180deg, rgba(11,58,134,.18), rgba(11,58,134,0));
  filter:blur(6px); transform:translateY(-4px);
}
#fb-sales .accentable.is-accented::before,
#fb-sales .accentable.is-accented::after{ opacity:1; transform:none; }
#fb-sales .fb-acc-badge,
#fb-sales .fb-acc-btn > span:first-child{
  flex:0 0 28px; height:28px; border-radius:8px;
  display:flex; align-items:center; justify-content:center;
  background:#EEF4FF; color:var(--navy);
}
#fb-sales .fb-cta-primary{
  display:inline-flex; align-items:center; justify-content:center;
  padding:14px 22px; border-radius:999px;
  background:var(--navy); color:#fff; text-decoration:none; font-weight:800; line-height:1.1;
  border:1px solid var(--navy);
  box-shadow:0 8px 20px rgba(11,58,134,.22);
}
#fb-sales .fb-cta-primary:hover{ filter:brightness(.98); transform:translateY(-1px); box-shadow:0 12px 28px rgba(16,34,62,.18); }
#fb-sales .fb-imgcard{
  border-radius:22px; padding:6px; background:#fff; border:1px solid var(--border);
  box-shadow:0 22px 56px rgba(16,34,62,.12);
}
#fb-sales .fb-imgcard img{ display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:16px; }
#fb-sales .fb-eyebrow{ margin:0 0 6px; color:var(--muted); font:500 13px/1 ui-sans-serif,system-ui; letter-spacing:.02em; }

/* --- FB Sales: precise fixes only --- */
#fb-sales .fb-acc-btn > .fb-acc-badge{ display:none !important; }
#fb-sales .fb-acc-btn:focus-visible{ border-radius:0 !important; }
#fb-sales #fb-sales-seo-btn{
  background:transparent !important; border:0 !important; padding:10px 0 !important;
  display:inline-flex !important; align-items:center !important; gap:8px !important;
  color:var(--navy) !important; font-weight:800 !important; text-decoration:none !important; cursor:pointer !important;
}
#fb-sales #fb-sales-seo-btn:focus-visible{ outline:2px solid var(--navy) !important; outline-offset:3px !important; border-radius:6px !important; }
#fb-sales #fb-sales-accordion > .fb-card{ padding:0; overflow:hidden; }
#fb-sales #fb-sales-accordion > .fb-card .fb-acc-btn{ padding:16px; border-bottom:1px solid var(--border); border-radius:0; background:#fff; }
#fb-sales #fb-sales-accordion > .fb-card .fb-acc-panel{ padding:14px 16px; }
#fb-sales #fb-sales-accordion > .fb-card.accentable::before{ border-top-left-radius:inherit; border-top-right-radius:inherit; }
#fb-sales .fb-acc-icon{ pointer-events:auto; }

/* =========================================================
   NEW — CASES: grid & tiles + modal parity (reuses globals)
   ========================================================= */

/* Grid shell */
#fb-cases{ margin:56px auto; }
#fb-cases-grid,
#fb-cases .fb-cases-grid{
  display:grid; gap:16px; grid-template-columns:repeat(2,minmax(0,1fr));
}
@media (max-width:560px){
  #fb-cases-grid,
  #fb-cases .fb-cases-grid{ grid-template-columns:1fr; }
}

/* Tile anatomy (use with .fb-card on the article) */
.fb-case-tile{ display:flex; gap:14px; align-items:flex-start; cursor:pointer; }
.fb-case-thumb{
  flex:0 0 54px; height:54px;
  display:flex; align-items:center; justify-content:center;
  background:#fff; border:1px solid var(--border); border-radius:14px;
  box-shadow:0 1px 0 rgba(16,34,62,.02);
}
.fb-case-thumb img{ max-width:38px; max-height:28px; width:auto; height:auto; filter:grayscale(100%); opacity:.85; }
.fb-case-body{ flex:1 1 auto; }
.fb-case-meta{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:0 0 6px; }
.fb-case-title{ color:var(--ink); font:800 18px/1.2 ui-sans-serif,system-ui; }

/* ----- CASES Modal: adopt the same visual system as pd-modal ----- */

/* Hidden by default */
#fb-cases-modal[aria-hidden="true"]{ display:none; }

/* Overlay container */
#fb-cases-modal{
  position:fixed !important; inset:0 !important; z-index:2147483647;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(20px,6vh,60px) 16px; contain:layout paint style; isolation:isolate;
}

/* Backdrop */
#fb-cases-modal .fb-pd-scrim{
  position:absolute; inset:0; background:rgba(11,18,32,.46);
  backdrop-filter:saturate(120%) blur(3px); -webkit-backdrop-filter:saturate(120%) blur(3px);
  z-index:1; opacity:.001; transition:opacity .22s ease;
}

/* Dialog */
#fb-cases-modal .fb-pd-dialog{
  position:relative; z-index:2; max-width:980px; width:min(96vw,980px);
  max-height:calc(100vh - clamp(40px,12vh,120px)); overflow:auto;
  background:#fff; border:1px solid var(--border); border-radius:22px;
  box-shadow:0 22px 56px rgba(16,34,62,.22);
  padding:clamp(18px,2.4vw,26px) clamp(18px,2.6vw,28px) clamp(16px,2.2vw,24px);
  isolation:isolate; opacity:.001; transform:translateY(8px);
  transition:opacity .22s ease, transform .22s ease, box-shadow .35s ease;
}

/* Open state */
#fb-cases-modal[aria-hidden="false"] .fb-pd-scrim{ opacity:1; }
#fb-cases-modal[aria-hidden="false"] .fb-pd-dialog{ opacity:1; transform:none; }

/* Shared structural pieces */
#fb-cases-modal .fb-modal-sep{ border:0; height:1px; background:var(--border); margin:6px 0 14px; }
#fb-cases-modal .fb-modal-grid{ display:grid; gap:18px; grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr); align-items:start; }
#fb-cases-modal .fb-modal-aside-card{ background:var(--sky); border:1px solid var(--border); border-radius:14px; padding:12px; }
#fb-cases-modal .fb-modal-actions{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:12px; }

/* >>> Title font lock (match global modal heading) <<< */
#fb-cases-modal .modal-title,
#fb-cases-modal .fb-modal-title{
  margin:2px 0 10px;
  color:var(--ink);
  font:800 clamp(22px,2.4vw,28px)/1.25 ui-sans-serif,system-ui;
  letter-spacing:-.2px;
}

/* Close button (reuses the global canonical style) */
#fb-cases-modal .fb-modal-close{
  all:unset !important; position:absolute !important; top:12px !important; right:12px !important;
  z-index:3 !important; color:var(--ink) !important; font:700 20px/1 ui-sans-serif,system-ui !important; cursor:pointer !important;
}

/* Mobile: keep desktop layout but drop the left visual for space */
@media (max-width:900px){
  #fb-cases-modal .fb-modal-grid{ grid-template-columns:1fr; gap:14px; }
  #fb-cases-visual{ display:none; }
}

/* Reduced motion parity */
@media (prefers-reduced-motion: reduce){
  #fb-cases-modal .fb-pd-dialog,
  #fb-cases-modal .fb-pd-scrim{ transition:none !important; transform:none !important; opacity:1 !important; }
}

/* ===== CASES: grid & tiles (reuses .fb-card, .fb-chip, .fb-link-secondary) ===== */
#fb-cases{ margin:56px auto; }
#fb-cases-grid,
#fb-cases .fb-cases-grid{
  display:grid;
  gap:16px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media (max-width:560px){
  #fb-cases-grid,
  #fb-cases .fb-cases-grid{ grid-template-columns:1fr; }
}

.fb-case-tile{
  display:flex; gap:14px; align-items:flex-start; cursor:pointer;
  /* visual surface from .fb-card */
}
.fb-case-thumb{
  flex:0 0 54px; height:54px;
  display:flex; align-items:center; justify-content:center;
  background:#fff; border:1px solid var(--border); border-radius:14px;
  box-shadow:0 1px 0 rgba(16,34,62,.02);
}
.fb-case-thumb img{
  max-width:38px; max-height:28px; width:auto; height:auto;
  filter:grayscale(100%); opacity:.85;
}
.fb-case-body{ flex:1 1 auto; }
.fb-case-meta{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:0 0 6px; }
.fb-case-title{ color:var(--ink); font:800 18px/1.2 ui-sans-serif,system-ui; }

/* ===== CASES MODAL: shares the global modal system ===== */

/* Create the same centered overlay behaviour as #fb-pd-modal */
#fb-cases-modal[aria-hidden="true"]{ display:none; }
#fb-cases-modal{
  position:fixed !important;
  inset:0 !important;
  z-index:2147483647;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(20px,6vh,60px) 16px;
  contain:layout paint style; isolation:isolate;
}

/* Backdrop */
#fb-cases-modal .fb-pd-scrim{
  position:absolute; inset:0;
  background:rgba(11,18,32,.46);
  backdrop-filter:saturate(120%) blur(3px);
  -webkit-backdrop-filter:saturate(120%) blur(3px);
  z-index:1; opacity:.001; transition:opacity .22s ease;
}
#fb-cases-modal[aria-hidden="false"] .fb-pd-scrim{ opacity:1; }

/* Dialog */
#fb-cases-modal .fb-pd-dialog{
  position:relative; z-index:2;
  max-width:980px; width:min(96vw,980px);
  max-height:calc(100vh - clamp(40px,12vh,120px));
  overflow:auto;
  background:#fff; border:1px solid var(--border);
  border-radius:22px;
  box-shadow:0 22px 56px rgba(16,34,62,.22);
  padding:clamp(18px,2.4vw,26px) clamp(18px,2.6vw,28px) clamp(16px,2.2vw,24px);
  isolation:isolate; opacity:.001; transform:translateY(8px);
  transition:opacity .22s ease, transform .22s ease, box-shadow .35s ease;
}
#fb-cases-modal[aria-hidden="false"] .fb-pd-dialog{ opacity:1; transform:none; }

/* Header & separator reuse global naming */
#fb-cases-modal .fb-modal-sep{
  border:0; height:1px; background:var(--border); margin:6px 0 14px;
}

/* Grid */
#fb-cases-modal .fb-modal-grid{
  display:grid; gap:18px;
  grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr);
  align-items:start;
}

/* Aside card (brand token visual) */
#fb-cases-modal .fb-modal-aside-card{
  background:var(--sky);
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px;
}

/* Actions row */
#fb-cases-modal .fb-modal-actions{
  display:flex; gap:12px; flex-wrap:wrap; align-items:center;
  margin-top:12px;
}

/* >>> Title font lock (match global modal heading) <<< */
#fb-cases-modal .modal-title,
#fb-cases-modal .fb-modal-title{
  margin:2px 0 10px;
  color:var(--ink);
  font:800 clamp(22px,2.4vw,28px)/1.25 ui-sans-serif,system-ui;
  letter-spacing:-.2px;
}

/* Close button: align with global close styling */
#fb-cases-modal .fb-modal-close{
  all:unset !important;
  position:absolute !important; top:12px !important; right:12px !important;
  z-index:3 !important; color:var(--ink) !important;
  font:700 20px/1 ui-sans-serif,system-ui !important;
  cursor:pointer !important;
}

/* Mobile: same layout, simply hide the left visual for space */
@media (max-width:900px){
  #fb-cases-modal .fb-modal-grid{ grid-template-columns:1fr; gap:14px; }
  #fb-cases-visual{ display:none !important; }
}

/* Reduced motion parity */
@media (prefers-reduced-motion: reduce){
  #fb-cases-modal .fb-pd-dialog,
  #fb-cases-modal .fb-pd-scrim{
    transition:none !important; transform:none !important; opacity:1 !important;
  }
}

/* =========================
   Testimonials (scoped) — final polish for this page
   ========================= */

/* Remove bullets and default spacing on the testimonials list */
#fb-testimonials ul{ list-style:none; margin:0; padding:0; }

/* Keep secondary CTA underline feel consistent */
#fb-testimonials .fb-quote-open{ text-underline-offset:2px; }
/* ===== ABOUT: “What we do” strip (scoped) ===== */
#fb-about-what{
  max-width:960px;
  margin:72px auto;
  padding:0 var(--pad);
  text-align:center;
}
#fb-about-what-grid{
  display:grid;
  gap:28px;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  justify-items:center;
}
@media (max-width:880px){
  #fb-about-what-grid{ gap:24px; }
}
/* Pillar titles + copy (use brand tokens, no new type scale) */
#fb-about-what [role="listitem"] strong{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font:700 18px/1.3 ui-sans-serif,system-ui;
}
#fb-about-what [role="listitem"] p{
  margin:0;
  color:var(--copy);
  font:400 15px/1.68 ui-sans-serif,system-ui;
}
/* ===== ABOUT: “What we do” strip (fully scoped, zero side-effects) ===== */
#fb-about-what{
  max-width:960px;
  margin:72px auto;
  padding:0 var(--pad);
  text-align:center;
}

/* local rhythm so it matches your screenshot */
#fb-about-what .fb-eyebrow{ margin:0 0 8px; }
#fb-about-what .fb-h2{ margin:0 0 28px; }
#fb-about-what .fb-footnote{ margin-top:28px; }

/* 3-column responsive grid */
#fb-about-what-grid{
  display:grid;
  gap:28px;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  justify-items:center;
}
@media (max-width:880px){
  #fb-about-what-grid{ gap:24px; }
}

/* pillar title + copy (local only) */
#fb-about-what [role="listitem"] strong{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font:700 18px/1.3 ui-sans-serif,system-ui;
}
#fb-about-what [role="listitem"] p{
  margin:0;
  color:var(--copy);
  font:400 15px/1.68 ui-sans-serif,system-ui;
}
/* ===== ABOUT: Mission & Values (scoped to #fb-mission) ===== */
#fb-mission{
  max-width:900px;
  margin:48px auto 72px;
  padding:0 var(--pad);
}
#fb-mission .fb-m-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:22px;
  padding:24px;
  box-shadow:0 20px 56px rgba(16,34,62,.10);
}
#fb-mission .fb-m-card:focus-visible{
  outline:2px solid var(--navy);
  outline-offset:3px;
}
#fb-mission .fb-m-title{
  margin:0 0 12px;
  color:var(--ink);
  font:800 clamp(18px,2.6vw,22px)/1.25 ui-sans-serif,system-ui;
  letter-spacing:-.2px;
}
#fb-mission .fb-m-lead{
  margin:0 0 20px;
  color:var(--copy);
  font:400 15.5px/1.7 ui-sans-serif,system-ui;
}

/* grid */
#fb-mission .fb-m-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
#fb-mission .fb-m-val{ min-width:0; }
#fb-mission .fb-m-val h3{
  display:flex; align-items:center; gap:10px;
  margin:0 0 6px;
  color:var(--ink);
  font:800 clamp(15px,2.2vw,18px)/1.2 ui-sans-serif,system-ui;
  letter-spacing:-.2px;
}
#fb-mission .fb-m-val p{
  margin:0;
  color:var(--copy);
  font:400 15px/1.65 ui-sans-serif,system-ui;
}

/* chip (icon pill) */
#fb-mission .fb-m-chip{
  display:inline-grid; place-items:center;
  width:28px; height:28px; flex:0 0 28px;
  border-radius:999px; background:var(--navy);
  transition: filter .18s ease;
}
#fb-mission .fb-m-chip:hover{ filter:brightness(1.06); }
@media (prefers-reduced-motion: reduce){
  #fb-mission .fb-m-chip{ transition:none; }
}

/* responsive tweaks (match original JS behaviour) */
@media (max-width:1120px){
  #fb-mission .fb-m-grid{ gap:20px; grid-template-columns:1fr 1fr; }
  #fb-mission .fb-m-card{ padding:22px; border-radius:22px; }
}
@media (max-width:880px){
  #fb-mission .fb-m-grid{ grid-template-columns:1fr; gap:16px; }
  #fb-mission .fb-m-card{ padding:20px; border-radius:20px; }
}
/* ===== ABOUT: Team & culture (scoped to #fb-team-about) ===== */
#fb-team-about .fb-section-grid{
  /* desktop: wide left / narrow right */
  grid-template-columns: 720fr 420fr;
  gap: 20px;
}

#fb-team-about .fb-cards-2{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

#fb-team-about aside{
  /* align culture card to the bottom on desktop */
  align-self: end;
}

/* put the role on its own line inside these cards (scoped) */
#fb-team-about article strong + .fb-eyebrow{
  display: block;
  margin-top: 4px;
}

/* tablet */
@media (max-width:1120px){
  #fb-team-about aside{ align-self: start; }
}

/* >>> mobile: force 1 column for the section and the people grid <<< */
@media (max-width:900px){
  #fb-team-about .fb-section-grid{ grid-template-columns: 1fr; }
  #fb-team-about .fb-cards-2{ grid-template-columns: 1fr; }
}
/* ===== SERVICES (reuses global card + modal system) ===== */

#fb-services .fb-svc-card{
  display:flex; gap:12px; align-items:flex-start; text-decoration:none;
  min-height:112px;
}

#fb-services .fb-svc-icon{
  flex:0 0 44px; height:44px;
  display:inline-grid; place-items:center;
  border-radius:12px;
  background:var(--sky);
  border:1px solid var(--border);
  color:var(--navy);
}

#fb-services .fb-svc-title{
  margin:0 0 6px;
  color:var(--ink);
  font:800 18px/1.25 ui-sans-serif,system-ui;
}
#fb-services .fb-svc-desc{
  margin:0;
  color:var(--copy);
  font:400 15px/1.6 ui-sans-serif,system-ui;
}
#fb-services .fb-svc-body .fb-link-secondary{ display:inline-block; margin-top:8px; }

/* --- SERVICES modal — same look as other modals --- */
#fb-svc-modal[aria-hidden="true"]{ display:none; }
#fb-svc-modal{
  position:fixed !important; inset:0 !important; z-index:2147483647;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(20px,6vh,60px) 16px; contain:layout paint style; isolation:isolate;
}
#fb-svc-modal .fb-pd-scrim{
  position:absolute; inset:0; background:rgba(11,18,32,.46);
  backdrop-filter:saturate(120%) blur(3px); -webkit-backdrop-filter:saturate(120%) blur(3px);
  z-index:1; opacity:.001; transition:opacity .22s ease;
}
#fb-svc-modal[aria-hidden="false"] .fb-pd-scrim{ opacity:1; }
#fb-svc-modal .fb-pd-dialog{
  position:relative; z-index:2; max-width:980px; width:min(96vw,980px);
  max-height:calc(100vh - clamp(40px,12vh,120px)); overflow:auto;
  background:#fff; border:1px solid var(--border); border-radius:22px;
  box-shadow:0 22px 56px rgba(16,34,62,.22);
  padding:clamp(18px,2.4vw,26px) clamp(18px,2.6vw,28px) clamp(16px,2.2vw,24px);
  opacity:.001; transform:translateY(8px);
  transition:opacity .22s ease, transform .22s ease, box-shadow .35s ease;
}
#fb-svc-modal[aria-hidden="false"] .fb-pd-dialog{ opacity:1; transform:none; }
#fb-svc-modal .fb-modal-title{
  margin:2px 0 10px; color:var(--ink);
  font:800 clamp(22px,2.4vw,28px)/1.25 ui-sans-serif,system-ui;
}
#fb-svc-modal .fb-modal-intro{
  margin:0 0 14px; color:var(--copy);
  font:600 14px/1.65 ui-sans-serif,system-ui;
}
#fb-svc-modal #fb-svc-body h4{
  margin:10px 0 6px; color:var(--ink);
  font:800 16px/1.25 ui-sans-serif,system-ui;
}
#fb-svc-modal #fb-svc-body ul{
  margin:0 0 12px 18px; padding:0; color:var(--copy); font:400 15px/1.7 ui-sans-serif,system-ui;
}
#fb-svc-modal #fb-svc-body .proof{ margin:6px 0 0; color:var(--copy); font:600 14px/1.6 ui-sans-serif,system-ui; }
#fb-svc-modal .fb-modal-sep{ border:0; height:1px; background:var(--border); margin:6px 0 14px; }
#fb-svc-modal .fb-modal-actions{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:12px; }
#fb-svc-modal .fb-modal-close{
  all:unset !important; position:absolute !important; top:12px !important; right:12px !important;
  z-index:3 !important; color:var(--ink) !important; font:700 20px/1 ui-sans-serif,system-ui !important; cursor:pointer !important;
}
@media (max-width:900px), (max-height:720px){
  #fb-svc-modal{ align-items:flex-start; }
  #fb-svc-modal .fb-pd-dialog{ padding:18px 16px 16px; border-radius:20px; }
}
@media (prefers-reduced-motion: reduce){
  #fb-svc-modal .fb-pd-dialog, #fb-svc-modal .fb-pd-scrim{ transition:none !important; transform:none !important; opacity:1 !important; }
}
/* Process cards: use 16px titles (not the 18px service size) */
#fb-process-v2 .fb-proc-step .fb-svc-title{
  font:800 16px/1.25 ui-sans-serif,system-ui !important;
  margin:0 0 6px;
}
/* Process modal — fix title font to match global modal headings */
#fb-process-modal .fb-modal-title{
  margin:2px 0 10px;
  color:var(--ink);
  font:800 clamp(22px,2.4vw,28px)/1.25 ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Inter,Arial,sans-serif;
  letter-spacing:-.2px;
}
/* PROCESS MODAL — top-most + iOS stacking-context fix */
#fb-process-modal{
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483647 !important;
  contain: layout paint style !important;
  isolation: isolate !important;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}
#fb-process-modal[aria-hidden="false"]{
  display: flex !important;
}
#fb-process-modal > [role="document"]{
  position: relative;
  z-index: 1;
}
/* ===== IMPLEMENTATION — 30/60/90 outcomes ===== */
#fb-3090 .fb-3090-head{
  display:flex; align-items:center; gap:10px; margin-bottom:6px;
}
#fb-3090 .fb-3090-badge{
  width:28px; height:28px; border-radius:999px;
  display:grid; place-items:center;
  background:var(--navy); color:#fff;
  font:800 12px/1 ui-sans-serif,system-ui;
}
#fb-3090 .fb-3090-title{
  color:var(--ink); font:700 16px/1.2 ui-sans-serif,system-ui;
}
#fb-3090 .fb-3090-list{
  margin:0; padding:0 0 0 18px;
  color:var(--copy); font:400 15px/1.65 ui-sans-serif,system-ui;
}

/* cards & grid inherit: .fb-section, .fb-cards-3, .fb-card (hover, border, radius, shadow) */
/* ===== Global FAQ (details/summary) ===== */
.fb-faq-list{ display:flex; flex-direction:column; gap:12px; }

.fb-faq{
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:var(--sh1);
  overflow:hidden;
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.fb-faq:hover,
.fb-faq:focus-within{
  background:var(--sky);
  border-color:var(--border-strong);
}

.fb-faq > summary{
  display:flex; align-items:center; gap:12px;
  padding:14px 16px;
  cursor:pointer; list-style:none; outline:none;
  color:var(--ink);
  font:700 16px/1.2 ui-sans-serif,system-ui;
}
.fb-faq > summary::-webkit-details-marker{ display:none; }

/* plus/minus */
.fb-faq > summary::after{
  content:"+";
  margin-left:auto;
  color:var(--muted);
  font-weight:800;
  line-height:1;
}
.fb-faq[open] > summary::after{ content:"–"; }

/* focus ring on keyboard */
.fb-faq > summary:focus-visible{
  outline:2px solid var(--navy);
  outline-offset:3px;
  border-radius:8px;
}

/* answer body */
.fb-faq-panel{ padding:0 16px 14px; color:var(--copy); }
.fb-faq-panel p{ margin:8px 0 0; font:400 15px/1.7 ui-sans-serif,system-ui; }

/* Optional: center the section heading if desired */
/* #fb-faq > header { text-align:center; } */
/* ===== HALO page helpers (global-safe) ===== */

/* Steps: number badge */
.fb-num{
  display:inline-grid; place-items:center;
  width:28px; height:28px; flex:0 0 28px;
  border-radius:999px; background:var(--navy); color:#fff;
  font:800 13px/1 ui-sans-serif,system-ui;
}

/* Make the whole step tile clickable (fb-card is the visual) */
.fb-step{
  cursor:pointer; text-align:left;
}
.fb-step strong{ font:800 16px/1.25 ui-sans-serif,system-ui; }

/* Proof rows: quiet link-cards with left accent */
.fb-rows{ display:grid; gap:12px; }
.fb-row{
  display:block; text-decoration:none;
  border-left-width:4px; border-left-color:var(--navy);
}
.fb-row > strong{ display:block; color:var(--ink); font:700 16.5px/1.3 ui-sans-serif,system-ui; margin:0 0 4px; }
.fb-row .fb-quiet-cta{ display:inline-flex; gap:6px; font:800 14px/1 ui-sans-serif,system-ui; color:var(--navy); }
.fb-row:hover .fb-quiet-cta{ color:#0E91E4; }

/* Reuse global modal look for the Halo process modal */
#fb-halo-proc-modal[aria-hidden="true"]{ display:none; }
#fb-halo-proc-modal{
  position:fixed !important; inset:0 !important; z-index:2147483647;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(20px,6vh,60px) 16px; contain:layout paint style; isolation:isolate;
}
#fb-halo-proc-modal .fb-pd-scrim{
  position:absolute; inset:0; background:rgba(11,18,32,.46);
  backdrop-filter:saturate(120%) blur(3px); -webkit-backdrop-filter:saturate(120%) blur(3px);
  z-index:1; opacity:.001; transition:opacity .22s ease;
}
#fb-halo-proc-modal[aria-hidden="false"] .fb-pd-scrim{ opacity:1; }
#fb-halo-proc-modal .fb-pd-dialog{
  position:relative; z-index:2; max-width:980px; width:min(96vw,980px);
  max-height:calc(100vh - clamp(40px,12vh,120px)); overflow:auto;
  background:#fff; border:1px solid var(--border); border-radius:22px;
  box-shadow:0 22px 56px rgba(16,34,62,.22);
  padding:clamp(18px,2.4vw,26px) clamp(18px,2.6vw,28px) clamp(16px,2.2vw,24px);
  opacity:.001; transform:translateY(8px);
  transition:opacity .22s ease, transform .22s ease, box-shadow .35s ease;
}
#fb-halo-proc-modal[aria-hidden="false"] .fb-pd-dialog{ opacity:1; transform:none; }
#fb-halo-proc-modal .fb-modal-sep{ border:0; height:1px; background:var(--border); margin:6px 0 14px; }
#fb-halo-proc-modal .fb-modal-grid{
  display:grid; gap:18px; grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr); align-items:start;
}
#fb-halo-proc-modal .fb-modal-aside-card{
  background:var(--sky); border:1px solid var(--border); border-radius:14px; padding:12px;
}
#fb-halo-proc-modal .fb-modal-actions{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:12px; }
#fb-halo-proc-modal .fb-modal-close{
  all:unset !important; position:absolute !important; top:12px !important; right:12px !important;
  z-index:3 !important; color:var(--ink) !important; font:700 20px/1 ui-sans-serif,system-ui !important; cursor:pointer !important;
}
@media (max-width:900px){
  #fb-halo-proc-modal .fb-modal-grid{ grid-template-columns:1fr; gap:14px; }
}
@media (prefers-reduced-motion: reduce){
  #fb-halo-proc-modal .fb-pd-dialog, #fb-halo-proc-modal .fb-pd-scrim{ transition:none !important; transform:none !important; opacity:1 !important; }
}
/* HALO process modal — title font lock (match other modals) */
#fb-halo-proc-modal .modal-title,
#fb-halo-proc-modal .fb-modal-title{
  margin:2px 0 10px;
  color:var(--ink);
  font:800 clamp(22px,2.4vw,28px)/1.25 ui-sans-serif,system-ui;
  letter-spacing:-.2px;
}
/* HALO + your stack — local layout polish */
#fb-halo-stack #fb-halo-stack-cards{
  display:grid;
  gap:16px;
  grid-template-columns:repeat(2,minmax(260px,1fr));
  align-items:stretch;
}
@media (max-width:900px){
  #fb-halo-stack #fb-halo-stack-cards{ grid-template-columns:1fr; }
}

/* Optional: a touch more breathing room in these two cards only */
#fb-halo-stack #fb-halo-stack-cards .fb-card{ padding:18px; }
/* Let the whole summary be the click target */
#fb-process .step > summary .toggle{ pointer-events:none; user-select:none; }
/* Rhythm: space AFTER card grids when followed by CTA row */
.fb-four + .fb-hero-actions,
.fb-cards-3 + .fb-hero-actions{
  margin-top: 18px;
}

/* (Optional) if a single .fb-card is followed by CTAs anywhere */
.fb-card + .fb-hero-actions{ margin-top: 14px; }
/* Brand-consistent tertiary heading */
.fb-h3{
  margin:12px 0 6px;
  color:var(--ink);
  font:800 18px/1.25 ui-sans-serif,system-ui;
  letter-spacing:-.2px;
}
/* Utility: center a block’s text/content */
.fb-center{ text-align:center; }

/* Brand pill (prevents logo stretch) */
.fb-chip-brand{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 12px; margin-top:22px;
  background:#fff; border:1px solid var(--border);
  border-radius:999px; box-shadow:0 8px 20px rgba(16,34,62,.06);
}
.fb-chip-brand img{
  height:18px; width:auto; display:block; object-fit:contain;
}
.fb-chip-brand > span{
  font:800 12px/1 ui-sans-serif,system-ui;
  color:var(--muted); letter-spacing:.02em; text-transform:uppercase;
}
/* Pillars: move the vertical rail into the gutter (off the number badge) */
#fb-nurture-pillars .fb-pillar-rail{
  --col: 32px; /* badge column width */
  --gap: 12px; /* space between badge and copy */
  position: relative;
}
#fb-nurture-pillars .fb-pillar-rail::before{
  left: calc(var(--col) + var(--gap)); /* 44px by default */
}
#fb-nurture-pillars .fb-pillar-step{
  display: grid;
  grid-template-columns: var(--col) 1fr;
  gap: var(--gap);
}
#fb-nurture-pillars .fb-num{ position:relative; z-index:1; }
/* =========================================================
   FLOWBIRD — HubSpot Forms Addendum (scoped, CSS-only)
   Targets HubSpot CMS Form module markup: .hs-form, .hs-form-field, .hs-input, .hs-button, etc.
   Safe to reuse across pages. No layout side-effects outside forms.
   ========================================================= */

/* Scope everything to real HubSpot forms (and optional .fb-form wrapper if you set it in the module). */
.hs-form,
.fb-form{ font-family: ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Inter,Arial,sans-serif; }

/* ---- Form shell & rhythm -------------------------------------------------- */
.hs-form{ --fb-field-gap: 12px; --fb-field-radius: 14px; --fb-field-pad: 12px 14px; }
.hs-form fieldset{ margin:0; padding:0; border:0; }
.hs-form .hs-form-field{ margin: 0 0 var(--fb-field-gap); }

/* Labels */
.hs-form .hs-form-field label,
.hs-form .hs-form-field .hs-form-field__label{ 
  display:block;
  margin: 0 0 6px;
  color: var(--muted);
  font: 600 13px/1.15 ui-sans-serif,system-ui;
  letter-spacing:.01em;
}

/* Help text / description (HubSpot uses .hs-field-desc or .hs-richtext within field) */
.hs-form .hs-field-desc,
.hs-form .hs-form-field .hs-richtext{
  margin: 6px 0 0;
  color: var(--muted);
  font: 400 13px/1.5 ui-sans-serif,system-ui;
}

/* ---- Inputs (text, email, select, textarea, date) ------------------------- */
.hs-form .hs-input,
.hs-form input[type="text"],
.hs-form input[type="email"],
.hs-form input[type="tel"],
.hs-form input[type="url"],
.hs-form input[type="number"],
.hs-form input[type="search"],
.hs-form input[type="password"],
.hs-form input[type="date"],
.hs-form select,
.hs-form textarea{
  width:100%;
  max-width:100%;
  padding: var(--fb-field-pad);
  border: 1px solid var(--border);
  border-radius: var(--fb-field-radius);
  background:#fff;
  color: var(--ink);
  font: 400 15px/1.5 ui-sans-serif,system-ui;
  box-shadow: var(--sh1);
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease, filter .15s ease;
  appearance: none;
}

.hs-form textarea{ min-height: 120px; resize: vertical; }

/* Placeholder */
.hs-form ::placeholder{ color: #9aa6bf; opacity:1; }

/* Focus ring (brand) */
.hs-form .hs-input:focus,
.hs-form input:focus,
.hs-form select:focus,
.hs-form textarea:focus{
  outline: 2px solid var(--navy);
  outline-offset: 2px;
  border-color: var(--border-strong);
  box-shadow: 0 12px 28px rgba(16,34,62,.14);
}

/* Disabled */
.hs-form .hs-input:disabled,
.hs-form select:disabled,
.hs-form textarea:disabled{
  background:#F7FAFF;
  cursor:not-allowed;
  opacity:.9;
}

/* Select caret (subtle, no extra markup) */
.hs-form select{
  background-image:
    linear-gradient(45deg, transparent 50%, var(--muted) 50%),
    linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) calc(50% - 3px),
    calc(100% - 12px) calc(50% - 3px);
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
  padding-right: 36px;
}

/* Date picker icon visibility */
.hs-form input[type="date"]::-webkit-calendar-picker-indicator{ filter: opacity(.7); }

/* ---- Two-column rows → brand grid, mobile stacks -------------------------- */
.hs-form fieldset.form-columns-2{
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: var(--fb-field-gap);
}
@media (max-width: 680px){
  .hs-form fieldset.form-columns-2{ grid-template-columns:1fr; }
}

/* Ensure inner wrappers don’t fight the grid */
.hs-form fieldset.form-columns-2 .hs-form-field{ width:100% !important; margin:0; }

/* ---- Radios & checkboxes --------------------------------------------------- */
.hs-form .inputs-list{ list-style:none; margin:0; padding:0; }
.hs-form .inputs-list > li{ margin: 0 0 8px; }

.hs-form input[type="checkbox"],
.hs-form input[type="radio"]{
  width:18px; height:18px; margin:0 8px 0 0; vertical-align:-3px;
  accent-color: var(--navy); /* modern browsers */
  cursor:pointer;
}
.hs-form .inputs-list label{
  display:inline-flex; align-items:center; gap:8px;
  color: var(--copy); font: 400 15px/1.4 ui-sans-serif,system-ui;
  cursor:pointer;
}

/* GDPR / consent block */
.hs-form .legal-consent-container{ 
  margin-top: 8px; padding: 10px 12px; 
  background: var(--sky); border:1px solid var(--border); border-radius: 12px;
}
.hs-form .legal-consent-container .hs-richtext{ margin:0; }

/* ---- Errors & validation --------------------------------------------------- */
.hs-form .hs-error-msgs,
.hs-form .hs-error-msg{ 
  margin:6px 0 0; padding:0; list-style:none;
  color:#b42318; font:600 13px/1.4 ui-sans-serif,system-ui;
}
.hs-form .hs-input.error,
.hs-form .invalid input,
.hs-form select.error,
.hs-form textarea.error{
  border-color:#ef4444 !important;
  background:#fff7f7;
}

/* ---- Submit actions / button ---------------------------------------------- */
.hs-form .actions{ margin-top: 14px; }
.hs-form .hs-button,
.hs-form input[type="submit"]{
  /* mirror .fb-btn-main */
  display:inline-flex; align-items:center; justify-content:center;
  padding:14px 22px;
  border-radius:999px;
  background:var(--navy);
  color:#fff; text-decoration:none; font-weight:800; line-height:1.1;
  border:1px solid var(--navy);
  box-shadow:0 8px 20px rgba(11,58,134,.22);
  cursor:pointer;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease, background-color .18s ease;
}
.hs-form .hs-button:hover,
.hs-form .hs-button:focus-visible,
.hs-form input[type="submit"]:hover,
.hs-form input[type="submit"]:focus-visible{
  color:#fff;
  filter:brightness(.98);
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(16,34,62,.18);
  outline: none; /* focus handled via visual changes above */
}

/* Make a secondary style available via module “CSS class” (optional) */
.fb-form--secondary .hs-button{
  background:#fff; color:var(--navy); border-color:var(--navy);
}

/* ---- Success message (after submit) --------------------------------------- */
.hs-form .submitted-message{
  margin: 10px 0 0;
  padding: 12px 14px;
  background:#F0F7FF;
  border:1px solid var(--border);
  border-radius:14px;
  color:var(--ink); 
  font:600 14px/1.5 ui-sans-serif,system-ui;
}

/* ---- Compact variant (optional wrapper) ----------------------------------- */
.fb-form--compact{ --fb-field-gap:10px; --fb-field-radius:12px; }
.fb-form--compact .hs-form .hs-button{ padding:12px 18px; }

/* ---- Respect reduced motion ------------------------------------------------ */
@media (prefers-reduced-motion: reduce){
  .hs-form .hs-button{ transition:none !important; transform:none !important; box-shadow:0 8px 20px rgba(11,58,134,.22) !important; }
  .hs-form .hs-input,
  .hs-form select,
  .hs-form textarea{ transition:none !important; }
}
/* =========================================================
   FLOWBIRD — HubSpot Form wrapper reset (kills blue panels)
   Add this AFTER the previous addendum
   ========================================================= */

/* If you add class "fb-form" on the Form module, this will only touch that block */
.fb-form,
.widget-type-form { isolation:isolate; } /* contain theme bleed */

/* 1) Nuke theme/module panel backgrounds around the form */
.fb-form,
.fb-form .widget-container,
.fb-form .form-container,
.widget-type-form,
.widget-type-form .widget-container,
.widget-type-form .form-container,
.hs-form-outer{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Optional: give the form a subtle, on-brand surface if desired
.fb-form{ background:#fff; border:1px solid var(--border); border-radius:22px; box-shadow:var(--sh1); padding:18px; }
*/

/* 2) Reinforce inputs just in case theme uses !important */
.fb-form .hs-input,
.widget-type-form .hs-input{
  border:1px solid var(--border) !important;
  background:#fff !important;
  border-radius:14px !important;
  box-shadow:var(--sh1) !important;
  padding:12px 14px !important;
  font:400 15px/1.5 ui-sans-serif,system-ui !important;
  color:var(--ink) !important;
}
.fb-form .hs-input:focus,
.widget-type-form .hs-input:focus{
  outline:2px solid var(--navy) !important;
  outline-offset:2px !important;
  border-color:var(--border-strong) !important;
  box-shadow:0 12px 28px rgba(16,34,62,.18) !important;
}

/* 3) Make the grid columns reliable on HubSpot’s two-column fieldsets */
.fb-form fieldset.form-columns-2,
.widget-type-form fieldset.form-columns-2{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:12px !important;
}
@media (max-width:680px){
  .fb-form fieldset.form-columns-2,
  .widget-type-form fieldset.form-columns-2{ grid-template-columns:1fr !important; }
}

/* 4) Button: override gradients/odd shadows from themes */
.fb-form .hs-button,
.widget-type-form .hs-button,
.fb-form input[type="submit"],
.widget-type-form input[type="submit"]{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  padding:14px 22px !important;
  border-radius:999px !important;
  background:var(--navy) !important;
  color:#fff !important;
  border:1px solid var(--navy) !important;
  box-shadow:0 8px 20px rgba(11,58,134,.22) !important;
  text-decoration:none !important; font-weight:800 !important; line-height:1.1 !important;
  filter:none !important; transform:none !important;
  background-image:none !important; /* kill theme gradients */
}
.fb-form .hs-button:hover,
.widget-type-form .hs-button:hover,
.fb-form .hs-button:focus-visible,
.widget-type-form .hs-button:focus-visible,
.fb-form input[type="submit"]:hover,
.widget-type-form input[type="submit"]:hover,
.fb-form input[type="submit"]:focus-visible,
.widget-type-form input[type="submit"]:focus-visible{
  filter:brightness(.98) !important;
  transform:translateY(-1px) !important;
  box-shadow:0 12px 28px rgba(16,34,62,.18) !important;
  outline:none !important;
}

/* 5) Clear any theme padding that makes the panel look “pill” shaped */
.widget-type-form .widget-container,
.widget-type-form .form-container{ padding:0 !important; }

/* 6) Safety: respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .fb-form .hs-button,
  .widget-type-form .hs-button{ transition:none !important; transform:none !important; }
}
/* =========================================================
   FLOWBIRD — HubSpot Form wrapper neutralizer (kills blue panels)
   Scope by adding `fb-form-wrap` to the SECTION that contains the form.
   ========================================================= */

/* Nuke any section/row/column/module wrapper backgrounds/padding */
.fb-form-wrap,
.fb-form-wrap :is(.dnd-section, .dnd-row, .dnd-column, .module, .widget-container, .form-container, .hs-form-outer){
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.fb-form-wrap :is(.widget-container, .form-container){ padding:0 !important; }

/* Keep the actual form looking on-brand (pairs with earlier addendum) */
.fb-form-wrap .hs-input{
  border:1px solid var(--border) !important;
  background:#fff !important;
  border-radius:14px !important;
  box-shadow:var(--sh1) !important;
  padding:12px 14px !important;
  font:400 15px/1.5 ui-sans-serif,system-ui !important;
  color:var(--ink) !important;
}
.fb-form-wrap .hs-input:focus{
  outline:2px solid var(--navy) !important;
  outline-offset:2px !important;
  border-color:var(--border-strong) !important;
  box-shadow:0 12px 28px rgba(16,34,62,.18) !important;
}

/* Button — override theme gradients/shadows */
.fb-form-wrap :is(.hs-button, input[type="submit"]){
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  padding:14px 22px !important;
  border-radius:999px !important;
  background:var(--navy) !important;
  color:#fff !important;
  border:1px solid var(--navy) !important;
  box-shadow:0 8px 20px rgba(11,58,134,.22) !important;
  font-weight:800 !important; line-height:1.1 !important;
  text-decoration:none !important;
  background-image:none !important; /* kill gradients */
}
.fb-form-wrap :is(.hs-button, input[type="submit"]):hover,
.fb-form-wrap :is(.hs-button, input[type="submit"]):focus-visible{
  filter:brightness(.98) !important;
  transform:translateY(-1px) !important;
  box-shadow:0 12px 28px rgba(16,34,62,.18) !important;
  outline:none !important;
}

/* Two-column fieldsets align nicely */
.fb-form-wrap fieldset.form-columns-2{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:12px !important;
}
@media (max-width:680px){
  .fb-form-wrap fieldset.form-columns-2{ grid-template-columns:1fr !important; }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .fb-form-wrap :is(.hs-button, input[type="submit"]){ transition:none !important; transform:none !important; }
}
/* =========================================================
   FLOWBIRD — HubSpot Form hard reset (kills theme panels)
   Target the standard HubSpot wrappers: .widget-type-form/.hbspt-form
   ========================================================= */

/* 1) Nuke wrapper panels, shadows, gradients, and big radii */
.widget-type-form,
.widget-type-form :is(.hs-form-outer, .form-container, .form-columns-1, .form-columns-2, .form-columns-3,
                      .hs-form, form, fieldset, legend, .field, .inputs-list, .actions, .submitted-message),
.hbspt-form,
.hbspt-form :is(form, fieldset, legend){
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  border-radius: 0 !important;
}

/* Kill decorative pseudo-elements some themes use for colored slabs */
.widget-type-form::before,
.widget-type-form::after,
.widget-type-form *::before,
.widget-type-form *::after{
  background: transparent !important;
  box-shadow: none !important;
}

/* If a wrapper has inline background styles, blank them (but not on inputs) */
.widget-type-form *[style*="background"]:not(input):not(select):not(textarea){
  background: transparent !important;
}

/* 2) Flowbird input look (white field, soft shadow, brand focus) */
.widget-type-form .hs-input,
.hbspt-form .hs-input,
.widget-type-form input:not([type="submit"]),
.widget-type-form select,
.widget-type-form textarea,
.hbspt-form input:not([type="submit"]),
.hbspt-form select,
.hbspt-form textarea{
  background:#fff !important;
  border:1px solid var(--border) !important;
  border-radius:14px !important;
  box-shadow:var(--sh1) !important;
  padding:12px 14px !important;
  color:var(--ink) !important;
  font:400 15px/1.5 ui-sans-serif,system-ui !important;
}
.widget-type-form .hs-input:focus,
.hbspt-form .hs-input:focus,
.widget-type-form :is(input,select,textarea):focus,
.hbspt-form :is(input,select,textarea):focus{
  outline:2px solid var(--border-strong) !important;
  outline-offset:2px !important;
  border-color:var(--navy) !important;
  box-shadow:0 12px 28px rgba(16,34,62,.18) !important;
}

/* 3) Button: match .fb-btn-main */
.widget-type-form :is(.hs-button, input[type="submit"]),
.hbspt-form :is(.hs-button, input[type="submit"]){
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  padding:14px 22px !important;
  border-radius:999px !important;
  background:var(--navy) !important; color:#fff !important;
  border:1px solid var(--navy) !important;
  box-shadow:0 8px 20px rgba(11,58,134,.22) !important;
  font-weight:800 !important; line-height:1.1 !important;
  text-decoration:none !important; background-image:none !important;
}
.widget-type-form :is(.hs-button, input[type="submit"]):hover,
.widget-type-form :is(.hs-button, input[type="submit"]):focus-visible,
.hbspt-form :is(.hs-button, input[type="submit"]):hover,
.hbspt-form :is(.hs-button, input[type="submit"]):focus-visible{
  filter:brightness(.98) !important;
  transform:translateY(-1px) !important;
  box-shadow:0 12px 28px rgba(16,34,62,.18) !important;
  outline:none !important;
}

/* 4) Two-column fields behave like our grids */
.widget-type-form fieldset.form-columns-2{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:12px !important; }
@media (max-width:680px){ .widget-type-form fieldset.form-columns-2{ grid-template-columns:1fr !important; } }

/* 5) Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .widget-type-form :is(.hs-button, input[type="submit"]){ transition:none !important; transform:none !important; }
}
/* Reuse a single media class for img/video in the hero figure */
.fb-figure .fb-media {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;          /* matches how a full-bleed image would render */
  border-radius: var(--fb-radius-xl, 24px);
  box-shadow: var(--fb-shadow-lg, 0 10px 25px rgba(16, 24, 40, 0.1));
}

/* Default: show video, hide fallback image */
.fb-figure .fb-media-fallback { display: none; }

/* Respect reduced motion: hide video, show image */
@media (prefers-reduced-motion: reduce) {
  .fb-figure video.fb-media { display: none; }
  .fb-figure .fb-media-fallback { display: block; }
}

/* If your .fb-figure had a fixed aspect ratio via CSS, keep it.
   If not, you can enforce it here to ensure identical layout: */
.fb-figure {
  position: relative;
  /* Optional, if your design uses a fixed shape container: */
  /* aspect-ratio: 4 / 3; */
  overflow: hidden;           /* ensures rounded corners clip video */
}
/* Trim header→first-section gap (works whether the header has padding or not) */
main > :is(.fb-hero, .fb-section):first-child,
body > :is(.fb-hero, .fb-section):first-child{
  margin-top: clamp(12px, 1.8vh, 20px) !important;   /* tune if you like */
}
/* Tighten the first content block under the site header */
@media (max-width: 900px){
  :where(header,[role="banner"]) + :is(.fb-hero,.fb-section),
  :where(header,[role="banner"]) + :where(main,.content-wrapper,.dnd-section,.dnd-row,.dnd-column) > :is(.fb-hero,.fb-section):first-child{
    margin-top: 12px !important;   /* was 48px */
  }
}
@media (min-width: 901px){
  :where(header,[role="banner"]) + :is(.fb-hero,.fb-section),
  :where(header,[role="banner"]) + :where(main,.content-wrapper,.dnd-section,.dnd-row,.dnd-column) > :is(.fb-hero,.fb-section):first-child{
    margin-top: 20px !important;   /* was 48/56px */
  }
}
/* Nuke the accent stripe in the sales accordion */
#fb-sales .accentable::before,
#fb-sales .accentable::after{
  content:none !important;
  display:none !important;
}

  color:var(--navy) !important; font-weight:800 !important; text-decoration:none !important;
  transition:color .18s ease, transform .18s ease !important;
}
.dnd-section .widget-type-blog_recent_posts .hs-recent-posts__read-more:hover{
  color:#2d74ff !important; transform:translateY(-1px) !important;
}

/* Pagination (if present) */
.dnd-section .widget-type-blog_recent_posts .hs-recent-posts__pagination{
  margin:18px 0 0 !important; display:flex !important; gap:8px !important; flex-wrap:wrap !important; justify-content:center !important;
}
.dnd-section .widget-type-blog_recent_posts .hs-recent-posts__pagination a,
.dnd-section .widget-type-blog_recent_posts .hs-recent-posts__pagination span{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  min-width:36px !important; height:36px !important; padding:0 12px !important; border-radius:999px !important;
  border:1px solid var(--border) !important; background:#fff !important; color:var(--ink) !important;
  text-decoration:none !important; font:700 13px/1 ui-sans-serif,system-ui !important;
}
.dnd-section .widget-type-blog_recent_posts .hs-recent-posts__pagination a:hover{
  border-color:var(--border-strong) !important; background:#FBFDFF !important;
}
.dnd-section .widget-type-blog_recent_posts .hs-recent-posts__pagination .is-active,
.dnd-section .widget-type-blog_recent_posts .hs-recent-posts__pagination .current{
  border-color:var(--navy) !important; background:var(--navy) !important; color:#fff !important;
}