footer {
    --footer-bg-color: var(--color-black);
    --footer-text-color: var(--color-black-contrast);
    --footer-line-color: #84A0CA;

    background-color: var(--footer-bg-color);
    color: var(--footer-text-color);
    display: block;
    grid-template-columns: 1fr;
    text-align: left;
    font-size: 1.4rem;
}

footer a {
    color: var(--footer-text-color);
    text-decoration: none;
    transition: .2s;
}

/* 
    Hover 
*/
@media (-moz-touch-enabled: 0), (pointer: fine) {
    footer a:hover {
        color: var(--color-grey-2);
    }
}

.footer-grid.grid {   
    display: grid;
    place-content: stretch;
    place-items: stretch;
    row-gap: 2.5rem !important;
    padding: var(--padding-rows) 0;

    grid-template-columns: 1fr; 
    grid-template-areas: "logo"
                         "licenses"
                         "products"
                         "services"
                         "contact"
                         "mammoth"; 
} 

.footer-grid h6 {
    margin-bottom: 1.5rem;
}

.footer-logo,
.footer-licenses,
.footer-products,
.footer-services,
.footer-contact,
.footer-mammoth {
    width: 100%;
}

.footer-logo {
    grid-area: logo;
}

.footer-logo > a {
    display: block;
    width: 15rem;
}

.footer-logo img {
    width: 100%;
    height: auto;
    display: block;
}

.footer-licenses {
    grid-area: licenses;
    display: grid;
    grid-template-columns: max-content max-content;
    place-content: start;
    place-items: start;
    column-gap: .5rem;
}

.footer-license {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: 1 / -1;
    place-content: start;
    place-items: start;
    width: 100%;
    column-gap: .5rem;
}

.footer-products {
    grid-area: products;
}

.footer-services {
    grid-area: services;
}

.footer-contact {
    grid-area: contact;
}

.footer-mammoth {
    grid-area: mammoth;
}

.footer-mammoth-logo {
    display: block;
    max-width: 16rem;
    width: 100%;
    height: auto;
    margin-bottom: 0.5rem;
    margin-top: -0.7rem;
}

.footer-mammoth-logo > svg {
    width: 100%;
    height: auto;
    display: block;
}

.footer-nav-container {
    display: block;
    padding-top: 0.8rem;
}

.footer-menu {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-contact-item > a {
    display: grid;
    grid-template-columns: 2rem 1fr;
    align-items: center;
    gap: .7rem;
}

.footer-contact-item > a > i {
    font-size: 2rem;
}

.footer-menu > li.footer-socials { 
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.7rem;
    padding: 0 var(--nav-padding);
}

.footer-menu > li.footer-socials > a { 
    text-decoration: none;
    color: var(--color-grey-5);
    transition: .2s;
}

.footer-menu > li.footer-socials > a:hover { 
    color: var(--color-primary);
}

.footer-menu > li.footer-socials > a > i {
    font-size: 2rem;
}


.footer-products,
.footer-services,
.footer-contact,
.footer-mammoth {
    border-top: .1rem solid var(--color-grey);
    padding-top: 3rem;
}


@media (min-width: 576px) {
    .footer-grid.grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-areas: "logo licenses"
                             "services contact"
                             "products mammoth";
    }
}

@media (min-width: 768px) {
    .footer-grid.grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-template-areas: "logo products services"
                             "licenses contact mammoth";
    }

    .footer-licenses {
        align-self: end;
    }

    .footer-products,
    .footer-services {
        border-top: 0 none;
        padding-top: 0rem;
    }
}

@media (min-width: 1024px) {
    .footer-grid.grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        grid-template-areas: "logo logo licenses licenses"
                             "products services contact mammoth";
    }

    .footer-licenses {
        align-self: start;
    }

    .footer-products,
    .footer-services {
        border-top: .1rem solid var(--color-grey);
        padding-top: 3rem;
    }

    .footer-top {
        overflow: hidden;
    }

    .footer-grid {
        position: relative;
    }

    .footer-grid::before {
        content: "";
        position: absolute;
        bottom: -0.2em;
        left: 0;
        width: 0;
        height: calc(100% + var(--padding-rows));
        rotate: -36.15deg;
        transform-origin: bottom left;
        border-left: 0.1rem solid var(--color-grey);
    }

    .footer-grid::after {
        content: "";
        position: absolute;
        top: -0.2rem;
        right: 0;
        width: 0;
        height: calc(100% + var(--padding-rows));
        rotate: -36.15deg;
        transform-origin: top right;
        border-right: 0.1rem solid var(--color-grey);
    }
}

@media (min-width: 1280px) {
    .footer-grid.grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        grid-template-areas: "logo products services contact mammoth"
                             "licenses products services contact mammoth";
    }

    .footer-licenses {
        align-self: end;
    }

    .footer-products,
    .footer-services,
    .footer-contact,
    .footer-mammoth {
        border-top: 0 none;
        padding-top: 0;
    }
}

@media (min-width: 1540px) {
    .footer-grid.grid {
        grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 1fr);
    }
}


/* 
    Footer Bottom 
*/
.footer-credit .me-logo {
    width: 3.3rem;
}

.footer-credit .me-logo svg {
    width: 100%;
    height: auto;
}

.footer-credit .me-logo svg > * {
    transition: .2s;
}

@media (-moz-touch-enabled: 0), (pointer: fine) {
    .footer-credit .me-logo svg > * {
        transition: .2s;
    }

	.footer-credit:hover .me-logo svg > * {
        fill: var(--color-primary);
    }
}