.chat-widget{
    position:fixed;
    right:30px;
    bottom:90px;
    z-index:998;
    font-family:inherit;
    line-height:1.3;
}

@media(max-width:575px){
    .chat-widget{ right:20px; bottom:106px; }
}

.chat-widget__toggle{
    position:relative;
    width:60px;
    height:60px;
    border-radius:50%;
    border:none;
    padding:0;
    cursor:pointer;
    background:var(--color-primary,#20282D);
    color:#fff;
    box-shadow:0 10px 25px rgba(0,0,0,.25), 0 4px 10px rgba(0,0,0,.18);
    display:flex;
    align-items:center;
    justify-content:center;
    transition:transform .3s ease, box-shadow .3s ease, background .3s ease;
    animation:chat-widget-wiggle 4.5s ease-in-out infinite;
}

.chat-widget__toggle:hover{
    transform:scale(1.08);
    box-shadow:0 14px 30px rgba(0,0,0,.32), 0 6px 12px rgba(0,0,0,.2);
    animation-play-state:paused;
}

.chat-widget__toggle:focus{ outline:none; }

.chat-widget__toggle:focus-visible{
    box-shadow:0 0 0 3px #fff, 0 0 0 6px var(--color-primary,#20282D);
}

.chat-widget__toggle svg{
    width:28px;
    height:28px;
    fill:#fff;
    transition:transform .25s ease, opacity .25s ease;
}

.chat-widget__toggle .chat-widget__icon--close{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%) rotate(-90deg) scale(.6);
    opacity:0;
}

.chat-widget__toggle .chat-widget__icon--chat{
    transform:translate(0,0) scale(1);
    opacity:1;
}

.chat-widget.is-open .chat-widget__toggle{
    animation:none;
    background:#141416;
}

.chat-widget.is-open .chat-widget__toggle .chat-widget__icon--chat{
    transform:scale(.6) rotate(90deg);
    opacity:0;
}

.chat-widget.is-open .chat-widget__toggle .chat-widget__icon--close{
    transform:translate(-50%,-50%) rotate(0) scale(1);
    opacity:1;
}

/* Pulsing ring */
.chat-widget__toggle::before,
.chat-widget__toggle::after{
    content:"";
    position:absolute;
    inset:0;
    border-radius:50%;
    background:var(--color-primary,#20282D);
    opacity:.45;
    z-index:-1;
    animation:chat-widget-pulse 2.2s cubic-bezier(.4,0,.6,1) infinite;
}

.chat-widget__toggle::after{ animation-delay:1.1s; }

.chat-widget.is-open .chat-widget__toggle::before,
.chat-widget.is-open .chat-widget__toggle::after{
    animation:none;
    opacity:0;
}

@keyframes chat-widget-pulse{
    0%   { transform:scale(1);   opacity:.5; }
    70%  { transform:scale(1.6); opacity:0;  }
    100% { transform:scale(1.6); opacity:0;  }
}

@keyframes chat-widget-wiggle{
    0%,85%,100% { transform:rotate(0); }
    88%         { transform:rotate(-10deg); }
    91%         { transform:rotate(10deg); }
    94%         { transform:rotate(-6deg); }
    97%         { transform:rotate(4deg); }
}

/* Messenger panel */
.chat-widget__panel{
    position:absolute;
    right:0;
    bottom:calc(100% + 14px);
    width:290px;
    background:#fff;
    border-radius:16px;
    padding:18px 18px 16px;
    box-shadow:0 20px 50px rgba(0,0,0,.18), 0 6px 16px rgba(0,0,0,.1);
    transform-origin:bottom right;
    transform:scale(.85) translateY(12px);
    opacity:0;
    pointer-events:none;
    transition:transform .22s ease, opacity .22s ease;
}

.chat-widget.is-open .chat-widget__panel{
    transform:scale(1) translateY(0);
    opacity:1;
    pointer-events:auto;
}

.chat-widget__panel::after{
    content:"";
    position:absolute;
    right:22px;
    bottom:-8px;
    width:16px;
    height:16px;
    background:#fff;
    transform:rotate(45deg);
    box-shadow:3px 3px 6px rgba(0,0,0,.06);
}

.chat-widget__header{ margin-bottom:12px; }

.chat-widget__header .chat-widget__title{
    margin:0;
    font-size:15px;
    font-weight:600;
    color:var(--color-heading-1,#1C2539);
}

.chat-widget__header .chat-widget__subtitle{
    margin:2px 0 0;
    font-size:12px;
    color:var(--color-body,#5D666F);
}

.chat-widget__list{
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-direction:column;
    gap:8px;
}

.chat-widget__item a{
    display:flex;
    align-items:center;
    gap:12px;
    padding:9px 11px;
    border-radius:10px;
    text-decoration:none;
    color:var(--color-heading-1,#1C2539);
    background:#f6f7f9;
    transition:background .2s ease, transform .2s ease;
    font-size:14px;
    font-weight:500;
}

.chat-widget__item a:hover{
    background:#eef0f3;
    transform:translateX(2px);
    color:var(--color-heading-1,#1C2539);
}

.chat-widget__item .chat-widget__icon{
    width:34px;
    height:34px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 34px;
    color:#fff;
}

.chat-widget__item .chat-widget__icon svg{
    width:18px;
    height:18px;
    fill:#fff;
}

.chat-widget__item--whatsapp .chat-widget__icon{ background:#25D366; }
.chat-widget__item--telegram .chat-widget__icon{ background:#0088cc; }
.chat-widget__item--viber .chat-widget__icon{ background:#665CAC; }
.chat-widget__item--phone .chat-widget__icon{ background:var(--color-primary,#20282D); }
.chat-widget__item--email .chat-widget__icon{ background:#E04700; }

@media (prefers-reduced-motion: reduce){
    .chat-widget__toggle,
    .chat-widget__toggle::before,
    .chat-widget__toggle::after{
        animation:none !important;
    }

    .chat-widget__panel{ transition:opacity .15s ease; }
}
