/* Shared site footer (homepage + every inner page). Navy in both themes; one source in the generator. */
.sf { position: relative; z-index: 1; background: #050f24; color: #fff; border-top: 3px solid #2E86FF; }
.sf-wrap { max-width: 1280px; margin: 0 auto; padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); }
.sf-grid { display: grid; grid-template-columns: 1.1fr 1fr 1.2fr 1fr; gap: 32px; padding-block: 48px 36px; }
.sf-brand { display: flex; flex-direction: column; align-items: center; gap: 14px; }
.sf-logo { display: inline-flex; border-radius: 50%; }
.sf-logo img { width: 150px; height: auto; display: block; }
.sf-join { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: #fff; font-family: var(--font-body, 'Barlow', sans-serif); font-size: 17px; font-weight: 700; text-decoration: none; }
.sf-join svg { width: 16px; height: 12px; }
.sf-join:hover { text-decoration: underline; text-underline-offset: 3px; }
.sf-h { margin: 0 0 6px; font-family: var(--font-cond, 'Barlow Condensed', sans-serif); font-weight: 800; font-size: 16px; letter-spacing: .14em; text-transform: uppercase; color: #2E86FF; }
.sf-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.sf-col li { color: #fff; font-family: var(--font-body, 'Barlow', sans-serif); font-size: 16px; }
.sf-col li.sf-text { padding: 8px 0; }
.sf-col a { display: inline-flex; align-items: center; min-height: 40px; color: #fff; font-family: var(--font-body, 'Barlow', sans-serif); font-size: 16px; text-decoration: none; }
.sf-col a:hover { text-decoration: underline; text-underline-offset: 3px; }
.sf-col a[aria-current="page"] { color: #9CCAFF; }
.sf-col ul.sf-social, .sf-social { display: flex; flex-direction: row; gap: 10px; margin: 10px 0 0; padding: 0; list-style: none; }
.sf-social a { width: 48px; height: 48px; min-height: 48px; padding: 0; justify-content: center; border-radius: 50%; background: rgba(7,23,47,0.94); border: 1px solid rgba(125,182,255,0.55); }  /* same round icon buttons as the floating controls */
.sf-social a:hover { background: #0F3A8A; border-color: #9CCAFF; text-decoration: none; }
.sf-social svg { width: 20px; height: 20px; }
.sf-teams > summary { list-style: none; cursor: default; }
.sf-teams > summary::-webkit-details-marker { display: none; }
.sf-teams > summary .sf-h { margin: 0 0 6px; }
.sf-teams > summary svg { display: none; }
.sf-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; padding-block: 20px 26px; border-top: 1px solid rgba(140,185,255,0.25); }
.sf-copy { margin: 0; font-family: var(--font-body, 'Barlow', sans-serif); font-size: 14px; color: rgba(232,240,255,0.82); }
.sf-credit a { color: #9CCAFF; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.sf-credit a:hover { color: #fff; }
.sf-theme { display: flex; align-items: center; gap: 12px; }
.sf-theme .sf-h { margin: 0; font-size: 13px; }
.sf-theme .theme-seg button { min-height: 44px; font-size: 15px; }
.sf a:focus-visible, .sf summary:focus-visible { outline: 2px solid #9CCAFF; outline-offset: 3px; }
@media (max-width: 1024px) { .sf-grid { grid-template-columns: 1fr 1fr; } .sf-brand { grid-column: 1 / -1; } }
@media (max-width: 760px) {
  .sf-grid { grid-template-columns: 1fr; gap: 0; padding-block: 32px 20px; }
  .sf-brand { padding-bottom: 20px; border-bottom: 1px solid rgba(140,185,255,0.25); margin-bottom: 20px; }
  .sf-logo img { width: 120px; }
  .sf-col { padding: 0 0 18px; margin-bottom: 18px; border-bottom: 1px solid rgba(140,185,255,0.25); }
  .sf-col a { min-height: 44px; }
  .sf-teams > summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; min-height: 44px; }
  .sf-teams > summary .sf-h { margin: 0; }
  .sf-teams > summary svg { display: block; width: 16px; height: 16px; color: #2E86FF; transition: transform .25s; }
  .sf-teams[open] > summary svg { transform: rotate(180deg); }
  .sf-teams > summary + ul { margin-top: 8px; }
  .sf-bottom { flex-direction: column; align-items: flex-start; gap: 16px; padding-bottom: calc(26px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) { .sf-teams > summary svg { transition: none; } }
