/* Shared footer, with artwork from the supplied Figma export. */
.site-footer { padding: 160px 0 24px; }
.site-footer::before { width: 100%; height: 100%; top: 0; bottom: auto; left: 0; background: url("../images/footer-background.webp") top center / cover no-repeat; mix-blend-mode: normal; opacity: 1; filter: none; transform: none; animation: none; pointer-events: none; }
.site-footer .container { width: calc(100% - 48px); max-width: none; }
.site-footer .footer-grid { grid-template-columns: minmax(201px, 1fr) repeat(2, minmax(0, 321px)); gap: 32px; align-items: start; }
.site-footer .site-branding { align-self: start; font-size: 24px; }
.site-footer .site-logo { width: 201px; height: 32px; max-width: 201px; max-height: 32px; object-fit: contain; }
.site-footer h2 { padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px dashed #ffffff33; font: 600 20px/24px Inter, sans-serif; text-transform: uppercase; }
.site-footer .footer-menu-columns { gap: 12px; }
.site-footer .footer-links li { margin: 0; font-size: 14px; line-height: 17px; }
.site-footer .footer-links li + li { margin-top: 8px; }
.site-footer .footer-menu { display: grid; grid-auto-flow: column; grid-template-rows: repeat(5, auto); grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; row-gap: 8px; }
.site-footer .footer-menu > li + li { margin-top: 0; }
.site-footer .footer-links .sub-menu { max-height: 0; padding: 0; overflow: hidden; opacity: 0; visibility: hidden; transition: max-height 280ms ease, opacity 280ms ease, visibility 280ms; }
.site-footer .footer-links .is-open > .sub-menu { opacity: 1; visibility: visible; }
.site-footer .footer-links .sub-menu > li:first-child { margin-top: 8px; }
.site-footer .footer-links .sub-menu a { padding: 0; font-size: inherit; line-height: inherit; }
.site-footer .footer-submenu-toggle { display: inline-block; vertical-align: middle; width: 18px; height: 18px; margin-left: 6px; padding: 0; border: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none'%3E%3Cpath d='m14.25 6.75-5.25 4.5-5.25-4.5' stroke='white' stroke-width='1.125' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform 280ms ease; }
.site-footer .footer-submenu-toggle[aria-expanded="true"] { transform: rotate(180deg); }
.site-footer .footer-contact a { font-size: 14px; line-height: 17px; text-underline-offset: 3px; }
.site-footer .footer-contact a + a { margin-top: 8px; }
.site-footer .footer-contact a[href^="tel:"] { text-decoration: none; }
.site-footer a { transition: opacity 280ms ease; }
.site-footer a:hover { opacity: .75; }
.site-footer .footer-wordmark { margin-top: 100px; font-size: 0; line-height: 0; opacity: .3; }
.site-footer .footer-wordmark img { width: 100%; height: auto; }

@media (max-width: 900px) {
	.site-footer .footer-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.site-footer .site-branding { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
	.site-footer { padding: 0 0 16px; }
	.site-footer .container { width: calc(100% - 32px); }
	.site-footer .footer-grid { grid-template-columns: 1fr; gap: 28px; }
	.site-footer h2 { font-size: 16px; line-height: 19px; }
	.site-footer .footer-contact { margin-top: 4px; }
	.site-footer .footer-wordmark { width: 100%; margin-top: 48px; }
}

@media (prefers-reduced-motion: reduce) {
	.site-footer *, .site-footer *::after { transition: none !important; }
}
