:root{
    --bp-green:#ACD04D; --bp-green-tint:#d6e8a6; --bp-green-wash:#e6f1ca;
    --bp-blue:#2E368F; --bp-ink:#1a1c2e;
  }
  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; scroll-padding-top:118px; }
  body{ margin:0; font-family:'Poppins',sans-serif; color:#1a1c2e; background:#ffffff; -webkit-font-smoothing:antialiased; overflow-x:clip; }
  a{ color:#2E368F; text-decoration:none; }
  a:hover{ color:#677f2a; }
  img{ max-width:100%; }
  ::selection{ background:#ACD04D; color:#20242e; }
  @keyframes bpKen{ 0%{ transform:scale(1.08) translate(0,0);} 100%{ transform:scale(1.22) translate(-2%,-3%);} }
  @keyframes bpFloat{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-14px);} }
  @keyframes bpMarquee{ 0%{ transform:translateX(0);} 100%{ transform:translateX(-50%);} }
  @keyframes bpBlob{ 0%,100%{ border-radius:42% 58% 63% 37% / 42% 45% 55% 58%; } 50%{ border-radius:58% 42% 37% 63% / 55% 58% 42% 45%; } }
  @keyframes bpSheen{ 0%{ transform:translateX(-120%) skewX(-18deg);} 60%,100%{ transform:translateX(320%) skewX(-18deg);} }
  @keyframes bpSpin{ to{ transform:rotate(360deg); } }
  /* trusted-by wordmarks: uppercase + tracking normalises mixed-case company names */
  .bp-co{ flex:0 0 auto; font-family:'Space Grotesk',sans-serif; font-size:14px; font-weight:600; letter-spacing:.11em; text-transform:uppercase; color:#6e7691; white-space:nowrap; }
  .bp-co-dot{ flex:0 0 auto; width:5px; height:5px; border-radius:50%; background:#677f2a; }
  .bp-underline{ background-image:linear-gradient(#ACD04D,#ACD04D); background-size:0% 3px; background-repeat:no-repeat; background-position:0 100%; transition:background-size .35s ease; }
  .bp-nav-link:hover{ color:#2E368F; }
  .bp-nav-link:hover .bp-underline,.bp-nav-link:hover.bp-underline{ background-size:100% 3px; }
  .bp-business-hours{ margin-left:auto; display:inline-flex; align-items:center; gap:8px; color:#fff; opacity:.9; white-space:nowrap; }
  .bp-business-hours i{ color:#ACD04D; }
  .bp-footer-grid .bp-nav-link:hover{ color:#ACD04D; }
  .bp-footer-credits{ display:flex; flex-direction:column; gap:7px; }
  .bp-footer-heart{ color:#f28b82; margin:0 3px; }
  .bp-footer-location{ display:inline-flex; align-items:center; gap:7px; color:inherit; }
  .bp-footer-place{ display:flex; flex-direction:column; align-items:flex-end; gap:7px; }
  .bp-footer-tagline{ color:#8f94b4; }
  .bp-footer-accessibility{ margin:20px 0 0; padding-top:20px; border-top:1px solid rgba(255,255,255,.08); text-align:center; font-size:12.5px; color:#8f94b4; line-height:1.5; }
  .bp-footer-accessibility i{ margin-right:7px; color:#ACD04D; }
  /* manual motion switch — border is .40 alpha, not .22, so the control's own
     boundary clears 3:1 on the footer (1.4.11); .22 measured 1.96:1 */
  .bp-footer-motion{ margin-top:14px; text-align:center; }
  .bp-motion-toggle{ display:inline-flex; align-items:center; gap:9px; padding:9px 18px; border:1px solid rgba(255,255,255,.40); border-radius:50rem; background:none; color:#c8ccdd; font-family:inherit; font-size:13px; font-weight:600; cursor:pointer; }
  .bp-motion-toggle:hover{ border-color:#ACD04D; color:#fff; }
  .bp-motion-toggle i{ font-size:17px; line-height:1; margin:0; }
  .bp-motion-toggle[aria-pressed="true"]{ border-color:#ACD04D; color:#fff; }
  .bp-motion-toggle[aria-pressed="true"] i{ color:#ACD04D; }

  /* interactions ported from the prototype's hover handlers → CSS */
  .bp-btn{ transition:transform .18s ease, box-shadow .25s ease, background .2s ease; }
  .bp-btn:hover{ color:#20242e; transform:translateY(-2px); box-shadow:0 18px 40px -10px rgba(172,208,77,1); }
  .bp-ghost{ transition:background .2s ease, border-color .2s ease; }
  .bp-ghost:hover{ color:#fff; background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.6); }
  .bp-prod{ transition:transform .35s ease, box-shadow .35s ease; }
  .bp-prod:hover{ transform:translateY(-8px); box-shadow:0 28px 50px -26px rgba(0,0,0,.7); }
  .bp-prod:hover img{ transform:scale(1.08); }
  .bp-lift{ transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
  .bp-lift:hover{ transform:translateY(-6px); box-shadow:0 22px 44px -28px rgba(20,26,70,.6); border-color:#d7e2b2; }
  #bp-ind-grid .bp-lift > div:first-child{ transition:transform .3s cubic-bezier(.2,.8,.2,1), background-color .3s ease; }
  #bp-ind-grid .bp-lift:hover > div:first-child{ transform:translateY(-3px) scale(1.06); background:#e6f1ca; }
  .bp-growth-story{ margin-top:56px; padding:34px 38px; display:grid; grid-template-columns:auto 1fr; gap:24px; align-items:start; border-radius:24px; background:linear-gradient(120deg,#171d50,#2E368F); box-shadow:0 28px 56px -36px rgba(20,26,70,.8); }
  .bp-growth-icon{ display:flex; align-items:center; justify-content:center; width:58px; height:58px; border-radius:17px; background:#ACD04D; color:#20242e; font-size:23px; }
  .bp-growth-eyebrow{ margin:0 0 8px; color:#cfe58f; font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
  .bp-growth-story h3{ margin:0 0 14px; color:#fff; font-size:27px; line-height:1.25; }
  .bp-growth-story p{ margin:0 0 12px; color:#d6d9ec; font-size:15.5px; line-height:1.7; }
  .bp-growth-story .bp-growth-promise{ margin:18px 0 0; color:#ACD04D; font-weight:700; }
  .bp-eco{ transition:transform .3s ease, background .3s ease, border-color .3s ease; }
  .bp-eco:hover{ transform:translateY(-4px); background:rgba(255,255,255,.09); border-color:rgba(172,208,77,.4); }
  .bp-wa{ transition:transform .18s ease, box-shadow .25s ease; }
  .bp-wa:hover{ color:#0b0e26; transform:translateY(-2px); box-shadow:0 18px 34px -10px rgba(37,211,102,1); }
  .bp-whatsapp-float{ position:fixed; right:24px; bottom:24px; z-index:80; display:flex; align-items:center; justify-content:center; width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff; font-size:27px; box-shadow:0 14px 34px -10px rgba(37,211,102,.9); transition:opacity .25s ease, transform .25s ease, box-shadow .25s ease; }
  .bp-whatsapp-float:hover{ color:#fff; transform:translateY(-3px) scale(1.04); box-shadow:0 18px 38px -10px rgba(37,211,102,1); }
  .bp-whatsapp-float.is-hidden{ opacity:0; transform:translateY(14px) scale(.92); pointer-events:none; }
  .bp-input{ transition:border-color .2s, box-shadow .2s; }
  .bp-input:focus{ border-color:#80a02a; box-shadow:0 0 0 4px rgba(172,208,77,.22); }
  .bp-recaptcha-notice{ margin:14px auto 0; max-width:48ch; color:#6f7591; font-size:11px; line-height:1.55; text-align:center; }
  .bp-recaptcha-notice a{ color:#5b6076; text-decoration:underline; text-underline-offset:2px; }
  .bp-recaptcha-notice a:hover{ color:#2E368F; }
  .grecaptcha-badge{ visibility:hidden !important; }
  /* both top bars stick together on md+ */
  .bp-topstack{ position:sticky; top:0; z-index:60; }
  /* thin compact nav that slides in after scrolling past the header on mobile */
  .bp-sticky-nav{ position:fixed; top:0; left:0; right:0; z-index:70; background:rgba(255,255,255,.6); backdrop-filter:blur(20px) saturate(180%); -webkit-backdrop-filter:blur(20px) saturate(180%); border-bottom:1px solid rgba(255,255,255,.55); box-shadow:0 10px 30px -16px rgba(20,26,70,.5); transform:translateY(-102%); visibility:hidden; transition:transform .3s ease, visibility 0s linear .3s; }
  .bp-sticky-nav.bp-show{ transform:translateY(0); visibility:visible; transition:transform .3s ease, visibility 0s linear 0s; }
  @media (min-width:768px){ .bp-sticky-nav{ display:none !important; } }
  @media (max-width:767px){ .bp-topstack{ position:static; } }
  .bp-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; overflow:hidden; }
  .bp-spin{ display:inline-block; width:18px; height:18px; border:2.5px solid rgba(32,36,46,.35); border-top-color:#20242e; border-radius:50%; animation:bpSpin .7s linear infinite; }

  @media (max-width:1000px){ .bp-stats-grid{ grid-template-columns:repeat(2,1fr) !important; gap:8px !important; } .bp-stats-grid > *{ border-right:none !important; } .bp-footer-grid{ grid-template-columns:1fr 1fr !important; gap:32px !important; } }
  @media (max-width:860px){ .bp-desktop-nav{ display:none !important; } .bp-hamburger{ display:inline-flex !important; } .bp-hero-h1{ font-size:44px !important; } .bp-section-pad{ padding-left:22px !important; padding-right:22px !important; } .bp-split{ grid-template-columns:1fr !important; gap:40px !important; } .bp-hide-sm{ display:none !important; } .bp-sec-y{ padding-top:64px !important; padding-bottom:64px !important; } main h2{ font-size:32px !important; } }
  @media (max-width:560px){ .bp-hero-h1{ font-size:33px !important; } .bp-hero{ min-height:auto !important; } .bp-hero-pad{ padding-top:60px !important; padding-bottom:64px !important; } main h2{ font-size:27px !important; } .bp-lead{ font-size:17px !important; } .bp-section-pad{ padding-left:16px !important; padding-right:16px !important; } .bp-footer-grid{ grid-template-columns:1fr !important; gap:28px !important; } .bp-footer-place{ align-items:flex-start; } .bp-whatsapp-float{ right:16px; bottom:16px; width:54px; height:54px; font-size:25px; } .bp-growth-story{ margin-top:40px; padding:28px 24px; grid-template-columns:1fr; gap:18px; } .bp-growth-story h3{ font-size:23px; } .bp-stat-num{ font-size:38px !important; } .bp-cta-wrap > a{ width:100% !important; justify-content:center !important; } .bp-eco-grid{ grid-template-columns:1fr 1fr !important; } .bp-form-grid{ grid-template-columns:1fr !important; gap:14px !important; } #quoteSubmit{ font-size:15px !important; padding:13px !important; box-shadow:0 8px 20px -10px rgba(172,208,77,.8) !important; } .bp-header-cta{ font-size:13px !important; padding:9px 15px !important; gap:6px !important; white-space:nowrap !important; box-shadow:0 6px 16px -8px rgba(172,208,77,.8) !important; } .bp-header-cta i{ display:none !important; } }
  @media (max-width:380px){ .bp-stats-grid{ grid-template-columns:1fr !important; } }
  @media (prefers-reduced-motion:reduce){ *{ animation:none !important; } html{ scroll-behavior:auto; } }
/* Extracted page layout utilities */
.u-home-038b6c15{background:#f3f5f9; border:1px solid #e6e9f0; color:#2E368F; font-weight:600; font-size:15px; padding:12px 24px; border-radius:50rem; cursor:pointer;}
.u-home-048161ca{background:#fff; border:1px solid #ebedf3; border-radius:22px; padding:34px 32px; box-shadow:0 18px 40px -30px rgba(20,26,70,.5); display:flex; flex-direction:column;}
.u-home-0f94944a{font-family:'Space Grotesk',sans-serif; font-size:19px; font-weight:700; color:#fff; margin:0 0 5px;}
.u-home-11271022{font-size:66px; line-height:1.03; font-weight:800; color:#fff; margin:0 0 22px; max-width:15ch; letter-spacing:-.02em;}
.u-home-12046c15{font-weight:700; font-size:15px; color:#1c2033;}
.u-home-158f2714{font-size:44px; line-height:1.1; font-weight:800; color:#171a2b; margin:0; letter-spacing:-.02em;}
.u-home-15e631ed{color:#ACD04D; font-size:15px; margin-bottom:16px; letter-spacing:2px;}
.u-home-1882f076{width:100%; height:100%; object-fit:cover; object-position:center 40%;}
.u-home-192464d8{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.u-home-1a03af8f{width:100%; padding:13px 15px; border:1px solid #8795b5; border-radius:12px; font-family:inherit; font-size:15px; outline:none; background:#fff; color:#20242e;}
.u-home-1a93d187{color:#2E368F; font-weight:600; font-size:15px;}
.u-home-1af065a0{position:relative; overflow:hidden; background:linear-gradient(165deg,#0c2417 0%,#123a24 52%,#0a1f14 100%);}
.u-home-1f2de121{background:#ACD04D; color:#20242e; font-weight:700; font-size:15px; padding:11px 22px; border-radius:50rem; display:inline-flex; align-items:center; gap:9px; box-shadow:0 8px 22px -8px rgba(172,208,77,.85);}
.u-home-1f7b30cf{position:relative; background:#ACD04D; color:#20242e; font-weight:700; font-size:17px; padding:16px 32px; border-radius:50rem; display:inline-flex; align-items:center; gap:11px; box-shadow:0 14px 30px -10px rgba(172,208,77,.7);}
.u-home-1f914279{margin-left:auto; display:flex; align-items:center; gap:14px;}
.u-home-207bf6bb{color:#ACD04D; font-size:22px;}
.u-home-20b9cc11{font-size:13px; font-weight:700; letter-spacing:.1em; color:#677f2a; margin-bottom:16px;}
.u-home-21d91b70{display:block;}
.u-home-23632f4c{font-size:26px; font-weight:800; color:#171a2b; margin:0 0 10px;}
.u-home-239316da{font-size:17px; line-height:1.65; color:#4a4f66; margin:0 0 28px;}
.u-home-2560daef{width:100%; background:#ACD04D; color:#20242e; font-weight:700; font-size:17px; padding:16px; border:none; border-radius:50rem; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:10px; box-shadow:0 14px 30px -12px rgba(172,208,77,.9);}
.u-home-2805f7da{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.u-home-2b19ebb1{font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;}
.u-home-2cd036a3{display:inline-block; font-size:13px; font-weight:700; letter-spacing:.1em; color:#677f2a; margin-bottom:16px;}
.u-home-2cd71e0b{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.u-home-32518a7c{font-size:44px; line-height:1.1; font-weight:800; color:#171a2b; margin:0 auto; letter-spacing:-.02em; max-width:20ch;}
.u-home-32c01266{width:46px; height:46px; border-radius:50%; background:#2E368F; color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:16px;}
.u-home-372358e1{width:48px; height:48px; border-radius:14px; background:#fff; border:1px solid #e6e9f0; display:flex; align-items:center; justify-content:center; color:#2E368F; font-size:18px;}
.u-home-3795dbb8{font-weight:600; color:#2b2f45; font-size:15px;}
.u-home-38c53de1{height:52px; width:auto;}
.u-home-3aa71b68{margin-top:12px; font-weight:600; font-size:13px; color:#ACD04D;}
.u-home-3adc680d{display:flex; align-items:center; gap:28px; width:max-content; animation:bpMarquee 56s linear infinite;}
.u-home-3d43ebb9{max-width:100%; overflow-x:clip; font-family:'Poppins',sans-serif;}
.u-home-3d8c7026{max-width:1280px; margin:0 auto; padding:8px 20px; display:flex; align-items:center; gap:12px;}
.u-home-3e21bba3{max-width:1280px; margin:0 auto; padding:12px 40px; display:flex; align-items:center; gap:30px;}
.u-home-3e90531d{display:inline-flex; align-items:center; gap:9px; background:rgba(172,208,77,.14); border:1px solid rgba(172,208,77,.34); color:#c9e58f; padding:7px 15px; border-radius:50rem; font-size:12.5px; font-weight:700; letter-spacing:.08em; margin-bottom:20px;}
.u-home-3eb2d0d9{text-align:center; margin-bottom:52px;}
.u-home-3f0728b3{width:52px; height:52px; border-radius:14px; background:#eef4dc; color:#5f8010; display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:20px;}
.u-home-408efa5b{display:none; margin-bottom:16px; font-size:14px; color:#b3261e; background:#fdecea; border:1px solid #f6c9c4; border-radius:12px; padding:12px 15px;}
.u-home-4224b68a{display:flex; flex-direction:column; gap:12px; font-size:14.5px; color:#8f94b4;}
.u-home-45297abf{text-align:center; padding:22px 12px;}
.u-home-485ed7aa{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.u-home-48d7216f{font-size:44px; line-height:1.1; font-weight:800; color:#171a2b; margin:0 auto; letter-spacing:-.02em; max-width:22ch;}
.u-home-4a02d34d{border:1px solid #ebedf3; border-radius:20px; padding:34px 28px; background:#fff;}
.u-home-4a65a118{font-size:42px; line-height:1.08; font-weight:800; color:#171a2b; margin:0 0 20px; letter-spacing:-.02em;}
.u-home-4dba3886{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}
.u-home-4f1925a8{font-size:18px;}
.u-home-4f290cde{font-size:20px; font-weight:700; color:#1c2033; margin:0 0 10px;}
.u-home-51fbdc4c{position:relative; z-index:1; width:100%; border-radius:22px; box-shadow:0 30px 60px -28px rgba(20,26,70,.55); object-fit:cover; aspect-ratio:4/3;}
.u-home-540a159c{font-size:16px; color:#5b6076; margin:0 0 26px; line-height:1.6;}
.u-home-54adb9ad{font-size:17.5px; line-height:1.7; color:#4a4f66; margin:0 0 20px;}
.u-home-56bdfa4d{position:relative; border-radius:20px; overflow:hidden; background:#161b3d; border:1px solid rgba(255,255,255,.07); cursor:default;}
.u-home-58fd0a1c{background:#0e1230; padding:96px 0; position:relative; overflow:hidden;}
.u-home-59166ba9{display:flex; align-items:center;}
.u-home-5a8bccab{position:relative; max-width:1280px; margin:0 auto; padding:0 40px;}
.u-home-5c73c859{font-size:17.5px; line-height:1.7; color:#cfe0c9; margin:0 0 30px; max-width:52ch;}
.u-home-602084f0{display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:20px; margin-bottom:48px;}
.u-home-620bd475{width:56px; height:56px; border-radius:16px; background:#eef4dc; color:#5f8010; display:flex; align-items:center; justify-content:center; font-size:24px; margin-bottom:20px;}
.u-home-626a0d6b{font-size:13px; color:#707592;}
.u-home-62ed41e4{background:linear-gradient(180deg,#fff, #f7f8fb); padding:64px 0;}
.u-home-645096db{color:#20242e;}
.u-home-6461b14f{color:#fff; font-weight:600; font-size:15.5px; line-height:1.2;}
.u-home-669c1484{font-size:44px; line-height:1.08; font-weight:800; color:#fff; margin:0; letter-spacing:-.02em;}
.u-home-6847c0a4{flex:1; height:1px; background:#e6e9f0;}
.u-home-686cfabf{display:inline-flex; align-items:center; gap:11px; background:#25D366; color:#0b0e26; font-weight:700; font-size:14.5px; padding:12px 20px; border-radius:50rem; box-shadow:0 12px 26px -12px rgba(37,211,102,.8);}
.u-home-6906387d{color:#ACD04D; width:18px;}
.u-home-6924266b{width:100%; padding:13px 15px; border:1px solid #8795b5; border-radius:12px; font-family:inherit; font-size:15px; outline:none; resize:vertical;}
.u-home-69bcf2f4{display:block; font-size:12.5px; color:#6f7591;}
.u-home-6c28d089{font-size:16px;}
.u-home-6c9773b4{max-width:1180px; margin:0 auto; padding:0 40px; display:grid; grid-template-columns:repeat(5,1fr); gap:24px;}
.u-home-6df06caa{display:flex; align-items:center; gap:13px;}
.u-home-70981ef4{max-width:1280px; margin:0 auto; padding:9px 40px; display:flex; flex-wrap:wrap; gap:8px 26px; align-items:center;}
.u-home-714a50e5{color:#fff; display:inline-flex; align-items:center; gap:7px;}
.u-home-716d8b6a{display:block; margin-bottom:22px;}
.u-home-72d3e4d1{width:36px; height:36px; border-radius:10px; background:#e6f1ca; color:#5f8010; display:flex; align-items:center; justify-content:center; font-size:16px;}
.u-home-73a72897{position:relative; z-index:3; max-width:1280px; margin:0 auto; padding:96px 40px; width:100%;}
.u-home-73f4eddb{color:#ACD04D; font-size:13.5px; font-weight:600;}
.u-home-7638b57f{display:grid; grid-template-columns:1.05fr 1fr; gap:64px; align-items:center;}
.u-home-7876ea64{font-size:14.5px; line-height:1.6; max-width:34ch; margin:0 0 22px; color:#8f94b4;}
.u-home-790b4b56{font-size:13px; font-weight:700; letter-spacing:.1em; color:#ACD04D; margin-bottom:14px;}
.u-home-7c4f4b97{position:absolute; inset:0; background:linear-gradient(105deg, rgba(14,18,48,.94) 0%, rgba(20,26,70,.78) 42%, rgba(14,18,48,.35) 100%);}
.u-home-81131a1b{width:100%; padding:13px 15px; border:1px solid #8795b5; border-radius:12px; font-family:inherit; font-size:15px; outline:none;}
.u-home-818c714d{display:grid; grid-template-columns:1.02fr .98fr; gap:60px; align-items:center;}
.u-home-83458ffd{height:36px; width:auto;}
.u-home-84f6d69e{background:#fff; border-bottom:1px solid #f0f1f5; padding:34px 0;}
.u-home-85832e85{display:flex; flex-direction:column; gap:12px; font-size:14.5px;}
.bp-footer-sol{display:block; column-count:2; column-gap:28px;}
.bp-footer-sol .bp-nav-link{display:block; margin:0 0 12px; break-inside:avoid;}
@media (max-width:560px){ .bp-footer-sol{ column-count:1; } }
.u-home-8770f98e{position:relative; z-index:2; margin-top:-46px; margin-left:24px; width:min(300px,80%); background:#2E368F; color:#fff; border-radius:18px; padding:22px 24px; box-shadow:0 24px 44px -18px rgba(20,26,70,.6);}
.u-home-87db2275{position:relative;}
.u-home-87ee2986{font-size:14px; color:#c6cbe6; line-height:1.5;}
.u-home-88d23e22{position:absolute; inset:-18px -18px auto auto; width:70%; height:70%; background:radial-gradient(circle at 70% 30%, rgba(172,208,77,.28), transparent 70%); filter:blur(8px); z-index:0;}
.u-home-890ed1b1{color:#9fa4c4; font-size:12.5px;}
.u-home-8b938101{position:absolute; top:-120px; right:-80px; width:420px; height:420px; background:radial-gradient(circle, rgba(172,208,77,.35), transparent 68%); filter:blur(10px);}
.u-home-8fec874c{display:block; font-size:13px; font-weight:600; color:#3a3f57; margin-bottom:7px;}
.u-home-90d1be25{display:flex; align-items:center; gap:14px;}
.u-home-95ce434e{font-size:20px; line-height:1.55; color:#c9cde3; max-width:56ch; margin:0 0 38px; font-weight:300;}
.u-home-960d701a{display:grid; grid-template-columns:.92fr 1.08fr; gap:56px; align-items:start;}
.u-home-98192a61{font-size:13px; font-weight:700; letter-spacing:.1em; color:#677f2a; margin-bottom:14px;}
.u-home-98a7bba1{font-size:16.5px; line-height:1.65; color:#33384f; margin:0 0 26px; flex:1;}
.u-home-9c35402f{max-width:1220px; margin:0 auto; padding:96px 40px;}
.u-home-9c5a0d16{font-size:20px; font-weight:700; color:#fff; margin:0 0 9px;}
.u-home-9e69e554{display:flex; align-items:center; gap:16px; margin:0 0 28px; color:#6f7591;}
.u-home-9fba240c{color:#a7abc7;}
.u-home-a044a27a{color:#20242e; background:#ACD04D; font-weight:700; font-size:16px; padding:15px 28px; border-radius:50rem; display:inline-flex; align-items:center; gap:10px; box-shadow:0 14px 32px -12px rgba(172,208,77,.7);}
.u-home-a07a574d{font-size:15px; color:#5b6076; margin-top:12px; font-weight:500;}
.u-home-a0d3e1ed{text-align:center; padding:22px 12px; border-right:1px solid #eceef3;}
.u-home-a1618928{display:inline-flex; width:42px; height:42px; border-radius:12px; background:rgba(172,208,77,.16); color:#ACD04D; align-items:center; justify-content:center; font-size:18px; margin-bottom:14px;}
.u-home-a19b3a69{display:block; margin-bottom:16px;}
.u-home-aa917583{display:flex; align-items:center; gap:16px; color:#20242e;}
.u-home-ac47c9c5{width:100%; height:100%; object-fit:cover; animation:bpKen 22s ease-in-out infinite alternate; opacity:.55;}
.u-home-ae462cff{position:relative; min-height:82vh; display:flex; align-items:center; overflow:hidden; background:#0e1230;}
.u-home-aeb77440{background:#ACD04D; color:#20242e; font-weight:700; font-size:17px; padding:16px 30px; border-radius:50rem; display:inline-flex; align-items:center; gap:11px; box-shadow:0 14px 34px -10px rgba(172,208,77,.9);}
.u-home-afc64763{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:24px;}
.u-home-b1896050{display:none; align-items:center; justify-content:center; width:44px; height:44px; border:none; background:#f3f5f9; border-radius:12px; cursor:pointer; color:#20242e; font-size:18px;}
.u-home-b2f3074b{margin-top:52px; background:linear-gradient(100deg,#2E368F,#3a44b0); border-radius:24px; padding:40px 44px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:22px; position:relative; overflow:hidden;}
.u-home-b35633dc{border-top:1px solid rgba(255,255,255,.08); margin-top:44px; padding-top:24px; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:13px; color:#757a98;}
.u-home-b4bce78f{text-align:center; padding:40px 10px;}
.u-home-b56498cc{font-size:17.5px; line-height:1.7; color:#4a4f66; margin:0 0 32px;}
.u-home-b59f58d3{font-size:30px; font-weight:800; color:#fff; margin:0 0 6px;}
.u-home-b6ac8786{color:#a9aecb; font-size:16px; max-width:38ch; margin:0;}
.u-home-bd6f51b1{background:#0b0e26; color:#a7abc7; padding:64px 0 30px;}
.u-home-bd959caa{background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.12); border-radius:16px; padding:20px 20px;}
.u-home-bdc8ab4d{display:flex; align-items:center; gap:30px; margin-left:14px; font-weight:500; font-size:15px; color:#20242e;}
.u-home-be0dadcb{display:flex; flex-direction:column; gap:20px;}
.u-home-bf6034a3{background:linear-gradient(180deg,#f7f8fb,#eef1f7); padding:96px 0;}
.u-home-c0d69369{text-transform:uppercase; font-size:12.5px; letter-spacing:.1em; color:#fff; font-weight:700; margin:0 0 18px;}
.u-home-c1f63b4f{position:absolute; left:-16px; bottom:-18px; background:#ACD04D; color:#1a2e12; border-radius:18px; padding:18px 22px; box-shadow:0 24px 44px -18px rgba(0,0,0,.55); max-width:230px;}
.u-home-c1f8797b{position:absolute; top:14px; left:14px; background:rgba(172,208,77,.92); color:#20242e; font-size:11.5px; font-weight:700; letter-spacing:.03em; padding:5px 11px; border-radius:50rem;}
.u-home-c3d04c86{display:grid; grid-template-columns:1.4fr 0.8fr 1.9fr 1fr; gap:40px;}
.u-home-c467f853{position:relative; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.u-home-c4a8a561{display:flex; flex-wrap:wrap; gap:18px 38px; margin-top:48px; padding-top:30px; border-top:1px solid rgba(255,255,255,.14); max-width:660px;}
.u-home-c55e98fc{position:relative; z-index:2; max-width:1220px; margin:0 auto; padding:100px 40px;}
.u-home-c62539bc{width:74px; height:74px; border-radius:50%; background:#e6f1ca; color:#5f8010; display:flex; align-items:center; justify-content:center; font-size:32px; margin:0 auto 22px;}
.u-home-c9b80050{position:relative; border-radius:24px; overflow:hidden; height:440px; box-shadow:0 40px 80px -40px rgba(0,0,0,.7); border:1px solid rgba(255,255,255,.1);}
.u-home-cbe85e3f{height:64px; width:auto; margin-bottom:20px;}
.u-home-cc04cda1{display:flex; flex-wrap:wrap; gap:16px; align-items:center;}
.u-home-cc17cfd7{position:absolute; inset:0; overflow:hidden;}
.u-home-cc50b072{background:#2E368F; color:#fff; font-size:13.5px;}
.u-home-cc50b072 .bp-nav-link:hover{ color:#ACD04D; }
.u-home-cca37f21{display:flex; align-items:center; gap:16px;}
.u-home-ce98f0d8{font-size:14px; font-weight:600; margin-top:6px;}
.u-home-ceff5b0f{position:absolute; inset:0; background:linear-gradient(180deg, transparent 45%, rgba(22,27,61,.95));}
.u-home-d31252d3{color:#fff; font-weight:600; font-size:17px; padding:16px 28px; border-radius:50rem; border:1.5px solid rgba(255,255,255,.35); display:inline-flex; align-items:center; gap:11px;}
.u-home-d5e7e330{max-width:1220px; margin:0 auto; padding:0 40px 96px;}
.u-home-d620534b{display:flex; align-items:center; gap:11px; background:#f4f6fb; border:1px solid #e9ecf4; padding:12px 18px; border-radius:14px;}
.u-home-d6364a51{font-family:'Space Grotesk',sans-serif; font-size:52px; font-weight:700; color:#2E368F; line-height:1;}
.u-home-d7519be7{font-size:14px; line-height:1.55; color:#a9aecb; margin:0 0 14px;}
.u-home-db7496f0{color:#ACD04D;}
.u-home-dbc10839{border:1px solid #ebedf3; border-radius:20px; padding:30px 26px; background:#fff;}
.u-home-dbe1a6ce{max-width:1220px; margin:0 auto; padding:0 40px;}
.u-home-de85fd40{max-width:1180px; margin:0 auto; padding:0 40px;}
.u-home-dfa617d2{position:absolute; top:-140px; left:-100px; width:380px; height:380px; background:radial-gradient(circle, rgba(46,54,143,.7), transparent 70%);}
.u-home-e34ada5e{font-family:'Space Grotesk',sans-serif; font-size:30px; font-weight:700; line-height:1;}
.u-home-e48b0583{font-size:11px;}
.u-home-e52ba615{position:absolute; top:-160px; right:-120px; width:520px; height:520px; background:radial-gradient(circle, rgba(172,208,77,.22), transparent 68%); pointer-events:none;}
.u-home-e576b2ee{font-size:42px; line-height:1.1; font-weight:800; color:#171a2b; margin:0 0 22px; letter-spacing:-.02em;}
.u-home-e7878b44{text-align:center; font-size:12.5px; letter-spacing:.16em; font-weight:600; color:#6d7693; margin:0 0 22px;}
.u-home-ea714b67{font-size:17px; color:#cdd2ee; margin:0;}
.u-home-ec84e5dd{font-size:13px; color:#a9c4a1; line-height:1.45;}
.u-home-ed22ddaa{margin-left:auto; background:#ACD04D; color:#20242e; font-weight:700; font-size:13px; padding:9px 16px; border-radius:50rem; display:inline-flex; align-items:center; gap:7px; white-space:nowrap; box-shadow:0 8px 18px -8px rgba(172,208,77,.85);}
.u-home-edba6c26{display:flex; flex-wrap:wrap; gap:14px;}
.u-home-ee89e92c{position:absolute; bottom:-180px; left:-140px; width:480px; height:480px; background:radial-gradient(circle, rgba(56,102,65,.5), transparent 70%); pointer-events:none;}
.u-home-eeb5a1fb{position:relative; z-index:60; background:rgba(255,255,255,.86); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid #eef0f5;}
.u-home-f0837376{display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border:none; background:#f3f5f9; border-radius:10px; cursor:pointer; color:#20242e; font-size:17px;}
.u-home-f0f99433{position:relative; height:190px; overflow:hidden;}
.u-home-f2780711{font-size:19px; font-weight:700; color:#1c2033; margin:0 0 10px;}
.u-home-f36b26cc{background:#fff; border:1px solid #e9ecf3; border-radius:26px; padding:38px 36px; box-shadow:0 30px 70px -40px rgba(20,26,70,.5);}
.u-home-f5ed1cf8{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:34px;}
.u-home-f7af6c2f{padding:20px 22px 24px;}
.u-home-f9eec3a8{font-size:14.5px; line-height:1.6; color:#5b6076; margin:0;}
.u-home-fa1d0529{position:absolute; right:-40px; top:-40px; width:220px; height:220px; background:radial-gradient(circle, rgba(172,208,77,.35), transparent 70%);}
.u-home-fe54ff18{color:#2E368F;}
.u-home-fef4b3c2{font-size:42px; line-height:1.08; font-weight:800; color:#fff; margin:0 0 20px; letter-spacing:-.02em;}

/* ============================================================
   MOBILE: collapse Products (show 6 + toggle) & Industries (swipe carousel)
   Pure CSS — checkbox toggle for products, scroll-snap for industries.
   ============================================================ */
.bp-more-toggle{ display:none; }
.bp-more-toggle[hidden]{ display:none !important; }
.bp-swipe-hint{ display:none; }

@media (max-width:767px){
  /* --- Products: compact 2-col grid, first 6 visible, rest behind toggle --- */
  .u-home-2805f7da{ grid-template-columns:1fr 1fr !important; gap:14px !important; }
  /* JS adds .bp-is-collapsed on load; without JS every card stays visible */
  #bp-products-grid.bp-is-collapsed .bp-prod-extra{ display:none; }
  /* opacity/transform overrides guarantee the revealed cards show even if the
     scroll-reveal observer (which sets inline opacity:0) hasn't re-fired yet */
  #bp-products-grid .bp-prod-extra{ display:block; opacity:1 !important; transform:none !important; }

  /* tighten the cards so two fit comfortably */
  #bp-products-grid .u-home-f0f99433{ height:120px; }
  #bp-products-grid .u-home-f7af6c2f{ padding:13px 14px 15px; }
  #bp-products-grid .u-home-9c5a0d16{ font-size:15.5px; margin:0 0 5px; }
  #bp-products-grid .u-home-d7519be7{ font-size:12.5px; line-height:1.45; margin:0 0 10px; }
  #bp-products-grid .u-home-c1f8797b{ font-size:10px; padding:4px 8px; top:10px; left:10px; }

  .bp-more-toggle{
    display:inline-flex; align-items:center; justify-content:center; gap:9px;
    width:100%; margin-top:18px; padding:13px 20px;
    border:1px solid #d9dce6; border-radius:50rem; background:#fff;
    color:#2E368F; font-weight:700; font-size:15px; cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .bp-more-toggle .bp-more-close{ display:none; }
  .bp-more-toggle[aria-expanded="true"] .bp-more-open{ display:none; }
  .bp-more-toggle[aria-expanded="true"] .bp-more-close{ display:inline; }
  .bp-more-ico{ font-size:12px; transition:transform .25s ease; }
  .bp-more-toggle[aria-expanded="true"] .bp-more-ico{ transform:rotate(180deg); }

  /* --- Industries: horizontal swipe carousel --- */
  .u-home-2cd71e0b{
    display:flex !important; grid-template-columns:none !important;
    gap:14px !important; overflow-x:auto; overflow-y:hidden;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
    touch-action:pan-x; overscroll-behavior-x:contain;
    scrollbar-width:none;
    /* vertical padding leaves room for the hover lift (top) + drop shadow
       (bottom) so a raised card isn't clipped by the scroll container;
       negative margins keep the surrounding layout spacing unchanged */
    margin:-16px 0 -30px; padding:16px 0 40px;
  }
  .u-home-2cd71e0b::-webkit-scrollbar{ display:none; }
  /* explicit width (not flex-basis) so the card can't stretch to full width;
     min-width:0 stops the long text forcing it wider */
  #bp-ind-grid .bp-lift{ flex:0 0 auto !important; width:84% !important; min-width:0; scroll-snap-align:start; }
  /* small swipe hint below the carousel */
  .bp-swipe-hint{
    display:flex; align-items:center; justify-content:center; gap:6px;
    margin-top:0; color:#6e7691; font-size:11.5px; font-weight:600;
    letter-spacing:.02em;
  }
}

/* top bar: once the bar wraps on smaller viewports, drop the auto left-margin
   so the business hours aligns left with the other contact info (uniform) */
@media (max-width:900px){ .bp-business-hours{ margin-left:0; } }

/* hero eyebrow: underlined lead-in above the headline (no pill) */
.bp-hero-eyebrow{ display:inline-block; margin:0 0 14px; padding-bottom:9px; border-bottom:3px solid #ACD04D; color:#dbe9b0; font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
@media (max-width:560px){ .bp-hero-eyebrow{ margin-bottom:11px; padding-bottom:7px; border-bottom-width:2px; font-size:11.5px; letter-spacing:.05em; } }

/* hero brand-promise slogan, sits between the headline and the lead */
.bp-hero-slogan{ display:flex; align-items:center; gap:13px; margin:16px 0 2px; font-size:21px; font-weight:600; font-style:italic; color:#d6e8a6; letter-spacing:.005em; }
.bp-hero-slogan::before{ content:""; flex:0 0 auto; width:34px; height:2px; border-radius:2px; background:#ACD04D; }
@media (max-width:560px){ .bp-hero-slogan{ font-size:17px; gap:10px; } .bp-hero-slogan::before{ width:26px; } }

/* ---- mobile nav bottom sheet ----
   Slides up from the bottom edge so the links land under the thumb on phones.
   Lives outside .bp-topstack / .bp-sticky-nav (both create containing blocks
   for fixed children) and is shared by the header and sticky burgers. */
.bp-sheet-scrim{ position:fixed; inset:0; z-index:88; background:rgba(11,14,38,.5); opacity:0; visibility:hidden; touch-action:none; transition:opacity .32s ease, visibility 0s linear .32s; }
.bp-sheet-scrim.bp-sheet-open{ opacity:1; visibility:visible; transition:opacity .32s ease, visibility 0s linear 0s; }
.bp-sheet{ position:fixed; left:0; right:0; bottom:0; z-index:90; display:flex; flex-direction:column;
  padding:0 20px calc(20px + env(safe-area-inset-bottom,0px)); max-height:78vh; overflow-y:auto; overscroll-behavior:contain;
  background:#fff; border-radius:26px 26px 0 0; box-shadow:0 -22px 60px -18px rgba(20,26,70,.55);
  transform:translateY(101%); visibility:hidden;
  transition:transform .42s cubic-bezier(.32,.72,0,1), visibility 0s linear .42s; }
.bp-sheet.bp-sheet-open{ transform:translateY(0); visibility:visible; transition:transform .42s cubic-bezier(.32,.72,0,1), visibility 0s linear 0s; }
/* grab handle doubles as a wide close target at the top of the sheet */
.bp-sheet-grip{ display:block; width:100%; padding:14px 0 16px; border:none; background:none; cursor:pointer; }
.bp-sheet-grip span{ display:block; width:44px; height:5px; margin:0 auto; border-radius:99px; background:#8795b5; transition:background .2s ease; }
.bp-sheet-grip:active span{ background:#c2c7d6; }
.bp-snav{ display:block; padding:15px 6px; color:#20242e; font-size:16.5px; font-weight:500; border-bottom:1px solid #f2f3f7; opacity:0; transform:translateY(16px); transition:opacity .3s ease, transform .3s ease; }
.bp-snav:last-of-type{ color:#2E368F; font-weight:600; border-bottom:none; }
/* links stagger in behind the sheet so it reads as one motion */
.bp-sheet.bp-sheet-open .bp-snav{ opacity:1; transform:none; }
.bp-sheet.bp-sheet-open .bp-snav:nth-of-type(1){ transition-delay:.10s; }
.bp-sheet.bp-sheet-open .bp-snav:nth-of-type(2){ transition-delay:.14s; }
.bp-sheet.bp-sheet-open .bp-snav:nth-of-type(3){ transition-delay:.18s; }
.bp-sheet.bp-sheet-open .bp-snav:nth-of-type(4){ transition-delay:.22s; }
.bp-sheet.bp-sheet-open .bp-snav:nth-of-type(5){ transition-delay:.26s; }
html.bp-sheet-lock,html.bp-sheet-lock body{ overflow:hidden; }
@media (min-width:861px){ .bp-sheet,.bp-sheet-scrim{ display:none; } }
@media (prefers-reduced-motion:reduce){ .bp-sheet,.bp-sheet-scrim,.bp-snav{ transition-duration:.01s !important; transition-delay:0s !important; } }

/* ---- accessibility primitives ----
   --bp-focus flips to the brand green inside dark sections so the ring always
   clears 3:1 against whatever it sits on (1.4.11); everywhere else it is the
   brand blue at 10.3:1 on white. */
:root{ --bp-focus:#2E368F; }
:focus-visible{ outline:3px solid var(--bp-focus); outline-offset:2px; }
/* the skip-link target is focused programmatically, not operated — a ring
   around the whole page would be noise */
#bp-main:focus{ outline:none; }

.bp-skip{ position:fixed; left:10px; top:-120px; z-index:200;
  padding:12px 20px; border-radius:0 0 12px 12px;
  background:#fff; color:#2E368F; font-weight:700; font-size:15px;
  box-shadow:0 12px 30px -12px rgba(20,26,70,.65); transition:top .18s ease; }
.bp-skip:focus{ top:0; color:#2E368F; }

/* visually hidden, still announced */
.bp-sr{ position:absolute !important; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0; }
/* dark grounds: swap the focus ring to green so it stays visible */
.u-home-ae462cff,.u-home-58fd0a1c,.u-home-1af065a0,.u-home-b2f3074b,
.u-home-bd6f51b1,.u-home-cc50b072,.u-home-8770f98e,.bp-growth-story{ --bp-focus:#ACD04D; }

/* ---- trusted-by marquee: pause control (2.2.2) ---- */
#bpMarquee.is-paused{ animation-play-state:paused; }
.u-home-c467f853:hover #bpMarquee,#bpMarquee:focus-within{ animation-play-state:paused; }
/* the duplicated half is aria-hidden; display:contents keeps it laid out as
   direct flex children so the -50% loop still lines up */
.bp-marquee-dupe{ display:contents; }
.bp-marquee-toggle{ display:flex; align-items:center; gap:8px; width:max-content;
  margin:0 auto 10px; padding:6px 15px; border:1px solid #b9c0d2; border-radius:50rem;
  background:#fff; color:#4a4f66; font-family:inherit; font-size:12px; font-weight:600;
  cursor:pointer; transition:color .2s ease, border-color .2s ease; }
.bp-marquee-toggle[hidden]{ display:none; }
.bp-marquee-toggle:hover{ color:#2E368F; border-color:#8795b5; }
.bp-marquee-ico{ font-size:10px; }

/* the industries carousel becomes a tab stop only while it actually scrolls */
#bp-ind-grid:focus-visible{ outline:3px solid var(--bp-focus); outline-offset:4px; border-radius:10px; }

/* ═══════════════ NAVBAR SEARCH ═══════════════
   Trigger in the header row, full-bleed panel under it on desktop, full-screen
   overlay on phones. Self-contained on purpose: index.css carries no search
   rules of its own, so everything the panel and overlay need is stated here and
   the same block drops into both stylesheets unchanged. The hero field on the
   404 keeps its own rules above and is untouched by any selector below. */

/* ---- trigger ---- */
/* An <a href="search.html"> until search.js upgrades it, so it still goes
   somewhere with JS off. 44px high: WCAG 2.5.5 target size. */
.bp-search-trigger{ flex:none; display:inline-flex; align-items:center; justify-content:center; gap:9px; height:44px; padding:0 17px; border:1px solid rgba(46,54,143,.55); border-radius:50rem; background:#fff; color:#2E368F; font-family:inherit; font-size:15px; font-weight:600; line-height:1; text-decoration:none; cursor:pointer; transition:background 150ms cubic-bezier(.4,0,.2,1), border-color 150ms cubic-bezier(.4,0,.2,1); }
.bp-search-trigger i{ font-size:14px; }
.bp-search-trigger:hover{ border-color:#2E368F; background:#f5f7fd; color:#2E368F; }
.bp-search-trigger[aria-expanded="true"]{ border-color:#2E368F; background:#eef2fb; }
/* icon-only: drops the label and the side padding, but keeps the base pill
   radius so it matches the CTA beside it and the labelled trigger above 1080 */
.bp-search-trigger-icon{ width:44px; padding:0; font-size:16px; }
/* the sticky bar's margin-left:auto moves from the CTA onto the trigger so the
   three targets group to the right; the u-page utilities stay unedited */
.bp-sticky-nav .bp-search-trigger{ margin-left:auto; }
.bp-sticky-nav .bp-btn{ margin-left:0; height:44px; padding:0 13px; font-size:12.5px; }
.bp-sticky-nav .bp-btn i{ display:none; }
/* the u-page/u-home utility gives it a 10px radius; the sticky bar wants the
   same pill as the trigger and the CTA either side of it */
.bp-sticky-nav .bp-sticky-burger{ width:44px; height:44px; border-radius:50rem; }

/* ---- scrim ---- */
/* Below .bp-topstack's z-index:60 so the open panel stays lit above it, and
   above every page section. The nav sheet's scrim sits at 88 and would cover
   the panel, so search gets its own. */
.bp-search-scrim{ position:fixed; inset:0; z-index:55; background:rgba(11,14,38,.5); opacity:0; visibility:hidden; touch-action:none; transition:opacity 220ms ease, visibility 0s linear 220ms; }
.bp-search-scrim.bp-search-open{ opacity:1; visibility:visible; transition:opacity 220ms ease, visibility 0s linear 0s; }

/* ---- desktop panel ---- */
/* Fixed to the viewport, not anchored to .bp-topstack. That wrapper is
   position:sticky but never actually sticks here, so a panel hung off it sat at
   the top of the document and vanished as soon as the page was scrolled.
   js/search.js sets `top` from the header's live bottom edge on open, so the
   panel still reads as a strip under the header when the header is on screen
   and pins to the top of the viewport when it is not. visibility:hidden keeps a
   closed panel out of the tab order. */
.bp-search-panel{ position:fixed; top:0; left:0; right:0; z-index:65; background:#fff; border-bottom:1px solid #eef0f5; box-shadow:0 22px 50px -24px rgba(20,26,70,.45); padding:24px 0 26px; opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity 180ms cubic-bezier(.4,0,.2,1), transform 180ms cubic-bezier(.4,0,.2,1), visibility 0s linear 180ms; }
.bp-search-panel.bp-search-open{ opacity:1; visibility:visible; transform:none; transition:opacity 180ms cubic-bezier(.4,0,.2,1), transform 180ms cubic-bezier(.4,0,.2,1), visibility 0s linear 0s; }
/* same 1280/40px box as the header row, so the field's left edge lines up with
   the logo rather than floating in the middle of the strip */
.bp-search-panel-inner{ max-width:1280px; margin:0 auto; padding:0 40px; }
.bp-search-panel.bp-search-has-list{ padding-bottom:20px; }

/* ---- panel + overlay form ---- */
.bp-search-panel-form,.bp-search-overlay-form{ position:relative; max-width:none; margin:0; display:flex; flex-direction:column; gap:16px; }
.bp-search-panel-form .bp-search-row,.bp-search-overlay-form .bp-search-row{ display:flex; align-items:center; gap:12px; }
.bp-search-panel-form .bp-search-field{ flex:1; display:flex; align-items:center; gap:12px; min-width:0; padding:0 20px; height:52px; background:#fff; border:1px solid #e9ecef; border-radius:50rem; }
.bp-search-panel-form .bp-search-input{ flex:1; min-width:0; border:none; background:none; font-family:inherit; font-size:16px; color:#20242e; }
/* 4.69:1 — the 404 rejected #8b8b8b at 3.41:1 and this must not reintroduce it */
.bp-search-panel-form .bp-search-input::placeholder,.bp-search-overlay-form .bp-search-input::placeholder{ color:#6c757d; opacity:1; }
.bp-search-panel-form .bp-search-input:focus,.bp-search-overlay-form .bp-search-input:focus{ outline:none; }
/* the ring traces the pill the user sees, not the bare input (1.4.11) */
.bp-search-panel-form .bp-search-field:focus-within,.bp-search-overlay-form .bp-search-field:focus-within{ outline:3px solid var(--bp-focus); outline-offset:2px; }
.bp-search-panel-form .bp-search-btn{ flex:none; height:52px; padding:0 26px; }
.bp-search-spin{ flex:none; font-size:14px; color:#2E368F; }
.bp-search-spin[hidden],.bp-search-clear[hidden],.bp-search-seeall[hidden],.bp-search-zero[hidden],.bp-search-skeleton[hidden]{ display:none; }
.bp-search-clear{ flex:none; display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; padding:0; border:none; border-radius:50%; background:#f1f3f8; color:#5b6076; font-size:12px; cursor:pointer; }
.bp-search-clear:hover{ background:#e4e7ef; color:#3d4257; }
.bp-search-close{ flex:none; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; margin-left:6px; padding:0; border:1px solid #e4e7ef; border-radius:50rem; background:#fff; color:#3d4257; font-size:16px; cursor:pointer; }
.bp-search-close:hover{ border-color:#c9cfe0; background:#f5f7fd; }

/* index.css carries no search rules of its own, so the navbar variants restate
   the parts landing.css defines for the 404 field. Without these the home page
   rendered the submit as a raw UA button and the listbox with disc bullets. */
.bp-search-panel-form .bp-search-btn,.bp-search-overlay-form .bp-search-btn{ display:inline-flex; align-items:center; justify-content:center; gap:9px; border:none; border-radius:50rem; background:#ACD04D; color:#212529; font-family:inherit; font-size:15px; font-weight:700; cursor:pointer; }
.bp-search-panel-form .bp-search-btn i,.bp-search-overlay-form .bp-search-btn i{ font-size:13px; transition:transform 150ms cubic-bezier(.4,0,.2,1); }
.bp-search-panel-form .bp-search-btn:hover i,.bp-search-overlay-form .bp-search-btn:hover i{ transform:translateX(3px); }
.bp-search-panel-form .bp-search-icon,.bp-search-overlay-form .bp-search-icon{ flex:none; font-size:15px; color:#6c757d; }

/* ---- help line ---- */
.bp-search-help{ margin:0; font-size:14.5px; line-height:1.6; color:#5b6076; }
.bp-search-help > i{ color:#5e791c; margin-right:8px; }
.bp-search-help b{ color:#2E368F; font-weight:600; }
/* the phone overlay gives this line a full-width row of its own under the
   field, so it reads as a caption to that field only when it is centred */
.bp-search-overlay-form .bp-search-help{ font-size:12.5px; text-align:center; }
.bp-search-overlay-form .bp-search-help > i{ margin-right:6px; }
.bp-search-panel-form .bp-search-help-sm,.bp-search-overlay-form .bp-search-help-lg{ display:none; }

/* ---- results scaffold ---- */
.bp-search-results{ display:flex; flex-direction:column; }
.bp-search-results[hidden]{ display:none; }
/* the quote row is an option too, so arrowing onto it must be visible; the
   focus-ring treatment reads on the gradient where a fill would not */
.bp-search-askus[aria-selected="true"]{ outline:3px solid var(--bp-focus); outline-offset:2px; }
.bp-search-zero{ margin:0; padding:2px 4px; font-size:14.5px; line-height:1.55; color:#4a4f66; }
.bp-search-zero b{ color:#20242e; }
/* the band and plain forms scroll their rows inside the floating card; here the
   panel scrolls them against the viewport instead */
.bp-search-panel-form .bp-search-list{ max-height:min(52vh,420px); overflow-y:auto; }

/* ---- group header ---- */
.bp-sg{ display:block; }
.bp-sg-head{ display:flex; align-items:center; gap:12px; padding:6px 4px 8px; }
.bp-sg-label{ font-size:11.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:#2E368F; }
.bp-sg-rule{ flex:1; height:1px; background:#eef0f5; }
.bp-sg-count{ font-size:12px; color:#6c757d; }

/* ---- suggestion rows ---- */
.bp-search-results .bp-search-option{ display:flex; align-items:center; gap:14px; padding:12px 16px; margin-bottom:2px; border-radius:14px; color:#20242e; transition:background 150ms cubic-bezier(.4,0,.2,1); }
.bp-search-option-icon{ flex:none; width:18px; font-size:14px; color:#8b90a8; text-align:center; }
.bp-search-option-text{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.bp-search-results .bp-search-option-label{ font-size:15.5px; font-weight:600; color:#2E368F; }
/* the matched Luganda term rides on the label — the proof the search speaks
   local is visible without reading a sentence */
.bp-search-option-term{ font-weight:500; color:#5e791c; }
.bp-search-results .bp-search-option-blurb{ margin-top:0; font-size:13px; line-height:1.45; color:#5b6076; }
.bp-search-option-hint{ display:none; margin-left:auto; flex:none; font-size:12px; font-weight:600; color:#5e791c; white-space:nowrap; }
.bp-search-option-hint i{ transform:rotate(90deg); margin-left:4px; }
.bp-search-results .bp-search-option:hover{ background:#f5f7fd; }
.bp-search-results .bp-search-option[aria-selected="true"]{ background:#e6f1ca; }
.bp-search-results .bp-search-option[aria-selected="true"] .bp-search-option-icon{ color:#5e791c; }
.bp-search-results .bp-search-option[aria-selected="true"] .bp-search-option-blurb{ color:#4a4f66; }
.bp-search-results .bp-search-option[aria-selected="true"] .bp-search-option-hint{ display:inline-flex; align-items:center; }

/* The design's #5e791c accent measures 4.21:1 on the active row's #e6f1ca —
   below AA for text, and this site documents its own substitutions rather than
   shipping a failing value. It darkens one step on that row only: 5.20:1, same
   hue, and #5e791c is kept everywhere it passes (4.97:1 on white). */
.bp-search-results .bp-search-option[aria-selected="true"] .bp-search-option-term,
.bp-search-results .bp-search-option[aria-selected="true"] .bp-search-option-hint{ color:#516a18; }

/* ---- see-all footer ---- */
.bp-search-seeall{ display:flex; align-items:center; gap:10px; margin-top:8px; padding:14px 16px; border-top:1px solid #eef0f5; font-size:14.5px; font-weight:700; color:#2E368F; }
.bp-search-seeall i{ font-size:12px; transition:transform 150ms cubic-bezier(.4,0,.2,1); }
.bp-search-seeall:hover i{ transform:translateX(3px); }

/* ---- zero-match quote row ---- */
/* Same treatment as .bp-nf-intent and .bp-growth-note. Zero matches only — it
   must never sit under a good result set. */
.bp-search-askus{ display:flex; align-items:center; gap:14px; padding:16px 20px; border:1px solid #dce9b8; border-left:4px solid #ACD04D; border-radius:16px; background:linear-gradient(135deg,#f1f6e3,#fafcf5); }
.bp-search-askus > i:first-child{ flex:none; font-size:16px; color:#5e791c; }
.bp-search-askus-text{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.bp-search-askus-title{ font-size:15.5px; font-weight:700; color:#2E368F; }
.bp-search-askus-sub{ font-size:13px; line-height:1.45; color:#4a4f66; }
.bp-search-askus-go{ margin-left:auto; flex:none; font-size:13px; color:#5e791c; transition:transform 150ms cubic-bezier(.4,0,.2,1); }
.bp-search-askus:hover .bp-search-askus-go{ transform:translateX(3px); }

/* ---- loading skeleton ---- */
/* Shown only after 250ms of a pending fetch, so a fast answer never flashes it. */
@keyframes bp-search-shimmer{ 0%{ background-position:-320px 0; } 100%{ background-position:320px 0; } }
.bp-search-skeleton{ display:flex; flex-direction:column; gap:10px; }
.bp-sk-row{ display:flex; flex-direction:column; gap:7px; padding:12px 16px; }
.bp-sk-title{ height:13px; border-radius:6px; background:linear-gradient(90deg,#eef0f5 0%,#f7f8fb 40%,#eef0f5 80%); background-size:320px 100%; animation:bp-search-shimmer 1.2s linear infinite; }
.bp-sk-blurb{ height:10px; border-radius:6px; background:#f1f3f8; }
.bp-sk-row:nth-child(1) .bp-sk-title{ width:38%; }
.bp-sk-row:nth-child(2) .bp-sk-title{ width:30%; animation-delay:.15s; }
.bp-sk-row:nth-child(3) .bp-sk-title{ width:34%; animation-delay:.3s; }
.bp-sk-row:nth-child(1) .bp-sk-blurb{ width:72%; }
.bp-sk-row:nth-child(2) .bp-sk-blurb{ width:60%; }
.bp-sk-row:nth-child(3) .bp-sk-blurb{ width:66%; }

/* ---- phone overlay ---- */
/* Outside .bp-topstack and .bp-sticky-nav — both use backdrop-filter/transform
   and would trap a position:fixed child, the same constraint as the nav sheet. */
.bp-search-overlay{ position:fixed; inset:0; z-index:95; display:flex; flex-direction:column; background:#fff; box-shadow:0 -22px 60px -18px rgba(20,26,70,.55); transform:translateY(100%); visibility:hidden; transition:transform .42s cubic-bezier(.32,.72,0,1), visibility 0s linear .42s; }
.bp-search-overlay.bp-search-open{ transform:translateY(0); visibility:visible; transition:transform .42s cubic-bezier(.32,.72,0,1), visibility 0s linear 0s; }
.bp-search-overlay-top{ flex:none; display:flex; align-items:center; gap:10px; padding:12px 14px 10px; border-bottom:1px solid #f2f3f7; }
.bp-search-overlay-logo{ height:30px; width:auto; }
.bp-search-overlay-title{ font-size:14px; font-weight:700; color:#2E368F; }
.bp-search-overlay-close{ margin-left:auto; flex:none; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:1px solid #e4e7ef; border-radius:12px; background:#fff; color:#20242e; font-size:17px; cursor:pointer; }
.bp-search-overlay-form{ flex:1; min-height:0; gap:10px; padding:14px 14px 0; }
.bp-search-overlay-form .bp-search-field{ flex:1; display:flex; align-items:center; gap:10px; min-width:0; padding:0 16px; height:50px; background:#fff; border:1px solid #e9ecef; border-radius:50rem; }
.bp-search-overlay-form .bp-search-input{ flex:1; min-width:0; border:none; background:none; font-family:inherit; font-size:15.5px; color:#20242e; }
/* only the list scrolls; the see-all row stays pinned above the keyboard */
.bp-search-overlay-form .bp-search-results{ flex:1; min-height:0; margin:0 -6px; padding:8px 8px 0; overflow-y:auto; }
.bp-search-overlay-form .bp-search-seeall{ margin:8px -6px 0; padding:14px 16px; font-size:13.5px; }
.bp-search-overlay-form .bp-sg-head{ padding:8px 8px 6px; }
.bp-search-overlay-form .bp-sg-label{ font-size:11px; }
/* the prototype's phone frame carries no count on the header — the rule runs
   to the edge instead, so the label keeps its room at 390px */
.bp-search-overlay-form .bp-sg-count{ display:none; }
.bp-search-overlay-form .bp-search-option{ padding:11px 12px; gap:12px; }
.bp-search-overlay-form .bp-search-option-icon{ width:16px; font-size:13px; }
.bp-search-overlay-form .bp-search-option-label{ font-size:14.5px; }
/* one line on a phone rather than a three-line wrap */
.bp-search-overlay-form .bp-search-option-blurb{ font-size:12px; line-height:1.4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bp-search-overlay-form .bp-search-option-hint{ display:none !important; }

/* ---- breakpoints ---- */
/* Search is the first thing to shrink: the label goes, the target does not. */
@media (max-width:1080px){
  .bp-search-trigger-label{ display:none; }
  .bp-search-trigger{ width:44px; padding:0; }
}
/* Below 860 the desktop nav is already a burger; search becomes the overlay. */
@media (max-width:860px){
  .bp-search-panel{ display:none; }
  .bp-search-panel-inner{ padding-left:22px; padding-right:22px; }
}
@media (min-width:861px){
  .bp-search-overlay{ display:none; }
}
@media (max-width:560px){
  .bp-search-panel-inner{ padding-left:16px; padding-right:16px; }
  /* the stacked row on the 404 must not reach the overlay, which has no submit */
  .bp-search-overlay-form .bp-search-row{ flex-direction:row; }
}
@media (max-width:360px){
  .bp-sticky-nav .bp-section-pad{ padding-left:14px !important; padding-right:14px !important; }
}

/* ---- reduced motion ---- */
/* Both the media query and the footer's manual switch land on the same end
   state: present, opaque, in position — never mid-animation. */
@media (prefers-reduced-motion:reduce){
  .bp-search-panel,.bp-search-overlay,.bp-search-scrim,.bp-search-trigger,.bp-search-results .bp-search-option{ transition:none !important; }
  .bp-search-panel{ transform:none; }
  .bp-search-overlay{ transform:translateY(100%); }
  .bp-search-overlay.bp-search-open{ transform:translateY(0); }
  .bp-sk-title{ animation:none; background:#f1f3f8; }
  .bp-search-seeall:hover i,.bp-search-askus:hover .bp-search-askus-go{ transform:none; }
}
html.bp-no-motion .bp-search-panel{ transform:none; }
html.bp-no-motion .bp-sk-title{ animation:none; background:#f1f3f8; }
