/* v0.7.6.1m Haven launcher: soft gold/blue glow around the Haven button + a small speech bubble beside it.
   The glow is static under prefers-reduced-motion and Calm mode (no pulse). The launcher's own position and z-index are not changed. */
#helper>#hbtn{border-radius:50%;box-shadow:0 0 0 2px #fff8e6cc,0 0 14px 5px #f2d58a59,0 0 26px 10px #9db8dc33;animation:bhglowp 3.4s ease-in-out infinite}
@keyframes bhglowp{0%,100%{box-shadow:0 0 0 2px #fff8e6cc,0 0 14px 5px #f2d58a59,0 0 26px 10px #9db8dc33}50%{box-shadow:0 0 0 3px #fff8e6ee,0 0 20px 8px #f2d58a80,0 0 34px 14px #9db8dc4d}}
@media (prefers-reduced-motion:reduce){#helper>#hbtn{animation:none!important}}
.bh-calm #helper>#hbtn{animation:none!important}
#bh-hbub{position:fixed!important;z-index:10;box-sizing:border-box;max-width:min(210px,calc(100vw - 110px));display:flex;align-items:flex-start;gap:2px;padding:7px 4px 7px 12px;background:#fffdf8;color:#1f2a44;border:1.5px solid #e2c67a;border-radius:16px;box-shadow:0 6px 18px -10px #1d255066,0 0 0 3px #eef3fa;font:500 14px/1.35 'BH Sans',Lexend,system-ui,sans-serif;opacity:0;transition:opacity .3s ease}
#bh-hbub[hidden]{display:none!important}
#bh-hbub.on{opacity:1}
#bh-hbub .t{margin:0;padding-top:3px;cursor:pointer;overflow-wrap:anywhere}
#bh-hbub .x{flex:0 0 auto;width:28px;height:28px;margin:-2px 0 -2px 2px;padding:0;border:0;border-radius:50%;background:none;color:#2f4a72;font:600 18px/28px 'BH Sans',system-ui,sans-serif;text-align:center;cursor:pointer}
#bh-hbub .x:hover{background:#f6efdc}
#bh-hbub .x:focus-visible{outline:3px solid #2f4a6d;outline-offset:1px}
@media (prefers-reduced-motion:reduce){#bh-hbub{transition:none}}
.bh-calm #bh-hbub{transition:none}
/* v0.7.6.1v2 BH-082 (Baymax 1v): the bubble x is a 44x44 target (was 28x28); the bubble padding shrinks so it stays about as tall. */
#bh-hbub{align-items:center;padding:3px 2px 3px 12px}
#bh-hbub .t{padding:4px 0}
#bh-hbub .x{width:44px;height:44px;min-width:44px;min-height:44px;margin:0;font:600 20px/44px 'BH Sans',system-ui,sans-serif}

/* v0.7.6.1r BH-067 (WALL-E 1q): Haven (#helper = launcher + panel) and its bubble sit ABOVE the Calm/Quiet bar on desktop + mobile.
   Cause: blessedly-held.css "body>*:not(#bh-sky){position:relative;z-index:1}" (specificity 1,0,1) beat "#helper{z-index:10}" (1,0,0),
   so Haven computed z-index 1 = the same layer as the Calm bar, which comes later in the page and painted over Haven's buttons.
   64 = above page content (1) and the fixed header (60-62); below Haven's cloud tip (65), the menu scrim/drawer (70/71) and modals/chat (1000+). */
html body>#helper,html body #helper{z-index:64!important}
html body>#bh-hbub,html body #bh-hbub{z-index:64!important}
/* v0.7.6.1s BH-069 (WALL-E 1r): the Haven chat (#bh-chat) is pinned to the screen again.
   Cause: "body>*:not(#bh-sky){position:relative;z-index:1}" (blessedly-held.css, specificity 1,0,1) beat "#bh-chat{position:fixed;z-index:1001}" (1,0,0),
   so the chat sat in the page flow after the footer: opening it jumped to the page end, on phones the header/× were above the screen.
   Fix: position:fixed to the viewport at every width. Phones (<=520px): the whole screen (top/right/bottom/left 0), so the header, × and the input are all visible.
   Wider: bottom-right card, 400 px wide, never taller than the screen. z-index 69 = above the page, the fixed header (60-62), Haven's launcher/bubble (64,
   BH-067) and cloud tip (65); below the menu scrim/drawer (70/71) and the modals/lightbox (1000+). The peek bubble gets the same pin (its own z-index 62). */
html body>#bh-chat,html body #bh-chat{position:fixed!important;z-index:69!important;top:auto;left:auto;right:12px;bottom:12px;margin:0!important;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);box-sizing:border-box}
html body>#bh-chat[hidden],html body #bh-chat[hidden]{display:none!important}
html body #bh-chat header,html body #bh-chat .hc-in{flex:0 0 auto}
html body #bh-chat .hc-log{min-height:0}
@media (max-width:520px){html body>#bh-chat,html body #bh-chat{top:0!important;right:0!important;bottom:0!important;left:0!important;width:auto!important;height:auto!important;max-height:none;border-radius:0}}
html body>#bh-peek,html body #bh-peek{position:fixed!important;z-index:62!important}
/* v0.7.6.1t BH-071 (WALL-E 1s): the menu drawer opened UNDER the open Haven chat.
   Cause: the drawer (.bhh-drawer z 71) and scrim (z 70) live inside .wp-site-blocks, which is its own stacking context at z 1
   ("body>*:not(#bh-sky){position:relative;z-index:1}"), so at the page root they sit below #bh-chat (z 69).
   Fix (no z-index changes): while the drawer is open (bh-nav.js puts html.bhh-lock on), the Haven chat and Haven's floating launcher/bubble/peek
   (the Haven panel inside #helper, the intro/tip cloud .bh-cloud z 65 and the Quiet Haven float .bh-hq-float) are hidden.
   Closing the drawer shows them again exactly as they were (same messages, nothing lost). */
html.bhh-lock body #bh-chat,html.bhh-lock body #helper,html.bhh-lock body #bh-hbub,html.bhh-lock body #bh-peek,html.bhh-lock body .bh-cloud,html.bhh-lock body .bh-hq-float{visibility:hidden!important;pointer-events:none!important}
/* v0.7.6.1t BH-074 (WALL-E 1s): WebKit at 320 px clipped Send/Enviar by 4-15 px. Cause: the input kept its built-in minimum width (flex min-width:auto).
   Fix: the input may shrink (min-width 0), the button never shrinks; on very narrow screens the button padding is a little smaller. */
html body #bh-chat .hc-in{min-width:0}
html body #bh-chat .hc-in input{flex:1 1 0%;min-width:0;width:auto}
html body #bh-chat .hc-in button{flex:0 0 auto;white-space:nowrap}
@media (max-width:360px){html body #bh-chat .hc-in{gap:5px;padding:10px 8px}html body #bh-chat .hc-in button{padding:0 12px}html body #bh-chat .hc-in input{padding:0 12px}}
