.process {
    position: relative;
    padding: 150px 0;
    background: var(--bg);
    color: var(--text);
    overflow: hidden
}

.process-container {
    width: min(1400px, 90%);
    margin: auto
}

.process-heading {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 60px;
    align-items: end;
    margin-bottom: 80px
}

.process-heading h2 {
    margin: 0;
    font-size: clamp(3rem, 6vw, 6.3rem);
    line-height: .9;
    letter-spacing: -.075em;
    font-weight: 650
}

.process-heading h2 em {
    font-style: normal;
    color: transparent;
    -webkit-text-stroke: 1px var(--text)
}

.process-heading p {
    max-width: 420px;
    margin: 25px 0 0;
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.7
}

.process-list {
    border-top: 1px solid var(--border)
}

.process-item {
    position: relative;
    display: grid;
    grid-template-columns: 70px 70px 1fr 50px;
    align-items: center;
    gap: 25px;
    padding: 35px 10px;
    border-bottom: 1px solid var(--border);
    transition: padding .45s cubic-bezier(.16, 1, .3, 1), background .4s ease
}

.process-item:before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--surface);
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform .45s cubic-bezier(.16, 1, .3, 1);
    z-index: 0
}

.process-item:hover {
    padding-left: 25px;
    padding-right: 25px
}

.process-item:hover:before {
    transform: scaleY(1)
}

.process-number,
.process-icon,
.process-content,
.process-arrow {
    position: relative;
    z-index: 1
}

.process-number {
    font-size: .68rem;
    color: var(--muted);
    letter-spacing: .08em
}

.process-icon {
    width: 50px;
    height: 50px;
    border: 1px solid var(--border);
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    transition: background .35s ease, color .35s ease, transform .4s ease
}

.process-item:hover .process-icon {
    background: var(--accent);
    color: var(--bg);
    transform: rotate(8deg)
}

.process-content h3 {
    margin: 0 0 9px;
    font-size: 1.15rem;
    letter-spacing: -.04em
}

.process-content p {
    max-width: 550px;
    margin: 0;
    color: var(--muted);
    font-size: .82rem;
    line-height: 1.65
}

.process-arrow {
    justify-self: end;
    width: 38px;
    height: 38px;
    border: 1px solid var(--border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    transition: background .35s ease, color .35s ease, transform .4s ease
}

.process-item:hover .process-arrow {
    background: var(--accent);
    color: var(--bg);
    transform: rotate(-45deg)
}

@media(max-width:800px) {
    .process {
        padding: 100px 0
    }

    .process-heading {
        grid-template-columns: 1fr;
        gap: 30px;
        margin-bottom: 55px
    }

    .process-item {
        grid-template-columns: 45px 52px 1fr 38px;
        gap: 15px;
        padding: 28px 5px
    }

    .process-item:hover {
        padding-left: 10px;
        padding-right: 10px
    }

    .process-icon {
        width: 46px;
        height: 46px
    }
}

@media(max-width:550px) {
    .process-heading h2 {
        font-size: clamp(3rem, 14vw, 4.5rem)
    }

    .process-item {
        grid-template-columns: 38px 45px 1fr;
        gap: 13px;
        padding: 25px 0
    }

    .process-arrow {
        display: none
    }

    .process-number {
        font-size: .6rem
    }

    .process-icon {
        width: 42px;
        height: 42px;
        border-radius: 13px
    }

    .process-content h3 {
        font-size: 1rem
    }

    .process-content p {
        font-size: .76rem
    }
}