@font-face {
    font-family: "Manrope";
    src: url("../assets/fonts/manrope.woff2") format("woff2");
    font-weight: 200 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "JetBrainsMono";
    src: url("../assets/fonts/jetbrainsmono.woff2") format("woff2");
    font-weight: 100 800;
    font-style: normal;
    font-display: swap;
}


:root {
    --color-background-01: #0A0A0A;
    --color-background-02: #111111;
    --color-background-03: #1A1A1A;
    --color-background-01-dim: rgba(10, 10, 10, 0.70);
    --color-background-accent: #0f0f0f;

    --color-ink: #F5F5F2;
    --color-ink-dim: #A0A09B;
    --color-ink-mute: #6B6B66;

    --color-line-01: #262626;
    --color-line-02: #2E2E2E;
    --color-line-03: #ff335580;

    --color-accent-01: #FF3355;
    --color-accent-02: #FF5577;
    --color-accent-dim: rgba(255, 51, 85, 0.15);

    --color-green: #3CDD7F;
    --color-green-dim: rgba(60, 221, 127, 0.15);
}


::-webkit-scrollbar {
    width: 5px;
}

::-webkit-scrollbar-track {
    background: var(--color-line-01);
}

::-webkit-scrollbar-thumb {
    background: var(--color-accent-02);
}


* {
    box-sizing: border-box;
    font-family: "Manrope", sans-serif;
    font-style: normal;
}


h1,
h2 {
    margin: 0;
    text-indent: -0.04em;
}

h3,
h4 {
    margin: 0;
    text-indent: -0.02em;
}

p {
    margin: 0;
    color: var(--color-ink-dim);
}


body {
    margin: 0;
    padding: 0;
    color: var(--color-ink);
    background: var(--color-background-01);
}


cookie {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    justify-items: center;
    border-top: 1px solid var(--color-line-01);
    background: var(--color-background-01-dim);
    backdrop-filter: blur(10px);
    overflow: hidden;
    z-index: 2;

    .container {
        max-width: 1920px;
        width: 100%;
        padding: 18px clamp(20px, calc(20px + (180 - 20) * ((100vw - 720px) / (1920 - 720))), 180px);
        display: flex;
        align-items: center;
        gap: 20px;
    }

    .text {
        flex: 1;
        font-size: clamp(12px, 1vw, 14px);
        font-weight: 300;
        letter-spacing: 0.2px;
        text-wrap: balance;

        span {
            font-weight: 550;
            color: var(--color-ink);
        }

        a {
            color: var(--color-ink);
        }
    }

    .actions {
        display: flex;
        gap: 14px;

        button {
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: clamp(12px, 2vw, 14px);
            border-radius: 10px;
            transition: color 0.2s, background-color 0.2s, border-color 0.2s, box-shadow 0.2s;
            cursor: pointer;
            overflow: hidden;

            &.confirm {
                padding: clamp(10px, 2vw, 12px) clamp(36px, 2.8vw, 48px);
                font-weight: 550;
                color: var(--color-ink);
                background: var(--color-accent-01);
                border: 1px solid var(--color-accent-01);

                &:hover {
                    border-color: #ff1a40;
                    background-color: #ff1a40;
                    box-shadow: 0 0 14px rgba(255, 51, 85, .35);
                }
            }

            &.deny {
                padding: clamp(10px, 2vw, 12px) clamp(18px, 1.2vw, 22px);
                color: var(--color-ink-dim);
                background: transparent;
                border: 1px solid var(--color-line-01);

                &:hover {
                    color: var(--color-ink);
                    background-color: var(--color-background-02);
                    border-color: var(--color-ink-mute);
                }
            }
        }
    }

    &.hidden {
        display: none;
    }
}

header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    justify-items: center;
    border-bottom: 1px solid var(--color-line-01);
    background: var(--color-background-01-dim);
    backdrop-filter: blur(10px);
    overflow: hidden;
    z-index: 2;

    .container {
        max-width: 1920px;
        width: 100%;
        height: 70px;
        padding: 0 clamp(20px, calc(20px + (180 - 20) * ((100vw - 720px) / (1920 - 720))), 180px);
        display: flex;
        align-items: center;

        .left,
        .right {
            display: flex;
            flex: 1;
        }

        .left {
            .logo {
                display: flex;
                align-items: center;

                img {
                    height: 24px;
                }
            }
        }

        .nav {
            display: flex;
            gap: 24px;

            .link {
                font-size: 14px;
                font-weight: 500;
                color: var(--color-ink-dim);
                text-decoration: none;
                transition: color 0.2s;

                &:hover {
                    color: var(--color-ink);
                }
            }
        }

        .right {
            display: flex;
            align-items: center;
            justify-content: end;

            .cta {
                padding: 10px 20px;
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 14px;
                font-weight: 550;
                color: var(--color-ink);
                background: transparent;
                border: 1px solid var(--color-line-01);
                border-radius: 10px;
                transition: color 0.2s, background-color 0.2s, border-color 0.2s;
                text-decoration: none;
                overflow: hidden;

                &:hover {
                    border-color: var(--color-ink-mute);
                    background-color: var(--color-background-02);
                }
            }
        }
    }
}

main {
    position: relative;
    min-height: 600px;
    height: 100svh;
    padding-top: 70px;
    align-content: center;
    justify-items: center;

    .container {
        max-width: 1920px;
        width: 100%;
        padding: 0 clamp(20px, calc(20px + (180 - 20) * ((100vw - 720px) / (1920 - 720))), 180px);
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .background {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 10%;
        pointer-events: none;
        background-position: 0 0;
        background-repeat: no-repeat;
        background-size: cover;
        background-image: url('/assets/images/heroBackground.webp');
    }

    .gradient {
        position: absolute;
        inset: 0;
        pointer-events: none;
        background:
            linear-gradient(to top, #0a0a0a 0%, rgba(10, 10, 10, 0.85) 8%, rgba(10, 10, 10, 0) 25%),
            linear-gradient(to right, #0a0a0a 0%, #0a0a0a 36%, rgba(10, 10, 10, 0.9) 48%, rgba(10, 10, 10, 0.4) 65%, rgba(10, 10, 10, 0) 85%);
    }

    .content {
        display: flex;
        flex-direction: column;
        gap: clamp(28px, 4vw, 36px);
        z-index: 1;

        .title {
            max-width: 20ch;
            font-size: clamp(32px, 4.8vw, 72px);
            font-weight: 780;
            line-height: 105%;
            text-indent: 0;

            span {
                color: var(--color-accent-01);
            }
        }

        .description {
            max-width: 60ch;
            font-size: clamp(14px, 1.2vw, 16px);
            font-weight: 400;
            letter-spacing: 0.2px;
        }

        .actions {
            display: flex;
            gap: clamp(12px, 2vw, 14px);

            .button {
                padding: clamp(12px, 1.2vw, 16px) clamp(28px, 2.2vw, 32px);
                display: flex;
                align-items: center;
                justify-content: center;
                border-radius: 10px;
                font-size: clamp(14px, 1.2vw, 16px);
                transition: color 0.2s, background-color 0.2s, border-color 0.2s, box-shadow 0.2s;
                text-decoration: none;
                overflow: hidden;

                &.pink {
                    font-weight: 550;
                    color: var(--color-ink);
                    background: var(--color-accent-01);
                    border: 1px solid var(--color-accent-01);

                    &:hover {
                        border-color: #ff1a40;
                        background-color: #ff1a40;
                        box-shadow: 0 0 14px rgba(255, 51, 85, .35);
                    }
                }

                &.grey {
                    color: var(--color-ink-dim);
                    border: 1px solid var(--color-line-01);
                    background: transparent;

                    &:hover {
                        color: var(--color-ink);
                        background-color: var(--color-background-02);
                        border-color: var(--color-ink-mute);
                    }
                }
            }
        }
    }
}

section.offers {
    position: relative;
    justify-items: center;
    border-top: 1px solid var(--color-line-01);
    overflow: hidden;

    .container {
        max-width: 1920px;
        width: 100%;
        padding: clamp(80px, 8vw, 120px) clamp(20px, calc(20px + (180 - 20) * ((100vw - 720px) / (1920 - 720))), 180px);
        display: flex;
        flex-direction: column;
    }

    .header {
        margin-bottom: clamp(36px, 4vw, 48px);
        display: flex;
        flex-direction: column;
        gap: clamp(14px, 1.2vw, 20px);

        .title {
            font-size: clamp(32px, 4vw, 64px);
            font-weight: 780;
            line-height: 110%;
            text-wrap: balance;

            span {
                color: var(--color-accent-01);
            }
        }

        .description {
            max-width: 75ch;
            font-size: clamp(13px, 1.2vw, 16px);
            font-weight: 300;
            letter-spacing: 0.2px;
        }
    }

    .cards {
        display: flex;
        flex-direction: column;
        gap: clamp(16px, 2vw, 20px);

        .row {
            display: flex;
            gap: clamp(16px, 2vw, 20px);

            .card {
                padding: clamp(36px, 2.2vw, 42px) clamp(20px, 2vw, 36px);
                border-radius: 20px;
                border: 1px solid var(--color-line-01);

                .top {
                    margin-bottom: clamp(16px, 1.4vw, 20px);

                    .title {
                        margin-bottom: clamp(8px, 1vw, 12px);
                        font-size: clamp(22px, 2vw, 26px);
                        font-weight: 600;
                        line-height: 105%;
                        text-wrap: balance;
                    }

                    .description {
                        max-width: 90ch;
                        font-size: clamp(13px, 1.1vw, 15px);
                        font-weight: 300;
                        letter-spacing: 0.2px;
                        text-wrap: balance;
                    }
                }

                .bottom {
                    padding-top: clamp(16px, 1.4vw, 20px);
                    display: flex;
                    flex-direction: column;
                    gap: 8px;
                    border-top: 1px solid var(--color-line-01);

                    .item {
                        display: flex;
                        align-items: center;
                        font-size: clamp(12px, 1vw, 13px);
                        font-weight: 300;
                        letter-spacing: 0.2px;

                        &::before {
                            content: "";
                            width: 5px;
                            height: 5px;
                            margin-right: 10px;
                            flex-shrink: 0;
                            border-radius: 50%;
                            background-color: var(--color-accent-01);
                        }
                    }
                }
            }
        }

        .row:last-child {
            .card {
                padding: clamp(20px, 2vw, 36px);

                .top {
                    .title {
                        font-size: clamp(18px, 2vw, 22px);
                    }

                    .description {
                        font-size: clamp(12px, 1vw, 14px);
                    }
                }

                .bottom {
                    gap: 6px;
                }
            }
        }
    }
}

section.cases {
    position: relative;
    justify-items: center;
    border-top: 1px solid var(--color-line-01);
    overflow: hidden;

    .container {
        max-width: 1920px;
        width: 100%;
        padding: clamp(80px, 8vw, 120px) clamp(20px, calc(20px + (180 - 20) * ((100vw - 720px) / (1920 - 720))), 180px);
        display: flex;
        flex-direction: column;
    }

    .header {
        margin-bottom: clamp(36px, 4vw, 48px);
        display: flex;
        flex-direction: column;
        gap: clamp(14px, 1.2vw, 20px);

        .title {
            font-size: clamp(32px, 4vw, 64px);
            font-weight: 780;
            line-height: 110%;
            text-wrap: balance;

            span {
                color: var(--color-accent-01);
            }
        }

        .description {
            max-width: 75ch;
            font-size: clamp(13px, 1.2vw, 16px);
            font-weight: 300;
            letter-spacing: 0.2px;
            text-wrap: balance;
        }
    }

    .grid {
        display: grid;
        gap: 20px;
        grid-template-columns: repeat(4, 1fr); 

        .card {
            height: 500px;
            padding: 12px;
            display: flex;
            flex-direction: column;
            justify-content: end;
            border: 1px solid var(--color-line-01);
            border-radius: 20px;
            color: inherit;
            background-position: 0 0;
            background-repeat: no-repeat;
            background-size: cover;
            animation: caseCardScroll 10s linear infinite;
            animation-play-state: paused;
            transition: border-color 0.2s;
            text-decoration: none;
            overflow: hidden;

            .hover {
                padding: 12px 16px;
                display: flex;
                align-items: center;
                justify-content: space-between;
                border-radius: 14px;
                background: var(--color-background-01-dim);
                backdrop-filter: blur(10px);

                .about {
                    .name {
                        font-size: clamp(14px, 1.2vw, 16px);
                        font-weight: 500;
                    }

                    .details {
                        font-size: clamp(10px, 1.2vw, 12px);
                        font-weight: 300;
                    }
                }

                .icon {
                    width: 36px;
                    height: 36px;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    border-radius: 50%;
                    background: var(--color-accent-01);
                    border: 1px solid var(--color-accent-01);
                    
                    img {
                        width: 15px;
                    }
                }
            }

            &:hover {
                border-color: var(--color-ink-mute);
                animation-play-state: running;
            }
        }
    }
}

section.process {
    position: relative;
    justify-items: center;
    border-top: 1px solid var(--color-line-01);
    overflow: hidden;

    .container {
        max-width: 1920px;
        width: 100%;
        padding: clamp(80px, 8vw, 120px) clamp(20px, calc(20px + (180 - 20) * ((100vw - 720px) / (1920 - 720))), 180px);
        display: flex;
        flex-direction: column;
    }

    .header {
        margin-bottom: clamp(36px, 4vw, 48px);
        display: flex;
        flex-direction: column;
        gap: clamp(14px, 1.2vw, 20px);

        .title {
            font-size: clamp(32px, 4vw, 64px);
            font-weight: 780;
            line-height: 110%;
            text-wrap: balance;

            span {
                color: var(--color-accent-01);
            }
        }

        .description {
            max-width: 75ch;
            font-size: clamp(13px, 1.2vw, 16px);
            font-weight: 300;
            letter-spacing: 0.2px;
            text-wrap: balance;
        }
    }

    .steps {
        display: grid;
        gap: clamp(16px, 1.6vw, 18px);
        grid-template-columns: repeat(2, 1fr);

        .card {
            padding: clamp(32px, 2vw, 36px) clamp(20px, 2vw, 36px);
            flex: 1;
            gap: clamp(16px, 1.6vw, 24px);
            border-radius: 20px;
            border: 1px solid var(--color-line-01);

            .name {
                margin-bottom: 10px;
                font-size: clamp(22px, 2vw, 26px);
                font-weight: 600;
                line-height: 110%;
                text-wrap: balance;

                span {
                    color: var(--color-accent-02);
                }
            }

            .description {
                max-width: 90ch;
                font-size: 14px;
                text-wrap: balance;
            }
        }
    }
}

section.prices {
    position: relative;
    justify-items: center;
    border-top: 1px solid var(--color-line-01);
    overflow: hidden;

    .container {
        max-width: 1920px;
        width: 100%;
        padding: clamp(80px, 8vw, 120px) clamp(20px, calc(20px + (180 - 20) * ((100vw - 720px) / (1920 - 720))), 180px);
        display: flex;
        flex-direction: column;
    }

    .header {
        margin-bottom: clamp(36px, 4vw, 48px);
        display: flex;
        flex-direction: column;
        gap: clamp(14px, 1.2vw, 20px);

        .title {
            font-size: clamp(32px, 4vw, 64px);
            font-weight: 780;
            line-height: 110%;
            text-wrap: balance;

            span {
                color: var(--color-accent-01);
            }
        }

        .description {
            max-width: 75ch;
            font-size: clamp(13px, 1.2vw, 16px);
            font-weight: 300;
            letter-spacing: 0.2px;
            text-wrap: balance;
        }
    }

    .content {
        .cards {
            margin-bottom: clamp(24px, 2vw, 24px);
            display: flex;
            gap: clamp(18px, 1.6vw, 24px);

            .card {
                width: 100%;
                padding: clamp(30px, 2.2vw, 42px) clamp(20px, 2vw, 36px) clamp(20px, 2vw, 34px) clamp(20px, 2vw, 36px);
                display: flex;
                flex-direction: column;
                gap: clamp(24px, 1.6vw, 30px);
                border: 1px solid var(--color-line-01);
                border-radius: 20px;

                .top {
                    .title {
                        margin-bottom: clamp(12px, 1vw, 14px);
                        font-size: clamp(26px, 2vw, 32px);
                        font-weight: 600;
                        line-height: 105%;
                    }

                    .description {
                        max-width: 56ch;
                        font-size: clamp(12px, 1vw, 14px);
                        font-weight: 300;
                        letter-spacing: 0.2px;
                        text-wrap: balance;
                    }
                }

                .middle {
                    padding-bottom: clamp(24px, 1.6vw, 30px);
                    border-bottom: 1px solid var(--color-line-01);

                    .price {
                        font-size: clamp(30px, 3.6vw, 36px);
                        font-weight: 780;
                    }

                    .duration {
                        font-size: clamp(12px, 1vw, 14px);
                        color: var(--color-ink-dim);
                    }
                }

                .bottom {
                    display: flex;
                    flex-direction: column;
                    gap: clamp(10px, 0.8vw, 12px);

                    .item {
                        display: flex;
                        align-items: center;
                        font-size: clamp(12px, 0.9vw, 14px);
                        font-weight: 300;
                        letter-spacing: 0.2px;

                        &::before {
                            content: "";
                            width: 6px;
                            height: 6px;
                            margin-right: 10px;
                            border-radius: 50%;
                            background-color: var(--color-line-02);
                        }
                    }
                }

                .button {
                    margin-top: 8px;
                    padding: clamp(12px, 1vw, 16px) 0;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    border-radius: 10px;
                    color: inherit;
                    font-size: clamp(14px, 1vw, 16px);
                    border: 1px solid var(--color-line-01);
                    background: transparent;
                    transition: color 0.2s, background-color 0.2s, border-color 0.2s, box-shadow 0.2s;
                    text-decoration: none;
                    cursor: pointer;

                    &:hover {
                        background-color: var(--color-background-02);
                        border-color: var(--color-ink-mute);
                    }
                }

                &.highlighted {
                    background-color: var(--color-background-accent);
                    border-color: var(--color-line-03);

                    .bottom {
                        .item {
                            &::before {
                                background-color: var(--color-accent-01);
                            }
                        }
                    }

                    .button {
                        font-weight: 550;
                        color: var(--color-ink);
                        background: var(--color-accent-01);
                        border: 1px solid var(--color-accent-01);

                        &:hover {
                            border-color: #ff1a40;
                            background-color: #ff1a40;
                            box-shadow: 0 0 14px rgba(255, 51, 85, .35);
                        }
                    }
                }
            }
        }

        .cta {
            padding: clamp(20px, 1.6vw, 28px) clamp(22px, 2vw, 36px);
            display: flex;
            align-items: center;
            justify-content: space-between;
            border: 1px solid var(--color-line-01);
            border-radius: 20px;

            .text {
                .name {
                    margin-bottom: 4px;
                    font-size: clamp(18px, 1.4vw, 20px);
                    font-weight: 700;
                }

                .description {
                    font-size: clamp(12px, 1vw, 14px);
                }
            }

            .button {
                padding: clamp(12px, 1vw, 16px) clamp(26px, 2vw, 32px);
                display: flex;
                align-items: center;
                justify-content: center;
                border-radius: 10px;
                font-weight: 550;
                font-size: clamp(14px, 1vw, 16px);
                color: var(--color-ink);
                background: var(--color-accent-01);
                border: 1px solid var(--color-accent-01);
                transition: color 0.2s, background-color 0.2s, border-color 0.2s, box-shadow 0.2s;
                white-space: nowrap;
                text-decoration: none;
                overflow: hidden;

                &:hover {
                    border-color: #ff1a40;
                    background-color: #ff1a40;
                    box-shadow: 0 0 14px rgba(255, 51, 85, .35);
                }
            }
        }
    }
}

section.faq {
    position: relative;
    justify-items: center;
    border-top: 1px solid var(--color-line-01);
    overflow: hidden;

    .container {
        max-width: 1920px;
        width: 100%;
        padding: clamp(80px, 8vw, 120px) clamp(20px, calc(20px + (180 - 20) * ((100vw - 720px) / (1920 - 720))), 180px);
        display: flex;
        flex-direction: column;
    }

    .header {
        margin-bottom: clamp(36px, 4vw, 48px);
        display: flex;
        flex-direction: column;
        gap: clamp(14px, 1.2vw, 20px);

        .title {
            font-size: clamp(32px, 4vw, 64px);
            font-weight: 780;
            line-height: 110%;
            text-wrap: balance;

            span {
                color: var(--color-accent-01);
            }
        }

        .description {
            max-width: 75ch;
            font-size: clamp(13px, 1.2vw, 16px);
            font-weight: 300;
            letter-spacing: 0.2px;
            text-wrap: balance;
        }
    }

    .questions {
        .question {
            margin-bottom: 14px;
            border: 1px solid var(--color-line-01);
            border-radius: 20px;

            .head {
                padding: clamp(20px, 1.8vw, 24px) clamp(20px, 2vw, 36px);
                display: flex;
                align-items: center;
                gap: 40px;
                cursor: pointer;
                transition: padding 0.2s;
                user-select: none;
                -webkit-user-select: none;

                .name {
                    flex: 1;
                    font-size: clamp(16px, 1.4vw, 24px);
                    font-weight: 600;
                    line-height: 115%;
                    letter-spacing: 0.2px;
                    text-wrap: balance;
                    transition: color 0.2s;
                }

                .icon {
                    width: clamp(32px, 2.6vw, 36px);
                    height: clamp(32px, 2.6vw, 36px);
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    font-size: clamp(16px, 1.4vw, 20px);
                    font-family: "JetBrainsMono", sans-serif;
                    line-height: 1;
                    border: 1px solid var(--color-line-01);
                    border-radius: 50%;
                    transition: transform 0.2s;
                }

                &:hover {
                    .name {
                        color: var(--color-accent-02);
                    }
                }
            }

            .body {
                max-height: 0;
                padding: 0 clamp(20px, 2vw, 36px);
                transition: max-height 0.2s, padding 0.2s;
                overflow: hidden;

                p {
                    max-width: 90ch;
                    font-size: clamp(12px, 1.2vw, 14px);
                    line-height: 140%;
                    letter-spacing: 0.2px;
                    text-wrap: balance;
                }
            }

            &.opened {
                .head {
                    padding: clamp(16px, 1.4vw, 24px) clamp(20px, 2vw, 36px) clamp(10px, 0.8vw, 14px) clamp(20px, 2vw, 36px);

                    .icon {
                        transform: rotate(45deg);
                    }
                }

                .body {
                    max-height: 200px;
                    padding: 0 clamp(20px, 2vw, 36px) clamp(20px, 1.6vw, 28px) clamp(20px, 2vw, 36px);
                }
            }
        }
    }
}

section.contacts {
    position: relative;
    justify-items: center;
    border-top: 1px solid var(--color-line-01);
    overflow: hidden;

    .container {
        max-width: 1920px;
        width: 100%;
        padding: clamp(80px, 8vw, 120px) clamp(20px, calc(20px + (180 - 20) * ((100vw - 720px) / (1920 - 720))), 180px);
        display: flex;
        flex-direction: column;
    }

    .header {
        margin-bottom: clamp(36px, 4vw, 48px);
        display: flex;
        flex-direction: column;
        gap: clamp(14px, 1.2vw, 20px);

        .title {
            font-size: clamp(32px, 4vw, 64px);
            font-weight: 780;
            line-height: 110%;
            text-wrap: balance;

            span {
                color: var(--color-accent-01);
            }
        }

        .description {
            max-width: 75ch;
            font-size: clamp(13px, 1.2vw, 16px);
            font-weight: 300;
            letter-spacing: 0.2px;
            text-wrap: balance;
        }
    }

    .methods {
        display: flex;
        flex-direction: column;
        gap: clamp(16px, 2vw, 20px);

        .row {
            display: flex;
            flex: 1;
            gap: clamp(16px, 2vw, 20px);
        }

        .method {
            padding: clamp(26px, 2.4vw, 32px) clamp(24px, 2.6vw, 36px);
            display: flex;
            align-items: center;
            flex: 1;
            gap: clamp(20px, 2vw, 24px);
            color: var(--color-ink);
            text-decoration: none;
            border: 1px solid var(--color-line-01);
            border-radius: 20px;
            transition: border-color 0.2s, background-color 0.2s;

            .icon {
                width: 36px;
                height: 36px;
            }

            .info {
                display: flex;
                flex-direction: column;
                gap: 2px;

                .name {
                    font-size: clamp(20px, 1.8vw, 24px);
                    font-weight: 550;
                    line-height: 105%;
                }

                .value {
                    font-size: 14px;
                    color: var(--color-ink-dim);
                }
            }

            &:hover {
                border-color: var(--color-ink-mute);
                background-color: var(--color-background-02);
            }
        }
    }
}

section.privacy {
    position: relative;
    padding-top: 32px;
    justify-items: center;
    border-top: 1px solid var(--color-line-01);
    overflow: hidden;

    .container {
        max-width: 1920px;
        width: 100%;
        padding: clamp(80px, 8vw, 120px) clamp(20px, calc(20px + (180 - 20) * ((100vw - 720px) / (1920 - 720))), 180px);
        display: flex;
        flex-direction: column;
    }

    .label {
        margin-bottom: clamp(24px, 2vw, 36px);
        display: flex;
        align-items: center;
        align-self: start;
        font-size: clamp(12px, 1vw, 14px);
        font-family: "JetBrainsMono", sans-serif;
        transition: color 0.2s;
        color: var(--color-ink-mute);
        cursor: pointer;

        &::before {
            content: "";
            width: 7px;
            height: 7px;
            margin-right: 12px;
            border-left: 1.5px solid var(--color-ink-mute);
            border-bottom: 1.5px solid var(--color-ink-mute);
            transform: rotate(45deg);
            transition: border-color 0.2s;
        }

        &:hover {
            color: var(--color-ink);

            &::before {
                border-color: var(--color-ink);
            }
        }
    }

    .header {
        margin-bottom: clamp(36px, 4vw, 56px);
        display: flex;
        flex-direction: column;
        gap: clamp(14px, 1.2vw, 24px);

        .title {
            font-size: clamp(24px, 4vw, 64px);
            font-weight: 780;
            line-height: 110%;
            text-wrap: balance;

            span {
                color: var(--color-accent-01);
            }
        }

        .description {
            font-size: clamp(14px, 1.2vw, 16px);
            font-weight: 300;
            letter-spacing: 0.2px;
        }
    }

    .chapters {
        .chapter {
            padding: clamp(36px, 3vw, 48px) 0;
            gap: clamp(12px, 2vw, 16px);
            border-top: 1px solid var(--color-line-01);

            h2 {
                margin-bottom: clamp(12px, 2vw, 16px);
                font-size: clamp(20px, 2vw, 32px);
                font-weight: 600;
                line-height: 105%;
            }

            p {
                margin-bottom: 6px;
                font-size: clamp(14px, 1.2vw, 16px);

                &:last-child {
                    margin-bottom: 0;
                }
            }

            ul {
                margin: 0 0 10px 0;
                padding: 0 0 0 clamp(24px, 2vw, 32px);
                font-size: clamp(14px, 1.2vw, 16px);
                color: var(--color-ink-dim);

                li {
                    margin: 2px 0;
                }
            }

            b {
                font-weight: 600;
                color: var(--color-ink);
            }
            
            span {
                color: var(--color-ink);
            }

            &:last-child {
                margin-bottom: 0;

                p {
                    margin-bottom: 2px;
                }
            }
        }
    }
}

section.gallery {
    position: relative;
    padding-top: 32px;
    justify-items: center;
    border-top: 1px solid var(--color-line-01);
    overflow: hidden;

    .container {
        max-width: 1920px;
        width: 100%;
        padding: clamp(80px, 8vw, 120px) clamp(20px, calc(20px + (180 - 20) * ((100vw - 720px) / (1920 - 720))), 180px);
        display: flex;
        flex-direction: column;
    }

    .label {
        margin-bottom: clamp(24px, 2vw, 36px);
        display: flex;
        align-items: center;
        align-self: start;
        font-size: clamp(12px, 1vw, 14px);
        font-family: "JetBrainsMono", sans-serif;
        transition: color 0.2s;
        color: var(--color-ink-mute);
        cursor: pointer;

        &::before {
            content: "";
            width: 7px;
            height: 7px;
            margin-right: 12px;
            border-left: 1.5px solid var(--color-ink-mute);
            border-bottom: 1.5px solid var(--color-ink-mute);
            transform: rotate(45deg);
            transition: border-color 0.2s;
        }

        &:hover {
            color: var(--color-ink);

            &::before {
                border-color: var(--color-ink);
            }
        }
    }

    .header {
        margin-bottom: clamp(36px, 4vw, 56px);
        display: flex;
        flex-direction: column;
        gap: clamp(14px, 1.2vw, 24px);

        .title {
            font-size: clamp(24px, 4vw, 64px);
            font-weight: 780;
            line-height: 110%;
            text-wrap: balance;

            span {
                color: var(--color-accent-01);
            }
        }

        .description {
            font-size: clamp(13px, 1.2vw, 16px);
            font-weight: 300;
            letter-spacing: 0.2px;
        }
    }

    .grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        row-gap: clamp(14px, 2vw, 20px);
        column-gap: clamp(14px, 2vw, 20px);

        .card {
            height: 460px;
            padding: 12px;
            display: flex;
            flex: 1;
            flex-direction: column;
            justify-content: end;
            border: 1px solid var(--color-line-01);
            border-radius: 20px;
            color: inherit;
            background-position: 0 0;
            background-repeat: no-repeat;
            background-size: cover;
            animation: caseCardScroll 10s linear infinite;
            animation-play-state: paused;
            transition: border-color 0.2s;
            text-decoration: none;
            overflow: hidden;

            .hover {
                padding: 12px 16px;
                display: flex;
                align-items: center;
                justify-content: space-between;
                border-radius: 14px;
                background: var(--color-background-01-dim);
                backdrop-filter: blur(10px);
                transform: translateY(100px);
                transition: transform 0.2s;

                .about {
                    .name {
                        font-size: clamp(14px, 1.2vw, 16px);
                        font-weight: 500;
                    }

                    .details {
                        font-size: clamp(10px, 1.2vw, 12px);
                        font-weight: 300;
                    }
                }

                .icon {
                    width: 36px;
                    height: 36px;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    border-radius: 50%;
                    background: var(--color-accent-01);
                    border: 1px solid var(--color-accent-01);
                    
                    img {
                        width: 15px;
                    }
                }
            }

            &:hover {
                border-color: var(--color-ink-mute);
                animation-play-state: running;

                .hover {
                    transform: translateY(0);
                }
            }
        }
    }
}

section.project {
    position: relative;
    padding-top: 16px;
    justify-items: center;
    border-top: 1px solid var(--color-line-01);
    overflow: hidden;

    .container {
        max-width: 1920px;
        width: 100%;
        padding: clamp(80px, 8vw, 120px) clamp(20px, calc(20px + (180 - 20) * ((100vw - 720px) / (1920 - 720))), 180px);
        display: flex;
        flex-direction: column;
    }

    .label {
        margin-bottom: clamp(16px, 1.4vw, 20px);
        display: flex;
        align-items: center;
        align-self: start;
        font-size: clamp(12px, 1vw, 14px);
        font-family: "JetBrainsMono", sans-serif;
        transition: color 0.2s;
        color: var(--color-ink-mute);
        cursor: pointer;

        &::before {
            content: "";
            width: 7px;
            height: 7px;
            margin-right: 12px;
            border-left: 1.5px solid var(--color-ink-mute);
            border-bottom: 1.5px solid var(--color-ink-mute);
            transform: rotate(45deg);
            transition: border-color 0.2s;
        }

        &:hover {
            color: var(--color-ink);

            &::before {
                border-color: var(--color-ink);
            }
        }
    }

    .header {
        display: none;
        margin-bottom: clamp(20px, 4vw, 32px);

        .title {
            font-size: clamp(24px, 4.6vw, 56px);
            font-weight: 780;
            line-height: 110%;
            text-wrap: balance;

            span {
                color: var(--color-accent-01);
            }
        }
    }

    .content {
        display: flex;
        gap: clamp(20px, 2vw, 36px);

        .left {
            min-width: 540px;
            min-height: 880px;
            padding: clamp(14px, 1.4vw, 20px);
            display: flex;
            align-items: end;
            justify-content: end;
            border: 1px solid var(--color-line-01);
            border-radius: 20px;
            transition: border-color 0.2s;
            background-position: 0 0;
            background-repeat: no-repeat;
            background-size: cover;
            animation: caseCardScroll 10s linear infinite;
            animation-play-state: paused;

            .link {
                padding: 10px 20px;
                font-size: 14px;
                font-weight: 550;
                color: var(--color-ink);
                background: var(--color-background-01);
                border: 1px solid var(--color-line-01);
                border-radius: 10px;
                transition: color 0.2s, background-color 0.2s, border-color 0.2s;
                text-decoration: none;
                overflow: hidden;

                &:hover {
                    border-color: var(--color-ink-mute);
                    background-color: var(--color-background-02);
                }
            }

            &:hover {
                border-color: var(--color-ink-mute);
                animation-play-state: running;
            }
        }

        .right {
            display: flex;
            flex-direction: column;
            gap: clamp(20px, 2vw, 32px);

            .title {
                margin-bottom: clamp(8px, 1vw, 12px);
                font-size: clamp(32px, 3.6vw, 56px);
                font-weight: 780;
                line-height: 105%;
                text-wrap: balance;

                span {
                    color: var(--color-accent-01);
                }
            }

            .about {
                padding-top: clamp(20px, 2vw, 32px);
                border-top: 1px solid var(--color-line-01);

                .tag {
                    margin-bottom: clamp(8px, 2vw, 12px);
                    font-size: clamp(18px, 2vw, 28px);
                    font-weight: 700;
                }

                .description {
                    font-size: clamp(12px, 1.2vw, 15px);
                    line-height: 139%;
                }
            }

            .cta {
                padding-top: clamp(20px, 2vw, 32px);
                display: flex;
                align-items: center;
                justify-content: space-between;
                border-top: 1px solid var(--color-line-01);

                .text {
                    .name {
                        margin-bottom: 2px;
                        font-size: clamp(18px, 2vw, 28px);
                        font-weight: 700;
                    }

                    .description {
                        font-size: clamp(12px, 1vw, 15px);
                    }
                }

                .button {
                    padding: clamp(12px, 1.2vw, 16px) clamp(26px, 2.2vw, 32px);
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    border-radius: 10px;
                    font-weight: 550;
                    font-size: clamp(14px, 1.2vw, 16px);
                    color: var(--color-ink);
                    background: var(--color-accent-01);
                    border: 1px solid var(--color-accent-01);
                    transition: color 0.2s, background-color 0.2s, border-color 0.2s, box-shadow 0.2s;
                    white-space: nowrap;
                    text-decoration: none;
                    overflow: hidden;

                    &:hover {
                        border-color: #ff1a40;
                        background-color: #ff1a40;
                        box-shadow: 0 0 14px rgba(255, 51, 85, .35);
                    }
                }
            }
        }
    }
}

footer {
    position: relative;
    justify-items: center;
    border-top: 1px solid var(--color-line-01);
    overflow: hidden;

    .container {
        max-width: 1920px;
        width: 100%;
        padding-top: clamp(60px, 4vw, 100px);
        padding-bottom: clamp(60px, 4vw, 60px);
        padding-left: clamp(20px, calc(20px + (180 - 20) * ((100vw - 720px) / (1920 - 720))), 180px);
        padding-right: clamp(20px, calc(20px + (180 - 20) * ((100vw - 720px) / (1920 - 720))), 180px);
        display: flex;
        flex-direction: column;
        gap: clamp(36px, 2.8vw, 48px);
    }

    .row {
        display: flex;
        align-items: center;
        justify-content: space-between;

        .left {
            display: flex;
            flex-direction: column;
            gap: 16px;

            .title {
                font-size: clamp(26px, 2.6vw, 36px);
                font-weight: 650;
                line-height: 105%;
                text-indent: 0;
                text-wrap: balance;
            }

            .description {
                max-width: 48ch;
                font-size: clamp(14px, 1.2vw, 16px);
            }
        }

        .right {
            display: flex;
            flex-direction: column;
            justify-content: end;
            gap: clamp(6px, 0.6vw, 10px);

            .link {
                font-size: clamp(14px, 1.2vw, 16px);
                letter-spacing: 0.2px;
                text-decoration: none;
                text-align: end;
                color: var(--color-ink-dim);
                transition: color 0.2s;

                &:hover {
                    color: var(--color-ink);
                }
            }
        }
    }

    .legal {
        padding-top: clamp(18px, 1.4vw, 22px);
        border-top: 1px solid var(--color-line-01);

        .link {
            font-size: 14px;
            font-weight: 500;
            letter-spacing: 0.2px;
            text-decoration: none;
            color: var(--color-ink-mute);
            transition: color 0.2s;

            &:hover {
                color: var(--color-ink-dim);
            }
        }
    }
}


@keyframes caseCardScroll {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 0 100%;
    }
}


@media screen and (max-width: 1440px) {
    section.project {
        .content {
            .left {
                min-width: 480px;
                min-height: 720px;
            }

            .right {
                .cta {
                    flex-direction: column;
                    align-items: start;
                    gap: 16px;

                    .text {
                        .name {
                            margin-bottom: 0;
                        }
                    }
                }
            }
        }
    }
}

@media screen and (max-width: 1366px) {
    section.project {
        .content {
            .left {
                min-width: 420px;
                min-height: 680px;
            }
        }
    }
}

@media screen and (max-width: 1280px) {
    header {
        .container {
            height: 60px;

            .left {
                .logo {
                    display: flex;
                    align-items: center;

                    img {
                        height: 20px;
                    }
                }
            }

            .nav {
                .link {
                    font-size: 12px;
                }
            }

            .right {
                .cta {
                    padding: 8px 18px;
                    font-size: 12px;
                }
            }
        }
    }

    main {
        padding-top: 60px;

        .background {
            left: 5%;
        }
    }

    section.offers {
        .cards {
            .row {
                flex-direction: column;
            }

            .row:last-child {
                .card {
                    padding: clamp(36px, 2.2vw, 42px) clamp(24px, 2vw, 36px);

                    .top {
                        .title {
                            font-size: clamp(22px, 2vw, 26px);
                        }

                        .description {
                            font-size: clamp(13px, 1.1vw, 15px);
                        }
                    }

                    .bottom {
                        gap: 8px;
                    }
                }
            }
        }
    }

    section.cases {
        .grid {
            grid-template-columns: repeat(2, 1fr);
        }
    }

    section.process {
        .steps {
            grid-template-columns: repeat(1, 1fr);

            .card {
                .name {
                    span {
                        display: none;
                    }
                }
            }
        }
    }

    section.gallery {
        .grid {
            grid-template-columns: repeat(3, 1fr);
        }
    }
}

@media screen and (max-width: 1096px) {
    section.project {
        .content {
            .left {
                min-width: 50%;
            }
        }
    }
}

@media screen and (max-width: 1024px) {
    main {
        align-content: end;

        .container {
            padding-bottom: 128px;
        }

        .background {
            left: -58%;
        }
    }

    section.prices {
        .content {
            .cards {
                flex-direction: column;

                .card {
                    .button {
                        padding-left: 32px;
                        padding-right: 32px;
                        align-self: start;
                    }
                }
            }

            .cta {
                flex-direction: column;
                align-items: start;
                gap: 18px;

                .text {
                    .name {
                        margin-bottom: 8px;
                    }
                }
            }
        }
    }

    section.gallery {
        .grid {
            grid-template-columns: repeat(2, 1fr);
        }
    }
}

@media screen and (max-width: 860px) {
    main {
        .background {
            left: -90%;
        }
    }

    section.project {
        .header {
            display: block;
        }

        .content {
            flex-direction: column;

            .left {
                min-width: auto;
                min-height: 540px;
            }

            .right {
                .title {
                    display: none;
                }

                .about {
                    margin-top: 10px;
                }

                .cta {
                    flex-direction: row;
                    align-items: center;
                    justify-content: space-between;
                }
            }
        }
    }
}

@media screen and (max-width: 768px) {
    br {
        display: none;
    }

    header {
        position: absolute;
        border: none;

        .container {
            height: 80px;

            .left {
                .logo {
                    img {
                        height: 28px;
                    }
                }
            }

            .nav,
            .right {
                display: none;
            }
        }
    }

    main {
        padding-top: 80px;

        .left {
            .title {
                max-width: 16ch;
            }
        }
    }

    section.offers {
        .cards {
            .row {
                .card {
                    padding: 36px 28px;

                    .tags {
                        flex-direction: column;
                    }
                }

                &:last-child {
                    .card {
                        .tags {
                            flex-direction: inherit;
                        }
                    }
                }
            }
        }
    }
}

@media screen and (max-width: 640px) {
    cookie {
        .container {
            align-items: stretch;
            flex-direction: column;
            gap: 20px;
        }

        .actions {
            flex-direction: column;
            flex: 1;
            gap: 8px;
        }
    }

    main {
        .container {
            padding-bottom: 48px;

            .content {
                .actions {
                    flex-direction: column;
                }
            }
        }

        .background {
            left: -70%;
            bottom: 40%;
        }
    }

    section.offers {
        .cards {
            .row {
                .card {
                    padding: 32px 20px;

                    .tags {
                        flex-direction: column;
                    }
                }

                &:last-child {
                    .card {
                        padding: 32px 20px;
                    }
                }
            }
        }
    }

    section.cases {
        .grid {
            grid-template-columns: repeat(1, 1fr);
        }
    }

    section.prices {
        .content {
            .cards {
                .card {
                    padding:  34px 20px 28px 20px;

                    .button {
                        width: 100%;
                    }
                }
            }

            .cta {
                padding: 22px 20px;

                .button {
                    width: 100%;
                }
            }
        }
    }

    section.contacts {
        .methods {
            .row {
                flex-direction: column;
            }
        }
    }

    section.gallery {
        .grid {
            grid-template-columns: repeat(1, 1fr);
        }
    }

    section.project {
        .content {
            flex-direction: column;

            .left {
                min-height: 480px;
            }

            .right {
                .cta {
                    flex-direction: column;
                    align-items: start;

                    .text {
                        .description {
                            width: 40ch;
                        }
                    }

                    .button {
                        font-size: 13px;
                    }
                }
            }
        }
    }

    footer {
        .row {
            align-items: start;
            flex-direction: column;
            gap: 40px;

            .right {
                justify-content: start;

                .link {
                    text-align: start;
                }
            }
        }
    }
}