/* One quiet utility dock: search and contact share a single surface. */
.bm-contact-dock{--dock-ink:#123f32;position:fixed;right:28px;bottom:32px;z-index:790;color:var(--dock-ink)}
.bm-contact-dock-bar{display:flex;align-items:center;min-height:56px;padding:5px 7px;border:1px solid #cbd6c9;border-radius:40px;background:#fcfcf7;box-shadow:0 6px 25px #103c3015}
@supports ((backdrop-filter:blur(16px)) or (-webkit-backdrop-filter:blur(16px))){.bm-contact-dock-bar{background:rgba(253,253,248,.88);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}}
.biomo-shared-shell .bm-contact-dock .bm-search-capsule{position:static;display:inline-flex;align-items:center;min-height:44px;height:auto;gap:6px;padding:4px 14px 4px 4px;border:0;border-radius:28px;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;font-size:14px;transform:none;color:var(--dock-ink)!important}
.bm-contact-dock .bm-search-capsule-mark{width:30px;height:30px}
.bm-contact-dock .bm-search-capsule-mark .bm-icon{font-size:18px}
.bm-contact-dock-divider{width:1px;height:22px;background:#b7c3b76b;flex:none}
.bm-contact-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:6px 15px;border:0;border-radius:28px;background:transparent;color:var(--dock-ink);font:inherit;font-size:14px;cursor:pointer;transition:background .18s,color .18s}
.bm-contact-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.bm-contact-toggle[aria-expanded=true]{background:var(--dock-ink);color:#fff}
.bm-contact-dock a:focus-visible,.bm-contact-dock button:focus-visible{outline:2px solid #a88525;outline-offset:3px}
.bm-contact-panel[hidden]{display:none!important}
.bm-contact-panel{position:absolute;right:0;bottom:calc(100% + 14px);width:350px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 120px);overflow-y:auto;overscroll-behavior:contain;padding:24px 26px 20px;background:#fcfcf7;border:1px solid #d1dacd;border-radius:24px 24px 7px 24px;box-shadow:0 16px 60px #103c3022;transform-origin:95% 100%;animation:bm-contact-appear .22s cubic-bezier(.2,.7,.25,1) both}
.bm-contact-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}
.bm-contact-panel-head>p{margin:0;color:#64766b;font-size:10px;letter-spacing:.08em;line-height:1.5}
.bm-contact-panel-head>p>span{margin-inline:6px;color:#ae9453}
.bm-contact-panel-head>button{display:grid;place-items:center;min-width:34px;min-height:34px;margin:-8px -9px -8px 0;border:0;border-radius:50%;background:transparent;color:var(--dock-ink);font-size:15px;cursor:pointer}
.bm-contact-panel h2{margin:0!important;padding:0!important;color:var(--dock-ink);font-size:27px;line-height:1.55;font-weight:600;letter-spacing:-.035em}
.bm-contact-panel .bm-contact-panel-intro{margin:10px 0 16px;color:#65746a;font-size:12px;line-height:1.8}
.bm-contact-panel-methods>div{display:flex;gap:8px;align-items:center;padding:14px 0;border-top:1px solid #dce2d7}
.bm-contact-direct{min-width:0;flex:1;color:var(--dock-ink)!important}
.bm-contact-direct>span{display:block;margin-bottom:4px;color:#6b7a6e;font-size:11px;line-height:1.5}
.bm-contact-direct>strong{display:block;font-size:16px;font-weight:500;line-height:1.6;overflow-wrap:anywhere}
.bm-contact-copy{flex:none;padding:6px 0 6px 12px;min-width:44px;min-height:44px;border:0;background:transparent;font:inherit;font-size:11px;color:#62755e;cursor:pointer;text-decoration:underline;text-decoration-color:#adbb9d;text-underline-offset:4px}
.bm-contact-panel .bm-contact-copy-status{min-height:17px;margin:0 0 12px;color:#55744e;font-size:11px;line-height:1.5}
.bm-contact-project{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 16px;border-radius:28px;background:var(--dock-ink);color:#fff!important;font-size:13px;line-height:1.6}
.bm-contact-project .bm-arrow{flex:none;font-size:16px}
.bm-contact-panel .bm-contact-panel-context{margin:10px 0 0;color:#7b867b;font-size:10px;line-height:1.8}
.bm-contact-dock-copy-buffer{position:fixed;top:0;left:-9999px;width:1px;height:1px;opacity:0}
body.bm-search-open .bm-contact-dock,body.bm-mobile-nav-open .bm-contact-dock,body:has(#bm-enquiry-dialog[open]) .bm-contact-dock{visibility:hidden;pointer-events:none}
@media(hover:hover){.bm-contact-dock .bm-search-capsule:hover,.bm-contact-toggle:not([aria-expanded=true]):hover{background:#e9eee1}.bm-contact-direct:hover>strong{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.bm-contact-panel-head>button:hover{background:#edf0e6}.bm-contact-project:hover{background:#205745}}
@keyframes bm-contact-appear{from{opacity:0;transform:translateY(9px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:767px){.bm-contact-dock{right:14px;bottom:calc(18px + env(safe-area-inset-bottom,0px))}.bm-contact-dock-bar{min-height:50px;padding:3px 5px}.biomo-shared-shell .bm-contact-dock .bm-search-capsule{font-size:12px;gap:4px;padding-right:9px}.bm-contact-dock .bm-search-capsule>span:last-child{display:none}.bm-contact-toggle{font-size:12px;gap:6px;padding-inline:12px}.bm-contact-dock .bm-search-capsule-mark{width:28px;height:28px}.bm-contact-toggle svg{width:18px;height:18px}.bm-contact-panel{bottom:calc(100% + 10px);width:330px;max-width:calc(100vw - 28px);padding:22px;max-height:calc(100dvh - 104px)}.bm-contact-panel h2{font-size:25px}.bm-contact-direct>strong{font-size:15px}}
/* The desktop reading guide shares the right margin with the utility dock.
   Reserve 116px below it, then center only within the remaining reading lane.
   124px is the existing caption/controls/CTA overhead; 136px covers the two
   lane edges, so the wheel itself gets viewport - header - 260px. */
@media(min-width:1280px){
 body.biomo-simoa-page .bm-simoa-nav-shell,body.biomo-mihc-page .bm-simoa-nav-shell{--wheel-window:min(560px,58vh,max(96px,calc(100dvh - var(--bm-simoa-sticky-top,89px) - 260px)));top:calc((100dvh + var(--bm-simoa-sticky-top,89px) - 96px)/2)}
 body:has(.bm-contact-toggle[aria-expanded=true]) .bm-simoa-nav-shell,body:has(.bm-contact-toggle[aria-expanded=true]) .bm-simoa-nav-shell .bm-simoa-wheel{visibility:hidden;pointer-events:none}
}
@media(prefers-reduced-motion:reduce){.bm-contact-panel{animation:none}.bm-contact-toggle{transition:none}}
