.site-footer {
    background: var(--beige);
    color: var(--black);
    padding: max(40px, 3.046875vw) 0 max(20px, 1.25vw);
    grid-template-rows: 1fr auto;
    overflow: visible;
}

.site-footer::before {
    content: "";
    position: absolute;
    top: max(16px, 1.25vw);
    left: max(16px, 1.25vw);
    display: block;
    width: calc(100% - (max(16px, 1.25vw) * 2));
    height: calc(100% - max(16px, 1.25vw));
    border-top-left-radius: calc(max(50px, 3.90625vw) - max(16px, 1.25vw));
    border-top-right-radius: calc(max(50px, 3.90625vw) - max(16px, 1.25vw));
    border: 3px solid var(--white);
    border-bottom: 0;
    pointer-events: none;
}

.site-footer .footer-icon {
    grid-area: 1/2/1/span 12;
    justify-self: flex-end;
    top: 0;
    right: 0;
    transform: translate(-10%, calc((max(40px, 3.046875vw) + 50%) * -1));
    width: max(128px, 13.59375vw);
}  

.site-footer .company-name {
    grid-area: 1/3/1/span 4;
    margin-bottom: 1em;
}

.site-footer .company-address {
    grid-area: 2/3/2/span 2;
    line-height: 1.4;
}

.site-footer .company-contact {
    grid-area: 2/5/2/span 2;
    line-height: 1.4;
}

.site-footer .social-container {
	grid-area: 1/11/1/span 3;
	height: fit-content;
	gap: max(20px, 2.5vw);
}

.site-footer .social-container .icon {
    height: max(32px, 2.5vw);
}

.site-footer .business-hours {
	grid-area: 1/7/span 2/span 4;
	width: fit-content;
	justify-self: center;
	line-height: 1.4;
}

.site-footer .business-hours .day-time {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--grid-gap);
}

.site-footer .footernav-container {
    grid-area: 2/11/2/span 3;
}

.site-footer .footernav-container .menu {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--grid-gap);
}

@media (max-width: 1399.98px) {
    .site-footer .company-contact {
        grid-area: 3/3/3/span 4;
        margin-top: 1em;
    }
    
    .site-footer .company-address {
        grid-area: 2/3/2/span 4;
    }
    
    .site-footer .business-hours {
        grid-area: 1/7/span 3/span 4;
    }
    
    .site-footer .footernav-container {
        grid-area: 3/11/3/span 3;
    }
}

@media (max-width: 991.98px) {
    .site-footer .company-name {
        grid-area: 1/3/1/span 5;
    }
    
    .site-footer .company-address {
        grid-area: 2/3/2/span 5;
    }

    .site-footer .company-contact {
        grid-area: 3/3/3/span 5;
    }

    .site-footer .business-hours {
        grid-area: 1/8/span 3/span 5;
        justify-self: flex-start;
    }

    .site-footer .footernav-container {
        grid-area: 4/8/4/span 5;
        align-self: center;
        margin-top: 1em;
    }
    
    .site-footer .social-container {
        grid-area: 4/3/4/span 5;
        align-self: center;
        margin-top: 1em;
    }
}

@media (max-width: 767.98px) {
    .site-footer {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;
        gap: 2em;
    }
    
    .site-footer .footer-icon {
        transform: translate(-50%,-50%);
    }
    
    .site-footer .company-name {
        align-self: center;
        margin: 0;
        margin-top: 1em;
    }

    .site-footer .company-contact {
        margin: 0;
    }

    .site-footer .social-container {
        margin: 0;
    }

    .site-footer .business-hours {
        text-align: left;
    }
  
    .site-footer .business-hours .day-time .time {
        text-align: right;
    }
}

@media (max-width: 399.98px) {
    .site-footer .business-hours .day-time {
        display: flex;
        flex-direction: column;
        justify-content: center;
        text-align: center;
    }
    
    .business-hours .day-time .time {
        text-align: center;
    }

    .site-footer .footernav-container .menu {
        display: flex;
        flex-direction: column;
    }
}