:root {
    --bs-primary: #002a95;
    --text-outside: #4d4d4d;
    --text-inside: #fff;
    --transition-in: all 250ms ease-out;
    --transition-out: all 250ms ease-in;
}

.projects-container {
    position: relative;
    width: 100%;
    height: 600px;
}

#circle-nav-services {
    width: 100%;
    height: 100%;
    display: block;
}

/* блоки с текстом поверх SVG */
.service-texts {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none; /* чтобы не мешали кликам по флагам */
}

.service-text {
    position: absolute;
    top: 13%;
    width: 300px;
    max-width: 80%;
    text-align: center;
    color: #fff;
    opacity: 0;
    transition: opacity 0.4s ease-in-out;
}

.service-text.active {
    opacity: 1;
}

.service-text h2 {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 5px;
    color: #fff;
}

.service-text p {
    font-size: 17px;
    line-height: 1.4;
    color: #fff;
}

.service-text img {
    /*pointer-events: none;*/
    width: 70px;
    height: 70px;
    object-fit: cover; /* не искажать */
    border-radius: 50%;
    /*border: 3px solid #0d6efd;*/
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.10);
    transition: transform .10s, filter .10s, box-shadow .10s;
    margin-bottom: 20px;
    margin-top: 10px;
}

.service-text .sum {
    display: block;
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 10px;
}

.center {
    fill: var(--bs-primary);
}

.pointer {
    fill: var(--text-inside);
    stroke: #3b8fc0;
    stroke-width: 2;
}

/* .service и вложенные элементы (расплоснуты из вложенности SCSS) */
.service {
    cursor: pointer;
}

/* общий текст внутри .service (SVG <text>) */
.service text {
    font-size: 14px;
    font-family: 'Roboto', system-ui, sans-serif;
    text-anchor: middle;
    fill: var(--text-outside);
    transition: var(--transition-out);
}

/* обёртка и её элементы — из "& , & > * { transition: ... }" */
.service .icon-wrapper,
.service .icon-wrapper > * {
    transform-origin: 50% 50%;
    transition: transform 0.3s ease;
}

/* circle по умолчанию */
.service circle {
    fill: var(--bs-primary);
}

/* shadow circle по умолчанию (скрыта) */
.service circle.shadow {
    fill-opacity: 0;
    transition: fill-opacity 0.3s ease;
}

.service, .service * {
    cursor: pointer;
}

/* 2) Декоративный pointer (который анимируется) не должен перехватывать событий указателя */
svg .pointer,
#circle-nav-services > svg { /* вложенный декоративный svg */
    pointer-events: none;
    cursor: default;
}

/* 3) Хит-зона (прозрачный круг) — видимая только для dev, но в prod останется прозрачной */
.service circle.hit {
    fill: transparent; /* прозрачная, чтобы не менять внешний вид */
    pointer-events: all; /* принимает события, обеспечивает стабильный hover */
}

/* 4) Оптимизация анимации */
.service .icon-wrapper,
.service .icon-wrapper > * {
    will-change: transform;
    transform-origin: 50% 50%;
}

/* use внутри .service (обычно <use xlink:href="...">) */
.service use {
    fill: var(--text-inside);
}

/* Активное состояние или hover (раскрыто из "&.active, &:hover") */
.service.active .icon-wrapper,
.service:hover .icon-wrapper {
    transform: scale(1.2); /* убрали translateY */
}

/* в активном/hover состоянии переключаем transition на "in" для .icon-wrapper и его дочерних */
.service.active .icon-wrapper,
.service.active .icon-wrapper > *,
.service:hover .icon-wrapper,
.service:hover .icon-wrapper > * {
    transition: var(--transition-in);
}

/* показываем shadow в активном/hover состоянии */
.service.active circle.shadow,
.service:hover circle.shadow {
    fill-opacity: 0.4;
}

/* цвет и вес текста для активного/hover состояния */
.service.active text,
.service:hover text {
    fill: var(--bs-primary);
    font-weight: bold;
}

.demo-note {
    font-size: 12px;
    color: #777;
    text-align: center;
    margin-top: 30px;
    margin-bottom: 10px;
    font-style: italic;
}

@media (max-width: 768px) {
    .projects-container {
        height: 580px;
    }

    .service-text img {
        display: none;
    }

    .service-text {
        top: 10%;
        width: 200px;
    }

    .service-text h2 {
        font-size: 18px;
    }

    .service-text p {
        font-size: 14px;
    }

    .service-text .sum {
        font-size: 12px;
    }

    .service.active .icon-wrapper,
    .service:hover .icon-wrapper {
        transform: scale(1.1); /* убрали translateY */
    }
}

@media (max-width: 550px) {
    .service-text {
        top: 20%;
        width: 120px;
    }

    .projects-container {
        height: 380px;
    }

    .service-text h2 {
        font-size: 15px;
    }

    .service-text .sum {
        font-size: 12px;
    }

    .service-text p {
        display: none;
    }
    .demo-note {
        font-size: 10px;
        margin-top: 0;
        margin-bottom: 0;
    }
}