.at-fromTo {
    position: relative;
    --compHeight: 460px;
    --maxCompWidth: min(calc(100% - 20px), 20em);
    --blockPadding: 3rem;
    min-height: calc(var(--compHeight) + calc(2 * var(--blockPadding)));
    margin-bottom: 3rem;
    padding: var(--blockPadding) calc(2 * var(--colPadding));
}

.at-fromTo::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    z-index: -1;
    width: 100vw;
    transform: translateX(-50%);
    background: linear-gradient(90deg, var(--color100) 50%, var(--color300) 50%);
}

.at-formTo__deco {
    position: absolute;
    inset: var(--blockPadding) 0 auto 0;) 0 auto 0;
    height: auto;
    width: 100%;
    max-width: calc(var(--maxCompWidth) + 4em) !important;
    margin: auto;
    aspect-ratio: 1;
    mix-blend-mode: multiply;
    clip-path: polygon(50% 1%, 100% 0, 100% 100%, 50% 100%);
}

.at-fromTo__comp {
    display: flex;
    justify-content: center;
    width: var(--compHeight);
    max-width: var(--maxCompWidth);
    aspect-ratio: 1;
    margin: 1rem auto 3rem;
    background: var(--color300);
    -webkit-mask-image: url(/ui/procurios-2019/img/squircle.svg);
    mask-image: url(/ui/procurios-2019/img/squircle.svg);
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    mask-size: 100%;
}

.at-fromTo__image {
    width: 50%;
    object-fit: contain;
}

.at-fromTo__image1 {
    opacity: .7;
    filter: grayscale(.1);
}

.at-fromTo__split  {
    width: var(--maxCompWidth);
    margin: 0 auto;
    text-align: center;
}

.at-fromTo__title {
    font-size: var(--size-h-xlarge)
}

.at-fromTo__button {
    display: flex;
    align-items: center;
    gap: 0.5em;
    position: sticky;
    bottom: -2.2em;
    left: 0;
    right: 0;
    z-index: +1;
    width: max-content;
    margin: 1.5em auto 0;
    border-color: var(--color);
    text-align: center;
    color: var(--colorText);
    background: var(--color);
}

.at-formTo__buttonAngle {
    display: block;
    height: 1rem;
    margin-top: -0.1em;
    margin-right: -0.25em;
    aspect-ratio: 1;
}

.at-fromTo__button--default .at-formTo__buttonAngle {
    transform: rotate(-90deg);
}

@media screen and (min-width: 500px) {
    .at-fromTo {
        --blockPadding: 4rem;
    }

    .at-fromTo__split {
        width: calc(50% - var(--colPadding));
        text-align: left;
    }

    .at-fromTo__title {
        text-align: right;
    }

    .at-fromTo__text {
        margin-top: .2em
    }

    .at-fromTo::after {
        content: '';
        position: absolute;
        top: calc(var(--maxCompWidth) + 1em);
        left: 50%;
        z-index: 0;
        transform: translateX(-50%);
        display: block;
        width: var(--maxCompWidth);
        aspect-ratio: 2.8 / 1;
        background: var(--color);
        mask-image: url(arrow.svg);
        mask-repeat: no-repeat;
        mask-size: 100%;
        filter: brightness(0.75);
    }
}

@media screen and (max-width: 959px) {
    .at-fromTo__button {
        transition: background .1s .5s, padding-top .2s .5s;
    }

    .at-fromTo__button--pinned {
        pointer-events: none;
    }

    .at-fromTo__button--pinned .at-formTo__buttonAngle {
        top: -4.5em;
        left: 50%;
        transform: translate(-50%, 0);
    }
}

@media screen and (min-width: 960px) {
    .at-fromTo {
        background-color: transparent;
        background-position: center;
    }

    .at-fromTo::after {
        top: 2rem;
        width: calc(var(--maxCompWidth) + 5em);
        background-size: contain;
        background-position: center 10%;
    }

    .at-formTo__deco {
        bottom: var(--blockPadding);
    }

    .at-fromTo__comp {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        margin: 0;
    }

    .at-fromTo__image {
        height: var(--compHeight);
        object-fit: cover;
        background: var(--color);
    }

    .at-fromTo__text {
        display: flex;
        flex-direction: column;
    }

    .at-fromTo__split {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: calc(1rem + var(--compHeight));
        width: 100%;
    }

    .at-fromTo__split1 {
        text-align: right;
    }

    .at-fromTo__split2 {
        text-align: left;
    }

    .at-fromTo__title {
        display: grid;
        align-items: end;
        font-size: clamp(var(--size-large), -1rem + 5.2vw, var(--size-h-xlarge));
    }

    .at-fromTo__text {
        align-self: center;
    }

    .at-fromTo__button {
        position: absolute;
        bottom: -1em;
    }
}
