.site-footer { position: relative; overflow: hidden; padding: 5rem 1rem 1.5rem; background: #003f27 url('../assets/site/footer-bg.png') center/cover no-repeat; background-blend-mode: multiply; color: #fff; }
.site-footer::before, .site-footer::after { content: ""; position: absolute; background: center/contain no-repeat; pointer-events: none; }
.site-footer::before { top: 0; left: 0; width: 12rem; height: 17rem; background-image: url('../assets/site/footer-decoration-top-left.png'); }
.site-footer::after { right: 0; bottom: 0; width: 34rem; height: 24rem; background-image: url('../assets/site/footer-decoration-bottom-right.png'); }
.site-footer__grid, .site-footer__legal { width: min(100%, var(--gtheme-footer-max, 1280px)); margin-inline: auto; }
.site-footer__grid { position: relative; z-index: 2; display: grid; grid-template-columns: 2fr 1fr 1fr; gap: clamp(2rem, 7vw, 6rem); }
.site-footer__grid:has(.site-footer__extra) { grid-template-columns: 2fr repeat(3, 1fr); gap: clamp(1.5rem, 4vw, 4rem); }
.site-footer__column + .site-footer__column { padding-left: clamp(2rem, 5vw, 4.5rem); border-left: 1px solid #2d634f; }
.footer-widget { margin: 0; }
.footer-widget + .footer-widget { margin-top: 2rem; }
.footer-widget__title, .site-footer .wp-block-heading, .site-footer h2 { margin: 0 0 20px; color: #b5d372; font-family: "Gilroy-Bold", Manrope, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 1; letter-spacing: 2px; text-transform: uppercase; }
.site-footer ul { padding: 0; margin: 0; list-style: none; }
.site-footer nav a, .site-footer__contact-link, .site-footer .wp-block-navigation-item__content { display: block; width: fit-content; margin-bottom: 20px; color: #fff; font-family: "Gilroy-Medium", "DM Sans", Arial, sans-serif; font-size: 16px; line-height: 1; text-decoration: none; transition: .3s ease; }
.site-footer a:hover, .site-footer a:focus-visible { color: #b5d372; }
.site-footer__about p { max-width: 22rem; margin-bottom: 0; color: #d1ece2; font-size: 16px; line-height: 27px; }
.site-footer__logo { display: inline-block; margin-bottom: 30px; }
.site-footer__logo img { display: block; width: 160px; min-width: 150px; height: auto; object-fit: contain; }
.site-footer__about .widget_media_image .wp-block-image { width: fit-content; margin: 0 0 30px; }
.site-footer__about .widget_media_image img { display: block; width: 160px; min-width: 150px; height: auto; object-fit: contain; }
.site-footer__social-title { margin-top: 2rem; }
.social-links { display: flex; gap: .65rem; }
.social-links a { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: 50%; background: #b5d372; transition: .3s ease; }
.social-links img { width: 1.2rem; height: 1.2rem; object-fit: contain; }
.social-links a:hover, .social-links a:focus-visible { background: #fff; transform: translateY(-.2rem); }
.site-footer__legal { position: relative; z-index: 2; display: flex; justify-content: space-between; padding-top: 20px; border-top: 1px solid #2d634f; margin-top: 4rem; font-family: "Gilroy-Bold", Manrope, Arial, sans-serif; font-size: 12px; line-height: 12px; }
@media (max-width: 62rem) { .site-footer__grid, .site-footer__grid:has(.site-footer__extra) { grid-template-columns: 1.5fr 1fr 1fr; } .site-footer__extra { grid-column: 1 / -1; padding: 2rem 0 0 !important; border: 0 !important; border-top: 1px solid #2d634f !important; } }
@media (max-width: 48rem) {
    .site-footer { padding-top: 4rem; }
    .site-footer__grid, .site-footer__grid:has(.site-footer__extra) { grid-template-columns: 1fr; gap: 0; text-align: center; }
    .site-footer__navigation { display: none; }
    .site-footer__column + .site-footer__column { width: min(100%, 22rem); padding: 2rem 0 0; border: 0; border-top: 1px solid #2d634f; margin-inline: auto; }
    .site-footer__about p, .site-footer__contact-link, .site-footer__logo, .site-footer__about .widget_media_image .wp-block-image { margin-inline: auto; }
    .social-links { justify-content: center; }
    .site-footer__legal { align-items: center; gap: 1rem; flex-direction: column; text-align: center; }
}
