/* ============================================================
   CyprusShows — точечные переопределения поверх main.min.css
   Подключается после main-css (см. inc/enque-scripts-and-styles.php).
   Правки здесь не затираются пересборкой основной темы.
   ============================================================ */

/* ------------------------------------------------------------
   2026-09-06. Меню: типографика, центрирование, анимация.
   ------------------------------------------------------------ */

/* --- Типографика. Было 4rem/2rem: содержимое занимало 746px при
   высоте окна ноутбука 630px, первый пункт обрезался и был недоступен. --- */
@media screen and (min-width: 1024px) {
	.nav-menu__inner {
		gap: 2.5rem;
		padding: 5rem 2rem 3.5rem;
	}

	.nav-menu__main-link {
		font-size: 2.5rem;
		line-height: 1.2;
	}

	.nav-menu__secondary-link {
		font-size: 1.25rem;
		line-height: 1.5;
	}

	/* интервалы между пунктами уменьшены на 15% */
	.nav-menu__main      { gap: 1.0625rem; }
	.nav-menu__secondary { gap: 0.75rem; }
}

/* --- Центрирование по вертикали.
   Было justify-content:flex-end — содержимое прижималось к низу, и на
   высоких экранах (планшет 834x1194, 1194x834) сверху оставалась пустота.
   Пара margin:auto центрирует и при этом, в отличие от justify-content:center,
   не обрезает содержимое, если оно вдруг выше экрана — тогда просто
   появляется прокрутка. --- */
/* Прижимал вниз именно .nav-menu — это flex-контейнер с
   justify-content:flex-end, а .nav-menu__inner по высоте равен
   содержимому, поэтому центрировать надо здесь. */
.nav-menu {
	justify-content: center;
}

.nav-menu__inner {
	flex: 1 1 auto;
	max-height: 100%;
	overflow-y: auto;
	overscroll-behavior: contain;
	justify-content: center;
	/* safe center не обрезает содержимое, если оно выше экрана;
	   там, где не поддерживается, работает обычный center выше */
	justify-content: safe center;
}

/* --- Анимация появления.
   Было: без easing (браузерный ease с медленным стартом), длительность .5s,
   шаг лесенки 70ms и НЕТ задержки у 4-го пункта нижнего списка — он
   появлялся первым, из-за чего последовательность выглядела рваной.
   Стало: ease-out, короче ход, непрерывная лесенка на все 8 пунктов. --- */
.nav-menu {
	transition: opacity .28s cubic-bezier(.22, .61, .36, 1), visibility .28s;
}

.nav-menu__main-link,
.nav-menu__secondary-link {
	transition:
		opacity .32s cubic-bezier(.22, .61, .36, 1),
		transform .32s cubic-bezier(.22, .61, .36, 1),
		color .2s ease;
}

.nav-menu__main-link      { transform: translateY(10px); }
.nav-menu__secondary-link { transform: translateY(8px); }

.nav-menu.is-open .nav-menu__main-link:nth-child(1) { transition-delay: 0ms; }
.nav-menu.is-open .nav-menu__main-link:nth-child(2) { transition-delay: 38ms; }
.nav-menu.is-open .nav-menu__main-link:nth-child(3) { transition-delay: 76ms; }
.nav-menu.is-open .nav-menu__main-link:nth-child(4) { transition-delay: 114ms; }
.nav-menu.is-open .nav-menu__secondary-link:nth-child(1) { transition-delay: 152ms; }
.nav-menu.is-open .nav-menu__secondary-link:nth-child(2) { transition-delay: 190ms; }
.nav-menu.is-open .nav-menu__secondary-link:nth-child(3) { transition-delay: 228ms; }
.nav-menu.is-open .nav-menu__secondary-link:nth-child(4) { transition-delay: 266ms; }

/* Закрытие — без лесенки, чтобы меню исчезало сразу */
.nav-menu:not(.is-open) .nav-menu__main-link,
.nav-menu:not(.is-open) .nav-menu__secondary-link { transition-delay: 0ms; }

/* ------------------------------------------------------------
   2026-09-06. Плавающие виджеты связи (WhatsApp + звонок).
   Разметка и параметры повторяют виджет с hybridmaster.pl.
   Сервис согласий Ketch отключён 2026-09-06, угол свободен —
   поэтому отступы совпадают с оригиналом: 28px на десктопе,
   16px на мобильном.
   ------------------------------------------------------------ */
.cs-float {
	position: fixed;
	right: 28px;
	z-index: 9999;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: transform .2s cubic-bezier(.34, 1.56, .64, 1), box-shadow .2s;
}

.cs-float svg {
	position: relative;
	z-index: 1;
	width: 32px;
	height: 32px;
	display: block;
	fill: #fff;
}

.cs-float:hover {
	transform: scale(1.12);
}

/* WhatsApp — нижний, цвет бренда WhatsApp, с пульсацией как в оригинале */
.cs-float--wa {
	bottom: 28px;
	background: #25d366;
	box-shadow: 0 6px 24px rgba(37, 211, 102, .45);
}

.cs-float--wa:hover {
	box-shadow: 0 10px 32px rgba(37, 211, 102, .55);
}

.cs-float--wa::before,
.cs-float--wa::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: rgba(37, 211, 102, .4);
	animation: cs-float-pulse 2.4s cubic-bezier(.4, 0, .6, 1) infinite;
}

.cs-float--wa::after {
	animation-delay: 1.2s;
}

/* Telegram — средний, фирменный синий Telegram #229ED9 */
.cs-float--tg {
	bottom: 100px;
	background: #229ed9;
	box-shadow: 0 6px 24px rgba(34, 158, 217, .45);
}

.cs-float--tg:hover {
	box-shadow: 0 10px 32px rgba(34, 158, 217, .6);
}

/* Звонок — верхний. Жёлтый #FFE600 (акцент сайта).
   Иконка на жёлтом делается тёмной #08232A — белая была бы нечитаема. */
.cs-float--tel {
	bottom: 172px;
	background: #ffe600;
	box-shadow: 0 6px 24px rgba(255, 230, 0, .45);
}

.cs-float--tel svg {
	fill: #08232a;
}

.cs-float--tel:hover {
	box-shadow: 0 10px 32px rgba(255, 230, 0, .6);
}

@keyframes cs-float-pulse {
	0%   { transform: scale(1);    opacity: .7; }
	70%  { transform: scale(1.65); opacity: 0; }
	100% { transform: scale(1.65); opacity: 0; }
}

@media screen and (max-width: 767.98px) {
	.cs-float { right: 16px; width: 46px; height: 46px; }
	.cs-float svg { width: 26px; height: 26px; }
	.cs-float--wa  { bottom: 16px; }
	.cs-float--tg  { bottom: 74px; }
	.cs-float--tel { bottom: 132px; }
}

@media (prefers-reduced-motion: reduce) {
	.cs-float, .cs-float--wa::before, .cs-float--wa::after { animation: none; transition: none; }
	.nav-menu, .nav-menu__main-link, .nav-menu__secondary-link { transition-duration: .01ms; transition-delay: 0ms; }
	.nav-menu__main-link, .nav-menu__secondary-link { transform: none; }
}
