/* Floating contact button (store pages). Every visual value that may still change is a custom property in the first rule: replace the values there only, nothing below needs to change. Colours come from the site tokens, except the glyph colour. */
:root{--cfab-size:56px;--cfab-size-sub:44px;--cfab-gap:16px;--cfab-panel-gap:12px;--cfab-panel-w:320px;--cfab-top-reserve:88px;--cfab-bg:var(--brand-grad);--cfab-fg:#fff;--cfab-sub-bg:var(--surface);--cfab-sub-fg:var(--ink);--cfab-shadow:var(--shadow-2);--cfab-ic:24px;--cfab-ic-sub:20px;--cfab-radius:var(--r-pill);--cfab-panel-bg:var(--surface);--cfab-panel-radius:var(--r-lg);--cfab-pad:var(--s4);--cfab-link-h:48px;--cfab-close:44px;--cfab-fs-title:15px;--cfab-fs-name:18px;--cfab-fs-all:14px;--cfab-hide-shift:8px;--cfab-dur:.18s}
html.cfab-on{scroll-padding-bottom:calc(var(--cfab-size) + var(--cfab-gap) * 2 + env(safe-area-inset-bottom, 0px))}
/* the only fixed element of this file; z-index stays below the top bar (40), the language menu (60) and the skip link (100) */
.cfab{position:fixed;right:max(var(--cfab-gap), env(safe-area-inset-right, 0px));bottom:calc(var(--cfab-gap) + env(safe-area-inset-bottom, 0px));z-index:35;display:flex;flex-direction:column;align-items:flex-end;transition:opacity var(--cfab-dur) var(--ease),transform var(--cfab-dur) var(--ease)}
.cfab--off{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(var(--cfab-hide-shift))}
html.calc-lock .cfab{display:none}
.cfab-btn{display:flex;align-items:center;justify-content:center;width:var(--cfab-size);height:var(--cfab-size);margin:0;padding:0;border:0;border-radius:var(--cfab-radius);background:var(--cfab-bg);color:var(--cfab-fg);box-shadow:var(--cfab-shadow);cursor:pointer;-webkit-tap-highlight-color:transparent}
.cfab-btn:focus-visible,.cfab-x:focus-visible,.cfab-link:focus-visible,.cfab-all:focus-visible{outline:3px solid var(--brand-purple);outline-offset:2px}
.cfab-ic{width:var(--cfab-ic);height:var(--cfab-ic);flex:none}
/* the store already has a hero contact button: this one is the smaller, quieter helper */
.cfab--sub .cfab-btn{width:var(--cfab-size-sub);height:var(--cfab-size-sub);background:var(--cfab-sub-bg);color:var(--cfab-sub-fg);box-shadow:inset 0 0 0 1px var(--line),var(--cfab-shadow)}
.cfab--sub .cfab-btn .cfab-ic{width:var(--cfab-ic-sub);height:var(--cfab-ic-sub)}
.cfab-panel{position:absolute;right:0;bottom:calc(100% + var(--cfab-panel-gap));box-sizing:border-box;width:min(var(--cfab-panel-w), calc(100vw - var(--cfab-gap) * 2));max-height:calc(100vh - var(--cfab-top-reserve) - var(--cfab-size) - var(--cfab-gap) * 2 - var(--cfab-panel-gap) - env(safe-area-inset-bottom, 0px));max-height:calc(100dvh - var(--cfab-top-reserve) - var(--cfab-size) - var(--cfab-gap) * 2 - var(--cfab-panel-gap) - env(safe-area-inset-bottom, 0px));overflow:auto;padding:var(--cfab-pad);border-radius:var(--cfab-panel-radius);background:var(--cfab-panel-bg);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line),var(--cfab-shadow)}
.cfab-panel[hidden]{display:none}
.cfab-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}
.cfab-title{margin:0;font-size:var(--cfab-fs-title);font-weight:700;color:var(--ink-2)}
.cfab-x{flex:none;width:var(--cfab-close);height:var(--cfab-close);margin:-6px -8px -6px 0;padding:0;border:0;border-radius:var(--cfab-radius);background:transparent;color:var(--ink);font-size:24px;line-height:1;cursor:pointer}
.cfab-name{margin:var(--s2) 0 var(--s3);font-size:var(--cfab-fs-name);font-weight:700;overflow-wrap:anywhere}
.cfab-links{display:flex;flex-direction:column;gap:var(--s2)}
.cfab-link{display:flex;align-items:center;gap:var(--s3);box-sizing:border-box;min-height:var(--cfab-link-h);padding:0 var(--s4);border-radius:var(--cfab-radius);background:var(--seg-track);color:var(--ink);font-weight:600;text-decoration:none;overflow-wrap:anywhere}
.cfab-link:hover{background:var(--seg-on)}
.cfab-link--telegram .cfab-ic{color:var(--brand-purple)}
.cfab-all{display:flex;align-items:center;min-height:44px;margin-top:var(--s2);color:var(--ink-2);font-size:var(--cfab-fs-all);text-decoration:underline}
@media (prefers-reduced-motion:reduce){.cfab{transition:none}}
