/* bp-mobile-chrome v3 (2026-10-22): with the bottom bar shown (<= 900px) the call button is docked INTO the bar as a 56px-wide icon button (the .bp-call-fab--docked rules at the end), never a floating circle; the circle below is only for pages or widths without a bar. v1 (2026-10-21): the call button is a 60px circle at the inline-start corner (right in Arabic,
   left in English) above the bottom CTA bar; the bar stays fixed on mobile with 60-68px buttons and 16px+ text.
   --bp-bar-h is the bar's measured height (set by the call-button script); it places the button and pads the page
   so the bar and the button never cover its end. v2 (2026-10-22): neither is hidden while typing; with the on-screen
   keyboard open both ride on top of it (--bp-kb, bp-mobile-kb in the call-button script). */
:root{--bp-bar-h:0px;--bp-fab:60px;--bp-fab-gap:12px;--bp-fab-edge:16px}
a.bp-call-fab.bp-call-fab{position:fixed!important;z-index:85;top:auto!important;left:auto!important;right:auto!important;inset-inline-start:var(--bp-fab-edge)!important;inset-inline-end:auto!important;bottom:calc(max(var(--bp-bar-h),env(safe-area-inset-bottom,0px)) + var(--bp-fab-gap) + var(--bp-kb,0px))!important;transform:none;display:grid;place-items:center;box-sizing:border-box!important;width:var(--bp-fab)!important;height:var(--bp-fab)!important;min-width:48px!important;min-height:48px!important;max-width:none!important;margin:0!important;padding:0!important;gap:0!important;border:0!important;border-radius:50%!important;text-decoration:none;color:#fff;background:#0f8a45!important;box-shadow:0 6px 16px rgba(6,30,16,.28),0 1px 3px rgba(6,30,16,.2)!important;animation:none!important;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:opacity .2s,transform .2s}
a.bp-call-fab.bp-call-fab:hover{background:#0c7a3c!important}
a.bp-call-fab.bp-call-fab:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 6px #0b3d24,0 6px 16px rgba(6,30,16,.28)!important}
a.bp-call-fab.bp-call-fab .bp-call-ico{display:grid;place-items:center;width:100%;height:100%;margin:0;border-radius:50%;background:none;color:#fff;flex:none}
a.bp-call-fab.bp-call-fab .bp-call-ico svg{width:26px;height:26px}
a.bp-call-fab.bp-call-fab .bp-call-copy{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
a.bp-call-fab.bp-call-fab.bp-call-fab--yield{opacity:0!important;pointer-events:none!important}
body{padding-bottom:calc(max(var(--bp-bar-h),env(safe-area-inset-bottom,0px)) + var(--bp-fab) + 2 * var(--bp-fab-gap))!important}
@media(max-height:600px){:root{--bp-fab:56px;--bp-fab-gap:10px}}
@media(prefers-reduced-motion:reduce){a.bp-call-fab.bp-call-fab{transition:none}}
html.bp-fab-docked body{padding-bottom:max(var(--bp-bar-h),env(safe-area-inset-bottom,0px))!important}
/* v3.1: a scroll nudge (.cro-nudge.show) floats above the bar; while it shows, the page keeps the circle-era reserve so the last lines (privacy / terms links) end above it */
html.bp-fab-docked body:has(.cro-nudge.show){padding-bottom:calc(max(var(--bp-bar-h),env(safe-area-inset-bottom,0px)) + var(--bp-fab) + 2 * var(--bp-fab-gap))!important}
html body a.bp-call-fab.bp-call-fab.bp-call-fab--docked{position:relative!important;inset:auto!important;inset-inline-start:auto!important;inset-inline-end:auto!important;bottom:auto!important;transform:none!important;flex:0 0 56px!important;width:56px!important;min-width:56px!important;max-width:56px!important;height:auto!important;min-height:60px!important;max-height:68px!important;align-self:stretch!important;margin:0!important;padding:0!important;border-radius:10px!important;box-shadow:none!important;opacity:1!important;pointer-events:auto!important;display:flex!important;align-items:center;justify-content:center;font-size:16px!important;z-index:auto}
html body a.bp-call-fab.bp-call-fab.bp-call-fab--docked .bp-call-ico svg{width:26px;height:26px}
/* visual QA 2026-10-22: headings break into even lines and short copy avoids a one-word last line (zero specificity, a page rule wins) */
:where(h1,h2,h3,h4){text-wrap:balance}
:where(p,li,figcaption){text-wrap:pretty}
/* bp-mobile-chrome v1 bar (2026-10-21): the bottom CTA bar stays fixed on mobile, full width with side padding, 60-68px
   buttons with 16px+ text; info children (price, labels) give way on phones. Pages with the call button get it
   inside bp-call-fab-css; pages with a bar and no call button get it as bp-mobile-bar-css. v2 (2026-10-22): never hidden
   while typing; with the on-screen keyboard open it sits on top of it (bottom:var(--bp-kb), set by bp-mobile-kb), and
   scroll-padding keeps a field the browser scrolls to above the bar. v3 (2026-10-22): wider than 900px only, the bar steps aside
   while it covers a form control, a submit, a legal link or a first-screen CTA (.bp-bar-yield, set by yield.js). */
html{scroll-padding-bottom:calc(var(--bp-bar-h,0px) + var(--bp-kb,0px) + 12px)}
@media(max-width:900px){
  html body>.sticky,html body>#floatBar{position:fixed!important;top:auto!important;left:0!important;right:0!important;bottom:var(--bp-kb,0px)!important;display:flex!important;flex-direction:row!important;align-items:stretch!important;gap:8px!important;box-sizing:border-box!important;width:auto!important;max-width:none!important;margin:0!important;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px))!important;transform:none!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;z-index:80}
  html body>.sticky>a,html body>.sticky>button,html body>#floatBar>a,html body>#floatBar>button{flex:1 1 0!important;min-width:0!important;width:auto!important;min-height:60px!important;max-height:68px!important;height:auto!important;margin:0!important;padding:6px 10px!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;font-size:16px!important;line-height:1.2!important;text-align:center!important;white-space:normal!important;overflow-wrap:anywhere}
}
@media(max-width:480px){html body>.sticky>:not(a):not(button),html body>#floatBar>:not(a):not(button){display:none!important}}
@media(min-width:901px){html body>.bp-bar-yield,html body>#floatBar.bp-bar-yield{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:opacity .18s ease,visibility .18s ease}}
