/* ОБЪЕКТ — плавающая кнопка «Связаться» (objfab-*). Спокойная: тёмный круг с тонкой акцентной обводкой,
   появляется после первого экрана, меню — только по нажатию. Над ней — своя кнопка «наверх» (шаблонная .to-top скрыта). */
.objfab, .objfab *{box-sizing:border-box;}
.objfab-dock{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;flex-direction:column;align-items:center;gap:12px;font-family:var(--objekt-font-body);pointer-events:none;}
.objfab-dock > *{pointer-events:auto;}
.objfab{position:relative;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .35s ease, transform .35s ease, visibility 0s linear .35s;}
.objfab.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .35s ease, transform .35s ease;}
.objfab-dock button{font:inherit;margin:0;box-shadow:none;-webkit-appearance:none;appearance:none;text-transform:none;letter-spacing:normal;}

.objfab-btn{position:relative;display:grid;place-items:center;width:56px;height:56px;padding:0;border:1px solid rgba(169,150,125,0.75);border-radius:50%;
  background:rgba(28,26,26,0.92);color:var(--objekt-color-cream);cursor:pointer;backdrop-filter:blur(6px);
  box-shadow:0 10px 28px rgba(0,0,0,0.45);transition:background-color .25s ease, border-color .25s ease, color .25s ease;}
.objfab-btn:hover{background:var(--objekt-color-accent);border-color:var(--objekt-color-accent);color:var(--objekt-color-bg);}
.objfab-btn:focus-visible{outline:2px solid var(--objekt-color-accent) !important;outline-offset:3px;}
.objfab-btn__ic{grid-area:1 / 1;display:flex;transition:opacity .2s ease, transform .25s ease;}
.objfab-btn__ic svg{width:24px;height:24px;}
.objfab-btn__ic--close{opacity:0;transform:rotate(-45deg);}
.objfab.is-open .objfab-btn__ic--open{opacity:0;transform:rotate(45deg);}
.objfab.is-open .objfab-btn__ic--close{opacity:1;transform:none;}
.objfab.is-open .objfab-btn{background:var(--objekt-color-accent);border-color:var(--objekt-color-accent);color:var(--objekt-color-bg);}

.objfab-panel{position:absolute;right:0;bottom:68px;width:300px;padding:16px;border:1px solid var(--objekt-color-line-strong);border-radius:6px;
  background:#211E1E;box-shadow:0 22px 50px rgba(0,0,0,0.55);transform-origin:right bottom;animation:objfabIn .22s ease;}
.objfab-panel[hidden]{display:none;}
@keyframes objfabIn{from{opacity:0;transform:translateY(8px) scale(.98);}to{opacity:1;transform:none;}}
.objfab-panel__head{margin:2px 4px 12px;font-family:var(--objekt-font-heading);font-size:21px;line-height:1.2;color:var(--objekt-color-cream);}
.objfab-panel__head span{color:var(--objekt-color-accent);}
.objfab-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px;border:0;border-radius:4px;background:transparent;color:var(--objekt-color-cream);
  text-align:left;text-decoration:none;cursor:pointer;transition:background-color .2s ease;}
.objfab-row:hover, .objfab-row:focus-visible{background:rgba(169,150,125,0.12);outline:none;}
.objfab-row__ic{display:grid;place-items:center;flex:none;width:38px;height:38px;border:1px solid rgba(169,150,125,0.55);border-radius:50%;color:var(--objekt-color-accent);}
.objfab-row__ic svg{width:18px;height:18px;}
.objfab-row__ic--brand{border-color:transparent;}
.objfab-row__ic--brand svg{width:26px;height:26px;}
.objfab-row__t{display:flex;flex-direction:column;gap:2px;min-width:0;}
.objfab-row__t b{font-weight:500;font-size:15px;line-height:1.25;}
.objfab-row__t small{font-size:12.5px;color:rgba(245,242,237,0.55);}
.objfab-row--main{margin-bottom:4px;background:var(--objekt-color-accent);color:var(--objekt-color-bg);}
.objfab-row--main:hover, .objfab-row--main:focus-visible{background:var(--objekt-color-accent-hover, #B8A68E);}
.objfab-row--main .objfab-row__ic{border-color:rgba(28,26,26,0.35);color:var(--objekt-color-bg);}
.objfab-row--main .objfab-row__t small{color:rgba(28,26,26,0.7);}
.objfab-msgs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:6px;padding-top:8px;border-top:1px solid var(--objekt-color-line);}
.objfab-msgs .objfab-row{gap:8px;padding:8px;}
/* наверх: маленький круг над «Связаться», появляется после полутора экранов, плавная прокрутка (JS) */
.objfab-up{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--objekt-color-line-strong);border-radius:50%;
  background:rgba(28,26,26,0.85);color:rgba(245,242,237,0.85);cursor:pointer;backdrop-filter:blur(6px);box-shadow:0 8px 22px rgba(0,0,0,0.35);
  opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .3s ease, transform .3s ease, visibility 0s linear .3s, border-color .2s ease, color .2s ease;}
.objfab-up.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .3s ease, transform .3s ease, border-color .2s ease, color .2s ease;}
.objfab-up:hover{border-color:var(--objekt-color-accent);color:var(--objekt-color-accent);}
.objfab-up:focus-visible{outline:2px solid var(--objekt-color-accent) !important;outline-offset:3px;}
.objfab-up svg{width:20px;height:20px;}
.objfab-dock.is-open .objfab-up{opacity:0;visibility:hidden;}
.objfab .objn-logo-tg circle{fill:#27A7E7;}
.objfab .objn-logo-tg path{fill:#fff;}
.objfab .objn-logo-max path{fill:url(#objn-max-grad);}

/* шаблонная кнопка «наверх» не нужна — своя в .objfab-dock */
body .to-top{display:none !important;}

@media (max-width:767px){
  .objfab-dock{right:12px;bottom:calc(14px + env(safe-area-inset-bottom));gap:10px;}
  .objfab-up{width:40px;height:40px;}
  .objfab-btn{width:50px;height:50px;}
  .objfab-panel{bottom:62px;width:min(300px, calc(100vw - 24px));}
  .objfab--no-mob{display:none;}
  body.objc-page .objfab-dock{bottom:calc(84px + env(safe-area-inset-bottom));}   /* над нижней панелью «Контактов» */
}
@media (prefers-reduced-motion: reduce){ .objfab, .objfab-panel, .objfab-btn__ic, .objfab-up{transition:none;animation:none;} }
