/* ── Общие плавные переходы для кнопок и ссылок по всему сайту ── */
a, button { transition: transform .15s ease, opacity .15s ease, background .2s ease, filter .2s ease, box-shadow .2s ease, border-color .2s ease; }

.btn-solid, .btn-outline, .btn-solid-sm, .btn-outline-sm,
.consent-accept, .consent-decline, .cookie-accept, .cookie-decline,
.faq-q, .back, .price-btns a { cursor: pointer; }

.btn-solid:hover, .btn-solid-sm:hover, .cookie-accept:hover, .consent-accept.active:hover { filter: brightness(1.1); }
.btn-outline:hover, .btn-outline-sm:hover, .cookie-decline:hover { border-color: var(--accent, #00E5FF); }

.btn-solid:active, .btn-outline:active, .btn-solid-sm:active, .btn-outline-sm:active,
.consent-accept.active:active, .consent-decline:active,
.cookie-accept:active, .cookie-decline:active { transform: scale(0.96); }

.faq-q:hover { opacity: 0.85; }
.back:hover { opacity: 0.7; }
.foot-cols a:hover, .contact-box a:hover { opacity: 0.8; }

/* ── Плавное появление блоков при скролле ── */
.reveal-init {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 1.1s cubic-bezier(0.16, 1, 0.3, 1), transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-init.revealed { opacity: 1; transform: translateY(0); }

/* ── "Дорогие" премиум-анимации ── */

/* Переливающийся градиентный текст */
.grad, .brand .vpn {
  background-size: 200% auto;
  animation: grad-shimmer 4s ease-in-out infinite;
}
@keyframes grad-shimmer {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Пульсирующая точка в бейдже ("live"-индикатор) */
.badge .dot {
  position: relative;
  animation: dot-pulse 1.8s ease-out infinite;
}
.badge .dot::after {
  content: ""; position: absolute; inset: -4px; border-radius: 50%;
  border: 1.5px solid currentColor; opacity: 0;
  animation: dot-ring 1.8s ease-out infinite;
}
@keyframes dot-pulse { 0%,100% { opacity: 1; } 50% { opacity: .5; } }
@keyframes dot-ring {
  0%   { transform: scale(0.6); opacity: .7; }
  100% { transform: scale(1.8); opacity: 0; }
}

/* Подъём карточек при наведении/тапе */
.feat-card, .price-card, .data-card {
  transition: transform .25s cubic-bezier(.21,.6,.35,1), box-shadow .25s ease, border-color .25s ease;
}
.feat-card:hover, .price-card:hover, .data-card:hover {
  transform: translateY(-4px);
  border-color: #2A2D36;
  box-shadow: 0 12px 30px rgba(0,0,0,0.35);
}
.price-card.popular { animation: popular-glow 3s ease-in-out infinite; }
@keyframes popular-glow {
  0%,100% { box-shadow: 0 0 0 1px var(--accent, #00E5FF), 0 0 24px rgba(0,229,255,0.10); }
  50%     { box-shadow: 0 0 0 1px var(--accent-2, #7C5CFF), 0 0 38px rgba(124,92,255,0.22); }
}

/* Переливающийся блик по кнопкам при наведении */
.btn-solid, .btn-solid-sm, .cookie-accept, .consent-accept.active {
  position: relative; overflow: hidden;
}
.btn-solid::after, .btn-solid-sm::after, .cookie-accept::after, .consent-accept.active::after {
  content: ""; position: absolute; top: 0; left: -60%; width: 40%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.45), transparent);
  transform: skewX(-20deg);
  transition: left .6s ease;
}
.btn-solid:hover::after, .btn-solid-sm:hover::after, .cookie-accept:hover::after, .consent-accept.active:hover::after {
  left: 130%;
}

@media (prefers-reduced-motion: reduce) {
  .grad, .brand .vpn, .badge .dot, .badge .dot::after, .price-card.popular { animation: none; }
}
