/* Плавающие кнопки: контакты слева, «наверх» справа. Подсказки по data-tip. */
.lv-float { position: fixed; z-index: 90; left: 20px; bottom: 24px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.lv-float__btn, .lv-totop { position: relative; display: inline-flex; width: 56px; height: 56px; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 50%; background: var(--lv-green); color: #fff; cursor: pointer; box-shadow: 0 8px 22px rgba(30, 95, 58, .35); transition: background .2s, transform .2s; }
.lv-float__btn:hover, .lv-float__btn:focus-visible, .lv-totop:hover, .lv-totop:focus-visible { background: var(--lv-coral); transform: translateY(-2px); outline: 0; }
.lv-float__btn::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--lv-green); opacity: 0; animation: lv-float-pulse 2.8s ease-out infinite; pointer-events: none; }
.lv-float__btn[aria-expanded="true"]::after { animation: none; }
@keyframes lv-float-pulse { 0% { transform: scale(1); opacity: .55; } 70%, 100% { transform: scale(1.55); opacity: 0; } }
.lv-float__ic--close, .lv-float__btn[aria-expanded="true"] .lv-float__ic--open { display: none; }
.lv-float__btn[aria-expanded="true"] .lv-float__ic--close { display: block; }

.lv-float__list { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.lv-float__list[hidden] { display: none; }
.lv-float__list li { opacity: 0; transform: translateY(10px) scale(.8); animation: lv-float-in .25s forwards; }
.lv-float__list li:nth-last-child(2) { animation-delay: .03s; } .lv-float__list li:nth-last-child(3) { animation-delay: .06s; } .lv-float__list li:nth-last-child(4) { animation-delay: .09s; } .lv-float__list li:nth-last-child(n+5) { animation-delay: .12s; }
@keyframes lv-float-in { to { opacity: 1; transform: none; } }
.lv-float__list a { position: relative; display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; border-radius: 50%; background: #fff; color: var(--lv-green); box-shadow: 0 6px 16px rgba(30, 95, 58, .22); transition: background .2s, color .2s; }
.lv-float__list a:hover, .lv-float__list a:focus-visible { background: var(--lv-coral); color: #fff; text-decoration: none; outline: 0; }
.lv-float .lv-soc-ico--wide { width: 30px; }

.lv-totop { position: fixed; z-index: 90; right: 20px; bottom: 24px; opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .25s, transform .25s, background .2s; }
.lv-totop.is-shown { opacity: 1; transform: none; pointer-events: auto; }
.lv-totop.is-shown:hover, .lv-totop.is-shown:focus-visible { transform: translateY(-2px); }
.lv-totop[hidden] { display: none; }

/* Подсказки: слева от кнопки показываем справа, у «наверх» слева */
[data-lv-float] [data-tip]::before, .lv-totop[data-tip]::before {
	content: attr(data-tip); position: absolute; top: 50%; padding: 6px 12px; border-radius: 10px; background: var(--lv-text); color: #fff; font: 600 14px/1.3 var(--lv-font-body);
	white-space: nowrap; opacity: 0; pointer-events: none; transform: translateY(-50%); transition: opacity .15s, transform .15s; z-index: 1;
}
[data-lv-float] [data-tip]::before { left: calc(100% + 12px); transform: translate(-6px, -50%); }
.lv-totop[data-tip]::before { right: calc(100% + 12px); transform: translate(6px, -50%); }
@media (hover: hover) {
	[data-lv-float] [data-tip]:hover::before, .lv-totop[data-tip]:hover::before { opacity: 1; transform: translate(0, -50%); }
}
[data-lv-float] [data-tip]:focus-visible::before, .lv-totop[data-tip]:focus-visible::before { opacity: 1; transform: translate(0, -50%); }
.lv-float__btn[aria-expanded="true"]::before { opacity: 0 !important; }

@media (max-width: 700px) {
	.lv-float { left: 14px; bottom: 16px; }
	.lv-totop { right: 14px; bottom: 16px; }
	.lv-float__btn, .lv-totop { width: 50px; height: 50px; }
	.lv-float__list a { width: 46px; height: 46px; }
}
@media (prefers-reduced-motion: reduce) { .lv-float__btn::after { animation: none; } .lv-float__list li { animation: none; opacity: 1; transform: none; } }
