/* Анимации и виджет связи (21.09.2026). Один селектор — одна строка. Уважает prefers-reduced-motion. */

/* ── FAQ: высоту ведёт ui.js (height), здесь — плавность и иконка ── */
.faq-body{overflow:hidden;transition:height .38s cubic-bezier(.4,0,.2,1),opacity .3s ease;}
.faq-item .faq-toggle{transition:transform .3s cubic-bezier(.4,0,.2,1),background-color .25s ease,color .25s ease;}
.faq-item.active .faq-toggle{transform:rotate(180deg);}
.faq-item .faq-head{transition:color .2s ease;}
.faq-item:hover .faq-head{color:var(--color-green);}

/* ── появление блоков при прокрутке (класс ставит ui.js; без JS всё видно сразу) ── */
.js-reveal .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform;}
.js-reveal .reveal.is-in{opacity:1;transform:none;}
.js-reveal .reveal--d1{transition-delay:.08s;}
.js-reveal .reveal--d2{transition-delay:.16s;}
.js-reveal .reveal--d3{transition-delay:.24s;}

/* ── кнопки и карточки ── */
.calc__btn,.scheme__btn,.btn-calc,.hero-button-service--green,.hero-tabs__button--green,.hero-tabs__button--border,.mobile-phone,.works-filter__btn,.reviews-all-btn,.wellpart__btn,.stlink{transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease;}
.calc__btn:hover,.scheme__btn:hover,.btn-calc:hover,.hero-button-service--green:hover,.hero-tabs__button--green:hover,.mobile-phone:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(68,136,130,.35);}
.calc__btn:active,.scheme__btn:active,.btn-calc:active,.hero-button-service--green:active{transform:translateY(0);box-shadow:none;}
.stcard,.team__card,.promo__card,.work,.spk-review-card,.stblock,.concept-prem__item,.wellpart{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;}
.team__card:hover,.promo__card:hover,.spk-review-card:hover{transform:translateY(-3px);border-color:rgba(68,136,130,.6);box-shadow:0 14px 30px rgba(0,0,0,.25);}
.calc__chip span,.calc__check input,.calc__check span{transition:background-color .2s ease,border-color .2s ease,color .2s ease;}
.calc__panel{animation:spk-fade .35s ease both;}
.calc__total,.calc__result{transition:opacity .2s ease;}

/* ── выпадающее меню шапки: плавно вместо display ── */
#header-spk .dropdown{display:flex;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s;pointer-events:none;}
#header-spk .has-dropdown:hover .dropdown,#header-spk .has-dropdown:focus-within .dropdown{opacity:1;visibility:visible;transform:none;transition-delay:0s;pointer-events:auto;}
#header-spk .main-menu a,#header-spk .category-menu a,.footer-col li a,.stlink,.station__link,.work__cap em a{transition:color .2s ease,opacity .2s ease;}

@keyframes spk-fade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

/* ── Виджет связи: кнопка + карточка со списком каналов ── */
.msg-widget{position:fixed;right:18px;bottom:22px;z-index:9999;display:flex;flex-direction:column;align-items:flex-end;gap:12px;pointer-events:none;}
/* контейнер прозрачен для нажатий (свёрнутый список занимал 300×430 px и глушил кнопки под ним на телефоне, 22.09.2026); кликабельны только кнопка и раскрытая карточка */
.msg-toggle{pointer-events:auto;}
.msg-toggle{position:relative;width:60px;height:60px;border-radius:50%;border:0;cursor:pointer;background:linear-gradient(135deg,#4fa39c,#2f6f6a);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(47,111,106,.45);transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s ease;}
.msg-toggle:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 14px 32px rgba(47,111,106,.55);}
.msg-toggle::before{content:'';position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(79,163,156,.55);animation:msg-ring 2.4s ease-out infinite;}
.msg-widget.active .msg-toggle::before{animation:none;opacity:0;}
.msg-toggle svg{width:26px;height:26px;transition:transform .3s cubic-bezier(.2,.7,.2,1),opacity .2s ease;position:absolute;}
.msg-toggle .msg-close{opacity:0;transform:rotate(-90deg) scale(.6);}
.msg-widget.active .msg-toggle svg:first-child{opacity:0;transform:rotate(90deg) scale(.6);}
.msg-widget.active .msg-toggle .msg-close{opacity:1;transform:none;}
.msg-toggle .msg-badge{position:absolute;top:-2px;right:-2px;width:14px;height:14px;border-radius:50%;background:#3ddc84;border:2px solid #1e1e1e;}
.msg-widget.active .msg-toggle .msg-badge{display:none;}
.msg-list{width:300px;max-width:calc(100vw - 36px);background:rgba(34,37,39,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:14px;box-shadow:0 20px 50px rgba(0,0,0,.45);transform-origin:bottom right;opacity:0;visibility:hidden;transform:translateY(12px) scale(.96);transition:opacity .25s ease,transform .3s cubic-bezier(.2,.7,.2,1),visibility 0s linear .3s;pointer-events:none;}
.msg-widget.active .msg-list{opacity:1;visibility:visible;transform:none;transition-delay:0s;pointer-events:auto;}
.msg-list__head{padding:4px 6px 12px;display:flex;align-items:center;gap:10px;color:#fff;font-weight:600;font-size:15px;}
.msg-list__head::before{content:'';width:8px;height:8px;border-radius:50%;background:#3ddc84;box-shadow:0 0 0 4px rgba(61,220,132,.2);}
.msg-list__head small{display:block;font-weight:400;font-size:12px;color:rgba(255,255,255,.55);margin-top:2px;}
.msg-item{display:grid;grid-template-columns:44px minmax(0,1fr) 16px;align-items:center;gap:12px;padding:8px;border-radius:14px;text-decoration:none;color:#fff;transition:background-color .2s ease,transform .2s ease;opacity:0;transform:translateX(10px);}
.msg-widget.active .msg-item{opacity:1;transform:none;transition:background-color .2s ease,transform .35s cubic-bezier(.2,.7,.2,1),opacity .3s ease;}
.msg-widget.active .msg-item:nth-child(2){transition-delay:.04s;}
.msg-widget.active .msg-item:nth-child(3){transition-delay:.08s;}
.msg-widget.active .msg-item:nth-child(4){transition-delay:.12s;}
.msg-widget.active .msg-item:nth-child(5){transition-delay:.16s;}
.msg-widget.active .msg-item:nth-child(6){transition-delay:.2s;}
.msg-item:hover{background:rgba(255,255,255,.07);}
.msg-item:hover .msg-item__arrow{transform:translateX(3px);opacity:1;}
.msg-item__icon{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex:0 0 44px;}
.msg-item__icon img,.msg-item__icon svg{width:24px;height:24px;display:block;}
.msg-item--max .msg-item__icon{background:linear-gradient(135deg,#7b5cff,#4b2fe0);}
.msg-item--tg .msg-item__icon{background:#2aabee;}
.msg-item--wa .msg-item__icon{background:#25d366;}
.msg-item--tel .msg-item__icon{background:var(--color-green);}
.msg-item--mail .msg-item__icon{background:#3a7bd5;}
.msg-item__text{display:flex;flex-direction:column;min-width:0;}
.msg-item__text b{font-size:15px;font-weight:600;line-height:1.25;}
.msg-item__text span{font-size:12px;color:rgba(255,255,255,.55);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.msg-item__arrow{color:rgba(255,255,255,.4);opacity:.6;transition:transform .2s ease,opacity .2s ease;}
@keyframes msg-ring{0%{transform:scale(.85);opacity:.9;}70%{transform:scale(1.35);opacity:0;}100%{transform:scale(1.35);opacity:0;}}
body:has(.wolf-cookie:not([hidden])) .msg-widget{bottom:112px;}
@media (max-width:640px){.msg-widget{right:12px;bottom:16px;gap:10px;}.msg-toggle{width:54px;height:54px;}.msg-list{padding:10px;border-radius:18px;}.msg-item{padding:7px;}body:has(.wolf-cookie:not([hidden])) .msg-widget{bottom:150px;}}

@media (prefers-reduced-motion:reduce){.js-reveal .reveal{opacity:1;transform:none;transition:none;}.faq-body{transition:none;}.msg-toggle::before{animation:none;}.calc__panel{animation:none;}}
