/* ========== FCN — Блок экосистемы (орбитальное вращение) ========== */

/* ========== @keyframes орбита ========== */

@keyframes orbit {
    from {
        transform:
            rotate(var(--start-angle, 0deg))
            translateX(var(--orbit-r, 110px))
            rotate(calc(0deg - var(--start-angle, 0deg)));
    }
    to {
        transform:
            rotate(calc(360deg + var(--start-angle, 0deg)))
            translateX(var(--orbit-r, 110px))
            rotate(calc(0deg - 360deg - var(--start-angle, 0deg)));
    }
}

/* ========== Секция ========== */

.ecosystem-section {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(ellipse 55% 45% at 25% 35%, rgba(201, 168, 76, 0.08) 0%, transparent 60%),
        radial-gradient(ellipse 45% 35% at 75% 65%, rgba(230, 57, 70, 0.06) 0%, transparent 60%);
}

.ecosystem-section::before,
.ecosystem-section::after {
    content: '';
    position: absolute;
    left: 0; right: 0;
    height: 80px;
    pointer-events: none;
    z-index: 2;
}

.ecosystem-section::before {
    top: 0;
    background: linear-gradient(to bottom, var(--bg-primary), transparent);
}

.ecosystem-section::after {
    bottom: 0;
    background: linear-gradient(to top, var(--bg-primary), transparent);
}

/* ========== Орбитальная сцена ========== */

/* Мобайл: орбита по умолчанию */
/* orbit-r 125px: крайняя точка лого = 125+36=161px от центра,
   итого 322px — чуть шире сцены, но overflow:visible + контейнер
   с padding держат в пределах экрана */
.orbit-scene {
    --orbit-r: 125px;
    display: block;
    position: relative;
    width: 300px;
    height: 300px;
    margin: 0 auto;
    overflow: visible;
    contain: layout;
}

/* Десктоп: увеличиваем сцену */
@media (min-width: 640px) {
    .orbit-scene {
        --orbit-r: 210px;
        width: 600px;
        height: 600px;
    }
}

/* Центральное свечение */
.orbit-scene::before {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 260px;
    height: 260px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(201, 168, 76, 0.07) 0%, transparent 70%);
    pointer-events: none;
    z-index: 0;
}

/* ========== Орбитальная дорожка ========== */

.orbit-track {
    position: absolute;
    top: 50%; left: 50%;
    width: calc(var(--orbit-r) * 2);
    height: calc(var(--orbit-r) * 2);
    transform: translate(-50%, -50%);
    border-radius: 50%;
    border: 1px dashed rgba(201, 168, 76, 0.20);
    pointer-events: none;
    z-index: 1;
}

/* ========== Центральный текст ========== */

.orbit-center {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    z-index: 4;
    pointer-events: none;
    white-space: nowrap;
}

.orbit-center-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: var(--radius-full);
    background: var(--gold-bg);
    border: 1px solid rgba(201, 168, 76, 0.30);
    color: var(--gold);
    font-size: 0.58rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    margin-bottom: 6px;
}

@media (min-width: 640px) {
    .orbit-center-badge {
        padding: 4px 12px;
        font-size: 0.68rem;
        margin-bottom: 10px;
    }
}

.orbit-center-title {
    font-family: 'Space Grotesk', 'Inter', sans-serif;
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.1;
    color: var(--text-primary);
    margin-bottom: 5px;
}

@media (min-width: 640px) {
    .orbit-center-title {
        font-size: 2.1rem;
        margin-bottom: 8px;
    }
}

.orbit-center-sub {
    font-size: 0.65rem;
    color: var(--text-muted);
    letter-spacing: 0.03em;
}

@media (min-width: 640px) {
    .orbit-center-sub {
        font-size: 0.78rem;
    }
}

/* ========== Элемент орбиты ========== */

.orbit-item {
    position: absolute;
    top: 50%;
    left: 50%;
    /* Мобайл: высота лого 40px → -20px, ширина 72px → -36px */
    margin-top: -20px;
    margin-left: -36px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    animation: orbit 26s linear infinite;
    will-change: transform;
    z-index: 3;
    cursor: default;
    /*
      Фиксируем transform-origin на центре логотипа (36px, 20px),
      иначе если тег шире логотипа — ось вращения смещается
      и орбита становится неровной.
    */
    transform-origin: 36px 20px;
}

/* Десктоп: высота лого 56px → -28px, ширина 108px → -54px */
@media (min-width: 640px) {
    .orbit-item {
        margin-top: -28px;
        margin-left: -54px;
        gap: 7px;
        transform-origin: 54px 28px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .orbit-item {
        animation: none;
    }
}

/* ========== Логотип ========== */

.orbit-logo {
    /* Мобайл: прямоугольник */
    width: 72px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: box-shadow var(--transition), transform var(--transition);
}

/* Десктоп: прямоугольник */
@media (min-width: 640px) {
    .orbit-logo {
        width: 108px;
        height: 56px;
        border-radius: 14px;
    }
}

.orbit-logo--gold {
    background: var(--gold-bg);
    border: 1px solid rgba(201, 168, 76, 0.28);
    color: var(--gold);
    box-shadow:
        0 6px 28px rgba(201, 168, 76, 0.24),
        0 2px  8px rgba(0, 0, 0, 0.44),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.orbit-logo--red {
    background: var(--red-bg);
    border: 1px solid rgba(230, 57, 70, 0.24);
    color: var(--red);
    box-shadow:
        0 6px 28px rgba(230, 57, 70, 0.22),
        0 2px  8px rgba(0, 0, 0, 0.44),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

/* Логотипы — реальные изображения, без цветного фона */
.orbit-logo--fcn,
.orbit-logo--brand {
    background: var(--bg-elevated);
    border: 1px solid var(--border-light);
    overflow: hidden;
    box-shadow:
        0 6px 28px rgba(0, 0, 0, 0.35),
        0 2px  8px rgba(0, 0, 0, 0.44),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.orbit-logo-img {
    width: 80%;
    height: 80%;
    object-fit: contain;
    display: block;
}

.orbit-item:hover .orbit-logo--fcn,
.orbit-item:hover .orbit-logo--brand {
    box-shadow:
        0 12px 48px rgba(201, 168, 76, 0.25),
        0 4px 16px rgba(0, 0, 0, 0.50),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
    transform: scale(1.09);
}

.orbit-item:hover .orbit-logo--gold {
    box-shadow:
        0 12px 48px rgba(201, 168, 76, 0.44),
        0 4px 16px rgba(0, 0, 0, 0.50),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
    transform: scale(1.09);
}

.orbit-item:hover .orbit-logo--red {
    box-shadow:
        0 12px 48px rgba(230, 57, 70, 0.40),
        0 4px 16px rgba(0, 0, 0, 0.50),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
    transform: scale(1.09);
}

/* Подпись */
.orbit-name {
    font-family: 'Space Grotesk', 'Inter', sans-serif;
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--gold);
    white-space: nowrap;
}

@media (min-width: 640px) {
    .orbit-name {
        font-size: 0.88rem;
    }
}

/* Тег — основная подпись под лого */
.orbit-tag {
    /* Мобайл: без фона, текст по центру, перенос строки */
    display: block;
    padding: 0;
    background: transparent;
    border-radius: 0;
    font-size: 0.58rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    white-space: normal;
    text-align: center;
    width: 72px;
    line-height: 1.4;
}

@media (min-width: 640px) {
    .orbit-tag {
        display: inline-flex;
        padding: 3px 10px;
        border-radius: var(--radius-full);
        font-size: 0.65rem;
        white-space: nowrap;
        width: auto;
    }
}

.orbit-tag--gold { color: var(--gold); }
.orbit-tag--red  { color: var(--red); }

/* ========== Нижний акцент ========== */

.ecosystem-note {
    text-align: center;
    margin-top: 48px;
    position: relative;
    z-index: 1;
}

.ecosystem-note p {
    font-size: 0.82rem;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.ecosystem-note p::before,
.ecosystem-note p::after {
    content: '';
    display: inline-block;
    width: 40px;
    height: 1px;
}

.ecosystem-note p::before {
    background: linear-gradient(to right, transparent, var(--border-light));
}

.ecosystem-note p::after {
    background: linear-gradient(to left, transparent, var(--border-light));
}
