/* ============================================================
   STA001 D2 "The Rails" — build CSS.
   Part 1: band/component classes used by the imported BB layouts
   (ported verbatim from the approved mockup generator).
   Part 2: theme chrome restyle (topbar / header / nav / footer).
   ============================================================ */

/* ---------- Part 1: band system ---------- */
.fl-builder .fl-page-content, .fl-page-content { background: #0E1A26; }
.fl-builder-content a:hover { color: #96C93D; }
/* mockup color model: dark bands inherit paper, paper bands carry inline ink.
   The theme's global heading color must not override inheritance. */
.fl-builder-content { color: #F4F3EE; }
.fl-builder-content h1, .fl-builder-content h2, .fl-builder-content h3 { color: inherit; }
.fl-builder-content .eyebrow { color: #96C93D; }

/* row padding now comes from BB row fields (was: padding 0 reset) */

.gut { padding-left: clamp(28px, 8.34vw, 120px); padding-right: clamp(28px, 8.34vw, 120px); }
.band { position: relative; }
.eyebrow { display: flex; align-items: center; gap: 10px; font-family: 'IBM Plex Mono', monospace; font-size: 13px; letter-spacing: 0.22em; color: #96C93D; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 0; height: 0; border-left: 9px solid #96C93D; border-bottom: 9px solid transparent; }
.fl-builder-content h1, .sta-h1 { font-weight: 800; font-size: clamp(44px, 5.6vw, 76px); line-height: 1.02; letter-spacing: -0.015em; margin: 0; }
.fl-builder-content h2 { font-weight: 800; font-size: clamp(28px, 3vw, 40px); line-height: 1.1; letter-spacing: -0.01em; margin: 0; }
.mono { font-family: 'IBM Plex Mono', monospace; }
.prose p { font-size: 18px; line-height: 1.7; margin: 0 0 20px; }
.prose p:last-child { margin-bottom: 0; }
.hero { position: relative; overflow: hidden; background: #0E1A26; padding-top: clamp(64px, 8vw, 110px); padding-bottom: clamp(64px, 8vw, 110px); }
.hero h1 { margin-top: 18px; }
.hero .tris { position: absolute; top: 0; right: 0; width: min(420px, 30vw); height: 100%; pointer-events: none; }
.hero .tris span { position: absolute; }
.doc { font-size: 17px; line-height: 1.78; color: rgba(14,26,38,0.9); max-width: 68ch; }
.doc p { margin: 0 0 18px; }
.fl-builder-content .doc p strong, .fl-builder-content .sta-doc-card strong { color: #0E1A26; font-weight: 800; }
.doc p:has(> strong:only-child) { margin-top: 36px; }
.doc p:has(> strong:only-child) strong { font-size: 17.5px; letter-spacing: -0.005em; }
.doc a { border-bottom: 1px solid rgba(150, 201, 61, 0.6); }
@media (max-width: 880px) {
  .split { grid-template-columns: 1fr !important; }
  .hero .tris { opacity: 0.45; }
  .mosaic { opacity: 0.3; }
}

/* ---------- native hero (homepage) — decoration lives on the ROW so the
   modules inside stay plain editable BB: heading/heading/rich-text/buttons ---------- */
.sta-hero-row { position: relative; overflow: hidden; }
.sta-hero-row .fl-row-content-wrap { position: relative; overflow: hidden; } /* padding → BB row fields */
.sta-hero-row .sta-ff {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(660px, 46%);
  overflow: hidden; opacity: 0.72; pointer-events: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.32) 40%, #000 82%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.32) 40%, #000 82%);
}
.sta-hero-row .fl-row-content-wrap::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(96deg, rgba(14,26,38,0.94) 0%, rgba(14,26,38,0.78) 42%, rgba(14,26,38,0.22) 74%, rgba(14,26,38,0) 100%);
}
.sta-hero-row .fl-row-content-wrap::after {
  content: ""; position: absolute; right: 0; bottom: 0; width: min(300px, 22%); height: 300px;
  background: #59722C; clip-path: polygon(100% 0, 100% 100%, 0 100%); opacity: 0.9; pointer-events: none;
}
.sta-hero-row .fl-module { position: relative; z-index: 2; }
.sta-hero-row .fl-module.sta-ff-module { position: static; z-index: auto; }
.sta-eyebrow-h h6, .sta-eyebrow-h p { display: flex; align-items: center; gap: 12px; margin: 0 !important; font-family: 'IBM Plex Mono', monospace; font-size: 12px; font-weight: 400; letter-spacing: 0.26em; text-transform: uppercase; color: rgba(244,243,238,0.88); }
.sta-eyebrow-h h6::before, .sta-eyebrow-h p::before { content: ""; width: 11px; height: 11px; background: #96C93D; clip-path: polygon(0 0, 100% 0, 100% 100%); }
.sta-hero-h1 h1 { font-size: clamp(46px, 6.9vw, 98px); line-height: 1.04; font-weight: 700; letter-spacing: -0.032em; color: #FFFFFF; text-wrap: balance; }
.sta-hero-h1 .sta-h1-alt { color: #AFC99B; display: block; }
.sta-hero-sub p { max-width: 600px; font-size: 18px; line-height: 1.62; color: rgba(244,243,238,0.88); margin: 0; } /* offset → BB module margin */
/* .sta-hero-btns offset → BB module margin (was also being zeroed below) */
.sta-btn a.fl-button { display: inline-flex !important; white-space: nowrap; align-items: center; height: 56px; padding: 0 clamp(22px, 4vw, 36px); font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0.08em; text-transform: uppercase; border-radius: 0 !important; }
.sta-btn-ghost a.fl-button { background: transparent; border: 1px solid rgba(244,243,238,0.42); color: #F4F3EE; }
.sta-btn-ghost a.fl-button:hover { border-color: #96C93D; background: transparent; }
/* native registration strip — real columns */
.sta-reg-row .fl-row-content-wrap { border-top: 1px solid #96C93D; padding: 0 !important; }
.sta-reg-col .fl-col-content {  border-left: 1px solid rgba(244,243,238,0.16); }
.sta-reg-col-first .fl-col-content { border-left: none; padding-left: clamp(28px, 8.34vw, 120px); }
.sta-reg-col-last .fl-col-content { padding-right: clamp(28px, 8.34vw, 120px); }
.sta-reg-label h6, .sta-reg-label p { display: flex; align-items: center; gap: 9px; margin: 0 0 18px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 400; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(244,243,238,0.66); }
.sta-reg-label h6::before, .sta-reg-label p::before { content: ""; width: 8px; height: 8px; background: #96C93D; clip-path: polygon(0 0, 100% 0, 100% 100%); }
.sta-reg-value h3, .sta-reg-value p { font-size: 23px; font-weight: 600; line-height: 1.25; color: #FFFFFF; margin: 0; }
.sta-reg-value-mono h3, .sta-reg-value-mono p { font-family: 'IBM Plex Mono', monospace; font-size: 26px; font-weight: 500; letter-spacing: 0.01em; color: #FFFFFF; margin: 0; }
@media (max-width: 767.98px) {
  .sta-reg-col .fl-col-content, .sta-reg-col-first .fl-col-content, .sta-reg-col-last .fl-col-content {
    border-left: none; padding: 42px clamp(28px, 8.34vw, 120px) !important; }
  .fl-col.sta-reg-col + .fl-col.sta-reg-col .fl-col-content { border-top: 1px solid rgba(244,243,238,0.16); }
  /* topbar: phone + linkedin stay on one line */
  .fl-page-bar .fl-page-bar-row { flex-wrap: nowrap; }
  body .fl-page .fl-page-bar .text-right .fl-social-icons { margin-left: 24px; }
}

/* ---------- native homepage bands 2-6 ---------- */
.sta-band-paper { color: #0E1A26; }
/* .sta-pad-band padding → BB row fields (per breakpoint) */
.sta-eyebrow-h.sta-eyebrow-ink h6, .sta-eyebrow-h.sta-eyebrow-ink p { color: #445044; font-size: 11px; }
.sta-eyebrow-h.sta-eyebrow-dim h6, .sta-eyebrow-h.sta-eyebrow-dim p { color: rgba(244,243,238,0.7); font-size: 11px; }
.sta-eyebrow-h.sta-eyebrow-dim h6::before, .sta-eyebrow-h.sta-eyebrow-dim p::before, .sta-eyebrow-h.sta-eyebrow-ink h6::before, .sta-eyebrow-h.sta-eyebrow-ink p::before { width: 9px; height: 9px; }
.sta-h2-lg h2 { font-size: clamp(32px, 3.5vw, 50px); line-height: 1.1; font-weight: 700; letter-spacing: -0.024em; color: #FFFFFF; }
.sta-band-paper .sta-h2-lg h2 { font-size: clamp(32px, 3.75vw, 54px); line-height: 1.08; letter-spacing: -0.025em; color: #0E1A26; }
.sta-wwd-p p { font-size: 19px; line-height: 1.66; color: #22292E; margin: 0; }
.sta-hair-sep .fl-separator { border-top: 1px solid rgba(68,80,68,0.28) !important; }
.sta-hair-sep .fl-separator-line { border-top-width: 1px !important; }
/* separator rhythm → BB module margin fields */
/* who-we-serve ledger */
.sta-ledger-cell .fl-col-content { border-top: 1px solid rgba(244,243,238,0.16);  }
.sta-ledger-num h3, .sta-ledger-num p { font-family: 'IBM Plex Mono', monospace; font-size: clamp(56px, 7.5vw, 108px); line-height: 0.82; font-weight: 400; letter-spacing: -0.03em; color: #96C93D; opacity: 0.9; margin: 0; }
.sta-ledger-title h3 { font-size: 25px; font-weight: 600; line-height: 1.24; color: #FFFFFF; margin: 6px 0 0; }
.sta-ledger-desc p { font-size: 18px; line-height: 1.62; color: rgba(244,243,238,0.86); margin: 8px 0 0; }
/* FAQ row V3: flat sage band + ghost triangle motif (texture RETIRED 08-27),
   ink accordion, sticky left column. overflow stays visible so sticky works —
   the motif pseudos clip themselves via clip-path within the row bounds. */
.sta-faq-row { position: relative; isolation: isolate; color: #0E1A26; }
.sta-faq-row::before { content: ""; position: absolute; top: 0; right: 0; width: clamp(320px, 30vw, 560px); aspect-ratio: 1; background: #2E4A38; opacity: 0.05; clip-path: polygon(100% 0, 100% 100%, 0 0); z-index: 0; pointer-events: none; }
.sta-faq-row::after { content: ""; position: absolute; top: 0; right: 0; width: clamp(200px, 19vw, 350px); aspect-ratio: 1; background: #59722C; opacity: 0.05; clip-path: polygon(0 0, 100% 0, 100% 100%); z-index: 0; pointer-events: none; }
.sta-faq-row .fl-row-content-wrap { position: relative; }
.sta-faq-row .fl-row-content-wrap::before { content: ""; position: absolute; bottom: 0; left: 0; width: clamp(240px, 22vw, 420px); aspect-ratio: 1; background: #2E4A38; opacity: 0.04; clip-path: polygon(0 0, 0 100%, 100% 100%); z-index: 0; pointer-events: none; }
.sta-faq-row .fl-row-content-wrap::after { content: ""; position: absolute; bottom: 0; left: 0; width: clamp(140px, 13vw, 240px); aspect-ratio: 1; background: #0E1A26; opacity: 0.03; clip-path: polygon(0 100%, 100% 100%, 0 0); z-index: 0; pointer-events: none; }
.sta-faq-row .fl-col-group { position: relative; z-index: 2; }
.sta-faq-row h2 { font-size: clamp(30px, 3.1vw, 44px); font-weight: 700; letter-spacing: -0.022em; line-height: 1.1; color: #0E1A26; }
.sta-faq-row .sta-eyebrow-h h6, .sta-faq-row .sta-eyebrow-h p { color: #445044; }
/* sticky left column (heading + support line travel with the questions) */
.sta-faq-left .fl-col-content { position: sticky; top: 96px; }
.sta-faq-support { margin-top: 34px; padding-top: 24px; border-top: 1px solid rgba(14,26,38,0.16); max-width: 320px; }
.sta-faq-support p { font-size: 16.5px; line-height: 1.6; color: rgba(14,26,38,0.85); margin: 0 0 14px; }
.sta-faq-support a { font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; letter-spacing: 0.1em; color: #59722C; border-bottom: 1px solid rgba(150,201,61,0.5); }
.sta-faq-support a .sta-arr { color: #2E4A38; }
.sta-acc .fl-accordion-item { border: none; border-bottom: 1px solid rgba(14,26,38,0.16); margin: 0; background: transparent; }
.sta-acc .fl-accordion-item:first-child { border-top: 1px solid rgba(14,26,38,0.16); }
.sta-acc .fl-accordion-button { padding: 30px 0; background: transparent !important; border: none !important; }
.sta-acc .fl-accordion-button-label { font-size: 21px; font-weight: 600; line-height: 1.3; color: #0E1A26; font-family: 'Libre Franklin', sans-serif; }
.sta-acc .fl-accordion-button-icon { font-size: 0 !important; width: 13px; height: 13px; background: #96C93D; clip-path: polygon(0 0, 100% 0, 100% 100%); transform: rotate(45deg); transition: transform 200ms ease; }
.sta-acc .fl-accordion-item-active .fl-accordion-button-icon { transform: rotate(135deg); }
.sta-acc .fl-accordion-content { padding: 0 0 26px; }
.sta-acc .fl-accordion-content p { max-width: 660px; font-size: 18px; line-height: 1.66; color: rgba(14,26,38,0.85); margin: 0 0 16px; }
/* articles band */
.sta-art-link { text-align: right; }
.sta-art-link a { font-family: 'IBM Plex Mono', monospace; font-size: 12px; letter-spacing: 0.18em; color: #2E4A38; border-bottom: 1px solid rgba(46,74,56,0.4); padding-bottom: 4px; }
.sta-art-h2 h2 { font-size: clamp(50px, 6.2vw, 88px); line-height: 0.96; font-weight: 700; letter-spacing: -0.04em; }
.sta-postfeed .fl-post-feed-post { display: flex !important; gap: 10px 32px; flex-wrap: wrap; align-items: baseline; padding: 26px 0 !important; margin: 0 !important; border: none !important; border-bottom: 1px solid rgba(68,80,68,0.28) !important; }
.sta-postfeed .fl-post-feed-post:first-of-type { border-top: 1px solid rgba(68,80,68,0.28) !important; }
.sta-postfeed .fl-post-feed-text { display: contents; }
.sta-postfeed .fl-post-feed-header { display: contents; }
.sta-postfeed .fl-post-feed-title { flex: 1 1 300px; min-width: 0; order: 2; text-align: left; font-size: 26px !important; font-weight: 600; line-height: 1.28; letter-spacing: -0.012em; margin: 0 !important; }
.sta-postfeed .fl-post-feed-title a { color: #0E1A26; }
.sta-postfeed .fl-post-feed-title a:hover { color: #59722C; }
.sta-postfeed .fl-post-feed-meta { flex: 0 0 150px; order: 1; font-family: 'IBM Plex Mono', monospace; font-size: 12px; letter-spacing: 0.16em; color: #445044; text-transform: uppercase; }
.sta-postfeed .fl-post-feed-meta .fl-sep, .sta-postfeed .fl-post-feed-comments, .sta-postfeed .fl-post-feed-author { display: none; }
.sta-postfeed .fl-post-feed-more, .sta-postfeed .fl-post-feed-image { display: none; }
.sta-postfeed .fl-post-feed-post::after { content: "Read \2192"; flex: none; order: 3; font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; letter-spacing: 0.1em; color: #59722C; }
/* CTA band */
.sta-cta-row { position: relative; overflow: hidden; isolation: isolate; }
.sta-cta-row::before {
  content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: min(660px, 48%); z-index: 0;
  background-image: url('images/pattern.png'); background-size: 116% auto; background-position: 30% bottom; background-repeat: no-repeat; opacity: 0.8;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 30%, #000 72%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 30%, #000 72%);
}
.sta-cta-row::after { content: ""; position: absolute; left: 0; top: 0; width: 240px; height: 240px; background: #59722C; clip-path: polygon(0 0, 100% 0, 0 100%); opacity: 0.85; z-index: 0; }
.sta-cta-row .fl-row-content-wrap { position: relative; }
.sta-cta-row .fl-col-group { position: relative; z-index: 2; }
.sta-cta-h2 h2 { max-width: 900px; font-size: clamp(38px, 4.5vw, 64px); line-height: 1.08; font-weight: 700; letter-spacing: -0.028em; color: #FFFFFF; }
.sta-cta-sub p { max-width: 560px; font-size: 18px; line-height: 1.62; color: rgba(244,243,238,0.88); margin: 32px 0 0; }
.sta-cta-btn { margin-top: 40px; }
.sta-cta-btn .fl-button-wrap { display: inline-flex; align-items: center; }
.sta-cta-btn .fl-button-wrap::after { content: ""; width: 14px; height: 14px; margin-left: 22px; background: #96C93D; clip-path: polygon(0 0, 100% 0, 100% 100%); }

/* ---------- Part 2: theme chrome ---------- */
/* full-bleed chrome with the design gutter (theme boxes everything in .container;
   theme CSS loads after this file, so these carry weight deliberately) */
body .fl-page .fl-page-bar-container.container, body .fl-page .fl-page-header-container.container,
body .fl-page .fl-page-footer-widgets-container.container, body .fl-page .fl-page-footer-container.container {
  max-width: 100% !important; width: 100% !important;
  padding-left: clamp(28px, 8.34vw, 120px) !important; padding-right: clamp(28px, 8.34vw, 120px) !important;
}
body .fl-page .fl-page-header .fl-logo-img { height: 75px !important; width: auto !important; }
body .fl-page .fl-page-bar-container.container { padding-top: 0 !important; padding-bottom: 0 !important; }
body .fl-page .fl-page-header-container.container { padding-top: 26px !important; padding-bottom: 26px !important; }
body .fl-page .fl-page-nav .navbar-nav > li > a { color: #0E1A26 !important; }
body .fl-page .fl-page-nav .navbar-nav > li > a:hover,
body .fl-page .fl-page-nav .navbar-nav > li.current-menu-item > a { color: #59722C !important; }
body .fl-page .fl-page-nav .navbar-nav > li.sta-nav-cta > a { color: #FFFFFF !important; }
body .fl-page .fl-page-nav .navbar-nav > li.sta-nav-cta > a:hover { color: #FFFFFF !important; background: #0E1A26; }
/* topbar: 54px rail, content right */
.fl-page-bar { padding: 0; }
.fl-page-bar .fl-page-bar-row { display: flex; align-items: center; justify-content: flex-end; gap: 24px; height: 54px; margin: 0; }
.fl-page-bar .fl-page-bar-row > [class*="col-"] { width: auto; padding: 0; flex: none; }
.fl-page-bar .fl-page-bar-row > [class*="col-"]:empty,
.fl-page-bar .fl-page-bar-row > [class*="col-"]:first-child:not(.text-right) { display: none; } /* col-1 is an empty spacer in this design (':empty' misses its whitespace) */
body .fl-page .fl-page-bar-text, body .fl-page .fl-page-bar-content { font-family: 'IBM Plex Mono', monospace; font-size: 15px; font-weight: 400 !important; letter-spacing: 0.08em; color: rgba(244,243,238,0.68) !important; }
body .fl-page .fl-page-bar-text a, body .fl-page .fl-page-bar-content a { color: #F4F3EE !important; font-weight: 500 !important; }
body .fl-page .fl-page-bar .fl-social-icons,
body .fl-page .fl-page-bar .text-right .fl-social-icons {
  display: inline-flex; margin-left: 24px; margin-right: 0 !important; padding-right: 0 !important;
}
.fl-page-bar .fl-social-icons a { display: inline-flex !important; align-items: center; justify-content: center; width: 32px !important; height: 32px !important; border: 1px solid rgba(244,243,238,0.6); margin: 0 !important; padding: 0 !important; }
.fl-page-bar .fl-social-icons a i { display: block; line-height: 1 !important; width: auto !important; height: auto !important; font-size: 13px !important; }
.fl-page-bar .fl-social-icons a i { font-size: 13px; color: #FFFFFF; }
/* header row: 26px vertical, centered, nav gap 40px */
.fl-page-header .container { padding-top: 26px; padding-bottom: 26px; }
.fl-page-header .fl-page-header-logo { text-align: left; }
@media (min-width: 992px) {
  body .fl-page .fl-page-header-row.row { display: flex !important; align-items: center !important; flex-wrap: nowrap !important; }
  body .fl-page .fl-page-header-logo-col { flex: 0 0 auto !important; width: auto !important; float: none !important; }
  body .fl-page .fl-page-nav-col { display: flex !important; justify-content: flex-end; flex: 1 1 auto !important; width: auto !important; min-width: 0; float: none !important; }
  body .fl-page .fl-page-nav-wrap { width: 100%; }
  body .fl-page .fl-page-nav.fl-nav { width: 100%; display: flex; align-items: center; justify-content: flex-end; min-height: 100%; }
  body .fl-page .fl-page-nav .fl-page-nav-collapse.collapse { display: flex !important; align-items: center; justify-content: flex-end; height: auto !important; overflow: visible; }
  body .fl-page .fl-page-nav .navbar-nav { display: flex !important; align-items: center; flex-wrap: nowrap !important; float: none !important; margin: 0; }
  body .fl-page .fl-page-nav .navbar-nav > li { float: none !important; white-space: nowrap; margin-left: 40px; }
}
.fl-page-nav .navbar-nav > li { margin-left: 40px; }
body .fl-page .fl-page-nav .navbar-nav > li:not(.sta-nav-cta) > a { padding: 10px 0 !important; }
.fl-page-nav .navbar-nav > li.sta-nav-cta { margin-left: 40px; }
/* mobile nav — mockup pattern: 2 ink bars + 60% lime bar; white dropdown,
   hairline mono links, full-width forest Book-a-Call */
body .fl-page .fl-page-nav .navbar-toggle, body .fl-page .navbar-toggle {
  background: none !important; border: none !important; box-shadow: none !important; outline: none !important; border-radius: 0 !important;
  width: 48px; height: 48px; padding: 8px; align-items: center;
}
/* the toggle is MOBILE-ONLY — never force display at desktop (regression 08-16) */
@media (max-width: 991.98px) { body .fl-page .navbar-toggle { display: flex; } }
@media (min-width: 992px) { body .fl-page .navbar-toggle { display: none !important; } }
.fl-page-nav .navbar-toggle .fas, .fl-page-nav .navbar-toggle .fa, .fl-page-nav .navbar-toggle .sr-only { display: none; }
.fl-page-nav .navbar-toggle > span { display: block; width: 32px; height: 2px; background: #0E1A26; position: relative; }
.fl-page-nav .navbar-toggle > span::before { content: ""; position: absolute; top: -8px; left: 0; width: 100%; height: 2px; background: #0E1A26; }
.fl-page-nav .navbar-toggle > span::after { content: ""; position: absolute; top: 8px; left: 0; width: 60%; height: 2px; background: #96C93D; }
@media (max-width: 991.98px) {
  .fl-page-nav-collapse { background: #FFFFFF; border-bottom: none; padding: 18px 0 26px; margin-top: 14px; border-top: 1px solid rgba(68,80,68,0.2); }
  body .fl-page .fl-page-nav .navbar-nav > li { margin-left: 0; }
  body .fl-page .fl-page-nav .navbar-nav > li > a {
    display: block; padding: 15px 0 !important;
    border-bottom: 1px solid rgba(68, 80, 68, 0.2);
  }
  body .fl-page .fl-page-nav .navbar-nav > li.sta-nav-cta { margin: 20px 0 0; }
  body .fl-page .fl-page-nav .navbar-nav > li.sta-nav-cta > a {
    display: flex; align-items: center; justify-content: center;
    height: 52px; border-bottom: none; font-size: 13px;
  }
}
/* footer rhythm + bottom bar type */
.fl-page-footer-widgets { padding: 84px 0 72px; }
.fl-page-footer-widgets .fl-widget { font-size: 15px; }
.fl-page-footer .fl-page-footer-container { padding-top: 26px; padding-bottom: 40px; }
.fl-page-footer-text, .fl-page-footer .fl-page-footer-text a,
.fl-page-footer .fl-footer-nav .menu > li > a, .fl-page-footer .menu > li > a {
  font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 0.12em; color: rgba(244,243,238,0.60);
}
/* top bar */
.fl-page-bar { background: #0E1A26; border-bottom: 1px solid rgba(244,243,238,0.10); }
.fl-page-bar-content { font-family: 'IBM Plex Mono', monospace; font-size: 15px; letter-spacing: 0.08em; color: rgba(244,243,238,0.68); }
.fl-page-bar-content a { color: #F4F3EE; font-weight: 500; }
.fl-page-bar .fl-social-icons .fa, .fl-page-bar .fl-social-icons svg { color: #FFFFFF; }
/* header / nav */
body .fl-page .fl-page-header { background: #FFFFFF !important; border-bottom: 4px solid #96C93D !important; }
.fl-page-header .fl-logo-img { height: 75px !important; width: auto; }
body .fl-page .fl-page-nav .navbar-nav > li > a {
  font-family: 'IBM Plex Mono', monospace; font-size: 15px; letter-spacing: 0.12em;
  font-weight: 700 !important; text-transform: uppercase; color: #0E1A26;
}
.fl-page-nav .navbar-nav > li > a:hover, .fl-page-nav .navbar-nav > li.current-menu-item > a { color: #59722C; }
.fl-page-nav .navbar-nav > li.current-menu-item > a { border-bottom: 2px solid #96C93D; }
/* Book-a-Call menu item as button */
.fl-page-nav .navbar-nav > li.sta-nav-cta > a {
  display: inline-flex; align-items: center; height: 52px; padding: 0 32px;
  background: #2E4A38; color: #FFFFFF !important; font-family: 'Libre Franklin', sans-serif;
  font-size: 15px; font-weight: 600; letter-spacing: 0.06em; border-bottom: none !important;
}
.fl-page-nav .navbar-nav > li.sta-nav-cta > a:hover { background: #0E1A26; }
/* footer V3 (Nick R1 note 7): LIGHT main footer + lime top rule; the dark
   legal bar below stays #0A131C. Hovers mirror the mockup: olive + indent. */
body .fl-page .fl-page-footer-widgets { background: #F4F3EE !important; border-top: 4px solid #96C93D !important; color: rgba(14,26,38,0.84) !important; }
body .fl-page .fl-page-footer-widgets .fl-widget, body .fl-page .fl-page-footer-widgets .fl-widget div { color: rgba(14,26,38,0.84); font-size: 15px; line-height: 1.6; }
body .fl-page .fl-page-footer-widgets a { color: rgba(14,26,38,0.84) !important; transition: color .15s ease, padding-left .15s ease; }
body .fl-page .fl-page-footer-widgets a:hover { color: #59722C !important; padding-left: 6px; }
body .fl-page .fl-page-footer-widgets .sta-fmono a:hover, body .fl-page .fl-page-footer-widgets a:has(img):hover { padding-left: 0; }
body .fl-page .fl-page-footer-widgets div.sta-fhead { font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 0.26em; color: rgba(14,26,38,0.65); margin-bottom: 22px; }
body .fl-page .fl-page-footer-widgets div.sta-ftag { font-size: 16px; line-height: 1.55; color: rgba(14,26,38,0.72) !important; max-width: 300px; margin-top: 22px; }
/* footer contact rows: mono, lime underline (Nick 08-27) */
body .fl-page .fl-page-footer-widgets div.sta-fmono, body .fl-page .fl-page-footer-widgets div.sta-fmono a { font-family: 'IBM Plex Mono', monospace; font-size: 13px; letter-spacing: 0.06em; margin-top: 6px; }
.sta-fmono a { border-bottom: 1px solid rgba(150,201,61,0.5); }
.fl-page-footer-widgets .widget_nav_menu .menu { list-style: none; margin: 0; padding: 0; }
.fl-page-footer-widgets .widget_nav_menu .menu > li { margin: 0 0 12px; }
.fl-page-footer-widgets .widget_nav_menu .menu > li > a { font-size: 15px; }
body .fl-page .fl-page-footer { background: #0A131C !important; border-top: 1px solid rgba(244,243,238,0.12) !important; }
body .fl-page .fl-page-footer, body .fl-page .fl-page-footer a, body .fl-page .fl-page-footer .fl-page-footer-text {
  font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 400 !important; letter-spacing: 0.12em; color: rgba(244,243,238,0.60) !important; }
body .fl-page .fl-page-footer a:hover { color: #96C93D !important; }
.fl-page-footer .fl-footer-nav .menu > li > a { padding: 0 15px; }
/* article template header zone */
.single-post .fl-post-header h1 { font-size: clamp(30px, 3.4vw, 46px); line-height: 1.12; }

/* eyebrow spacing on the MODULE wrapper — the theme's :last-child rule
   strips margins inside .fl-module-content, so the gap lives out here */
/* eyebrow gap → BB module margin field */
/* eyebrow (ink/dim) gap → BB module margin field */
/* band-specific paddings from the v2 source (mockup-exact) */
.sta-band-paper.sta-pad-band:not(.sta-cta-row) .fl-row-content-wrap { }
/* sta-art-row padding → BB row fields */
/* sta-cta-row padding → BB row fields */

/* ============ native inner pages ============ */
/* inner hero: static corner triangles as row/wrap pseudos */
.sta-ihero { position: relative; overflow: hidden; }
.sta-ihero .fl-row-content-wrap { position: relative; } /* padding → BB row fields */
.sta-ihero::before { content: ""; position: absolute; right: 0; top: 0; width: 132px; height: 132px; background: #0F1F16; clip-path: polygon(0 0, 100% 0, 100% 100%); z-index: 0; }
.sta-ihero::after { content: ""; position: absolute; right: 132px; top: 0; width: 132px; height: 132px; background: #16281B; clip-path: polygon(0 0, 100% 0, 0 100%); z-index: 0; }
.sta-ihero .fl-row-content-wrap::before { content: ""; position: absolute; right: 0; top: 132px; width: 132px; height: 132px; background: #59722C; clip-path: polygon(0 0, 100% 0, 0 100%); opacity: 0.85; z-index: 0; }
.sta-ihero .fl-row-content-wrap::after { content: ""; position: absolute; right: 66px; bottom: 0; width: 100px; height: 100px; background: #2E4A38; clip-path: polygon(100% 0, 100% 100%, 0 100%); opacity: 0.6; z-index: 0; }
.sta-ihero .fl-module { position: relative; z-index: 2; }
@media (max-width: 880px) { .sta-ihero::before, .sta-ihero::after, .sta-ihero .fl-row-content-wrap::before, .sta-ihero .fl-row-content-wrap::after { opacity: 0.45; } }
/* eyebrow (lime) gap → BB module margin field */
.sta-eyebrow-lime h6 { color: #96C93D; font-size: 13px; letter-spacing: 0.22em; gap: 10px; }
.sta-eyebrow-lime h6::before, .sta-eyebrow-lime p::before { width: 0 !important; height: 0 !important; background: none !important; clip-path: none !important; border-left: 9px solid #96C93D; border-bottom: 9px solid transparent; }
/* generic inner band padding */
/* sta-ipad padding → BB row fields */
.sta-prose p { font-size: 18px; line-height: 1.7; margin: 0 0 20px; }
.sta-prose-dim p { color: rgba(244,243,238,0.88); }
.sta-lead p:first-child { font-size: 21px; line-height: 1.6; font-weight: 600; }
/* CTA band (all pages): gradient + mosaic svg */
.sta-mosaic-row { position: relative; overflow: hidden; background: linear-gradient(115deg, #0F1F16 0%, #16281B 55%, #1C3320 100%) !important; }
.sta-mosaic-row .fl-row-content-wrap { position: relative; } /* padding → BB row fields */
.sta-mosaic-row::before { content: ""; position: absolute; inset: 0; z-index: 0;
  background: url('images/mosaic.svg') right center / auto 100% no-repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.45) 30%, #000 70%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.45) 30%, #000 70%); }
@media (max-width: 880px) { .sta-mosaic-row::before { opacity: 0.3; } }
.sta-mosaic-row .fl-module { position: relative; z-index: 2; }
.sta-cta2-h2 h2 { margin: 0; max-width: 14em; } /* gaps → BB module fields */
.sta-cta2-sub p { font-size: 18px; line-height: 1.65; color: rgba(244,243,238,0.85); max-width: 34em; margin: 0 0 30px; }
.sta-cta2-paras p { font-size: 18px; line-height: 1.7; color: rgba(244,243,238,0.88); max-width: 52em; margin: 0 0 20px; }
.sta-cta2-kicker p { font-size: 18px; line-height: 1.65; color: #F4F3EE; font-weight: 600; max-width: 34em; margin: 6px 0 30px; }
.sta-btn52 a.fl-button { height: 52px; padding: 0 34px; font-size: 15px !important; letter-spacing: 0.06em; }
.sta-btn-tri .fl-button-wrap { display: inline-flex; align-items: center; }
.sta-btn-tri .fl-button-wrap::after { content: ""; width: 13px; height: 13px; margin-left: 22px; background: #96C93D; clip-path: polygon(0 0, 100% 0, 100% 100%); }
/* about */
.sta-aside-card .fl-col-content { background: #E2E4DE; border: 1px solid rgba(14,26,38,0.16);  }
.sta-aside-label h6, .sta-aside-label p { font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 0.24em; color: #2E4A38; font-weight: 400; margin: 0 0 20px; text-transform: uppercase; }
.sta-aside-k h6, .sta-aside-k p { font-weight: 400; font-family: 'IBM Plex Mono', monospace; font-size: 11.5px; font-weight: 400; letter-spacing: 0.18em; color: rgba(14,26,38,0.65); margin: 0 0 6px; text-transform: uppercase; border-top: 1px solid rgba(14,26,38,0.16); padding-top: 14px; }
.sta-aside-v p { font-family: 'IBM Plex Mono', monospace; font-size: 14px; font-weight: 500; margin: 0 0 16px; }
.sta-photo-frame .fl-photo { border: 1px solid rgba(244,243,238,0.15); padding: 0; }
.sta-photo-cap p { display: flex; justify-content: space-between; gap: 12px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 0.14em; color: rgba(244,243,238,0.62); padding-top: 12px; margin: 0; }
.sta-photo-cap strong { color: #96C93D; font-weight: 400 !important; }
.sta-h2-mid h2 { margin: 0; } /* gap → BB module field */
/* emd */
.sta-callout p { font-family: 'IBM Plex Mono', monospace; border: 1px solid rgba(150,201,61,0.4); padding: 18px 20px; font-size: 13.5px; line-height: 1.65; color: #96C93D; margin: 28px 0 0; }
.sta-eledger-cell .fl-col-content { border-top: 1px solid rgba(14,26,38,0.16);  }
.sta-eledger-num h3, .sta-eledger-num p { font-family: 'IBM Plex Mono', monospace; font-size: 30px; font-weight: 700; color: #59722C; margin: 0; }
.sta-eledger-title h3 { font-weight: 800; font-size: 20px; letter-spacing: -0.01em; margin: 0; }
.sta-eledger-desc p { font-size: 17px; line-height: 1.65; color: rgba(14,26,38,0.85); margin: 0; }
.sta-tex-row { position: relative; overflow: hidden; isolation: isolate; }
.sta-tex-row::before { content: ""; position: absolute; inset: 0; z-index: 0;
  background: url('images/shutterstock-ribcrop.jpg') 50% 42% / cover no-repeat;
  filter: grayscale(1) brightness(0.9) contrast(2.3); }
.sta-tex-row::after { content: ""; position: absolute; inset: 0; z-index: 0; background: #1A3226; mix-blend-mode: multiply; }
.sta-tex-row .fl-row-content-wrap { position: relative; }
.sta-tex-row .fl-row-content-wrap::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(100deg, rgba(12,16,18,0.20) 0%, rgba(12,16,18,0.60) 52%, rgba(12,16,18,0.78) 100%); opacity: 0.55; }
.sta-tex-row .fl-col-group { position: relative; z-index: 2; }
.sta-caret-ul ul { list-style: none; margin: 0; padding: 0; }
.sta-caret-ul li { display: flex; align-items: center; gap: 14px; padding: 15px 2px; border-bottom: 1px solid rgba(244,243,238,0.20); font-size: 17.5px; font-weight: 600; color: rgba(244,243,238,0.94); line-height: 1.4; }
.sta-caret-ul li::before { content: ""; width: 9px; height: 10px; flex: none; background: #96C93D; clip-path: polygon(0 0, 100% 50%, 0 100%); }
.fl-col.sta-feat-card { background: #0E1A26; }
.sta-feat-card .fl-col-content {  height: 100%; }
.fl-col-group .fl-col.sta-feat-card:first-child { border-left: 3px solid #96C93D; }
.sta-feat-card { color: #F4F3EE; }
.sta-feat-title h3 { font-weight: 800; font-size: clamp(22px, 2.1vw, 27px); letter-spacing: -0.01em; line-height: 1.2; margin: 0; }
.sta-feat-text p { font-size: 17px; line-height: 1.7; color: rgba(244,243,238,0.88); margin: 0; }
.sta-why-card .fl-col-content { border: 1px solid rgba(14,26,38,0.16); margin: 0; height: 100%; }
.sta-why-title h3 { font-weight: 800; font-size: 19px; margin: 0; } /* gap → BB module field */
.sta-why-text p { font-size: 16.5px; line-height: 1.65; color: rgba(14,26,38,0.85); margin: 0; }
/* contact tiles */
.sta-tile .fl-col-content { background: #E2E4DE; border: 1px solid rgba(14,26,38,0.16);  margin: 0 14px; }
.sta-tile-label h6, .sta-tile-label p { font-weight: 400; font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 0.22em; color: #2E4A38; margin: 0 0 16px; text-transform: uppercase; }
.sta-tile-val p { font-size: 16.5px; line-height: 1.65; color: rgba(14,26,38,0.85); margin: 0; }
.sta-tile-val a { color: rgba(14,26,38,0.85); border-bottom: 1px solid rgba(150,201,61,0.6); }
/* legal doc card */
.sta-doc-card .fl-col-content { max-width: 992px; margin: 0 auto; background: #FFFFFF; border: 1px solid rgba(14,26,38,0.16);  }
.sta-doc-title h6, .sta-doc-title p { font-weight: 400; font-family: 'IBM Plex Mono', monospace; font-size: 12px; letter-spacing: 0.18em; color: #59722C; margin: 0 0 8px; text-transform: uppercase; }
.sta-doc-date h6, .sta-doc-date p { font-weight: 400; font-family: 'IBM Plex Mono', monospace; font-size: 12px; letter-spacing: 0.18em; color: rgba(14,26,38,0.65); margin: 0; padding-bottom: 24px; border-bottom: 1px solid rgba(14,26,38,0.16); text-transform: uppercase; }
/* doc-date gap → BB module margin field */
/* book-a-call card */
.sta-book-card .fl-col-content { max-width: 992px; margin: 0 auto; background: #FFFFFF; border: 1px solid rgba(14,26,38,0.16);  }
.sta-book-label h6, .sta-book-label p { font-weight: 400; font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 0.22em; color: #59722C; margin: 0 0 20px; text-transform: uppercase; }

/* theme clearfix (display:table on row pseudos) shrinks inset-sized pseudos to 0 — force block */
.sta-mosaic-row::before, .sta-mosaic-row::after,
.sta-tex-row::before, .sta-tex-row::after,
.sta-faq-row::before, .sta-faq-row::after,
.sta-hero-row::before, .sta-hero-row::after,
.sta-ihero::before, .sta-ihero::after,
.sta-cta-row::before, .sta-cta-row::after { display: block !important; }

/* BB paints row bg_color on .fl-row-content-wrap, which covers row-level
   decorative pseudos. Wraps go transparent; band bgs live on the row class.
   Ink bands need no bg — the page content bg is already ink. */
.sta-band-row .fl-row-content-wrap { background: transparent !important; }
.sta-hero-row, .sta-ihero { background: #0E1A26; }
.sta-reg-row { background: #2E4A38; }
.sta-band-paper { background: #F4F3EE; }
.sta-faq-row { background: #E2E4DE; }
.sta-tex-row { background: #0E1713; }
.sta-cta-row { background: #12241B; }

/* EMD page: paper-band eyebrows run olive/13px in the approved mockup */
.page-id-2487 .sta-eyebrow-h.sta-eyebrow-ink h6, .page-id-2487 .sta-eyebrow-h.sta-eyebrow-ink p { font-size: 13px; letter-spacing: 0.22em; color: #59722C; }
/* Articles page: denser list variant of the feed (21/800) + muted ink dates */
.page-id-2582 .sta-postfeed .fl-post-feed-title { font-size: 21px !important; font-weight: 800; letter-spacing: -0.01em; line-height: 1.3; }
.page-id-2582 .sta-postfeed .fl-post-feed-meta { color: rgba(14,26,38,0.65); letter-spacing: 0.12em; }
/* EMD "the case" footnote paragraph — mockup runs it smaller/dimmer */
.fl-node-552985b78e8dx p { font-size: 16px !important; color: rgba(244,243,238,0.84) !important; }
/* who-we-serve: mockup holds ~108px between the heading and the first ledger
   row; the first ledger col-group (the one after the heading group) carries it */
.fl-builder-content .fl-col-group:not(:has(.sta-ledger-cell)) + .fl-col-group:has(.sta-ledger-cell) { margin-top: 108px; }
/* mobile stacking gaps: BB stacks columns flush; the mockup keeps its grid gaps */
@media (max-width: 767.98px) {
  .sta-tile { margin-bottom: 28px; }
  .fl-col-group:has(.sta-tile) .fl-col.sta-tile:last-child { margin-bottom: 0; }
  .sta-aside-card { margin-top: 44px; }
  .sta-why-card .fl-col-content { margin-left: 0; margin-right: 0; }
  .sta-tile .fl-col-content { margin-left: 0; margin-right: 0; }
}
/* stacked ledger cells: one hairline per row, not one per stacked column */
@media (max-width: 767.98px) {
  .fl-col.sta-eledger-cell + .fl-col.sta-eledger-cell .fl-col-content { border-top: none !important; }
  .fl-col.sta-ledger-cell + .fl-col.sta-ledger-cell .fl-col-content { border-top: none !important; }
  .fl-col.sta-eledger-cell + .fl-col.sta-eledger-cell .fl-col-content { padding-top: 6px !important; }
  .fl-col.sta-ledger-cell + .fl-col.sta-ledger-cell .fl-col-content { padding-top: 6px !important; }
}
/* emd services ledger: breathing room between the heading and row 01 */
.page-id-2487 .fl-col-group:not(:has(.sta-eledger-cell)) + .fl-col-group:has(.sta-eledger-cell) { margin-top: 44px; }
/* topbar linkedin: render as the mockup's mono "in" chip (no icon-font dependency) */
.fl-page-bar .fl-social-icons i.fa-linkedin { font-style: normal; }
.fl-page-bar .fl-social-icons i.fa-linkedin::before { content: "in"; font-family: 'IBM Plex Mono', monospace; font-size: 13px; font-weight: 500; }

/* ===== V3 article template (single posts) — mockup pages/article.html ===== */
.single-post .fl-page-content, .single-post .fl-builder .fl-page-content { background: #F4F3EE !important; color: #0E1A26; }
.single-post .fl-content { max-width: 992px; margin: 0 auto; float: none !important; width: 100% !important; }
.single-post .fl-page-content .container { max-width: 100% !important; width: 100% !important; padding-left: clamp(28px, 8.34vw, 120px) !important; padding-right: clamp(28px, 8.34vw, 120px) !important; }
.single-post .fl-page-content .row { display: block; }
.single-post .fl-content { padding-top: 0 !important; padding-bottom: 0; }
/* Article gutter. The metabar is injected before the theme's .container, so it
   has no gutter of its own; and Bootstrap's .row negative margin pulls the body
   15px back out of the container's padding. Both only showed below 1200px,
   where the 992px column stops centring and the real gutter has to do the work.
   Sized so the inner column is still exactly 992px on desktop. */
.sta-art-head {
  max-width: calc(992px + 2 * clamp(28px, 8.34vw, 120px));
  margin: 0 auto;
  padding: clamp(48px, 5vw, 72px) clamp(28px, 8.34vw, 120px) 0;
}
.single-post .fl-page-content .row { margin-left: 0 !important; margin-right: 0 !important; }
.single-post .fl-post-image, .single-post .wp-post-image, .single-post .fl-post-thumb { display: none !important; }
.single-post .fl-sidebar, .single-post aside.fl-sidebar { display: none !important; }
.sta-art-metabar { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; border-bottom: 1px solid rgba(14,26,38,0.16); padding-bottom: 14px; margin-bottom: 34px; }
.sta-art-back, .sta-art-date { font-family: 'IBM Plex Mono', monospace; text-transform: uppercase; }
.sta-art-back { font-size: 12px; letter-spacing: 0.14em; color: #59722C !important; }
.sta-art-back:hover { color: #2E4A38 !important; }
.sta-art-date { font-size: 12px; letter-spacing: 0.18em; color: rgba(14,26,38,0.65); }
.sta-art-eyebrow { display: flex; align-items: center; gap: 10px; font-family: 'IBM Plex Mono', monospace; font-size: 13px; letter-spacing: 0.22em; color: #59722C; text-transform: uppercase; }
.sta-art-eyebrow::before { content: ""; width: 0; height: 0; border-left: 9px solid #96C93D; border-bottom: 9px solid transparent; }
.single-post .fl-post-header h1 { font-size: clamp(30px, 3.4vw, 46px); line-height: 1.12; letter-spacing: -0.015em; max-width: 22em; margin: 16px 0 0; color: #0E1A26; }
.single-post .fl-post-meta-top, .single-post .fl-post-meta { display: none; }
/* the whole post body is ONE BB rich-text module: body prose by default,
   the leading em-paragraph is the disclaimer callout, and strong-only
   paragraphs act as section headings (same convention as the legal docs) */
.single-post .fl-builder-content .fl-rich-text p, .single-post .fl-post-content p { font-family: 'Libre Franklin', sans-serif; font-size: 18px; line-height: 1.7; color: #0E1A26; margin: 0 0 20px; border: none; background: none; padding: 0; }
/* Article body.
   The articles now carry REAL heading markup — Nick picks Heading 2 / Heading 3
   from the editor's own dropdown and sees in the builder exactly what renders.
   (Converted from the old all-bold / all-italic paragraph conventions on
   2026-08-30 by site/convert-headings.php; the pre-change source of every post
   is kept in postmeta `_sta_pre_heading_backup`.)

   The one remaining convention is the legal note: an all-italic paragraph that
   opens or closes an article becomes the note box. That is a template detail,
   not something Nick chooses, and `.sta-note` forces it by hand if ever needed. */
.single-post .fl-builder-content .fl-rich-text > h2, .single-post .fl-builder-content .fl-rich-text > h3 { font-family: 'Libre Franklin', sans-serif; font-style: normal; color: #0E1A26; }
.single-post .fl-builder-content .fl-rich-text > h2 { margin: 40px 0 14px; font-size: 24px; font-weight: 800; letter-spacing: -0.01em; line-height: 1.25; }
.single-post .fl-builder-content .fl-rich-text > h3 { margin: 34px 0 12px; font-size: 20px; font-weight: 800; letter-spacing: -0.01em; line-height: 1.35; }
.single-post .fl-builder-content .fl-rich-text > h2:first-child, .single-post .fl-builder-content .fl-rich-text > h3:first-child { margin-top: 0; }
.single-post .fl-builder-content .fl-rich-text > h2 strong, .single-post .fl-builder-content .fl-rich-text > h3 strong, .single-post .fl-builder-content .fl-rich-text > h2 em, .single-post .fl-builder-content .fl-rich-text > h3 em { font-weight: inherit; font-size: inherit; font-style: normal; color: inherit; }
/* legal note box — the opening/closing italic paragraph */
.single-post .fl-builder-content .fl-rich-text > p.sta-note,
.single-post .fl-builder-content .fl-rich-text > p:first-child:has(> em:only-child),
.single-post .fl-builder-content .fl-rich-text > p:last-of-type:has(> em:only-child) { font-family: 'IBM Plex Mono', monospace; border-left: 3px solid #96C93D; background: rgba(150,201,61,0.07); padding: 16px 20px; font-size: 13px; line-height: 1.7; color: rgba(14,26,38,0.7); margin: 30px 0 34px; }
.single-post .fl-builder-content .fl-rich-text > p.sta-note em,
.single-post .fl-builder-content .fl-rich-text > p:first-child:has(> em:only-child) em,
.single-post .fl-builder-content .fl-rich-text > p:last-of-type:has(> em:only-child) em { font-style: normal; }
.single-post .fl-builder-content .fl-rich-text a { color: #59722C; border-bottom: 1px solid rgba(150,201,61,0.6); }
/* Body lists. Nick's source used "* " at the start of a line; those became real
   <ul><li> on 2026-08-30 (site/convert-lists.php) so the markup says "list".
   Scoped to the three places body copy lives — the EMD page's design lists have
   their own list-style:none treatment and are untouched. */
.single-post .fl-builder-content .fl-rich-text ul,
.sta-acc .fl-accordion-content ul,
.sta-doc-card ul { margin: 0 0 20px; padding-left: 1.3em; list-style: disc; }
.single-post .fl-builder-content .fl-rich-text li,
.sta-acc .fl-accordion-content li,
.sta-doc-card li { font-size: 18px; line-height: 1.6; color: rgba(14,26,38,0.9); margin-bottom: 8px; padding-left: 4px; }
.single-post .fl-builder-content .fl-rich-text li::marker,
.sta-acc .fl-accordion-content li::marker,
.sta-doc-card li::marker { color: #96C93D; }
.sta-acc .fl-accordion-content li { color: rgba(14,26,38,0.85); }
.single-post .fl-comments, .single-post .fl-post-nav { display: none; }
/* more from the desk — sage card */
.sta-art-more { background: #E2E4DE; border: 1px solid rgba(14,26,38,0.16); margin-top: 44px; padding: 26px 28px 18px; }
.sta-art-more-label { font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 0.22em; color: #2E4A38; margin-bottom: 16px; text-transform: uppercase; }
.sta-art-more a { display: block; padding: 10px 0; border: none !important; }
.sta-art-more-date { font-family: 'IBM Plex Mono', monospace; font-size: 11.5px; letter-spacing: 0.1em; color: rgba(14,26,38,0.65); margin-right: 16px; text-transform: uppercase; }
.sta-art-more-title { font-weight: 600; font-size: 16px; color: #0E1A26; }
.sta-art-more a:hover .sta-art-more-title { color: #59722C; }
/* full-bleed CTA band below the article */
.sta-art-cta { position: relative; overflow: hidden; margin: clamp(64px, 7vw, 96px) calc(50% - 50vw) 0; width: auto; background: linear-gradient(115deg, #0F1F16 0%, #16281B 55%, #1C3320 100%); color: #F4F3EE; }
.sta-art-cta::before { content: ""; position: absolute; inset: 0; display: block !important; background: url('images/mosaic.svg') right center / auto 100% no-repeat; -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.45) 30%, #000 70%); mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.45) 30%, #000 70%); }
.sta-art-cta-in { position: relative; padding: clamp(64px, 7vw, 96px) clamp(28px, 8.34vw, 120px); }
.sta-art-cta-eyebrow { display: flex; align-items: center; gap: 10px; font-family: 'IBM Plex Mono', monospace; font-size: 13px; letter-spacing: 0.22em; color: #96C93D; text-transform: uppercase; margin-bottom: 28px; }
.sta-art-cta-eyebrow::before { content: ""; width: 9px; height: 9px; background: #96C93D; clip-path: polygon(0 0, 100% 0, 100% 100%); }
.sta-art-cta h2 { margin: 0 0 14px; max-width: 14em; font-size: clamp(28px, 3vw, 40px); line-height: 1.1; letter-spacing: -0.01em; color: #F4F3EE; }
.sta-art-cta p { font-size: 18px !important; line-height: 1.65 !important; color: rgba(244,243,238,0.85) !important; max-width: 34em; margin: 0 0 30px !important; }
.sta-art-cta-btnwrap { display: inline-flex; align-items: center; }
.sta-art-cta-btnwrap::after { content: ""; width: 13px; height: 13px; margin-left: 22px; background: #96C93D; clip-path: polygon(0 0, 100% 0, 100% 100%); }
.sta-art-cta-btn { display: inline-flex; align-items: center; height: 52px; padding: 0 34px; background: #F4F3EE; color: #0E1A26 !important; font-size: 15px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.sta-art-cta-btn:hover { background: #96C93D; color: #08120B !important; }
/* theme draws a divider on the content column even with the sidebar hidden */
.single-post .fl-content { border-right: none !important; border-left: none !important; }
/* sticky needs the left column to be full row height (BB floats don't stretch) */
.sta-faq-row .fl-col-group { display: flex; align-items: stretch; }
.sta-faq-row .fl-col-group::before, .sta-faq-row .fl-col-group::after { display: none !important; }
.sta-faq-row .fl-col { float: none !important; }
@media (max-width: 767.98px) { .sta-faq-row .fl-col-group { display: block; } }
/* empty feed wrappers are flex items — each adds a phantom gap before the date */
.sta-postfeed .fl-post-feed-post > div:empty,
.sta-postfeed .fl-post-feed-post > div[itemprop],
.sta-postfeed .fl-post-feed-post > div[itemscope] { display: none !important; }

/* hero buttons: mockup keeps a fixed 16px gap at every width */
body .fl-page .fl-node-herobtngrp001 { display: flex !important; flex-wrap: wrap; gap: 16px; justify-content: flex-start; }
body .fl-page .fl-node-herobtngrp001::before, body .fl-page .fl-node-herobtngrp001::after { display: none !important; }
body .fl-page .fl-node-herobtngrp001 .fl-col, body .fl-page .fl-node-herobtngrp001 .fl-col-small { float: none !important; width: auto !important; max-width: none !important; flex: none !important; min-width: 0; margin: 0 !important; }
body .fl-page .fl-node-herobtngrp001 .fl-col .fl-module { margin-left: 0 !important; margin-right: 0 !important; }
/* fold-field embed centers itself (top:50%/-330px) — mockup runs flush to band top */
.sta-hero-row .sta-ff > div:first-child { top: 0 !important; margin-top: 0 !important; }
/* bootstrap clearfix pseudos become flex items in the bar row (each eats a gap) */
.fl-page-bar .fl-page-bar-row::before, .fl-page-bar .fl-page-bar-row::after { display: none !important; }

/* topbar column: phone + linkedin never wrap */
.fl-page-bar .fl-page-bar-row > .text-right { display: flex !important; align-items: center; justify-content: flex-end; flex-wrap: nowrap; white-space: nowrap; }
.fl-page-bar .fl-page-bar-row > .text-right .fl-page-bar-text { display: inline-flex; align-items: center; }
@media (max-width: 991.98px) {
  body .fl-page .fl-page-bar-text, body .fl-page .fl-page-bar-content { font-size: 13px; }
}
/* 992–1260 squeeze band: desktop nav persists but compresses (mock behavior:
   tighter gaps, smaller type, EMD SERVICES may wrap to two lines) */
@media (min-width: 992px) and (max-width: 1260px) {
  body .fl-page .fl-page-nav .navbar-nav > li { margin-left: clamp(12px, 1.8vw, 24px); white-space: normal; }
  body .fl-page .fl-page-nav .navbar-nav > li > a { font-size: 13px; white-space: normal; line-height: 1.3; text-align: center; }
  .fl-page-nav .navbar-nav > li.sta-nav-cta > a { height: 48px; padding: 0 20px; font-size: 13.5px; white-space: nowrap; }
  body .fl-page .fl-page-header .fl-logo-img { height: 58px !important; }
}
/* flex column collapses the text-node space before the phone link */
.fl-page-bar .fl-page-bar-text a { margin-left: 10px; }
/* burger: theme pins it at right:20px — align its BARS to the design gutter
   (8px inner padding compensated) so it lines up with the topbar chip */
@media (max-width: 991.98px) {
  body .fl-page .navbar-toggle { right: calc(clamp(28px, 8.34vw, 120px) - 8px) !important; }
}

/* label/eyebrow modules are rich-text now (semantic fix 08-28): kill the
   inherited paragraph margins so their own rules control spacing */
.fl-builder-content .sta-eyebrow-h p, .fl-builder-content .sta-reg-label p,
.fl-builder-content .sta-tile-label p, .fl-builder-content .sta-book-label p,
.fl-builder-content .sta-reg-value p, .fl-builder-content .sta-reg-value-mono p,
.fl-builder-content .sta-ledger-num p, .fl-builder-content .sta-eledger-num p { padding: 0; }

/* ---- What We Do band: match the mockup's flex split exactly ----
   mock: gap clamp(36px,6vw,100px); colA flex 1 1 320px; colB flex 1.6 1 420px.
   BB's 38/62 columns have NO gutter, so the right column ran ~94px wider and
   the longer measure read as heavier/denser type. */
body .fl-page .fl-node-wwdgrp0000001 { display: flex !important; flex-wrap: wrap; gap: clamp(36px, 6vw, 100px); }
body .fl-page .fl-node-wwdgrp0000001::before, body .fl-page .fl-node-wwdgrp0000001::after { display: none !important; }
body .fl-page .fl-node-wwdcolA000001 { float: none !important; width: auto !important; max-width: none !important; flex: 1 1 320px; min-width: 0; }
body .fl-page .fl-node-wwdcolB000001 { float: none !important; width: auto !important; max-width: none !important; flex: 1.6 1 420px; min-width: 0; }
/* band padding: mock runs slightly taller than the shared sta-pad-band */
/* sta-wwd-row padding → BB row fields */
/* rotated NRD marker in the left margin (decorative repeat of the strip value,
   desktop only — aria-hidden by virtue of being a pseudo-element) */
body .fl-page .fl-row.sta-wwd-row { position: relative; }
@media (min-width: 992px) {
  body .fl-page .fl-row.sta-wwd-row::before {
    content: "NRD #70440"; position: absolute; left: 44px; top: 190px; z-index: 2;
    display: block !important;
    font-family: 'IBM Plex Mono', monospace; font-size: 12px; letter-spacing: 0.28em;
    color: #445044; writing-mode: vertical-rl; transform: rotate(180deg);
  }
}

/* ---- Who We Serve ledger rows: mirror the mockup's flex row ----
   mock: gap clamp(16px,3vw,40px); col1 fixed clamp(120px,16vw,220px);
   col2 flex 1 1 240px; col3 flex 1.3 1 300px. BB's 18/34/48 columns have no
   gutter, so gaps came out 0 / 110 instead of an even 40 / 40. Hairlines move
   from per-cell border-top to row border-bottom so the last row closes. */
body .fl-page .fl-col-group:has(.sta-ledger-cell) {
  display: flex !important; flex-wrap: wrap; align-items: flex-start;
  gap: clamp(16px, 3vw, 40px);
  border-bottom: 1px solid rgba(244,243,238,0.16);
}
body .fl-page .fl-col-group:has(.sta-ledger-cell)::before,
body .fl-page .fl-col-group:has(.sta-ledger-cell)::after { display: none !important; }
body .fl-page .fl-col.sta-ledger-cell { float: none !important; width: auto !important; max-width: none !important; }
body .fl-page .fl-col-group:has(.sta-ledger-cell) > .fl-col:nth-child(1) { flex: 0 0 auto; width: clamp(120px, 16vw, 220px) !important; }
body .fl-page .fl-col-group:has(.sta-ledger-cell) > .fl-col:nth-child(2) { flex: 1 1 240px; min-width: 0; }
body .fl-page .fl-col-group:has(.sta-ledger-cell) > .fl-col:nth-child(3) { flex: 1.3 1 300px; min-width: 0; }
body .fl-page .sta-ledger-cell .fl-col-content { border-top: none !important; }
body .fl-page .fl-col-group:not(:has(.sta-ledger-cell)) + .fl-col-group:has(.sta-ledger-cell) { border-top: 1px solid rgba(244,243,238,0.16); }

/* ---- EMD services ledger: mock uses a 3-col grid, 24px gap, row border-top
   (a per-cell border would break into segments once gaps exist) ---- */
body .fl-page .fl-col-group:has(.sta-eledger-cell) {
  display: grid !important; grid-template-columns: 90px minmax(0, 1fr) minmax(0, 1.6fr);
  gap: 24px; border-top: 1px solid rgba(14,26,38,0.16);
}
body .fl-page .fl-col-group:has(.sta-eledger-cell)::before,
body .fl-page .fl-col-group:has(.sta-eledger-cell)::after { display: none !important; }
body .fl-page .fl-col.sta-eledger-cell { float: none !important; width: auto !important; max-width: none !important; }
body .fl-page .sta-eledger-cell .fl-col-content { border-top: none !important; }
@media (max-width: 767.98px) {
  body .fl-page .fl-col-group:has(.sta-eledger-cell) { grid-template-columns: 1fr; gap: 6px; }
}

/* ---- FAQ band: mockup flex split (BB columns have no gutter) ---- */
body .fl-page .sta-faq-row .fl-col-group { gap: clamp(32px, 6vw, 100px); }
body .fl-page .sta-faq-row .fl-col-group > .fl-col:nth-child(1) { flex: 1 1 280px; width: auto !important; max-width: none !important; }
body .fl-page .sta-faq-row .fl-col-group > .fl-col:nth-child(2) { flex: 2.2 1 440px; width: auto !important; max-width: none !important; min-width: 0; }
/* accordion rhythm: mock item = 30px top/bottom, 20px question→answer when open */
.sta-acc .fl-accordion-item-active .fl-accordion-button { padding-bottom: 20px; }
.sta-acc .fl-accordion-content { padding: 0 0 30px; }
.sta-acc .fl-accordion-content p:first-child { margin-top: 0; }
/* the 13px chip rotates to an 18.4px box — give it a 24px slot and stop
   ancestors clipping it (was cut off 3px both open and closed) */
.sta-acc .fl-accordion-button, .sta-acc .fl-accordion-item, .sta-acc .fl-accordion { overflow: visible !important; }
.sta-acc .fl-accordion-button-icon {
  width: 24px !important; height: 24px !important; overflow: visible !important;
  background: transparent !important; clip-path: none !important; transform: none !important;
  position: relative; flex: 0 0 24px; margin: 0 !important;
}
.sta-acc .fl-accordion-button-icon::before {
  content: ""; position: absolute; top: 50%; left: 50%; width: 13px; height: 13px;
  background: #96C93D; clip-path: polygon(0 0, 100% 0, 100% 100%);
  transform: translate(-50%, -50%) rotate(45deg); transition: transform 200ms ease;
}
.sta-acc .fl-accordion-item-active .fl-accordion-button-icon::before { transform: translate(-50%, -50%) rotate(135deg); }

/* ---- remaining mockup grids that BB's gutter-less columns can't express ---- */
/* About body + registration rail: minmax(0,1.6fr) minmax(260px,1fr), gap clamp(36px,5vw,80px) */
body .fl-page .fl-col-group:has(> .fl-col.sta-aside-card) {
  display: grid !important; grid-template-columns: minmax(0, 1.6fr) minmax(260px, 1fr);
  gap: clamp(36px, 5vw, 80px);
}
/* EMD platform band: minmax(0,1fr) minmax(0,1.4fr) */
body .fl-page .fl-col-group:has(.sta-callout) {
  display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: clamp(36px, 5vw, 80px);
}
body .fl-page .fl-col-group:has(> .fl-col.sta-aside-card)::before,
body .fl-page .fl-col-group:has(> .fl-col.sta-aside-card)::after,
body .fl-page .fl-col-group:has(.sta-callout)::before,
body .fl-page .fl-col-group:has(.sta-callout)::after { display: none !important; }
body .fl-page .fl-col-group:has(> .fl-col.sta-aside-card) > .fl-col,
body .fl-page .fl-col-group:has(.sta-callout) > .fl-col { float: none !important; width: auto !important; max-width: none !important; }
/* Contact tiles: real grid gap instead of per-cell side margins (was 14px off) */
body .fl-page .fl-col-group:has(> .fl-col.sta-tile) {
  display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px;
}
body .fl-page .fl-col-group:has(> .fl-col.sta-tile)::before,
body .fl-page .fl-col-group:has(> .fl-col.sta-tile)::after { display: none !important; }
body .fl-page .fl-col.sta-tile { float: none !important; width: auto !important; max-width: none !important; }
body .fl-page .sta-tile .fl-col-content { margin-left: 0 !important; margin-right: 0 !important; }
@media (max-width: 991.98px) { body .fl-page .fl-col-group:has(> .fl-col.sta-tile) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599.98px) { body .fl-page .fl-col-group:has(> .fl-col.sta-tile) { grid-template-columns: 1fr; } }
/* Footer widget columns: mock grid auto-fit/220px, gap 48px 60px */
body .fl-page .fl-page-footer-widgets .fl-page-footer-widgets-row.row {
  display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: 48px 60px; margin: 0 !important;
}
body .fl-page .fl-page-footer-widgets .fl-page-footer-widgets-row.row::before,
body .fl-page .fl-page-footer-widgets .fl-page-footer-widgets-row.row::after { display: none !important; }
body .fl-page .fl-page-footer-widgets .fl-page-footer-widgets-row.row > [class*="col-"] {
  float: none !important; width: auto !important; max-width: none !important; padding: 0 !important;
}
/* Legal bar: © left, links right with the mock's 12px/30px gaps (theme adds 15px padding) */
body .fl-page .fl-page-footer .fl-page-footer-row.row { display: flex !important; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; margin: 0 !important; }
body .fl-page .fl-page-footer .fl-page-footer-row.row::before,
body .fl-page .fl-page-footer .fl-page-footer-row.row::after { display: none !important; }
body .fl-page .fl-page-footer .fl-page-footer-row.row > [class*="col-"] { float: none !important; width: auto !important; max-width: none !important; padding: 0 !important; text-align: left !important; }
body .fl-page .fl-page-footer .fl-footer-nav .menu, body .fl-page .fl-page-footer .menu { display: flex !important; flex-wrap: wrap; justify-content: flex-end; gap: 12px 30px; margin: 0; padding: 0; list-style: none; }
body .fl-page .fl-page-footer .fl-footer-nav .menu > li, body .fl-page .fl-page-footer .menu > li { float: none !important; margin: 0 !important; }
body .fl-page .fl-page-footer .fl-footer-nav .menu > li > a, body .fl-page .fl-page-footer .menu > li > a { padding: 0 !important; }

/* About leadership band: minmax(280px,1fr) minmax(0,1.5fr), gap clamp(36px,5vw,80px) */
body .fl-page .fl-col-group:has(> .fl-col.sta-photo-frame) {
  display: grid !important; grid-template-columns: minmax(280px, 1fr) minmax(0, 1.5fr);
  gap: clamp(36px, 5vw, 80px); align-items: start;
}
body .fl-page .fl-col-group:has(> .fl-col.sta-photo-frame)::before,
body .fl-page .fl-col-group:has(> .fl-col.sta-photo-frame)::after { display: none !important; }
body .fl-page .fl-col-group:has(> .fl-col.sta-photo-frame) > .fl-col { float: none !important; width: auto !important; max-width: none !important; }
/* EMD lead paragraph: mock caps the prose measure at 62em */
body .fl-page .sta-lead, body .fl-page .sta-prose { max-width: 992px; }
/* ledger titles fill their column so long titles wrap like the mockup */
.sta-ledger-title h3, .sta-eledger-title h3, .sta-feat-title h3, .sta-why-title h3 { width: 100%; }
/* footer: theme adds a bottom offset under the © line */
body .fl-page .fl-page-footer .fl-page-footer-text { padding-bottom: 0 !important; margin-bottom: 0 !important; }
body .fl-page .fl-page-footer .fl-footer-nav, body .fl-page .fl-page-footer .fl-page-footer-nav { margin: 0 !important; padding: 0 !important; }
/* bootstrap clearfix pseudos act as flex items and eat a gap (same trap as the topbar) */
body .fl-page .fl-page-footer .menu::before, body .fl-page .fl-page-footer .menu::after,
body .fl-page .fl-page-footer-widgets .menu::before, body .fl-page .fl-page-footer-widgets .menu::after { display: none !important; }

/* the mockup collapses every .split grid to one column at ≤880px — the grids
   above must do the same or body copy gets squeezed into a narrow column */
@media (max-width: 880px) {
  body .fl-page .fl-col-group:has(> .fl-col.sta-aside-card),
  body .fl-page .fl-col-group:has(.sta-callout),
  body .fl-page .fl-col-group:has(> .fl-col.sta-photo-frame),
  body .fl-page .fl-col-group:has(> .fl-col.sta-tile) {
    grid-template-columns: 1fr !important;
  }
  body .fl-page .fl-col-group:has(.sta-eledger-cell) { grid-template-columns: 1fr !important; gap: 6px; }
}
/* BB still emits per-column width/margin at the responsive breakpoint, which
   shrinks and offsets grid items once a group is a grid — force full track */
@media (max-width: 880px) {
  body .fl-page .fl-col-group:has(> .fl-col.sta-tile) > .fl-col,
  body .fl-page .fl-col-group:has(> .fl-col.sta-aside-card) > .fl-col,
  body .fl-page .fl-col-group:has(> .fl-col.sta-photo-frame) > .fl-col,
  body .fl-page .fl-col-group:has(.sta-callout) > .fl-col,
  body .fl-page .fl-col-group:has(.sta-eledger-cell) > .fl-col,
  body .fl-page .fl-col-group:has(.sta-ledger-cell) > .fl-col {
    width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important;
  }
  /* footer legal row stacks left on mobile like the mockup */
  body .fl-page .fl-page-footer .fl-page-footer-row.row { flex-direction: column; align-items: flex-start; gap: 14px; }
  body .fl-page .fl-page-footer .fl-footer-nav .menu, body .fl-page .fl-page-footer .menu { justify-content: flex-start; }
}
/* single posts: BB's default row width/padding was insetting the body 35px
   inside the 992px article column — let the row fill the column */
.single-post .fl-builder-content .fl-row-content { width: 100% !important; max-width: 100% !important; }
.single-post .fl-builder-content .fl-row-content-wrap { padding: 0 !important; }
.single-post .fl-builder-content .fl-col-group, .single-post .fl-builder-content .fl-col { width: 100% !important; max-width: 100% !important; }
/* article body: mock caps the reading measure at 68ch and starts flush with the
   column (BB column content keeps a 15px inset otherwise) */
.single-post .fl-builder-content .fl-col-content { padding-left: 0 !important; padding-right: 0 !important; }
.single-post .fl-builder-content .fl-rich-text { max-width: none; }
.single-post .fl-builder-content .fl-rich-text > p:not(:first-child),
.single-post .fl-builder-content .fl-rich-text > ul,
.single-post .fl-builder-content .fl-rich-text > ol { max-width: 748px; }
.single-post .fl-content.col-md-12, .single-post .fl-content { padding-left: 0 !important; padding-right: 0 !important; }
/* related-articles rows: date column fixed so titles sit beside it, not below */
.sta-art-more a { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; }
.sta-art-more-date { flex: 0 0 110px; margin-right: 0 !important; }
.sta-art-more-title { flex: 1 1 300px; min-width: 0; }

/* ============ hover corrections (Ryan 08-28) ============ */
/* 1. hero ghost button: mock changes the STROKE only — BB paints #445044 */
body .fl-page .sta-btn-ghost a.fl-button:hover,
body .fl-page .sta-btn-ghost a.fl-button:focus {
  background: transparent !important; background-color: transparent !important;
  border-color: #96C93D !important; color: #F4F3EE !important;
}
/* 2. darker green (olive) for hovers on light/sage grounds — lime is too bright
   there. Dark bands keep lime. */
body .fl-page .sta-band-paper a:hover,
body .fl-page .sta-faq-row a:hover,
body .fl-page .fl-page-footer-widgets a:hover,
body .fl-page .sta-art-link a:hover,
body .fl-page .sta-faq-support a:hover,
body .fl-page .sta-postfeed .fl-post-feed-title a:hover,
body .fl-page .sta-art-more a:hover .sta-art-more-title,
body .fl-page .sta-doc-card a:hover, body .fl-page .sta-tile-val a:hover { color: #59722C !important; }
body .fl-page .sta-art-link a:hover { border-color: #59722C !important; }
/* FAQ question rows hover olive, not lime */
body .fl-page .sta-acc .fl-accordion-button:hover .fl-accordion-button-label,
body .fl-page .sta-acc .fl-accordion-button-label:hover { color: #59722C !important; }
/* 3. whole article row clickable (the "Read →" was a decorative pseudo) */
.sta-postfeed .fl-post-feed-post { position: relative; cursor: pointer; }

.sta-postfeed .fl-post-feed-post:hover .fl-post-feed-title a { color: #59722C; }
.sta-postfeed .fl-post-feed-post:hover::after { color: #59722C; }
/* 4. footer contact links: theme adds text-decoration on hover on top of the
   lime border-bottom, giving a double rule */
body .fl-page .fl-page-footer-widgets a,
body .fl-page .fl-page-footer-widgets a:hover,
body .fl-page .sta-fmono a, body .fl-page .sta-fmono a:hover { text-decoration: none !important; }
/* the decorative "Read →" pseudo sits above the stretched link and swallowed clicks */
.sta-postfeed .fl-post-feed-post::after { pointer-events: none; position: relative; z-index: 0; }

.sta-postfeed .fl-post-feed-meta { position: static; }
/* About registration card: mock runs padding 14/16 per row and is sticky
   (position: sticky; top: 24px) — the sticky was never ported */
.sta-aside-k h6, .sta-aside-k p { padding-top: 14px !important; }
.sta-aside-v p { margin: 0 0 16px !important; }
.sta-aside-card .fl-col-content { position: sticky; top: 24px; }

/* EMD caret list: mock is a 2-col grid, gap 0 clamp(40px,5vw,80px), max-width
   1040px, 34px below — BB's 50/50 columns had no gutter so the rules met in the
   middle and the closing paragraph sat flush against the last rule */
body .fl-page .fl-col-group:has(.sta-caret-ul) {
  display: grid !important; grid-template-columns: 1fr 1fr;
  gap: 0 clamp(40px, 5vw, 80px); max-width: 1040px; margin-bottom: 34px;
}
body .fl-page .fl-col-group:has(.sta-caret-ul)::before,
body .fl-page .fl-col-group:has(.sta-caret-ul)::after { display: none !important; }
body .fl-page .fl-col-group:has(.sta-caret-ul) > .fl-col {
  float: none !important; width: auto !important; max-width: none !important;
}
@media (max-width: 880px) {
  body .fl-page .fl-col-group:has(.sta-caret-ul) { grid-template-columns: 1fr; }
  body .fl-page .fl-col-group:has(.sta-caret-ul) > .fl-col { width: 100% !important; }
}
/* card hover from the mockup: lime-tinted border, 2px lift, soft shadow */
.sta-why-card .fl-col-content, .sta-tile .fl-col-content {
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.sta-why-card .fl-col-content:hover, .sta-tile .fl-col-content:hover {
  border-color: rgba(150,201,61,0.55) !important;
  transform: translateY(-2px); box-shadow: 0 6px 18px rgba(14,26,38,0.06);
}
/* featured card: mock splits it 1fr / 1.7fr (its 42px padding provides the
   separation, so no extra gap) */
body .fl-page .fl-col-group:has(> .fl-col.sta-feat-card) {
  display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); gap: 0;
}
body .fl-page .fl-col-group:has(> .fl-col.sta-feat-card)::before,
body .fl-page .fl-col-group:has(> .fl-col.sta-feat-card)::after { display: none !important; }
body .fl-page .fl-col-group:has(> .fl-col.sta-feat-card) > .fl-col { float: none !important; width: auto !important; max-width: none !important; }
@media (max-width: 880px) {
  body .fl-page .fl-col-group:has(> .fl-col.sta-feat-card) { grid-template-columns: 1fr; }
  body .fl-page .fl-col-group:has(> .fl-col.sta-feat-card) > .fl-col { width: 100% !important; }
}
/* why cards: mock is a 1fr/1fr grid, gap 28, flush with the featured card above
   (the old 14px side margins indented the outer edges and left rows ragged) */
body .fl-page .fl-col-group:has(> .fl-col.sta-why-card) {
  display: grid !important; grid-template-columns: 1fr 1fr; gap: 28px;
}
body .fl-page .fl-col-group:has(> .fl-col.sta-why-card)::before,
body .fl-page .fl-col-group:has(> .fl-col.sta-why-card)::after { display: none !important; }
body .fl-page .fl-col-group:has(> .fl-col.sta-why-card) > .fl-col {
  float: none !important; width: auto !important; max-width: none !important;
}
@media (max-width: 880px) {
  body .fl-page .fl-col-group:has(> .fl-col.sta-why-card) { grid-template-columns: 1fr; }
  body .fl-page .fl-col-group:has(> .fl-col.sta-why-card) > .fl-col { width: 100% !important; }
}
/* the two card rows are separate col-groups — space them like the mock's row gap
   (on the second group only, so there's no trailing margin before the next band) */
body .fl-page .fl-col-group:has(> .fl-col.sta-why-card) + .fl-col-group:has(> .fl-col.sta-why-card) { margin-top: 28px; }
/* gap between the featured card group and the card rows below it (mock: the
   featured card carries margin-bottom: 28px) */
body .fl-page .fl-col-group:has(> .fl-col.sta-feat-card) + .fl-col-group:has(> .fl-col.sta-why-card) { margin-top: 28px; }
/* contact tiles: stretch to equal height like the mockup's grid row */
.sta-tile .fl-col-content { height: 100%; }
/* footer: mock runs nav links at normal line-height (18px) and body at 1.5;
   the inherited 1.6 was making the whole footer ~110px taller */
body .fl-page .fl-page-footer-widgets a { line-height: normal; }
body .fl-page .fl-page-footer-widgets .fl-widget, body .fl-page .fl-page-footer-widgets .fl-widget div { line-height: 1.5; }
/* theme adds 30px top padding on the widgets container and a 40px bottom margin
   per widget — the mock's footer is just its 84/72 band padding */
body .fl-page .fl-page-footer-widgets-container.container { padding-top: 0 !important; padding-bottom: 0 !important; }
body .fl-page .fl-page-footer-widgets .fl-widget { margin-bottom: 0 !important; }
/* theme's 25px post-header margin — the mock's gap comes from the callout's own
   30px top margin */
.single-post .fl-post-header { margin-bottom: 0 !important; }

/* ============ Articles search (native BB Search module) ============ */
/* mock box: right-aligned, hairline, mono 12.5/0.14em, 240px min */
.sta-artsearch .fl-search-form { display: flex; justify-content: flex-end; }
.sta-artsearch .fl-search-form-wrap, .sta-artsearch .fl-search-form-fields { width: auto; }
.sta-artsearch .fl-search-form-input-wrap { min-width: 280px; }
.sta-artsearch input.fl-search-text, .sta-artsearch .fl-search-form-input {
  width: 100%; box-sizing: border-box;
  border: 1px solid rgba(14,26,38,0.16); border-radius: 0; background: transparent;
  padding: 13px 18px; font-family: 'IBM Plex Mono', monospace; font-size: 12.5px;
  letter-spacing: 0.14em; text-transform: uppercase; color: #0E1A26; box-shadow: none;
  transition: border-color .18s ease;
}
.sta-artsearch input.fl-search-text::placeholder { color: rgba(14,26,38,0.65); text-transform: uppercase; }
.sta-artsearch input.fl-search-text:focus { outline: none; border-color: #96C93D; }
@media (max-width: 600px) { .sta-artsearch .fl-search-form-input-wrap { min-width: 0; width: 100%; } }

/* ============ Search results page ============ */
.search .fl-page-content { background: #F4F3EE !important; color: #0E1A26; }
.search .fl-page-content .container { max-width: 100% !important; padding-left: clamp(28px, 8.34vw, 120px) !important; padding-right: clamp(28px, 8.34vw, 120px) !important; }
.search .fl-content { width: 100% !important; max-width: 100% !important; float: none !important; padding: clamp(56px, 6vw, 88px) 0 clamp(64px, 7vw, 96px) !important; }
.search .fl-sidebar { display: none !important; }
/* header */
.search .fl-archive-header { border: none; margin: 0 0 34px; padding: 0; }
.search .fl-archive-title { font-size: clamp(30px, 3.4vw, 46px); line-height: 1.12; font-weight: 800; letter-spacing: -0.02em; color: #0E1A26; margin: 0; }
.search .fl-archive-header::before {
  content: "\25E2  RESULTS"; display: block; margin-bottom: 14px;
  font-family: 'IBM Plex Mono', monospace; font-size: 13px; letter-spacing: 0.22em;
  text-transform: uppercase; color: #59722C;
}
/* results as feed rows, matching the Articles list */
.search .fl-post { position: relative; display: flex; flex-wrap: wrap; gap: 10px 32px; align-items: baseline;
  padding: 26px 0 !important; margin: 0 !important; border: none !important;
  border-bottom: 1px solid rgba(68,80,68,0.28) !important; background: none !important; }
.search .fl-post:first-of-type { border-top: 1px solid rgba(68,80,68,0.28) !important; }
.search .fl-post-header { display: contents; }
.search .fl-post-title { flex: 1 1 300px; min-width: 0; order: 2; margin: 0 !important;
  font-size: 26px !important; font-weight: 600; line-height: 1.28; letter-spacing: -0.012em; }
.search .fl-post-title a { color: #0E1A26; }
.search .fl-post:hover .fl-post-title a { color: #59722C; }
.search .fl-post-meta { flex: 0 0 150px; order: 1; margin: 0 !important;
  font-family: 'IBM Plex Mono', monospace; font-size: 12px; letter-spacing: 0.16em;
  text-transform: uppercase; color: #445044; }
.search .fl-post-author, .search .fl-post-comments, .search .fl-sep { display: none !important; }
.search .fl-post-image, .search .fl-post-thumb, .search .wp-post-image { display: none !important; }
.search .fl-post-content, .search .fl-post-more-link { display: none !important; }
.search .fl-post::after { content: "Read \2192"; pointer-events: none; flex: none; order: 3;
  font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; letter-spacing: 0.1em; color: #59722C; }
/* no results / pagination */
.search .fl-archive-nav, .search .fl-page-nav-search { margin-top: 34px; }

/* BB search module ships its own bordered form wrapper — we want just the input */
.sta-artsearch .fl-search-form, .sta-artsearch .fl-search-form-wrap,
.sta-artsearch .fl-search-form-fields, .sta-artsearch .fl-module-content {
  border: none !important; background: transparent !important; box-shadow: none !important; padding: 0 !important;
}
/* search results: full-bleed content column + proper archive title */
body.search .fl-page .fl-content, body.search .fl-page .fl-content.col-md-9 {
  width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important;
  float: none !important; padding-left: 0 !important; padding-right: 0 !important; border: none !important;
}
body.search .fl-page .row { margin-left: 0 !important; margin-right: 0 !important; }
body.search .fl-page .fl-archive-title {
  font-size: clamp(30px, 3.4vw, 46px) !important; line-height: 1.12 !important;
  font-weight: 800 !important; letter-spacing: -0.02em !important; color: #0E1A26 !important; margin: 0 !important;
}
body.search .fl-page .fl-archive-title { font-size: clamp(30px, 3.4vw, 46px) !important; font-weight: 800 !important; line-height: 1.12 !important; letter-spacing: -0.02em !important; color: #0E1A26 !important; }
body.search .fl-page .fl-archive.container,
body.search .fl-page .fl-page-content .container {
  width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important;
}
/* leftover image-beside wrapper still holds a slot once the thumbnail is hidden */
body.search .fl-post > .fl-post-image-beside-wrap { display: none !important; }
/* eyebrow: use the brand triangle, not a unicode glyph */
body.search .fl-page .fl-archive-header::before {
  content: "RESULTS"; display: flex; align-items: center; gap: 10px;
}
body.search .fl-page .fl-archive-header { position: relative; padding-left: 0; }
body.search .fl-page .fl-archive-header::before { padding-left: 19px; }
body.search .fl-page .fl-archive-header::after {
  content: ""; position: absolute; left: 0; top: 6px;
  width: 0; height: 0; border-left: 9px solid #96C93D; border-bottom: 9px solid transparent;
}
body.search .fl-post > meta, body.search .fl-post > div[itemprop],
body.search .fl-post > div[itemscope], body.search .fl-post > div:empty,
body.search .fl-post-header > meta, body.search .fl-post-header > div[itemprop],
body.search .fl-post-header > div[itemscope] { display: none !important; }
/* no-results state */
body.search .fl-post-header h2, body.search .fl-content > h2 {
  font-size: clamp(24px, 2.4vw, 32px); font-weight: 800; letter-spacing: -0.015em; color: #0E1A26; margin: 34px 0 14px;
}
body.search .fl-content > p { font-size: 18px; line-height: 1.7; color: rgba(14,26,38,0.85); margin: 0 0 24px; max-width: 62ch; }
body.search .fl-content .fl-search-form, body.search .fl-content form[role=search] { max-width: 380px; }
body.search .fl-content input[type=search], body.search .fl-content input.fl-search-text {
  width: 100%; box-sizing: border-box; border: 1px solid rgba(14,26,38,0.16); border-radius: 0; background: transparent;
  padding: 13px 18px; font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; letter-spacing: 0.14em;
  text-transform: uppercase; color: #0E1A26;
}
body.search .fl-content input[type=search]:focus { outline: none; border-color: #96C93D; }
/* the "Nothing Found" block is also an .fl-post but has no date — render it as
   prose, not as a result row */
body.search .fl-post:not(:has(.fl-post-meta)) {
  display: block !important; border: none !important; padding: 34px 0 0 !important;
}
body.search .fl-post:not(:has(.fl-post-meta))::after { content: none !important; }
body.search .fl-post:not(:has(.fl-post-meta)) .fl-post-header { display: block !important; }
body.search .fl-post:not(:has(.fl-post-meta)) .fl-post-title {
  font-size: clamp(24px, 2.4vw, 32px) !important; font-weight: 800; margin: 0 0 14px !important;
}
body.search .fl-post:not(:has(.fl-post-meta)) .fl-post-content { display: block !important; }
body.search .fl-post:not(:has(.fl-post-meta)) .fl-post-content p {
  font-size: 18px; line-height: 1.7; color: rgba(14,26,38,0.85); margin: 0 0 24px; max-width: 62ch;
}
body.search .fl-post:not(:has(.fl-post-meta)) form[role=search] { max-width: 380px; }
body.search .fl-post:not(:has(.fl-post-meta)) input[type=search] {
  width: 100%; box-sizing: border-box; border: 1px solid rgba(14,26,38,0.16); border-radius: 0;
  background: transparent; padding: 13px 18px; font-family: 'IBM Plex Mono', monospace;
  font-size: 12.5px; letter-spacing: 0.14em; color: #0E1A26;
}
body.search .fl-post:not(:has(.fl-post-meta)) input[type=search]:focus { outline: none; border-color: #96C93D; }
/* theme/BB input styles were winning — match the mock box exactly
   (240px, 13/18 padding, 12.5px mono 0.14em, square corners) */
body .fl-page .sta-artsearch .fl-search-form-input-wrap { min-width: 240px; }
body .fl-page .sta-artsearch input.fl-search-text,
body .fl-page .sta-artsearch input[type="search"] {
  width: 100% !important; box-sizing: border-box !important;
  border: 1px solid rgba(14,26,38,0.16) !important; border-radius: 0 !important;
  background: transparent !important; box-shadow: none !important;
  padding: 13px 18px !important; height: auto !important;
  font-family: 'IBM Plex Mono', monospace !important; font-size: 12.5px !important;
  letter-spacing: 0.14em !important; text-transform: uppercase !important;
  color: rgba(14,26,38,0.65) !important; line-height: normal !important;
}
body .fl-page .sta-artsearch input.fl-search-text:focus { border-color: #96C93D !important; color: #0E1A26 !important; }
body .fl-page .sta-artsearch input.fl-search-text::placeholder { color: rgba(14,26,38,0.65); opacity: 1; }
/* uppercase is a placeholder treatment only — what the user types stays as typed */
body .fl-page .sta-artsearch input.fl-search-text,
body .fl-page .sta-artsearch input[type="search"],
body.search .fl-content input[type="search"],
body.search .fl-post:not(:has(.fl-post-meta)) input[type="search"] {
  text-transform: none !important; letter-spacing: 0.06em !important; color: #0E1A26 !important;
}
body .fl-page .sta-artsearch input.fl-search-text::placeholder,
body.search .fl-content input[type="search"]::placeholder,
body.search .fl-post:not(:has(.fl-post-meta)) input[type="search"]::placeholder {
  text-transform: uppercase; letter-spacing: 0.14em; color: rgba(14,26,38,0.65); opacity: 1;
}
/* theme underlines the archive title — the first result row already carries a
   rule, so this stacked a second faint one */
body.search .fl-page .fl-archive-title { border-bottom: none !important; padding-bottom: 0 !important; }
/* ledger rows stack on mobile: the mock's vertical padding belongs to the ROW,
   so keeping it on each cell tripled it (3 cells × 26/34px top+bottom) */
@media (max-width: 880px) {
  body .fl-page .sta-eledger-cell .fl-col-content { padding-top: 0 !important; padding-bottom: 0 !important; }
  body .fl-page .fl-col-group:has(.sta-eledger-cell) { padding: 26px 0; gap: 16px; }
  body .fl-page .sta-ledger-cell .fl-col-content { padding-top: 0 !important; padding-bottom: 0 !important; }
  body .fl-page .fl-col-group:has(.sta-ledger-cell) { padding: 34px 0; gap: 10px; }
}
/* ledger numerals: rich-text <p> inherited a taller line-height + margins */
.sta-eledger-num p, .sta-eledger-num h3 { margin: 0 !important; line-height: 1.3 !important; }
.sta-ledger-num p, .sta-ledger-num h3 { margin: 0 !important; }
@media (max-width: 880px) {
  /* stacked ledger items: spacing comes from the grid gap, not module margins */
  body .fl-page .sta-eledger-cell .fl-module, body .fl-page .sta-ledger-cell .fl-module { margin: 0 !important; }
}
@media (max-width: 880px) {
  body .fl-page .sta-eledger-cell .fl-module, body .fl-page .sta-eledger-cell .fl-module-content,
  body .fl-page .sta-ledger-cell .fl-module, body .fl-page .sta-ledger-cell .fl-module-content { padding: 0 !important; }
}
/* registration strip: cells must stretch to the row height or each divider only
   spans its own (shorter) cell — the mock's grid stretches them */
body .fl-page .fl-col-group:has(> .fl-col.sta-reg-col) { display: flex; align-items: stretch; flex-wrap: wrap; }
body .fl-page .fl-col-group:has(> .fl-col.sta-reg-col)::before,
body .fl-page .fl-col-group:has(> .fl-col.sta-reg-col)::after { display: none !important; }
body .fl-page .fl-col.sta-reg-col { float: none !important; display: flex; }
body .fl-page .sta-reg-col .fl-col-content { height: auto; width: 100%; }
@media (max-width: 767.98px) {
  body .fl-page .fl-col-group:has(> .fl-col.sta-reg-col) { display: block; }
  body .fl-page .fl-col.sta-reg-col { display: block; width: 100% !important; }
}
/* mobile menu open: mock puts a 4px lime rule under the LOGO ROW (the expanded
   menu then carries its own lime rule at the bottom), and 38px logo→first item */
@media (max-width: 991.98px) {
  body .fl-page .fl-page-header:has(.fl-page-nav-collapse.in) .fl-page-header-logo-col,
  body .fl-page .fl-page-header:has(.fl-page-nav-collapse.show) .fl-page-header-logo-col {
    border-bottom: 4px solid #96C93D; padding-bottom: 26px; margin-bottom: 0;
  }
  body .fl-page .fl-page-nav-collapse {
    padding: 8px 0 26px !important; margin-top: 0 !important; border-top: none !important;
  }
}
@media (max-width: 880px) {
  /* contact tiles: the grid gap already spaces them — the extra margin doubled it */
  body .fl-page .fl-col.sta-tile { margin-bottom: 0 !important; }
  /* featured card stacks: move the dark ground + lime rule to the GROUP so the
     rule spans the whole card instead of just the title column */
  body .fl-page .fl-col-group:has(> .fl-col.sta-feat-card) {
    background: #0E1A26; border-left: 3px solid #96C93D; gap: 0;
  }
  body .fl-page .fl-col.sta-feat-card { background: transparent !important; border-left: none !important; }
  body .fl-page .fl-col.sta-feat-card:first-child .fl-col-content { padding-bottom: 0 !important; }
  body .fl-page .fl-col.sta-feat-card:last-child .fl-col-content { padding-top: 11px !important; }
}
/* global nav: lime underline draws in on hover (mock: right 100% → 0) */
@media (min-width: 992px) {
  body .fl-page .fl-page-nav .navbar-nav > li > a { position: relative; }
  body .fl-page .fl-page-nav .navbar-nav > li:not(.current-menu-item):not(.sta-nav-cta) > a::after {
    content: ""; position: absolute; left: 0; right: 100%; bottom: 3px; height: 2px;
    background: #96C93D; transition: right .18s ease;
  }
  body .fl-page .fl-page-nav .navbar-nav > li:not(.current-menu-item):not(.sta-nav-cta) > a:hover::after { right: 0; }
}

/* ---------------------------------------------------------------------------
   Scroll reveal — BB's native Animation field ("Fade Up") retuned to the mock.
   The STYLE, DELAY and DURATION for every animated element live in Beaver
   Builder (Advanced → Animation), so they stay visible and editable. Only the
   travel distance and easing are set here: BB's stock fade-up rises 50% of the
   element's OWN height, which on a full-width band is a ~300px lurch, where the
   mockup rises a restrained 14px (bands) / 16px (hero).
   --------------------------------------------------------------------------- */
@keyframes sta-fade-up-band { from { opacity: 0; transform: translate3d(0, 14px, 0); } to { opacity: 1; transform: none; } }
@keyframes sta-fade-up-hero { from { opacity: 0; transform: translate3d(0, 16px, 0); } to { opacity: 1; transform: none; } }
/* bands: 0.55s ease, matching the mock's IntersectionObserver reveal */
body .fl-page .fl-row.fl-animated.fl-fade-up {
  animation-name: sta-fade-up-band; animation-timing-function: ease;
}
/* hero entrance: the mock's softer spring curve */
body .fl-page .fl-module.fl-animated.fl-fade-up {
  animation-name: sta-fade-up-hero; animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
/* Accessibility: the mockup gates every reveal behind prefers-reduced-motion;
   BB does not. BB prints a per-node inline <style> setting opacity:0, so the
   override has to be !important or reduced-motion users get a blank page. */
@media (prefers-reduced-motion: reduce) {
  body .fl-page .fl-animation,
  body .fl-page .fl-animation:not(.fl-animated) { opacity: 1 !important; animation: none !important; }
}
/* Single article: this template is theme markup, not a BB layout, so it has no
   Animation field to set. Its two bands reveal through the same mechanism the
   mockup itself uses — identical 0.55s / 14px / ease. */
@media (prefers-reduced-motion: no-preference) {
  body.sta-js-reveal.single-post .sta-reveal {
    opacity: 0; transform: translateY(14px); transition: opacity .55s ease, transform .55s ease;
  }
  body.sta-js-reveal.single-post .sta-reveal.sta-in { opacity: 1; transform: none; }
}

/* Article-feed pagination. bb-theme ships grey rounded boxes in the body face;
   this brings it into the design language — mono, uppercase, square, hairline
   borders, with the current page filled in ink. It only appears past ten
   articles, which is why it went unstyled through the whole build. */
body .fl-page .fl-builder-pagination { margin: 52px 0 0; text-align: center; }
body .fl-page .fl-builder-pagination ul.page-numbers {
  display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 8px;
  margin: 0; padding: 0; list-style: none;
  border: 0; background: none;      /* the <ul> carries .page-numbers too */
}
body .fl-page .fl-builder-pagination ul.page-numbers li { margin: 0; padding: 0; list-style: none; }
body .fl-page .fl-builder-pagination li > .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; height: 44px; padding: 0 14px;          /* 44px keeps it tappable */
  font-family: 'IBM Plex Mono', monospace; font-size: 12px; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase; line-height: 1;
  color: #0E1A26; background: transparent; border-radius: 0;
  border: 1px solid rgba(14,26,38,0.16);
  transition: color .15s ease, border-color .15s ease, background-color .15s ease;
}
body .fl-page .fl-builder-pagination li > a.page-numbers:hover {
  color: #59722C; border-color: rgba(89,114,44,0.5); background: rgba(150,201,61,0.09);
}
body .fl-page .fl-builder-pagination li > .page-numbers.current {
  color: #F4F3EE; background: #0E1A26; border-color: #0E1A26;
}
body .fl-page .fl-builder-pagination li > .page-numbers.dots { border-color: transparent; }
