/* Shared shell: tokens, typography, buttons, floating header, footer, forms. Used by CSIE and Learn so they match the main site. */
/* The Ignite Foundation — site styles v4
   Monsoon green · pencil orange · field-note pastels. Display: Bricolage Grotesque, text: Figtree. */
:root{
  --ink:#10241C;--ink-2:#1B3A2D;--txt:#1A2520;--mut:#5A675F;--line:#DCE2D6;
  --paper:#F6F7F1;--white:#fff;--tint:#EAEFE2;
  --or:#F26A1B;--or-d:#B8470A;--or-l:#FFE6D3;
  --leaf:#CDEAB4;--sky:#BFDFF2;--sun:#F8DC8F;--rose:#F9BFAE;--green:#2F6B4A;
  --r:18px;--r-lg:28px;--sh:0 1px 2px rgba(16,36,28,.06),0 14px 36px rgba(16,36,28,.10);
  --fd:'Bricolage Grotesque','Figtree',system-ui,sans-serif;
  --f:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --max:1200px;--hd:84px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hd) + 12px)}
body{margin:0;font-family:var(--f);color:var(--txt);background:var(--paper);line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:var(--or-d);text-underline-offset:3px}a:hover{color:var(--or)}
h1,h2,h3,h4{font-family:var(--fd);line-height:1.04;margin:0 0 .5em;font-weight:700;letter-spacing:-.03em;color:var(--ink)}
h1{font-size:clamp(2.4rem,5.4vw,4.6rem);font-weight:800;letter-spacing:-.04em}
h2{font-size:clamp(1.9rem,3.8vw,3.1rem)}
h3{font-size:1.28rem;letter-spacing:-.02em;line-height:1.15}
p{margin:0 0 1em}
:focus-visible{outline:3px solid var(--or);outline-offset:3px;border-radius:6px}
.wrap{width:min(var(--max),92%);margin:0 auto}.narrow-wrap{width:min(800px,92%);margin:0 auto}.narrow{max-width:640px}
.center{text-align:center}.muted{color:var(--mut)}.small{font-size:.88rem}
.sr{position:absolute;left:-9999px}.hp{position:absolute;left:-9999px;opacity:0;height:0}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:.7rem 1.1rem;z-index:99;border-radius:0 0 10px 0;font-weight:700}.skip:focus{left:0}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-weight:700;font-size:.92rem;color:var(--or-d);margin-bottom:1rem;letter-spacing:0}
.eyebrow::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--or);flex:none}
.center .eyebrow,.sec-head .eyebrow{justify-content:center}
.lead{font-size:1.2rem;line-height:1.6;color:#33413A;max-width:60ch}.center .lead,.lead.narrow{margin-inline:auto}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.55rem;border-radius:999px;border:2px solid var(--line);background:#fff;color:var(--ink);font:700 .96rem var(--f);text-decoration:none;cursor:pointer;transition:background .18s,color .18s,border-color .18s,transform .18s}
.btn:hover{color:var(--ink);border-color:var(--ink);transform:translateY(-1px)}
.btn--primary{background:var(--or);border-color:var(--or);color:#fff}.btn--primary:hover{background:var(--or-d);border-color:var(--or-d);color:#fff}
.btn--ghost{background:transparent;border-color:rgba(16,36,28,.3);color:var(--ink)}.btn--ghost:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.btn--green{background:var(--ink);border-color:var(--ink);color:#fff}.btn--green:hover{background:var(--ink-2);border-color:var(--ink-2);color:#fff}
.btn--light{background:#fff;border-color:#fff;color:var(--ink)}.btn--light:hover{background:var(--leaf);border-color:var(--leaf);color:var(--ink)}
.btn--outline-light{background:transparent;border-color:rgba(255,255,255,.7);color:#fff}.btn--outline-light:hover{background:#fff;border-color:#fff;color:var(--ink)}
.btn--sm{padding:.55rem 1.15rem;font-size:.88rem}.btn--lg{padding:1.05rem 2.2rem;font-size:1.06rem}.btn[disabled]{opacity:.6;cursor:wait}
.btn-row{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.6rem 0}.center-row{justify-content:center}
.arrow-link{display:inline-flex;gap:.4rem;align-items:center;font-weight:700;color:var(--or-d);text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:1px}.arrow-link:hover{color:var(--ink)}

/* header: a floating pill */
.site-header{position:sticky;top:0;z-index:60;padding:.75rem 0;pointer-events:none}
.is-home .site-header{position:fixed;left:0;right:0}
.bar{pointer-events:auto;width:min(1280px,94%);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:999px;padding:.35rem .45rem .35rem 1.2rem;box-shadow:0 1px 2px rgba(16,36,28,.08),0 10px 30px rgba(16,36,28,.12);min-height:62px;position:relative}
.brand{display:flex;align-items:center}.brand img{height:46px;width:auto}
.nav{display:flex;align-items:center;gap:.2rem}
.nav a:not(.btn){padding:.5rem .95rem;color:var(--txt);text-decoration:none;font-weight:600;font-size:.95rem;border-radius:999px;transition:background .15s}
.nav a:not(.btn):hover{background:var(--tint);color:var(--ink)}.nav a.is-active{background:var(--ink);color:#fff}.nav a.is-active:hover{background:var(--ink);color:#fff}
.nav .btn{margin-left:.5rem}
.nav-toggle{display:none;background:var(--ink);border:0;padding:.7rem .8rem;cursor:pointer;border-radius:999px;margin-left:auto}.nav-toggle span{display:block;width:22px;height:2px;background:#fff;margin:5px 0;transition:transform .2s,opacity .2s}
.nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:1080px){
  .nav-toggle{display:block}
  .nav{position:absolute;left:0;right:0;top:calc(100% + .5rem);background:#fff;flex-direction:column;align-items:stretch;padding:.8rem;border-radius:var(--r-lg);box-shadow:var(--sh);display:none}
  .nav.open{display:flex}.nav a:not(.btn){padding:.9rem 1rem;font-size:1.05rem}.nav .btn{margin:.5rem 0 0}
}
.flash{padding:.9rem 0;font-weight:700}.flash--success{background:var(--leaf);color:var(--ink)}.flash--error{background:#fde8e6;color:#a1271b}

/* forms */
.form-card{padding:clamp(1.5rem,3vw,2.4rem)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.2rem}.field--full{grid-column:1/-1}@media(max-width:640px){.form-grid{grid-template-columns:1fr}}
.field label{display:block;font-weight:700;font-size:.92rem;margin-bottom:.35rem;color:var(--ink)}.field label b{color:var(--or)}
input,select,textarea{width:100%;font:inherit;padding:.85rem 1rem;border:2px solid var(--line);border-radius:12px;background:#fff;color:var(--txt);transition:border-color .15s}
input:hover,select:hover,textarea:hover{border-color:#b8c4b2}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--or);box-shadow:0 0 0 4px var(--or-l)}
.field.has-error input,.field.has-error textarea,.field.has-error select{border-color:#c0392b}.err{color:#c0392b;font-weight:700}
.check{display:flex;gap:.65rem;align-items:center;margin:1.1rem 0;font-size:.95rem}.check input{width:20px;height:20px;accent-color:var(--or)}
.form-msg{margin:.8rem 0 0;font-weight:700;min-height:1.4em}.form-msg.ok{color:var(--green)}.form-msg.bad{color:#c0392b}.form.is-done .form-grid,.form.is-done .check,.form.is-done button,.form.is-done .small{display:none}
.subscribe{display:flex;gap:.5rem;flex-wrap:wrap}.subscribe input[type=email]{flex:1;min-width:180px;border-radius:999px;padding-inline:1.2rem}.subscribe .form-msg{flex-basis:100%;margin:0}
.donate-card{border:2px solid var(--ink);box-shadow:var(--sh);border-radius:var(--r-lg)}.amounts{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.1rem 0}.amt{padding:.65rem 1.2rem;border:2px solid var(--line);background:#fff;border-radius:999px;font:700 1rem var(--f);cursor:pointer;color:var(--ink);transition:border-color .15s,background .15s}.amt:hover{border-color:var(--ink)}.amt.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.donate-card .field{margin-bottom:1rem}.bank{margin-top:1.2rem;font-size:.95rem}.support-ways{display:grid;gap:1rem;align-content:start}

/* footer */
.site-footer{background:var(--ink);color:#c1d0c4;padding:4.4rem 0 1.4rem;font-size:.97rem}.site-footer a{color:#e6efe1;text-decoration:none}.site-footer a:hover{color:var(--or);text-decoration:underline}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:2.4rem}@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.foot-grid{grid-template-columns:1fr}}
.site-footer h4{color:#fff;font:700 1.02rem var(--fd);letter-spacing:-.01em;margin-bottom:1rem}.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin:.5rem 0}
.foot-logo{background:#fff;border-radius:16px;padding:.5rem 1rem;margin-bottom:1.2rem;height:66px;width:auto}
.social{display:flex;gap:.5rem;flex-wrap:wrap}.social a{border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.3rem .9rem;font-size:.88rem;font-weight:600}.social a:hover{background:#fff;color:var(--ink);text-decoration:none}
.legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem;border-top:1px solid rgba(255,255,255,.15);margin-top:3rem;padding-top:1.2rem;font-size:.86rem;color:#98ab9c}
.site-footer .subscribe input{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.25);color:#fff}.site-footer .subscribe input::placeholder{color:#9db0a1}.site-footer .form-msg.ok{color:var(--leaf)}.site-footer .form-msg.bad{color:#ffab9e}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.site-header,.site-footer,.cta-band,.hero-foot{display:none}}

/* shared by CSIE + Learn */
.brand__tag{margin-left:.7rem;padding-left:.7rem;border-left:2px solid var(--line);font:800 1.05rem var(--fd);letter-spacing:-.02em;color:var(--green)}
.nav-form{display:inline;margin:0 0 0 .5rem}.nav-form .btn{margin:0}
.progress{position:fixed;left:0;top:0;height:3px;width:0;background:var(--or);z-index:80;transition:width .1s linear}
[hidden]{display:none!important}

/* Learn public pages sit on the same shell */
body.is-public{background:var(--paper);font:400 17px/1.65 var(--f);color:var(--txt);display:block}
body.is-public h1,body.is-public h2,body.is-public h3{font-family:var(--fd);letter-spacing:-.03em;color:var(--ink)}
body.is-public .main{padding-top:2.5rem;padding-bottom:4rem;width:min(1200px,92%)}
body.is-public .site-header{position:sticky;top:0}
