/* dark-ember site footer (scoped, self-contained) */
.site-footer{border-top:1px solid var(--border);background:linear-gradient(180deg,rgba(255,87,34,.035),transparent 42%),var(--bg-2);margin-top:6rem}
.site-footer .ft-inner{max-width:80rem;margin:0 auto;padding:3.5rem 1.5rem 2rem}
.site-footer .ft-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.2fr;gap:2.5rem}
.site-footer .ft-brandhead{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}
.site-footer .ft-brandhead img{width:40px;height:40px;object-fit:contain;border-radius:12px;display:block;flex-shrink:0}
.site-footer .ft-name{font-family:'Plus Jakarta Sans','Manrope',system-ui,sans-serif;font-weight:800;font-size:1.05rem;line-height:1.1;color:var(--fg)}
.site-footer .ft-tag{font-size:.62rem;letter-spacing:.18em;font-weight:700;color:var(--accent);margin-top:.3rem}
.site-footer .ft-blurb{font-size:.86rem;line-height:1.65;color:var(--fg-dim);max-width:36ch;margin:0}
.site-footer .ft-contact{font-size:.85rem;color:var(--fg-dim);margin-top:.95rem}
.site-footer .ft-contact a{color:var(--accent-2);text-decoration:none}
.site-footer .ft-contact a:hover{text-decoration:underline}
.site-footer .ft-status{font-size:.8rem;color:var(--fg-dim);margin-top:.85rem;display:flex;align-items:center;gap:.5rem}
.site-footer .ft-h{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--muted);margin:0 0 1rem}
.site-footer .ft-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.site-footer .ft-col li{position:relative;padding-left:16px}
.site-footer .ft-col li::before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.75}
.site-footer .ft-col a{font-size:.88rem;color:var(--fg-dim);text-decoration:none;transition:color .2s}
.site-footer .ft-col a:hover{color:var(--fg)}
.site-footer .ft-col a:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px;border-radius:3px}
.site-footer .ft-bottom{border-top:1px solid var(--border);margin-top:2.5rem;padding-top:1.5rem;display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;justify-content:center;text-align:center;font-size:.78rem;color:var(--muted)}
.site-footer .ft-bottom strong{color:var(--fg-dim);font-weight:600}
.site-footer .ft-sep{color:var(--accent);opacity:.55}
@media (max-width:860px){.site-footer .ft-grid{grid-template-columns:1fr 1fr;gap:2rem}.site-footer .ft-brand{grid-column:1/-1}}
@media (max-width:520px){.site-footer .ft-grid{grid-template-columns:1fr}.site-footer .ft-bottom{flex-direction:column;gap:.4rem}.site-footer .ft-sep{display:none}}

    /* Current-page indicator. Pairs with aria-current="page" so the active item is
       conveyed by markup as well as colour (WCAG 1.4.1 use of colour). */
    .nav-link[aria-current="page"],
    .mobile-nav-link[aria-current="page"] {
      color: var(--accent-2);
      font-weight: 800;
    }

    .nav-link[aria-current="page"]::after {
      width: 100%
    }

    :root{--border-input:rgba(255,87,34,.70)}
    /* WCAG 1.4.11 -- non-text control boundaries need 3:1.
       --border is rgba(255,87,34,.15) = 1.16:1, which is decorative-only and
       must not be the sole boundary of an interactive control. */
    a,.btn,.field,.input-field,.toc a{transition:color .2s}
  
    /* ---- closing undefined-utility gaps ---- */
    .gap-1{gap:4px}
  
/* ------------------------------------------------------------------
       Footer social links. Square soft-glow tiles, sized to clear the 24px
       minimum target guidance with room to spare.
       ------------------------------------------------------------------ */
    .site-footer .soc{margin-top:1.15rem}
    .site-footer .soc-h{
      display:block;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
      color:var(--muted);font-weight:700;margin-bottom:.6rem
    }
    .site-footer .soc-row{display:flex;flex-wrap:wrap;gap:.6rem}
    .site-footer .nc{display:flex;gap:14px;align-items:flex-start;background:var(--warn-bg);
      border:1px solid var(--warn-border);border-left-width:3px;border-radius:16px;
      padding:20px 22px;margin:0 0 2.5rem}
    .site-footer .nc i{color:var(--warn-border);font-size:17px;margin-top:3px;flex-shrink:0}
    .site-footer .nc p{margin:0;font-size:14px;line-height:1.65;color:var(--fg-dim)}
    .site-footer .nc strong{color:var(--fg)}
    .site-footer .nc em{font-style:italic;color:var(--accent-2)}
  .site-footer .soc-link{
      display:inline-flex;align-items:center;justify-content:center;
      width:44px;height:44px;flex:0 0 auto;
      border:1px solid var(--border-strong);border-radius:12px;
      background:var(--glass);color:var(--fg-dim);
      transition:background .2s,color .2s,border-color .2s,transform .2s;
    }
    .site-footer .soc-link:hover{
      background:rgba(255,184,77,.12);color:var(--accent-2);
      border-color:var(--accent-2);transform:translateY(-2px)
    }
    .site-footer .soc-link:focus-visible{
      outline:3px solid var(--accent-2);outline-offset:2px;border-radius:12px
    }
    .site-footer .soc-link svg{width:20px;height:20px;display:block}

    @media (prefers-reduced-motion:reduce){
      .site-footer .soc-link{transition:none !important}
      .site-footer .soc-link:hover{transform:none}
    }
