/* 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)}
    /* ---- restored / corrected utilities ---- */
    .gap-1{gap:4px}
    .space-y-4>*+*{margin-top:16px}
    .self-center{align-self:center}
    .mt-1{margin-top:4px}
    .not-italic{font-style:normal}
    .text-7xl{font-size:4.5rem;line-height:1}
    /* .toast had no max-width here, so a long message overflowed a 360px screen */
    .toast{max-width:360px}
    @media (min-width:640px){.toast{max-width:480px}}
    /* WCAG 1.4.11 -- control boundaries must reach 3:1 (--border is 1.16:1) */
    .input-field,.address-bar{border-color:var(--border-input)}
    .input-field:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px}
    /* breadcrumb divider was 2.70:1 */
    .crumbs .sep{opacity:.75}
  
    /* ---- closing undefined-utility gaps ---- */
    .ask-inner{padding:28px;border-radius:20px;background:var(--card);border:1px solid var(--border);position:relative;text-align:left}
    .space-y-4{>*+*{margin-top:16px}}
  
    .qa-item{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden}
  
/* ------------------------------------------------------------------
       Non-charity notice. Sits at the top of the footer so a visitor who
       arrived from a "donation address" query reads it before leaving.
       "Ember sweep": a warm highlight drifts across the panel on a slow
       loop, echoing the ember canvas used on the homepage.
       All motion is decorative and disabled under prefers-reduced-motion.
       ------------------------------------------------------------------ */
    .site-footer .nc{
      position:relative;overflow:hidden;
      display:flex;gap:14px;align-items:flex-start;
      background:var(--warn-bg);
      background-size:220% 100%;
      border:1px solid var(--warn-border);
      border-left-width:3px;
      border-radius:16px;
      padding:20px 22px;margin:0 0 2.5rem;
      animation:nc-drift 14s ease-in-out infinite;
    }
    /* travelling highlight. Kept at low opacity and placed behind the text. */
    .site-footer .nc::before{
      content:"";position:absolute;inset:0;pointer-events:none;
      background:linear-gradient(105deg,
        transparent 0%,transparent 34%,
        rgba(255,184,77,.16) 46%,
        rgba(255,184,77,.30) 50%,
        rgba(255,184,77,.16) 54%,
        transparent 66%,transparent 100%);
      transform:translateX(-100%);
      animation:nc-sweep 14s ease-in-out infinite;
    }
    .site-footer .nc::after{
      content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
      background:linear-gradient(180deg,
        rgba(255,184,77,0),rgba(255,184,77,.9),rgba(255,87,34,.7),rgba(255,184,77,0));
      animation:nc-edge 7s ease-in-out infinite;
    }
    .site-footer .nc-ic{
      color:var(--warn-border);font-size:17px;margin-top:3px;flex-shrink:0;
      position:relative;z-index:1;
      animation:nc-flicker 5s ease-in-out infinite;
    }
    .site-footer .nc p{
      margin:0;font-size:14px;line-height:1.65;color:var(--fg-dim);
      position:relative;z-index:1;
    }
    .site-footer .nc strong{color:var(--fg);font-weight:700}
    .site-footer .nc em{font-style:italic;color:var(--accent-2)}

    /* Long rest, quick travel: the highlight is idle most of the time. */
    @keyframes nc-sweep{
      0%,58%   {transform:translateX(-100%)}
      78%,100% {transform:translateX(100%)}
    }
    @keyframes nc-drift{
      0%,100% {background-position:0% 50%}
      50%     {background-position:100% 50%}
    }
    @keyframes nc-flicker{
      0%,100% {opacity:1}
      38%     {opacity:.45}
      55%     {opacity:.9}
      70%     {opacity:.6}
    }
    @keyframes nc-edge{
      0%,100% {opacity:.35}
      50%     {opacity:1}
    }

    @media (prefers-reduced-motion:reduce){
      .site-footer .nc,
      .site-footer .nc::before,
      .site-footer .nc::after,
      .site-footer .nc-ic{animation:none !important}
      .site-footer .nc::before{transform:none;opacity:0}
    }
    @media (max-width:520px){
      .site-footer .nc{flex-direction:row;padding:18px 16px;margin-bottom:2rem}
      .site-footer .nc p{font-size:13.5px}
    }
  
/* ------------------------------------------------------------------
       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 .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}
    }
