footer {
    display: grid;
    grid-template-rows: auto 3.125rem;
    font-size: 0.875rem;
    margin-top: auto;

    .top {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
        padding: 1.25rem max(7.5rem, calc(50% - calc(var(--max-content-width) / 2)));
        box-sizing: border-box;

        @media screen and (max-width: 1099px) {
            & {
                padding: 4.5rem 7.5rem;
            }
        }

        @media screen and (max-width: 990px) {
            & {
                padding: 3.5rem;
            }
        }

        @media screen and (max-width: 480px) {
            & {
                padding: 1.5rem;
            }
        }

        .title {
            line-height: 1.2;
            font-weight: 600;
            color: var(--grey);
        }

        .companies {
            display: grid;
            grid-template-columns: repeat(3, auto);
            grid-template-rows: repeat(2, auto);
            align-self: left;
            gap: 1.5rem;

            .companies-list {
                display: flex;
                flex-direction: column;

                a {
                    color: inherit;
                    font-weight: 200;
                    line-height: 1.75;
                    text-decoration: none;
                }

                .title {
                    margin-bottom: 1rem;
                }
            }
        }

        hr {
            background-color: var(--red);
            width: 100%;
            height: 1px;
            margin: 0;
            border: none;
        }

        .info {
            display: grid;
            grid-template-columns: 1fr repeat(2, 3.125rem);
            grid-template-rows: repeat(3, auto);
            grid-auto-flow: column;
            row-gap: 0.25rem;
            column-gap: 0.625rem;

            a,
            span,
            div {
                color: inherit;
                font-weight: 200;
                text-decoration: none;
                font-size: 0.875rem;
                line-height: 1.2;
            }

            .social {
                position: relative;
                display: flex;
                align-items: center;
                justify-content: center;
                grid-row: 1 / span 3;
                background-color: var(--red);
                color: white;
                aspect-ratio: 1;
                box-sizing: border-box;
                padding: .75rem;
                border-radius: 0.625rem;
                height: 3.125rem;

                &::after {
                    content: '';
                    background-color: white;
                    height: 100%;
                    width: 100%;
                }

                &.linkedin::after {
                    mask-image: url(linkedin.svg);
                }

                &.facebook::after {
                    mask-image: url(facebook.svg);
                }
            }
        }
    }

    .bottom {
        display: flex;
        justify-content: space-between;
        padding: 1.25rem max(7.5rem, calc(50% - calc(var(--max-content-width) / 2)));
        background-color: var(--grey);

        @media screen and (max-width: 1099px) {
            & {
                padding: 1.25rem 7.5rem;
            }
        }

        @media screen and (max-width: 990px) {
            & {
                padding: 1.25rem 3.5rem;
            }
        }

        @media screen and (max-width: 480px) {
            & {
                padding: 1.25rem 1.5rem;
            }
        }

        * {
            color: white;
            text-decoration: none;
            font-weight: 200;
            font-size: 0.875rem;
            line-height: 1.2;
        }

        div {
            display: flex;
            align-items: center;
            gap: .5rem;
        }

        span,
        a {
            &:not(:last-child)::after {
                content: '|';
                padding-left: .5rem;
                pointer-events: none;
            }
        }
    }

    @media screen and (max-width: 767px) {
        & {
            grid-template-rows: auto auto;

            .bottom {
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 2rem;

                >div {
                    display: flex;
                    flex-direction: column;
                    align-items: start;

                    span,
                    a {
                        &:not(:last-child)::after {
                            content: none;
                        }
                    }

                    &:first-child {
                        align-items: end;
                    }
                }
            }
        }
    }
}