@font-face {
    font-family: onest;
    src: url(../fonts/Onest-Regular.woff2);
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: onest;
    src: url(../fonts/Onest-Medium.woff2);
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: onest;
    src: url(../fonts/Onest-Bold.woff2);
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: onest;
    src: url(../fonts/Onest-Black.woff2);
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: icon;
    src: url(../fonts/vian-icon.woff2);
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
:root {
    --error: #ef4444;
    --bg-1: #06060a;
    --bg-2: #0f0f17;
    --bg-3: #0569fe;
    --bg-4: rgba(37, 99, 235, 0.10);
    --bg-5: rgba(6, 6, 10, 0.90);
    --bg-6: rgba(6, 6, 10, 0.60);
    --bg-7: #dfe8f7;
    --text-1: #94a3b8;
    --text-2: #dfe8f7;
    --text-3: #0569fe;
    --text-4: #626e85;
    --text-5: rgba(223, 232, 247, 0.50);;
    --text-shadow-1: 0 20px 18px rgba(6, 6, 10, 0.60);
    --text-shadow-2: 0 12px 18px rgba(6, 6, 10, 0.6);
    --border-1: 1px solid rgba(255, 255, 255, 0.30);
    --border-2: 1px solid #1d1d30;
    --border-3: 1px solid rgba(255, 255, 255, 0.40);
    --border-4: 1px solid #0569fe;
    --border-5: 1px solid #1c1d22;
    --border-6: 1px solid #3f3f45;
    --shadow-1: 0 10px 18px rgba(6, 6, 10, 0.60);
    --shadow-2: 0 16px 20px rgba(0, 0, 0, 0.5);
    --shadow-3: 0 4px 10px 0 rgba(5, 105, 254, 0.50), 0 10px 20px 0 rgba(5, 105, 254, 0.50), 0 2px 4px 0 rgba(0, 0, 0, 0.35) inset;;
    --ws: #0569fe;
    --ws-2: rgba(37, 99, 235, 0.10);
    --mobile: #ff1f7d;
    --mobile-2: rgba(255, 31, 125, 0.10);
    --service: #ff5e1e;
    --service-2: rgba(255, 94, 30, 0.10);
    --ux-ui: #9d00ff;
    --ux-ui-2: rgba(157, 0, 255, 0.10);
    --ai: #00e599;
    --ai-2: rgba(0, 229, 153, 0.10);
}
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    color: var(--text-1);
    font-size: 16px;
    font-family: onest;
}
&:focus, :focus {
    outline: none;
}
body {
    background: var(--bg-1);
    position: relative;
}
.page-wrapper {
    overflow: hidden;
}
a {
    text-decoration: none;
}
.wrapper {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}
button {
    border: none;
    cursor: pointer;
    background: none;
}
img {
    display: block;
}
.btn {
    display: flex;
    gap: 4px;
    height: 57px;
    border-radius: 16px;
    overflow: hidden;
    &:disabled {
        opacity: 0.4;
        cursor: no-drop;
    }
    &:not(:disabled) {
        &:not(.is-managed):hover, &.is-active {
            > span:not(.arrow) {
                > span {
                    transform: translateY(0);
                }
                &::before {
                    width: calc(100% + 24px);
                }
            }
            > .arrow {
                &::after {
                    width: calc(100% + 24px);
                }
                &::before {
                    transform: rotate(45deg);
                }
            }
        }
        &:not(.is-managed) {
            > span:not(.arrow) {
                > span {
                    transition: transform 0.6s ease 0.1s;
                }
                &::before {
                    transition: width 0.6s ease 0.1s;
                }
            }
            > .arrow {
                &::after {
                    transition: width 0.6s ease 0.7s;
                }
                &::before {
                    transition: transform 0.6s ease 0.7s;
                }
            }
        }
        &.is-entering {
            > span:not(.arrow) {
                > span {
                    animation: btn-content-in 0.6s ease 0.1s forwards;
                }
                &::before {
                    animation: btn-background-in 0.6s ease 0.1s forwards;
                }
            }
            > .arrow {
                &::after {
                    animation: btn-arrow-in 0.6s ease 0.6s forwards;
                }
                &::before {
                    animation: btn-arrow-icon-in 0.6s ease 0.6s forwards;
                }
            }
        }
        &.is-leaving {
            --btn-main-delay: 0.1s;
            > span:not(.arrow) {
                > span {
                    animation: btn-content-out 0.6s ease var(--btn-main-delay) forwards;
                }
                &::before {
                    animation: btn-background-out 0.6s ease var(--btn-main-delay) forwards;
                }
            }
            > .arrow {
                &::after {
                    animation: btn-arrow-out 0.6s ease forwards;
                }
                &::before {
                    animation: btn-arrow-icon-out 0.6s ease forwards;
                }
            }
        }
        &.is-leaving.has-arrow {
            --btn-main-delay: 0.6s;
        }
    }
    > span:not(.arrow) {
        background: var(--bg-1);
        overflow: hidden;
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: center;
        height: 57px;
        border-radius: 16px;
        &::before {
            content: '';
            width: 0;
            position: absolute;
            height: 57px;
            bottom: 0;
            left: 0;
            background: var(--bg-3);
            border-radius: 0 40px 40px 0;
        }
        span {
            display: flex;
            align-items: center;
            padding: 0 40px;
            height: 100%;
            min-height: 57px;
            font-size: 18px;
            color: var(--text-2);
            z-index: 1;
            transform: translateY(-57px);
        }
    }
    .arrow {
        flex: 0 0 57px;
        width: 57px;
        border-radius: 16px;
        background: var(--bg-1);
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        margin-top: 0;
        position: relative;
        &::after {
            content: '';
            position: absolute;
            width: 0;
            height: 100%;
            top: 0;
            left: 0;
            background: var(--bg-3);
            border-radius: 0 40px 40px 0;
            z-index: 0;
        }
        &::before {
            z-index: 1;
            transform: rotate(0);
            position: relative;
            font-family: icon;
            content: '\f000';
            color: var(--text-2);
            font-size: 24px;
        }
    }
}
header {
    padding: 10px 0;
    position: sticky;
    top: 0px;
    z-index: 99;
    .wrapper {
        height: 65px;
        display: flex;
        justify-content: space-between;
        gap: 40px;
        .left, .right {
            background: var(--bg-2);
            border-radius: 20px;
            padding: 4px;
        }
        .left {
            display: flex;
            gap: 4px;
            > div {
                background: var(--bg-1);
                display: flex;
                align-items: center;
                justify-content: center;
                height: 100%;
                border-radius: 16px;
            }
            nav {
                display: flex;
                align-items: center;
                height: 100%;
                background: var(--bg-1);
                border-radius: 16px;
                button {
                    display: none;
                }
                .ws-menu {
                    padding: 0 32px;
                    gap: 32px;
                    display: flex;
                    align-items: center;
                    .item {
                        a, p {
                            font-size: 15px;
                            font-weight: 500;
                            transition: color 0.2s;
                            &:hover {
                                color: var(--text-2);
                            }
                            .selected {
                                color: var(--text-3);
                            }
                        }
                    }
                }
                .social {
                    display: none;
                }
            }
            .logo {
                width: 134px;
                a {
                    img {
                        display: block;
                        width: 66px;
                        margin-bottom: 3px;
                    }
                }
            }
            .burger {
                display: none;
            }
        }
    }
}
footer {
    border-top: var(--border-2);
    padding: 80px 0 48px;
    .wrapper {
        .content {
            gap: 4px;
            border-radius: 24px;
            background: var(--bg-2);
            padding: 4px;
            display: flex;
            margin-bottom: 30px;
            &> div {
                background: var(--bg-1);
                border-radius: 20px;
                padding: 30px;
                min-width: 0;
                position: relative;
                width: 50%;
                overflow: hidden;
                &.right {
                    display: flex;
                    flex-direction: column;
                    justify-content: space-between;
                }
                .logo {
                    width: 240px;
                    margin-bottom: 60px;
                }
                .slider {
                    margin: 0 -30px 16px;
                    &.vian {
                        margin-bottom: -25px;
                        .viewport {
                            .slides {
                                img {
                                    width: 642px;
                                }
                            }
                        }
                    }
                    .viewport {
                        overflow: hidden;
                        .slides {
                            display: flex;
                            width: max-content;
                            img {
                                display: block;
                                flex-shrink: 0;
                                width: 99px;
                            }
                        }
                    }
                }
                .legal {
                    position: absolute;
                    bottom: 30px;
                    left: 30px;
                    right: 30px;
                    z-index: 1;
                    display: flex;
                    flex-direction: column;
                    gap: 16px;
                    p {
                        font-size: 14px;
                        color: var(--text-5);
                        line-height: 22px;
                        &.copy {
                            font-size: 12px;
                            color: var(--text-4);
                        }
                    }
                }
                .ws-menu {
                    display: flex;
                    gap: 16px;
                    border-bottom: var(--border-5);
                    padding-bottom: 20px;
                    &> .item {
                        width: 100%;
                        border-right: var(--border-5);
                        padding: 20px 0;
                        &:last-child {
                            border: none;
                        }
                        p {
                            font-size: 15px;
                            color: var(--text-2);
                            font-weight: 700;
                            margin-bottom: 16px;
                        }
                        a {
                            font-size: 13px;
                        }
                    }
                }
                .social {
                    display: flex;
                    justify-content: space-between;
                    padding-top: 20px;
                    div {
                        position: relative;
                        display: flex;
                        gap: 6px;
                        flex-direction: column;
                        padding: 8px 0;
                        &::before {
                            width: 48px;
                            content: '';
                            position: absolute;
                            top: 0;
                            bottom: 0;
                            border-radius: 12px;
                            background: var(--bg-4);
                            font-weight: 400;
                        }
                        a, p {
                            padding: 0 12px;
                            height: 24px;
                            display: flex;
                            align-items: center;
                            gap: 22px;
                            font-size: 14px;
                            font-weight: 700;
                            color: var(--text-2);
                            &::before {
                                font-size: 24px;
                                font-family: icon;
                                color: var(--text-3);
                            }
                            &.mail {
                                &::before {
                                    content: '\f004';
                                }
                            }
                            &.phone {
                                &::before {
                                    content: '\f003';
                                }
                            }
                            &.address {
                                &::before {
                                    content: '\f002';
                                }
                            }
                        }
                    }
                }
            }
        }
        .links {
            display: flex;
            justify-content: space-between;
            gap: 24px;
            a {
                font-size: 12px;
            }
        }
    }
}
@media screen and (max-width: 1200px) {
    .wrapper {
        margin: 0 20px;
        width: calc(100% - 40px);
    }
    .btn {
        width: 100%;
        &:has(.arrow:first-child) {
            width: 57px;
        }
        > span:not(.arrow) {
            width: 100%;
        }
    }
    body {
        &::before {
            backdrop-filter: blur(0);
            z-index: -1;
            transition: backdrop-filter 0.5s;
            content: '';
        }
        &:has(header.open) {
            &::before {
                position: absolute;
                inset: 0;
                content: '';
                z-index: 98;
                background: var(--bg-6);
                backdrop-filter: blur(10px);
                opacity: 1;
            }
        }
    }
    header {
        .wrapper {
            padding: 4px;
            background: var(--bg-2);
            border-radius: 20px;
            height: 58px;
            .left {
                padding: 0;
                width: 100%;
                position: relative;
                nav {
                    overflow: hidden;
                    position: absolute;
                    left: -4px;
                    right: -4px;
                    top: calc(100% - 20px);
                    z-index: -1;
                    flex-direction: column;
                    background: var(--bg-2);
                    padding: 4px;
                    border-radius: 0 0 20px 20px;
                    height: unset;
                    max-height: 0;
                    gap: 40px;
                    transition: 0.3s;
                    button {
                        display: flex;
                    }
                    .ws-menu {
                        flex-direction: column;
                        gap: 4px;
                        width: 100%;
                        padding: 60px 0 0;
                        .item {
                            width: 100%;
                            padding: 14px 16px;
                            background: var(--bg-1);
                            border-radius: 16px;
                            a, p {
                                width: 100%;
                                font-size: 20px;
                                font-weight: 700;
                                color: var(--text-2);
                                display: flex;
                                justify-content: space-between;
                                &:after {
                                    font-size: 24px;
                                    font-family: icon;
                                    content: '\f000';
                                    font-weight: 400;
                                }
                            }
                        }     
                    }
                    .social {
                        display: flex;
                        flex-direction: column;
                        gap: 12px;
                        width: 100%;
                        padding: 0 8px;
                        a {
                            font-size: 14px;
                            font-weight: 700;
                            color: var(--text-2);
                            display: flex;
                            align-items: center;
                            gap: 8px;
                            &::before {
                                font-size: 24px;
                                font-family: icon;
                                color: var(--text-3);
                            }
                            &.mail {
                                &::before {
                                    content: '\f004';
                                }
                            }
                            &.phone {
                                &::before {
                                    content: '\f003';
                                }
                            }
                        }
                    }          
                }
                .logo {
                    width: 110px;
                    img {
                        width: 63px;
                    }
                }
                .lang {
                    margin-left: auto;
                    .btn {
                        height: 50px;
                        > span:not(.arrow) {
                            height: 50px;
                            &::before {
                                height: 50px;
                            }
                            span {
                                padding: 0 28px;
                                min-height: 50px;
                                transform: translateY(-50px);
                                font-size: 15px;
                            }
                        }
                    }
                }
                .burger {
                    width: 50px;
                    border-radius: 16px;
                    background: var(--bg-1);
                    position: relative;
                    display: flex;
                    &::before {
                        position: absolute;
                        top: 21px;
                        left: 16px;
                        height: 2px;
                        border-radius: 2px;
                        width: 18px;
                        background: var(--bg-7);
                        content: '';
                        transition: 0.3s;
                    }
                    &::after {
                        position: absolute;
                        top: 27px;
                        left: 16px;
                        height: 2px;
                        border-radius: 2px;
                        width: 12px;
                        background: var(--bg-7);
                        content: '';
                        transition: 0.3s;
                    }
                }
            }
            .right {
                display: none;
            }
        }
        &.open {
            .wrapper {
                .left {
                    nav {
                        max-height: 90dvh;
                        transition: 0.6s;
                    }
                }
                .burger {
                    &::before {
                        top: 24px;
                        left: 16px;
                        transform: rotate(-45deg);
                    }
                    &::after {
                        top: 24px;
                        left: 16px;
                        width: 18px;
                        transform: rotate(45deg);
                    }
                }
            }
        }
    }
    footer {
        .wrapper {
            .content {
                flex-direction: column-reverse;
                &> div {
                    width: 100%;
                }
            }
        }
    }
    footer {
        .wrapper {
            .content {
                &> div {
                    padding: 20px;
                    .logo {
                        margin: 0 auto 50px;
                    }
                    .ws-menu {
                        flex-direction: column;
                        &> .item {
                            border-right: none;
                            border-bottom: var(--border-5);
                            padding: 0;
                        }
                    }
                    .social {
                        flex-direction: column;
                        gap: 10px;
                    }
                    .legal {
                        bottom: 20px;
                        left: 20px;
                        right: 20px;
                        p {
                            text-align: center;
                            line-height: normal;
                        }
                    }
                }
            }
        }
    }
}
@media screen and (max-width: 768px) {
    .wrapper {
        margin: 0 16px;
        width: calc(100% - 32px);
    }
}
@keyframes btn-content-in {
    from {
        transform: translateY(-100%);
    }
    to {
        transform: translateY(0);
    }
}
@keyframes btn-content-out {
    from {
        transform: translateY(0);
    }
    to {
        transform: translateY(-100%);
    }
}
@keyframes btn-background-in {
    from {
        width: 0;
    }
    to {
        width: calc(100% + 24px);
    }
}
@keyframes btn-background-out {
    from {
        width: calc(100% + 24px);
    }
    to {
        width: 0;
    }
}
@keyframes btn-arrow-in {
    from {
        width: 0;
    }
    to {
        width: calc(100% + 24px);
    }
}
@keyframes btn-arrow-out {
    from {
        width: calc(100% + 24px);
    }
    to {
        width: 0;
    }
}
@keyframes btn-arrow-icon-in {
    from {
        transform: rotate(0);
    }
    to {
        transform: rotate(45deg);
    }
}
@keyframes btn-arrow-icon-out {
    from {
        transform: rotate(45deg);
    }
    to {
        transform: rotate(0);
    }
}