
.omb-wrap {
    position: fixed;
    z-index: 99990;
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
}

.omb-button {
    --omb-bg: #333;
    position: relative;
    width: var(--omb-desktop-size);
    height: var(--omb-desktop-size);
    flex: 0 0 var(--omb-desktop-size);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--omb-bg);
    color: #fff;
    text-decoration: none !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.20);
    border: 0;
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
    pointer-events: auto;
    -webkit-tap-highlight-color: transparent;
    overflow: hidden;
    box-sizing: border-box;
}

.omb-button:hover,
.omb-button:focus-visible {
    color: #fff;
    transform: translateY(-2px) scale(1.04);
    box-shadow: 0 11px 28px rgba(0,0,0,.25);
    filter: brightness(1.04);
}

.omb-button:focus-visible {
    outline: 3px solid rgba(255,255,255,.95);
    outline-offset: 2px;
}

.omb-telegram { --omb-bg: #229ED9; }
.omb-viber { --omb-bg: #7360F2; }

/* ВАЖНО: размер задаётся контейнеру ОДИН раз. SVG занимает 100% контейнера. */
.omb-icon {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 68%;
    height: 68%;
    line-height: 0;
    flex: 0 0 68%;
}

.omb-icon svg {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    overflow: visible;
}

/* Telegram визуально лучше выглядит чуть крупнее. */
.omb-telegram .omb-icon {
    width: 72%;
    height: 72%;
    flex-basis: 72%;
}

/* Viber оставляем чуть компактнее, чтобы пузырь не касался краёв. */
.omb-viber .omb-icon {
    width: 66%;
    height: 66%;
    flex-basis: 66%;
}

.omb-label {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    white-space: nowrap;
    background: rgba(24,24,24,.94);
    color: #fff;
    font: 600 13px/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    padding: 8px 10px;
    border-radius: 8px;
    opacity: 0;
    visibility: hidden;
    transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
    pointer-events: none;
}

.omb-position-right .omb-label {
    right: calc(100% + 10px);
    transform: translate(4px,-50%);
}

.omb-position-left .omb-label {
    left: calc(100% + 10px);
    transform: translate(-4px,-50%);
}

.omb-button:hover .omb-label,
.omb-button:focus-visible .omb-label {
    opacity: 1;
    visibility: visible;
    transform: translate(0,-50%);
}

.omb-no-labels .omb-label { display: none; }

@media (max-width: 782px) {
    .omb-wrap { gap: 8px; }

    .omb-button {
        width: var(--omb-mobile-size);
        height: var(--omb-mobile-size);
        flex-basis: var(--omb-mobile-size);
        box-shadow: 0 7px 20px rgba(0,0,0,.19);
    }

    .omb-telegram .omb-icon {
        width: 74%;
        height: 74%;
        flex-basis: 74%;
    }

    .omb-viber .omb-icon {
        width: 68%;
        height: 68%;
        flex-basis: 68%;
    }

    .omb-label { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .omb-button,
    .omb-label { transition: none; }
}
