.footer {
    padding: var(--spacing-large) var(--spacing-small) var(--spacing-small) var(--spacing-small) !important;
}

.footer .grid {
    display: grid;
    grid-template-columns: 1fr 2fr;
    column-gap: var(--spacing-default);
    row-gap: var(--spacing-default);
    position: relative;
    z-index: 3;
}

@media (max-width: 1255px) {
    .footer .grid {
        grid-template-columns: 1fr;
    }
}

.footer .section-content {
    max-width: 100%;
    background: var(--pale);
    padding: var(--spacing-large) var(--spacing-medium);
    border-radius: var(--border-radius-default);
    overflow: hidden;
    position: relative;
}

.footer .column-l {
    display: flex;
    justify-content: start;
    align-items: start;
    position: relative;
}

@media (max-width: 960px) {
    .footer .column-l {
        justify-content: center;
        align-items: center;
    }
}

.footer h2 {
    text-align: center;
    max-width: 15ch;
}

.footer h3 {
    font-size: var(--font-size-medium);
}

.footer .cursive {
    font-size: var(--font-size-h2) !important;
}

.footer .columns {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    column-gap: var(--spacing-default);
    row-gap: var(--spacing-default);
    max-width: 100ch;

    @media (max-width: 800px) {
        grid-template-columns: 1fr 1fr;
    }

    @media (max-width: 420px) {
        grid-template-columns: 1fr;
    }
}

.footer .column {
    max-width: 50ch;
    font-size: var(--font-size-small);
}

.footer .footer-menu menu {
    margin: 0;
    padding: 0;
    list-style: none;
}

.footer .footer-menu li {
    display: flex;
    padding: 0;
}

.footer .footer-menu li:first-child a {
    padding-top: 0;
}

.footer .footer-menu li:last-child a {
    padding-bottom: 0;
}

.footer .footer-menu a {
    color: var(--text-color);
    padding: .3em 0;
}

.footer .footer-menu a:hover {
    color: var(--link-color-hover);
}

@media (max-width: 640px) {
    .footer .columns {
        flex-direction: column;
        gap: var(--spacing-medium);
    }
}

.footer .contact-items {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    column-gap: var(--spacing-default);
    row-gap: var(--spacing-tiny);
    max-width: 100ch;
    margin-top: 2rem;
    align-items: start;

    @media (max-width: 800px) {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 640px) {
    .footer .contact-items {
        grid-template-columns: 1fr;
        column-gap: var(--spacing-large);
        row-gap: var(--spacing-tiny);
        max-width: 70ch;
        margin-top: 2.5rem;
    }
}

.footer .contact-items > *:nth-child(3) {
    grid-column-start: 1;
}

.footer .contact-item {
    display: grid;
    grid-template-columns: 1fr 2fr;
    column-gap: 1rem;
    row-gap: 1rem;
    max-width: 30ch;
}

.footer .contact-item .contact-heading {
    font-weight: var(--font-weight-bold);
}

.footer .contact-item a:hover {
    color: var(--link-color);
}

.footer .bottom-bar {
    display: flex;
    justify-content: space-between;
    align-items: end;
    flex-wrap: wrap;
    column-gap: 2em;
    row-gap: .75em;
    margin-top: 2rem;
    border-top: var(--border-width-default) solid var(--light);
    padding-top: 1.5rem;
    font-size: var(--font-size-small);
}

.footer .logo {
    width: 8rem;
}

.footer .bottom-bar > div:last-child {
    display: flex;
    column-gap: 2em;
    row-gap: .75em;
    flex-wrap: wrap;
    justify-content: center;
}

.footer-menu {
    list-style-type: none !important;
    margin-block-start: 0 !important;
    padding-inline-start: 0 !important;
}

@media (max-width: 960px) {
    .footer .bottom-bar {
        flex-direction: column;
        justify-content: start;
        align-items: center;
    }
}

@media (max-width: 1250px) {
    .footer .illustration-bl {
        bottom: -8rem;
        left: -7rem;
    }
}
