footer:after {
    content: '';

    display: block;
    height: 0.937rem;
    background: linear-gradient(
        90deg,
        var(--pink),
        var(--pink) 16.67%,
        var(--blue) 16.67%,
        var(--blue) 33.34%,
        var(--aqua) 33.34%,
        var(--aqua) 50%,
        var(--yellow) 50%,
        var(--yellow) 67.67%,
        var(--orange) 67.67%,
        var(--orange) 83.34%,
        var(--purple) 83.34%
    );
}

.footer--outer-container {
    display: flex;
    flex-direction: column;

    padding-block-end: 2.188rem;

    background-color: var(--text);
}

.footer--outer-container > * {
    order: 1;
}

.footer--custom-blocks {
    position: relative;

    order: 0;
}

.footer--custom-blocks:before,
.footer--custom-blocks:after {
    --height: 2.188rem;

    content: '';
    
    position: absolute;
    inset-block-end: -.063rem;

    display: block;
    height: 2.188rem;

    background-color: var(--text);
}

.footer--custom-blocks:before {
    inset-inline-start: 0;

    width: calc(100vw - var(--height) + .063rem);
}

.footer--custom-blocks:after {
    inset-inline-end: 0;

    width: var(--height);

    border-radius: 0 var(--height) 0 0;
}

.footer--custom-blocks picture {
    background-color: var(--light-purple);
}

.footer--custom-blocks img {
    height: auto;
    margin-inline: auto;
}

.footer--container {
    position: relative;

    text-align: center;
    color: var(--white);
}

.footer--logo-link img {
    margin-inline: auto;
}

.footer--nav-links {
    padding-inline-start: 0;
}

.back-to-top {
    position: absolute;
    inset-block-start: -2.188rem;
    inset-inline-end: 2.188rem;
    z-index: 10;
    
    display: flex;
    justify-content: center;
    align-items: center;

    width: 2.813rem;
    height: 2.813rem;

    transform: translateY(-50%);

    border: none;
    border-radius: 100%;
    background: var(--white);
}

.back-to-top path {
    stroke: var(--text);
}

.footer--nav-links,
.footer--description {
    margin-block-start: 2.5rem;
}

footer .component-menu-item,
.footer--description * {
    font-size: .75rem;
}

.footer--nav-links:has(.component-cta) {
    display: flex;
    flex-direction: column;
    gap: .937rem;
}

footer .component-menu-item.component-cta {
    margin-inline: auto;
    width: fit-content;
}

footer .component-menu-item:not(.component-cta),
.footer--description {
    line-height: 1.313rem;
    font-weight: 400;
}

.footer--description * {
    font-weight: 300;
}

@media screen and (min-width: 64rem) {

    .footer--outer-container {
        display: grid;
        grid-template-columns: repeat(19, minmax(0, 1fr));

        padding-block-end: 1.469rem;
    }
    
    .footer--container:first-child {
        display: grid;
        grid-template-columns: repeat(9, minmax(0, 1fr));
        grid-row: 2;
        grid-column: span 14;
        align-items: center;

        padding-inline-end: 6%;
    }

    .footer--custom-blocks  {
        grid-row: 1;
        grid-column: span 19;
    }
    
    .footer--description {
        grid-row: 2;
        grid-column: span 4;
        align-self: end;
        justify-self: start;
    }

    .footer--logo-link {
        grid-column: span 4;
    }

    .footer--nav {
        grid-column: span 5;
        display: flex;
        justify-content: space-between;
    }

    .footer--nav-links,
    .footer--description {
        margin-block-start: 0;
    }

    .footer--nav-links {
        display: flex;
        flex-direction: column;
        align-items: start;
    }

    footer .component-menu-item:not(.component-cta),
    .footer--description {
        line-height: 1.3113rem;
    }

    footer .component-menu-item.component-cta {
        margin-inline: 0;
    }

    footer .component-menu-item.component-cta:hover {
        color: var(--white);
    }

    footer .component-menu-item.component-cta:hover {
        color: var(--white);
    }

    footer .component-cta a {
        font-weight: 700;
        font-size: .875rem;
    }

    .footerNav--component-menu-item__item--link,
    .footer--description p {
        font-size: .75rem;
        font-weight: 300;
    }

    .back-to-top {
        inset-inline-end: unset;
        inset-inline-start: calc(100vw - (2.188rem + 2.813rem));
    }

}