/* ==========================================================================
   Ads Pro — hero-anim.css
   «Орбита AP-дуги»: десктопная CSS-анимация справа в hero-секции.
   Только ≥1024px. Левая часть hero (текст, заголовок) не перекрывается.
   ========================================================================== */

.hero-orbit { display: none; }

@media (min-width: 1024px) {

  .hero-orbit {
    display: block;
    position: absolute;
    top: 50%;
    /* правая треть экрана; центр анимации не заходит на текст слева */
    right: max(2vw, calc((100vw - 1200px) / 2 - 40px));
    width: min(38vw, 560px);
    aspect-ratio: 1;
    transform: translateY(-50%);
    z-index: 0; /* под .hero__inner (z-index: 1) */
    pointer-events: none;
  }

  /* Мягкое свечение за орбитой */
  .hero-orbit__glow {
    position: absolute;
    inset: 12%;
    border-radius: 50%;
    background: radial-gradient(circle,
      rgba(46, 124, 246, .14) 0%,
      rgba(31, 182, 166, .10) 45%,
      transparent 70%);
    animation: hero-orbit-breathe 8s var(--ease, ease-in-out) infinite;
  }

  /* Фирменный знак в центре орбиты */
  .hero-orbit__logo {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 22%;
    height: auto;
    transform: translate(-50%, -50%);
    filter: drop-shadow(0 0 18px rgba(46, 124, 246, .45))
            drop-shadow(0 0 40px rgba(61, 214, 140, .20));
    animation: hero-orbit-logo 7s var(--ease, ease-in-out) infinite;
  }

  @keyframes hero-orbit-logo {
    0%, 100% { transform: translate(-50%, -50%) scale(1); }
    50%      { transform: translate(-50%, -52.5%) scale(1.04); }
  }

  /* Дуги */
  .hero-orbit__arc {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
  }

  .hero-orbit__arc--outer { animation: hero-orbit-spin 70s linear infinite; }
  .hero-orbit__arc--inner { animation: hero-orbit-spin-rev 50s linear infinite; }

  /* Кольцо с чипами: вращается, чипы контр-вращаются и остаются читаемыми */
  .hero-orbit__ring {
    position: absolute;
    inset: 6%;
    animation: hero-orbit-spin 46s linear infinite;
  }

  .hero-orbit__chip {
    position: absolute;
    top: 50%;
    left: 50%;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
    background: rgba(34, 10, 68, .75);
    border: 1px solid var(--border);
    border-radius: 999px;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    /* раскладка по кругу: 4 чипа через 90°; контр-вращение в keyframes
       держит текст горизонтально, пока родительское кольцо крутится */
    --angle: calc(var(--pos) * 90deg);
    --radius: min(15.5vw, 218px);
    animation: hero-orbit-chip 46s linear infinite;
  }

  @keyframes hero-orbit-chip {
    from {
      transform:
        translate(-50%, -50%)
        rotate(var(--angle))
        translateX(var(--radius))
        rotate(calc(var(--angle) * -1))
        rotate(0deg);
    }
    to {
      transform:
        translate(-50%, -50%)
        rotate(var(--angle))
        translateX(var(--radius))
        rotate(calc(var(--angle) * -1))
        rotate(-360deg);
    }
  }

  /* Дрейфующие светящиеся точки на разных радиусах */
  .hero-orbit__dot {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--brand-green);
    box-shadow: 0 0 12px 2px rgba(61, 214, 140, .55);
  }

  .hero-orbit__dot--1 { animation: hero-orbit-dot 14s linear infinite; --r: min(12vw, 168px); --delay: 0s; }
  .hero-orbit__dot--2 { animation: hero-orbit-dot 20s linear infinite reverse; --r: min(17vw, 252px); --delay: -6s;
    background: var(--brand-blue); box-shadow: 0 0 12px 2px rgba(46, 124, 246, .55); }
  .hero-orbit__dot--3 { animation: hero-orbit-dot 26s linear infinite; --r: min(8vw, 110px); --delay: -13s;
    background: var(--brand-teal); box-shadow: 0 0 12px 2px rgba(31, 182, 166, .55); }

  .hero-orbit__dot { animation-delay: var(--delay, 0s); }

  @keyframes hero-orbit-spin {
    to { transform: rotate(360deg); }
  }

  @keyframes hero-orbit-spin-rev {
    to { transform: rotate(-360deg); }
  }

  @keyframes hero-orbit-dot {
    from { transform: translate(-50%, -50%) rotate(0deg)   translateX(var(--r)); }
    to   { transform: translate(-50%, -50%) rotate(360deg) translateX(var(--r)); }
  }

  @keyframes hero-orbit-breathe {
    0%, 100% { opacity: .7; transform: scale(1); }
    50%      { opacity: 1;  transform: scale(1.06); }
  }

  /* На узких десктопах текст шире — сдвигаем орбиту правее и уменьшаем */
  @media (max-width: 1279.98px) {
    .hero-orbit { width: min(34vw, 440px); right: 1vw; opacity: .85; }
  }
}

/* Без движения для prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .hero-orbit,
  .hero-orbit * {
    animation: none !important;
  }
}
