
/* ===== CodArt accent unification: use the soft purple style everywhere ===== */
:root {
    --nh-blue: #9468B4 !important;
    --nh-purple: #9468B4;
    --nh-purple-dark: #7f43a5;
    --nh-purple-soft: rgba(148, 104, 180, .13);
    --nh-purple-border: rgba(148, 104, 180, .26);
}

/* Main CTA/buttons: same soft purple as the lower section */
.newhome-cta,
.newtop__btn,
.btn--primary,
.cmodal__submit,
.rev5__cta .btn--primary,
.cta .btn--primary,
a.btn--primary,
button.btn--primary {
    background: linear-gradient(135deg, #a56bc0 0%, #8244a6 100%) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 18px 42px rgba(148, 104, 180, .26) !important;
}

.newhome-cta:hover,
.newtop__btn:hover,
.btn--primary:hover,
.cmodal__submit:hover,
.rev5__cta .btn--primary:hover,
.cta .btn--primary:hover,
a.btn--primary:hover,
button.btn--primary:hover {
    background: linear-gradient(135deg, #b176ca 0%, #8b4caf 100%) !important;
    box-shadow: 0 22px 52px rgba(148, 104, 180, .34) !important;
    transform: translateY(-1px);
}

/* Active tabs / pills / status-like active elements */
.newhome-tabs button.is-active,
.newhome-env__items strong,
.rev5__pill,
.cases__counter,
.lang-switcher a.is-active,
.lang-switcher .is-active,
.newtop__lang a.is-active,
.newtop__lang .is-active,
.header__lang a.is-active,
.header__lang .is-active {
    background: linear-gradient(135deg, #a56bc0 0%, #8244a6 100%) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 12px 30px rgba(148, 104, 180, .22) !important;
}

/* Text accents that were blue */
.newhome-hero__title span,
.newhome-hero__eyebrow,
.newhome-kicker,
.newhome-card__foot a,
.newhome-card__foot b,
.newhome-tabs button,
.newtop__nav a:hover,
.newhome-icon,
.newhome-flynode,
.newhome-flynode::before {
    color: #9468B4 !important;
}

/* Soft icon/card accents */
.newhome-icon,
.newhome-card__head .newhome-icon,
.newhome-card__head span {
    background: rgba(148, 104, 180, .09) !important;
    border-color: rgba(148, 104, 180, .22) !important;
    color: #9468B4 !important;
}

.newhome-card:hover {
    border-color: rgba(148, 104, 180, .30) !important;
    box-shadow: 0 24px 56px rgba(148, 104, 180, .13) !important;
}

/* Flying skill bubbles and central lines */
.newhome-flow__lines path {
    stroke: rgba(148, 104, 180, .38) !important;
}

.newhome-flynode {
    color: #9468B4 !important;
    border-color: rgba(148, 104, 180, .22) !important;
    box-shadow: 0 10px 24px rgba(148, 104, 180, .13), inset 0 1px 3px rgba(255,255,255,.9) !important;
}

.newhome-flynode__label {
    color: #6d6474 !important;
}

/* Dots and carousel controls */
.cases__dots button,
.rev5__dots button,
.swiper-pagination-bullet {
    background: rgba(148, 104, 180, .24) !important;
    border-color: rgba(148, 104, 180, .25) !important;
}

.cases__dots .is-active,
.rev5__dots .is-active,
.swiper-pagination-bullet-active {
    background: #9468B4 !important;
}

.cases__btn:hover,
.rev5__btn:hover {
    color: #9468B4 !important;
    border-color: rgba(148, 104, 180, .30) !important;
}

/* Form focus states */
input:focus,
textarea:focus,
.newhome-search:focus,
.cmodal__input:focus {
    border-color: rgba(148, 104, 180, .42) !important;
    box-shadow: 0 0 0 4px rgba(148, 104, 180, .10) !important;
    outline: none !important;
}

/* Replace blue glows with purple glows */
.newhome-hero__eyebrow i {
    background: #9468B4 !important;
    box-shadow: 0 0 0 6px rgba(148, 104, 180, .10) !important;
}

.newhome-env__items span {
    color: #9468B4 !important;
}

.newhome-env__items .is-online {
    color: #15803d !important;
}

/* Header logo/button harmony */
.newtop__logoShell {
    box-shadow: 0 10px 26px rgba(148, 104, 180, .10) !important;
}

.newtop__status {
    border-color: rgba(148, 104, 180, .22) !important;
    background: rgba(148, 104, 180, .07) !important;
    color: #9468B4 !important;
}

.newtop__status i {
    background: #9468B4 !important;
}

/* Footer socials/buttons if old styles use purple/blue separately */
.footer a:hover,
.footer__menu-list a:hover,
.footer__menu-list-contacts a:hover {
    color: #9468B4 !important;
}

.footer-logos a:hover,
.socials a:hover,
.footer__social a:hover {
    border-color: rgba(148, 104, 180, .30) !important;
    background: rgba(148, 104, 180, .08) !important;
}


/* ===== FINAL FIX: reviews readable, mobile icons fly from BOTH sides, keep all icon contents visible ===== */

/* --- Source icons in hero: never hide inner SVG/text/emoji --- */
.newhome-flow__rail--source-icons,
.newhome-flow__rail {
    pointer-events: none !important;
}

.newhome-flow__rail--source-icons .newhome-flynode {
    position: absolute !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.96) !important;
    border: 1px solid rgba(218,216,226,.95) !important;
    box-shadow: 0 9px 22px rgba(76,67,92,.12), inset 0 1px 2px rgba(255,255,255,.9) !important;
    overflow: visible !important;
    opacity: 1;
}

.newhome-flow__rail--source-icons .newhome-flynode::before,
.newhome-flow__rail--source-icons .newhome-flynode::after {
    content: none !important;
    display: none !important;
}

.newhome-flow__rail--source-icons .newhome-flynode svg {
    width: 19px !important;
    height: 19px !important;
    max-width: 19px !important;
    max-height: 19px !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    flex: 0 0 auto !important;
}

.newhome-flow__rail--source-icons .newhome-flynode > span,
.newhome-flow__rail--source-icons .nh-text,
.newhome-flow__rail--source-icons .nh-emoji,
.newhome-flow__rail--source-icons .nh-ping {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 1 !important;
    visibility: visible !important;
    flex: 0 0 auto !important;
}

.newhome-flow__rail--source-icons .nh-text {
    font-family: "JetBrains Mono", monospace !important;
    font-size: 8px !important;
    line-height: 1 !important;
    font-weight: 950 !important;
    letter-spacing: -.06em !important;
}

.newhome-flow__rail--source-icons .nh-emoji {
    font-size: 14px !important;
    line-height: 1 !important;
}

.newhome-flow__rail--source-icons .nh-ping {
    position: relative !important;
    width: 10px !important;
    height: 10px !important;
    border-radius: 50% !important;
    background: #16a34a !important;
    box-shadow: 0 0 0 6px rgba(22,163,74,.12) !important;
}

/* Desktop keeps path animation */
@media (min-width: 721px) {
    .newhome-flow__rail--source-icons .newhome-flynode {
        animation-name: newhome-signal-fly !important;
        offset-rotate: 0deg !important;
    }
}

/* Mobile: don't use offset-path, because mobile browser support is unstable.
   Every icon starts either from the left or right side and flies into the center logo. */
@media (max-width: 720px) {
    .newhome-hero__inner {
        overflow: visible !important;
    }

    .newhome-flow {
        height: 255px !important;
        width: 100% !important;
        transform: none !important;
        margin-left: 0 !important;
        overflow: hidden !important;
    }

    .newhome-flow__lines {
        display: none !important;
    }

    .newhome-core--lottie {
        z-index: 60 !important;
        width: 104px !important;
        height: 104px !important;
    }

    .newhome-node--origin {
        display: none !important;
    }

    .newhome-flow::before,
    .newhome-flow::after {
        content: "";
        position: absolute;
        top: 50%;
        width: 42%;
        height: 1px;
        z-index: 1;
        background: linear-gradient(90deg, transparent, rgba(148,104,180,.28));
        pointer-events: none;
    }

    .newhome-flow::before {
        left: 3%;
        transform: translateY(-50%);
    }

    .newhome-flow::after {
        right: 3%;
        transform: translateY(-50%) scaleX(-1);
    }

    .newhome-flow__rail--source-icons .newhome-flynode {
        left: 50% !important;
        top: 50% !important;
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;
        min-height: 34px !important;
        offset-path: none !important;
        offset-distance: 0 !important;
        animation-name: newhome-mobile-two-side-fly !important;
        animation-duration: var(--dur, 6.8s) !important;
        animation-timing-function: linear !important;
        animation-iteration-count: infinite !important;
        animation-fill-mode: both !important;
        will-change: transform, opacity !important;
    }

    .newhome-flow__rail--source-icons .newhome-flynode svg {
        width: 15px !important;
        height: 15px !important;
        max-width: 15px !important;
        max-height: 15px !important;
    }

    .newhome-flow__rail--source-icons .nh-text {
        font-size: 6.5px !important;
    }

    .newhome-flow__rail--source-icons .nh-emoji {
        font-size: 12px !important;
    }

    .newhome-flow__rail--source-icons .nh-ping {
        width: 8px !important;
        height: 8px !important;
        box-shadow: 0 0 0 5px rgba(22,163,74,.12) !important;
    }

    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(1)  { --from-x:-46vw; --from-y:-88px; --dur:6.2s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(2)  { --from-x:-42vw; --from-y:-52px; --dur:7.1s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(3)  { --from-x:-47vw; --from-y:-12px; --dur:6.6s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(4)  { --from-x:-39vw; --from-y: 42px; --dur:7.4s; }

    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(5)  { --from-x: 46vw; --from-y:-88px; --dur:6.5s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(6)  { --from-x: 42vw; --from-y:-52px; --dur:7.3s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(7)  { --from-x: 47vw; --from-y:-12px; --dur:6.9s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(8)  { --from-x: 39vw; --from-y: 42px; --dur:7.7s; }

    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(9)  { --from-x:-44vw; --from-y:-76px; --dur:6.9s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(10) { --from-x:-49vw; --from-y:-35px; --dur:7.8s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(11) { --from-x:-43vw; --from-y:  8px; --dur:6.4s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(12) { --from-x:-48vw; --from-y: 64px; --dur:7.2s; }

    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(13) { --from-x: 44vw; --from-y:-76px; --dur:7.0s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(14) { --from-x: 49vw; --from-y:-35px; --dur:6.3s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(15) { --from-x: 43vw; --from-y:  8px; --dur:7.5s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(16) { --from-x: 48vw; --from-y: 64px; --dur:6.8s; }

    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(17) { --from-x:-41vw; --from-y:-95px; --dur:7.6s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(18) { --from-x:-50vw; --from-y:-58px; --dur:6.7s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(19) { --from-x:-45vw; --from-y:-18px; --dur:7.9s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(20) { --from-x:-40vw; --from-y: 76px; --dur:6.1s; }

    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(21) { --from-x: 41vw; --from-y:-95px; --dur:6.4s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(22) { --from-x: 50vw; --from-y:-58px; --dur:7.4s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(23) { --from-x: 45vw; --from-y:-18px; --dur:6.9s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(24) { --from-x: 40vw; --from-y: 76px; --dur:7.8s; }

    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(25) { --from-x:-48vw; --from-y:-70px; --dur:8.0s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(26) { --from-x:-42vw; --from-y:-28px; --dur:6.8s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(27) { --from-x:-49vw; --from-y: 20px; --dur:7.6s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(28) { --from-x:-44vw; --from-y: 88px; --dur:6.5s; }

    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(29) { --from-x: 48vw; --from-y:-70px; --dur:7.1s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(30) { --from-x: 42vw; --from-y:-28px; --dur:8.2s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(31) { --from-x: 49vw; --from-y: 20px; --dur:6.6s; }
    .newhome-flow__rail--source-icons .newhome-flynode:nth-child(32) { --from-x: 44vw; --from-y: 88px; --dur:7.5s; }

    @keyframes newhome-mobile-two-side-fly {
        0% {
            opacity: 0;
            transform: translate(calc(-50% + var(--from-x)), calc(-50% + var(--from-y))) scale(.42);
        }
        12% {
            opacity: 1;
            transform: translate(calc(-50% + var(--from-x)), calc(-50% + var(--from-y))) scale(1);
        }
        72% {
            opacity: 1;
            transform: translate(calc(-50% + var(--from-x) * .16), calc(-50% + var(--from-y) * .16)) scale(.92);
        }
        100% {
            opacity: 0;
            transform: translate(-50%, -50%) scale(.18);
        }
    }
}

@media (max-width: 420px) {
    .newhome-flow {
        height: 238px !important;
    }
    .newhome-flow__rail--source-icons .newhome-flynode {
        width: 31px !important;
        height: 31px !important;
        min-width: 31px !important;
        min-height: 31px !important;
    }
    .newhome-flow__rail--source-icons .newhome-flynode svg {
        width: 14px !important;
        height: 14px !important;
    }
}

/* --- Reviews: kill the ugly/cropped 3D deck. Make it clean and readable. --- */
.reviews.v5 {
    overflow: hidden !important;
    padding-top: clamp(54px, 6vw, 92px) !important;
    padding-bottom: clamp(54px, 6vw, 92px) !important;
}

.reviews.v5 .container {
    overflow: visible !important;
}

.rev5 {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    padding: 0 !important;
}

.rev5__head {
    align-items: flex-start !important;
    margin-bottom: 24px !important;
}

.rev5__pill {
    background: rgba(255,255,255,.72) !important;
    color: #59616c !important;
    border-color: rgba(148,104,180,.22) !important;
}

.rev5__pill::after {
    content: "Google Reviews";
    display: inline-flex;
    align-items: center;
    margin-left: 8px;
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(255,255,255,.88);
    color: #59616c;
    border: 1px solid rgba(148,104,180,.18);
    font-size: 11px;
    font-weight: 900;
}

.rev5__stage {
    position: relative !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 18px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    padding: 12px 4px 28px !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    perspective: none !important;
}

.rev5__stage::-webkit-scrollbar {
    height: 6px !important;
}

.rev5__stage::-webkit-scrollbar-track {
    background: rgba(148,104,180,.08) !important;
    border-radius: 999px !important;
}

.rev5__stage::-webkit-scrollbar-thumb {
    background: rgba(148,104,180,.35) !important;
    border-radius: 999px !important;
}

.rev5Card {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    flex: 0 0 min(430px, 86vw) !important;
    width: min(430px, 86vw) !important;
    min-height: 230px !important;
    max-height: none !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    pointer-events: auto !important;
    overflow: hidden !important;
    scroll-snap-align: start !important;
    border-radius: 26px !important;
    padding: 22px !important;
    background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(255,255,255,.72)) !important;
    border: 1px solid rgba(148,104,180,.14) !important;
    box-shadow: 0 24px 70px rgba(98,83,128,.12) !important;
    box-sizing: border-box !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
}

.rev5Card::after {
    width: 190px !important;
    height: 190px !important;
    right: -76px !important;
    bottom: -76px !important;
    opacity: .42 !important;
    z-index: 0 !important;
}

.rev5Top,
.rev5Text,
.rev5Tags {
    position: relative !important;
    z-index: 2 !important;
}

.rev5Top {
    grid-template-columns: auto 1fr auto !important;
}

.rev5Av {
    width: 46px !important;
    height: 46px !important;
    border-radius: 16px !important;
}

.rev5Text {
    margin-top: 16px !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
    color: rgba(47,54,63,.78) !important;
    font-weight: 750 !important;
}

.rev5Tags {
    margin-top: 16px !important;
}

.rev5Tags span {
    background: rgba(255,255,255,.78) !important;
    border-color: rgba(148,104,180,.14) !important;
    color: #66707a !important;
}

.rev5__dots {
    display: none !important;
}

.rev5__nav {
    display: none !important;
}

.rev5__cta {
    margin-top: 18px !important;
    position: relative !important;
    z-index: 2 !important;
}

/* mobile reviews: visible cards, no cut */
@media (max-width: 720px) {
    .reviews.v5 {
        padding-top: 44px !important;
        padding-bottom: 54px !important;
    }

    .rev5__head {
        display: block !important;
        margin-bottom: 18px !important;
    }

    .rev5__head h2 {
        font-size: 28px !important;
        line-height: 1.14 !important;
        margin-top: 12px !important;
    }

    .rev5__stage {
        gap: 14px !important;
        padding: 10px 2px 24px !important;
    }

    .rev5Card {
        flex-basis: 88vw !important;
        width: 88vw !important;
        min-height: 250px !important;
        padding: 18px !important;
        border-radius: 22px !important;
    }

    .rev5Text {
        font-size: 14px !important;
        line-height: 1.62 !important;
    }

    .rev5__cta {
        display: block !important;
    }

    .rev5__cta .btn,
    .rev5__cta .btn--primary {
        margin-top: 16px !important;
        width: 100% !important;
        justify-content: center !important;
    }
}
