:root { --forester-header-offset: 90px; }
html { scroll-behavior: smooth; }
html [id] { scroll-margin-top: var(--forester-header-offset); }
/* Programmatically focused containers are reading destinations, not controls. */
.forester-anchor-target:focus { outline: none; }
/* Sticky stays in document flow: its own height reserves the reveal distance. */
.forester-footer-reveal .site-main { position: relative; z-index: 1; background: var(--color-page-background); }
.forester-footer-reveal .site-footer { position: sticky; bottom: 0; }
.site-footer { position:relative; z-index:0; background:var(--color-graphite); color:#f5f6f6; padding:36px 0 max(18px,env(safe-area-inset-bottom)); }
.site-footer > .container { padding-top:30px; }
.site-footer__grid { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(0,1fr) minmax(0,1.25fr) minmax(0,.85fr); gap:32px; padding-bottom:28px; }
.site-footer__grid > * { min-width:0; }
.site-footer h2 { margin:0 0 18px; font:700 12px/1.4 var(--font-family-body); letter-spacing:.12em; color:#bcc3c7; }
.site-footer p { margin:0; }
.site-footer a { color:inherit; text-decoration:none; }
.site-footer a:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.site-footer a:focus-visible, .site-footer button:focus-visible { outline:2px solid #f5f6f6; outline-offset:4px; }
.site-footer ul { list-style:none; margin:0; padding:0; }
.site-footer li + li { margin-top:8px; }
.site-footer__links, .site-footer__contact { font-size:15px; line-height:1.6; }
.site-footer__logo { display:block; width:230px; max-width:100%; }
.site-footer__logo img { display:block; width:100%; height:auto; }
.site-footer__brand .site-footer__tagline { margin-top:16px; color:#f5f6f6; font-size:16px; line-height:1.5; }
.site-footer__brand .site-footer__range { margin-top:8px; max-width:360px; color:#b9c0c4; font-size:13px; line-height:1.7; }
.site-footer__links a { display:flex; width:fit-content; max-width:100%; align-items:center; gap:9px; transition:transform 140ms ease; }
.site-footer__links a::before { content:""; width:9px; height:1px; flex-shrink:0; background:#9fa9ae; transition:background-color 140ms ease; }
.site-footer__links a:hover { transform:translateX(2px); }
.site-footer__links a:hover::before, .site-footer__links a:focus-visible::before { background:var(--color-red); }
.site-footer__contact > a, .site-footer__location { display:flex; align-items:center; gap:8px; }
.site-footer__contact > a { margin-bottom:8px; overflow-wrap:anywhere; }
.site-footer__contact-icon { display:block; flex:0 0 17px; width:17px; height:17px; color:#b0babf; }
.site-footer__contact a:hover .site-footer__contact-icon { color:currentColor; }
.site-footer__company { display:block; padding-left:25px; }
.site-footer__contact p { margin-top:12px; color:#c7cbcd; line-height:1.6; }
.site-footer__social ul { display:flex; gap:4px; }
.site-footer__social li + li { margin-top:0; }
.site-footer__social a, .site-footer__social-placeholder { display:grid; place-items:center; width:40px; height:40px; color:#e2e6e8; }
.site-footer__social a { transition:color 160ms ease, background-color 160ms ease; }
.site-footer__social a:hover { color:#fff; background:rgba(255,255,255,.06); text-decoration:none; }
.site-footer__social-placeholder { opacity:.72; }
.site-footer__social-icon, .site-footer__social-icon svg { display:block; width:24px; height:24px; }
.site-footer__social-cutout { fill:var(--color-graphite); }
.site-footer__social-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-footer__bottom { border-top:1px solid rgba(255,255,255,.17); padding-top:16px; display:flex; align-items:center; gap:20px; color:#c7cbcd; font-size:13px; line-height:1.5; }
.site-footer__legal { display:flex; flex-wrap:wrap; gap:8px 18px; margin-left:auto; }
.site-footer__cookie-settings { padding:0; border:0; background:transparent; box-shadow:none; color:inherit; font:inherit; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.site-footer__top { margin-left:auto; flex:0 0 44px; width:44px; height:44px; display:grid; place-items:center; padding:0; border:0; background:transparent; color:#e2e6e8; cursor:pointer; border-radius:0; box-shadow:none; }
.site-footer__legal + .site-footer__top { margin-left:0; }
.site-footer__top:hover { color:#fff; background:rgba(255,255,255,.05); }
@media(max-width:1000px) {
  .site-footer__grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px 40px; }
  .site-footer__brand { grid-column:1 / -1; }
  .site-footer__social { grid-column:1 / -1; }
}
@media(max-width:767px) {
  :root { --forester-header-offset:80px; }
  .site-footer { padding-top:28px; }
  .site-footer > .container { padding-top:26px; }
  .site-footer__grid { gap:24px 20px; padding-bottom:24px; }
  .site-footer__logo { width:210px; }
  .site-footer__bottom { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
  .site-footer__legal { margin-left:0; gap:8px 16px; }
  .site-footer__top, .site-footer__legal + .site-footer__top { margin-left:0; justify-self:end; }
}
@media(max-width:380px) {
  .site-footer__grid { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .site-footer__links a, .site-footer__links a::before { transition:none; } }

/* Complianz retains its own consent logic; these rules only match theme typography. */
.cmplz-cookiebanner { font-family: var(--font-family-body); box-shadow: none !important; }
.cmplz-cookiebanner .cmplz-title { font-weight: 700; }
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn { font-family: inherit; font-weight: 700; box-shadow: none; text-shadow: none; }

/* Compact company and trademark details retain the existing footer grid. */
.site-footer__contact .site-footer__sales-company { margin:0; color:inherit; }
.site-footer__contact .site-footer__registry { margin:2px 0 10px; font-size:12px; }
.site-footer__contact .site-footer__location { align-items:flex-start; margin-bottom:8px; }
.site-footer__location .site-footer__contact-icon { margin-top:3px; }
.site-footer__copyright { min-width:0; max-width:600px; }
.site-footer__copyright .site-footer__ownership { margin-top:8px; font-size:12px; overflow-wrap:anywhere; }
.site-footer__bottom { flex-wrap:wrap; }
