.sap-header{position:sticky; top:0; z-index:90; background:#fff; border-top:none; border-bottom:1px solid #E2E9EE; box-shadow:0 2px 14px rgba(35,64,81,.06); backdrop-filter:none;}
.sap-header::before{content:""; display:block; height:5px; background:linear-gradient(90deg, #AB2A25 0 34%, #234051 34% 67%, #4C7B94 67% 100%);}
.sap-bar{max-width:1400px; margin:0 auto; padding:0 20px; display:flex; align-items:center; gap:16px; min-height:78px; position:relative;}
.sap-logo{display:flex; align-items:center; flex:0 0 auto;}
.sap-logo .sap-full{height:52px; width:auto; display:block;}
.sap-logo .sap-mark{height:46px; width:auto; display:none;}
.sap-links{display:flex; align-items:center; gap:2px; margin-left:auto;}
.sap-links a{font-family:"Oswald","Arial Narrow",sans-serif; font-weight:500; font-size:13.5px; letter-spacing:.07em; text-transform:uppercase; color:#42586A; padding:9px 10px; border-radius:3px; white-space:nowrap; text-decoration:none;}
.sap-links a:hover{color:#AB2A25;}
.sap-links a.sap-active{color:#AB2A25; box-shadow:inset 0 -3px 0 #AB2A25; border-radius:0;}
.sap-links .sap-mlogin{display:none;}
.sap-cta{display:flex; align-items:center; gap:14px; margin-left:8px; flex:0 0 auto;}
.sap-login{font-family:"Source Sans 3",-apple-system,sans-serif; font-size:15px; font-weight:600; color:#5E7284; text-decoration:none;}
.sap-login:hover{color:#AB2A25;}
.sap-donate{font-family:"Oswald","Arial Narrow",sans-serif; font-weight:600; font-size:14px; letter-spacing:.1em; text-transform:uppercase; background:#C9A227; color:#1D2B36; padding:12px 22px; border-radius:4px; border:2px solid #C9A227; text-decoration:none; white-space:nowrap; transition:all .15s ease;}
.sap-donate:hover{background:#D9B23A; border-color:#D9B23A; color:#1D2B36;}
.sap-burger{display:none; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; padding:10px; background:transparent; border:1.5px solid #234051; border-radius:4px; cursor:pointer;}
.sap-burger span{display:block; height:2.5px; background:#234051; border-radius:2px; transition:transform .2s ease, opacity .2s ease;}
.sap-burger.is-open span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.sap-burger.is-open span:nth-child(2){opacity:0;}
.sap-burger.is-open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}
@media(max-width:1380px){
  .sap-links{display:none; position:absolute; left:0; right:0; top:100%; flex-direction:column; align-items:stretch; gap:0; background:linear-gradient(rgba(28,50,65,.95), rgba(28,50,65,.95)), url("../brand/pattern-navy.webp") center/560px repeat; padding:8px 0 12px; border-bottom:4px solid #AB2A25; box-shadow:0 18px 30px rgba(16,30,40,.35);}
  .sap-links.open{display:flex;}
  .sap-links a{color:#fff; font-size:16px; letter-spacing:.1em; padding:16px 26px; border-left:4px solid transparent; border-radius:0;}
  .sap-links a:hover{color:#C9A227;}
  .sap-links a.sap-active{color:#C9A227; box-shadow:none; border-left-color:#C9A227; background:rgba(255,255,255,.05);}
  .sap-links .sap-mlogin{display:block; border-top:1px solid rgba(255,255,255,.18); margin-top:6px;}
  .sap-burger{display:inline-flex;}
  .sap-login{display:none;}
}
@media(max-width:620px){
  .sap-logo .sap-full{display:none;}
  .sap-logo .sap-mark{display:block;}
  .sap-bar{min-height:66px; gap:10px;}
  .sap-donate{padding:10px 16px; font-size:13px;}
}
body.nav-open .sticky-cta{display:none;}

/* 501(c)(3) status badge — footer, all pages */
.sap-c3{display:inline-flex; align-items:center; gap:8px; margin-bottom:14px; padding:6px 14px; border:1px solid rgba(255,255,255,.28); border-radius:999px; font-family:"Oswald","Arial Narrow",sans-serif; font-size:11.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.9); line-height:1.4;}
.sap-c3 b{color:#D4AF37; font-weight:700; letter-spacing:.06em;}

/* Canonical site footer — every page. No custom properties on purpose: --disp resolves to
   Oswald on the content pages, a different stack on index/partners, and to nothing on
   privacy/terms, so hardcoding is what makes one block correct on all 11. .foot/.copyright
   carry their own max-width, so the markup needs no .wrap wrapper — privacy/terms reuse
   .wrap for their 800px content column and it would clamp the footer.
   padding-bottom is deliberately absent: index/partners clear a .stickbar via
   footer{padding-bottom}, seven content pages clear .sticky-cta via body{padding-bottom},
   privacy/terms have neither. Bottom clearance stays a per-page concern — keep padding-top a
   longhand here. Collapsing it into `padding:56px 0 0` zeroes index/partners' 130/170px
   clearance, because this sheet loads after their inline <style> and would win the shorthand. */
footer{background:linear-gradient(rgba(35,64,81,.94), rgba(35,64,81,.94)), url("../brand/pattern-navy.webp") center/620px repeat; color:rgba(255,255,255,.82); padding-top:56px; font-size:15px; line-height:1.6; text-align:left;}
footer :focus-visible{outline:2px solid #C9A227; outline-offset:3px;}
.foot{max-width:1140px; margin:0 auto; padding:0 24px 40px; display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:36px;}
.foot .foot-title{font-family:"Oswald","Arial Narrow",sans-serif; font-weight:600; line-height:1.2; text-transform:uppercase; letter-spacing:.14em; font-size:13.5px; color:#fff; margin:0 0 14px;}
.foot p:not(.sap-c3){margin:0; font-size:inherit;}
.foot a{display:block; padding:4px 0; color:rgba(255,255,255,.82); text-decoration:none;}
.foot a:hover{color:#fff;}
.foot p a{display:inline; padding:0; margin-right:14px; overflow-wrap:anywhere;}
.foot input::placeholder{color:rgba(255,255,255,.68);}
.copyright{max-width:1140px; margin:0 auto; padding:18px 24px; border-top:1px solid rgba(255,255,255,.15); display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between; font-size:13px; color:rgba(255,255,255,.62);}

/* Focus rings on the dark bands. Every page's global rule is `:focus-visible{outline:2px solid
   var(--brass)}`, and --brass #AB2A25 is 1.58:1 on the navy bands — a live SC 1.4.11 failure.
   Fixed once here rather than per page: these are (0,1,1) against the global (0,1,0), and this
   sheet loads after every page's inline <style>. Only outline-color is overridden, so each page
   keeps its own width and offset. .fund is the exception — its background IS --brass, where gold
   is 2.81:1 and only white (6.80:1) clears the 3:1 non-text threshold. */
.cta-band :focus-visible,
.final :focus-visible,
.crisis :focus-visible,
.fomo :focus-visible{outline-color:#C9A227;}
.fund :focus-visible{outline-color:#fff;}
.cta-band .btn-solid{border-color:#fff;}
