/* ============ SHARED SITE FOOTER STYLES ============ */
/* Pairs with assets/footer.js. Single source of truth: edit only here, never per page.
   Self-contained like the header: it defines its own tokens, so it looks the same on every page
   (it does not depend on a page's own .wrap, colors, font size, or line height).
   Built to WCAG 2.2 AA: visible focus, text contrast of at least 4.5:1, touch targets of at least
   44px on touch and small screens (24px minimum elsewhere), reflow at 320px without horizontal
   scroll, no color-only cues, reduced motion respected. Markup is semantic (footer landmark,
   labelled navigation, real headings and lists, address for contact details). */

/* Used by the policy pages, which have no .wrap of their own. The footer does not use it. */
.wrap{max-width:1400px;margin:0 auto;padding:0 clamp(24px,4vw,56px)}

footer.site{--f-bg:#1D2536;--f-text:#A3AFC3;--f-head:#FFFFFF;--f-line:#3D4A63;--f-accent:#9DC3E6;--f-mut:#8E9BB1;
  background:var(--f-bg);color:var(--f-text);border-top:1px solid var(--f-line);color-scheme:dark;
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;font-size:16px;line-height:1.7;text-align:start;text-wrap:pretty}
footer.site *,footer.site *::before,footer.site *::after{box-sizing:border-box}
footer.site :where(p,ul,li,dl,dd,address,h2){margin:0;padding:0}
footer.site :where(ul){list-style:none}
footer.site address{font-style:normal}

/* Same container as the header (.nav-inner): 1400px wide with the same fluid side gutters */
footer.site .f-inner{max-width:1400px;margin-inline:auto;padding-inline:clamp(24px,4vw,56px)}

footer.site .f-main{display:grid;grid-template-columns:minmax(240px,1.4fr) 3fr;gap:clamp(32px,5vw,72px);padding-block:56px 48px}
footer.site .f-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:32px 24px;align-content:start}

/* Logo lockup is the header's, on a dark surface: same mark size, weight, size, and spacing */
footer.site .f-logo{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:800;font-size:1.15rem;letter-spacing:-.02em;color:var(--f-head);text-decoration:none}
footer.site .f-logo img{height:28px;width:auto;display:block}
footer.site .f-logo .lumo{color:var(--f-accent)}
footer.site .f-logo sup{font-size:.5em;font-weight:600;color:var(--f-mut)}
footer.site .f-tag{margin-top:12px;max-width:22rem;font-size:.95rem}
footer.site .f-tag span{display:block}

footer.site .f-contact{margin-top:28px;padding-top:24px;border-top:1px solid var(--f-line);max-width:22rem}
footer.site .f-contact dt{font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--f-accent)}
footer.site .f-contact dd{margin:2px 0 16px}
footer.site .f-contact dd:last-child{margin-bottom:0}
footer.site .f-phone,footer.site .f-mail{display:inline-flex;align-items:center;gap:10px;min-height:28px}
footer.site .f-phone svg{flex:none;fill:currentColor}

footer.site .f-h{font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;line-height:1.4;color:var(--f-head);margin-bottom:12px}

/* Links: the header's weight and size, readable on dark, with a visible keyboard focus ring */
footer.site a{color:var(--f-text);font-weight:600;font-size:.88rem;text-decoration:none;text-underline-offset:3px}
footer.site a:hover{color:var(--f-head);text-decoration:underline}
footer.site a:focus-visible{outline:2px solid var(--f-accent);outline-offset:3px;border-radius:4px;color:var(--f-head)}
footer.site .f-col a{display:inline-flex;align-items:center;min-height:28px;padding-block:4px;overflow-wrap:break-word}

footer.site .f-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 40px;padding-block:24px 44px;border-top:1px solid var(--f-line);font-size:.8rem}
footer.site .f-legal a{font-size:inherit;text-decoration:underline}
footer.site .f-copy{color:var(--f-text)}

@media(max-width:900px){
  footer.site .f-main{grid-template-columns:1fr;padding-block:44px 36px}
  footer.site .f-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Touch and small screens: 44px targets, and room so the fixed privacy button never covers the last line */
@media(max-width:760px),(pointer:coarse){
  footer.site .f-col a,footer.site .f-phone,footer.site .f-mail{min-height:44px}
}
@media(max-width:760px){
  footer.site .f-legal{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
}
@media(prefers-reduced-motion:no-preference){
  footer.site a{transition:color .18s ease}
}
@media(forced-colors:active){
  footer.site{border-top:1px solid CanvasText}
  footer.site a{color:LinkText}
}
