/* Shared footer: desktop, tablet and mobile layout from one versioned source. */
/* Independent selectors keep archived page/visual footer styles from overriding this component. */
#site-footer, #site-footer * { box-sizing:border-box; min-width:0; }
#site-footer { width:100%; margin:0; padding:64px 28px 28px; border:0; border-top:1px solid #424b39; border-radius:0; background:#0d100c; color:#c5ccba; font:400 14px/1.7 'Manrope',sans-serif; text-align:left; }
#site-footer .sf-content, #site-footer .sf-bottom { width:100%; max-width:1320px; margin-inline:auto; }
#site-footer .sf-content { display:grid; grid-template-columns:260px minmax(0,1fr); gap:48px; }
#site-footer a { display:flex; align-items:center; min-height:44px; max-width:100%; padding:8px 0; color:#c5ccba; font:400 14px/1.6 'Manrope',sans-serif; text-decoration:none; overflow-wrap:anywhere; border:0; background:transparent; box-shadow:none; }
#site-footer a:hover { color:#e1c29b; text-decoration:underline; text-underline-offset:4px; }
#site-footer a:focus-visible { outline:2px solid #c5a17a; outline-offset:4px; border-radius:2px; }
#site-footer .sf-brand { display:flex; align-items:center; gap:12px; padding:0; color:#eee8dd; }
#site-footer .sf-mark { display:grid; flex:0 0 46px; place-items:center; width:46px; height:46px; border:1px solid #9d8764; border-radius:50%; color:#eee8dd; font:500 26px/1 'Cormorant Garamond',serif; }
#site-footer .sf-brand strong { display:block; font:500 28px/1.1 'Cormorant Garamond',serif; color:#eee8dd; letter-spacing:-.02em; }
#site-footer .sf-tagline { display:block; margin-top:5px; color:#bfc1b2; font:400 10px/1.5 'Manrope',sans-serif; }
#site-footer p { margin:0; color:#c5ccba; font:400 14px/1.7 'Manrope',sans-serif; }
#site-footer .sf-description { max-width:36ch; margin-top:20px; }
#site-footer .sf-email { margin-top:12px; }
#site-footer .sf-location { max-width:32ch; font-size:12px; }
#site-footer .sf-groups { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; align-items:start; }
#site-footer .sf-group { display:flex; flex-direction:column; gap:0; margin:0; padding:0; }
/* Page-wide heading rules use !important; footer headings must own their typography. */
#site-footer .sf-group h2 { margin:0 0 12px; padding:0; color:#eee8dd; font:600 21px/1.3 'Cormorant Garamond',serif!important; letter-spacing:0; text-transform:none; }
#site-footer .sf-bottom { display:flex; flex-direction:column; align-items:flex-start; gap:16px; margin-top:40px; padding-top:20px; border-top:1px solid #424b39; }
#site-footer .sf-legal { display:flex; flex-wrap:wrap; column-gap:24px; row-gap:0; }
#site-footer .sf-legal a { font-size:12px; }
#site-footer .sf-copyright { font-size:12px; }
@media(max-width:1100px) {
  #site-footer .sf-content { grid-template-columns:1fr; gap:32px; }
  #site-footer .sf-description { max-width:65ch; }
  #site-footer .sf-location { max-width:none; }
}
@media(max-width:760px) {
  #site-footer { padding:40px 24px 24px; }
  #site-footer .sf-content { gap:32px; }
  #site-footer .sf-groups { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 24px; }
  #site-footer .sf-group h2 { font-size:20px!important; }
  #site-footer .sf-bottom { margin-top:32px; padding-top:16px; }
  #site-footer .sf-legal { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; column-gap:24px; }
}
@media(prefers-reduced-motion:reduce) { #site-footer a { transition:none; } }
