
:root{
  --g:#2E7D52;--gd:#1A3A5C;--gm:#0E7C7B;--gl:#E3F2F7;--gll:#F0F9FF;
  --s:#1565A8;--sl:#4A90C4;--sb:#E8F4FB;
  --cream:#F5F8FA;--white:#fff;
  --ink:#1A2332;--i60:#4A5568;--i40:#7B8FA6;--i20:#CBD5E0;
  --bd:rgba(26,58,92,.09);--bdm:rgba(26,58,92,.18);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Poppins',sans-serif;background:var(--cream);color:var(--ink);overflow-x:hidden;line-height:1.6;font-size:15px}
img{display:block;max-width:100%;object-fit:cover}
a{text-decoration:none;color:inherit}
button{font-family:'Poppins',sans-serif}

/* utils */
.ey{font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--s)}
.h1{font-size:clamp(30px,4vw,54px);font-weight:800;line-height:1.08;letter-spacing:-1.5px}
.h2{font-size:clamp(26px,3vw,44px);font-weight:700;line-height:1.1;letter-spacing:-.8px}
.h3{font-size:19px;font-weight:600;line-height:1.3;letter-spacing:-.2px}
.it{font-style:italic;color:var(--g)}
.bp{display:inline-flex;align-items:center;gap:8px;background:var(--g);color:#fff;font-size:13px;font-weight:600;padding:12px 24px;border-radius:8px;border:none;cursor:pointer;transition:background .2s,transform .15s}
.bp:hover{background:var(--gd);transform:translateY(-1px)}
.bs{display:inline-flex;align-items:center;gap:7px;background:transparent;color:var(--ink);font-size:13px;font-weight:500;padding:12px 20px;border-radius:8px;border:1.5px solid var(--bdm);cursor:pointer;transition:border-color .2s,color .2s}
.bs:hover{border-color:var(--g);color:var(--g)}
.bo{background:var(--s)!important}.bo:hover{background:#b85e1e!important;transform:translateY(-1px)}
.sec{padding:88px 7%}
.sw{background:var(--white)}
.sc{background:var(--cream)}
.sd{background:var(--gd)}
.ss{background:var(--sb);border-top:1px solid rgba(212,116,42,.12);border-bottom:1px solid rgba(212,116,42,.12)}
.sh{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:48px;flex-wrap:wrap}

/* reveal */
.rv{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}
.rvl{opacity:0;transform:translateX(-24px);transition:opacity .65s ease,transform .65s ease}
.rvr{opacity:0;transform:translateX(24px);transition:opacity .65s ease,transform .65s ease}
.rv.on,.rvl.on,.rvr.on{opacity:1;transform:none}
.sg>*{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s ease}
.sg.on>*:nth-child(1){opacity:1;transform:none;transition-delay:.04s}
.sg.on>*:nth-child(2){opacity:1;transform:none;transition-delay:.10s}
.sg.on>*:nth-child(3){opacity:1;transform:none;transition-delay:.16s}
.sg.on>*:nth-child(4){opacity:1;transform:none;transition-delay:.22s}
.sg.on>*:nth-child(5){opacity:1;transform:none;transition-delay:.28s}
.sg.on>*:nth-child(6){opacity:1;transform:none;transition-delay:.34s}

/* NAV */
#nav{position:fixed;top:0;left:0;right:0;z-index:300;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;background:rgba(245,248,250,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--bd);transition:box-shadow .3s}
#nav.sc2{box-shadow:0 2px 24px rgba(0,0,0,.07)}
.nl{display:flex;align-items:center;gap:10px;text-decoration:none}
.nm{width:36px;height:36px;background:var(--g);border-radius:9px;display:flex;align-items:center;justify-content:center}
.nm svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.nt{font-size:16px;font-weight:700;letter-spacing:-.2px}
.nt span{color:var(--s)}
.nlinks{display:flex;align-items:center;gap:2px;list-style:none}
.nlinks a{font-size:13px;font-weight:500;color:var(--i60);padding:6px 13px;border-radius:7px;transition:color .2s,background .2s}
.nlinks a:hover{color:var(--g);background:var(--gl)}
.nlinks a.csr{color:var(--g);font-weight:600}
.ncta{background:var(--s)!important;color:#fff!important;font-weight:600!important;border-radius:8px!important;padding:8px 20px!important;transition:background .2s!important}
.ncta:hover{background:#b85e1e!important}

/* HERO */
.hero{height:92vh;min-height:580px;max-height:780px;padding-top:64px;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}
.hl{display:flex;flex-direction:column;justify-content:center;padding:40px 6% 40px 7%}
.htag{display:inline-flex;align-items:center;gap:8px;background:var(--gl);color:var(--gd);font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:6px 14px;border-radius:99px;margin-bottom:24px;width:fit-content}
.htag::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--g);animation:blink 2s infinite;flex-shrink:0}
@keyframes blink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.5)}}
.h-sub{color:var(--i60);font-size:14px;line-height:1.65;max-width:420px;margin:14px 0 22px;font-weight:400}
.h-acts{display:flex;gap:12px;margin-bottom:28px;flex-wrap:wrap}
.hstats{display:flex;gap:0;border-top:1px solid var(--bd);padding-top:24px}
.hsi{padding:0 28px 0 0}
.hsi+.hsi{padding-left:28px;border-left:1px solid var(--bd)}
.hsn{font-size:22px;font-weight:800;line-height:1;letter-spacing:-1px}
.hsn em{font-style:normal;color:var(--s)}
.hsl{font-size:10px;font-weight:600;color:var(--i40);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}
.hr{position:relative;overflow:hidden;background:var(--gd)}
.hslides{position:relative;width:100%;height:100%}
.hslide{position:absolute;inset:0;opacity:0;transition:opacity 1s}
.hslide.on{opacity:1;z-index:1}
.hslide img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 8s ease}
.hslide.on img{transform:scale(1)}
.hov{position:absolute;inset:0;background:linear-gradient(155deg,rgba(15,61,37,.15),rgba(15,61,37,.6))}
.hcard{position:absolute;bottom:24px;left:20px;right:20px;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-radius:12px;padding:16px 18px;border-left:3px solid var(--s);opacity:0;transform:translateY(10px);transition:opacity .6s .5s,transform .6s .5s}
.hslide.on .hcard{opacity:1;transform:none}
.hcn{font-size:15px;font-weight:700;letter-spacing:-.2px;margin-bottom:2px}
.hcd{font-size:11px;color:var(--i60)}
.hcb{display:inline-block;margin-top:7px;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;background:var(--gl);color:var(--gd);padding:3px 10px;border-radius:99px}
.hnav{position:absolute;bottom:88px;left:20px;right:20px;display:flex;justify-content:space-between;align-items:center;z-index:5}
.hdots{display:flex;gap:6px}
.hd{width:6px;height:6px;border-radius:99px;background:rgba(255,255,255,.35);cursor:pointer;transition:width .3s,background .3s}
.hd.on{width:22px;background:var(--sl)}
.harr{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:background .2s;backdrop-filter:blur(6px)}
.harr:hover{background:rgba(255,255,255,.22)}

/* PARTNER LOGOS */
.partners-sec{background:var(--white);padding:52px 7%;border-top:1px solid var(--bd);border-bottom:1px solid var(--bd)}
.partners-label{font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--i40);text-align:center;margin-bottom:32px}
.logos-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:12px}
.logo-card{height:64px;background:var(--cream);border:1.5px solid var(--bd);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden;transition:border-color .25s,box-shadow .25s,transform .25s}
.logo-card::before{content:'';position:absolute;inset:0;background:var(--gl);transform:scaleY(0);transform-origin:bottom;transition:transform .35s cubic-bezier(.4,0,.2,1)}
.logo-card:hover{border-color:var(--g);box-shadow:0 6px 20px rgba(27,94,59,.12);transform:translateY(-3px)}
.logo-card:hover::before{transform:scaleY(1)}
.logo-name{font-size:12px;font-weight:700;color:var(--i60);letter-spacing:.3px;position:relative;z-index:1;transition:color .2s}
.logo-card:hover .logo-name{color:var(--gd)}
.logo-sub{font-size:9px;color:var(--i40);font-weight:500;position:relative;z-index:1;margin-top:2px;transition:color .2s}
.logo-card:hover .logo-sub{color:var(--gm)}
.logo-inner{display:flex;flex-direction:column;align-items:center;text-align:center}
.logo-upload-note{font-size:10px;color:var(--i40);text-align:center;margin-top:16px;font-style:italic}

/* PROGRAMS */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pcard{background:var(--white);border-radius:18px;overflow:hidden;border:1px solid var(--bd);transition:transform .3s,box-shadow .3s}
.pcard:hover{transform:translateY(-6px);box-shadow:0 20px 50px rgba(0,0,0,.1)}
.pimg{height:200px;position:relative;overflow:hidden}
.pimg img{width:100%;height:100%;transition:transform .6s}
.pcard:hover .pimg img{transform:scale(1.06)}
.pov{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(15,61,37,.6) 100%)}
.ptag{position:absolute;bottom:12px;left:14px;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:4px 11px;border-radius:99px;background:rgba(255,255,255,.15);color:#fff;backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.25)}
.pbody{padding:22px}
.pbody .h3{margin-bottom:8px}
.pbody p{font-size:13px;color:var(--i60);line-height:1.65;font-weight:400}
.pstat{display:flex;align-items:center;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--bd)}
.psn{font-size:20px;font-weight:800;color:var(--g);letter-spacing:-.5px}
.psl{font-size:11px;color:var(--i40);line-height:1.3;font-weight:500}
.plink{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--g);margin-top:14px;transition:gap .2s}
.pcard:hover .plink{gap:9px}

/* SERVICE ICONS */
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.scard{background:var(--white);border-radius:18px;padding:28px 24px;border:1px solid var(--bd);transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden}
.scard::before{content:'';position:absolute;inset:0;opacity:0;transition:opacity .35s}
.scard:hover{transform:translateY(-5px);box-shadow:0 18px 48px rgba(0,0,0,.09)}
.scard:hover::before{opacity:1}
.ic-wrap{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:18px;transition:transform .3s}
.scard:hover .ic-wrap{transform:scale(1.08) rotate(-2deg)}
.ic-wrap svg{width:32px;height:32px}
.scard .h3{margin-bottom:8px;font-size:17px}
.scard p{font-size:13px;color:var(--i60);line-height:1.65;font-weight:400}
.ss2{display:flex;align-items:center;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--bd)}
.ssn{font-size:20px;font-weight:800;color:var(--g);letter-spacing:-.5px}
.ssl{font-size:11px;color:var(--i40);line-height:1.3;font-weight:500}
.slink{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--g);margin-top:12px;transition:gap .2s}
.scard:hover .slink{gap:9px}
.ic1{background:linear-gradient(135deg,#E6F4EC,#C4E8D2)}.ic1 svg path,.ic1 svg circle{stroke:#1B5E3B}
.ic2{background:linear-gradient(135deg,#FDF3E8,#F5D0A8)}.ic2 svg path{stroke:#D4742A}
.ic3{background:linear-gradient(135deg,#EEF2FF,#C7D2FE)}.ic3 svg path{stroke:#4338CA}
.ic4{background:linear-gradient(135deg,#FDF4FF,#E9D5FF)}.ic4 svg path,.ic4 svg circle{stroke:#7C3AED}
.ic5{background:linear-gradient(135deg,#F0FDF4,#BBF7D0)}.ic5 svg path{stroke:#059669}
.ic6{background:linear-gradient(135deg,#FFF7ED,#FED7AA)}.ic6 svg path,.ic6 svg circle{stroke:#D97706}

/* IMPACT */
.igrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border-radius:18px;overflow:hidden;background:rgba(255,255,255,.07);margin-top:48px}
.icell{padding:40px 24px;text-align:center;background:rgba(255,255,255,.03);transition:background .3s}
.icell:hover{background:rgba(255,255,255,.07)}
.ibig{font-size:52px;font-weight:800;color:#fff;line-height:1;margin-bottom:8px;letter-spacing:-2px}
.ibig em{font-style:normal;color:var(--sl)}
.ilbl{font-size:10px;font-weight:600;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.8px;line-height:1.5}

/* MAP SECTION */
.map-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:start}
.map-container{position:relative;border-radius:18px;overflow:visible;box-shadow:0 8px 40px rgba(0,0,0,.08)}
.map-img{width:100%;display:block;border-radius:18px}
.map-overlay{position:absolute;inset:0;pointer-events:none}
/* markers */
.marker-wrap{position:absolute;transform:translate(-50%,-50%);cursor:pointer;pointer-events:all}
.marker{width:28px;height:28px;border-radius:50%;background:var(--g);border:3px solid #fff;box-shadow:0 3px 12px rgba(27,94,59,.4);display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s;position:relative}
.marker::after{content:'';position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(27,94,59,.3);animation:ping 2s ease infinite}
@keyframes ping{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.8);opacity:0}}
.marker:hover{transform:scale(1.25);box-shadow:0 6px 20px rgba(27,94,59,.5)}
.marker-dot{width:8px;height:8px;border-radius:50%;background:#fff}
.marker.hq{background:var(--s);width:34px;height:34px}
.marker.hq::after{border-color:rgba(212,116,42,.4)}
.marker-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;font-size:10px;font-weight:600;padding:5px 10px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;z-index:10}
.marker-tip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:4px solid transparent;border-top-color:var(--ink)}
.marker-wrap:hover .marker-tip{opacity:1}
/* state list */
.slist{display:flex;flex-direction:column;gap:6px;overflow-y:auto;padding-right:6px;min-height:0}
.slist::-webkit-scrollbar{width:4px}
.slist::-webkit-scrollbar-track{background:var(--cream)}
.slist::-webkit-scrollbar-thumb{background:var(--i20);border-radius:4px}
.sitem{display:flex;align-items:center;gap:12px;padding:11px 14px;background:var(--cream);border-radius:10px;border:1.5px solid transparent;transition:all .2s;cursor:pointer}
.sitem:hover{background:var(--gl);border-color:rgba(27,94,59,.2)}
.sdot{width:9px;height:9px;border-radius:50%;flex-shrink:0;background:var(--g)}
.sdot.hq{background:var(--s)}
.sname{font-size:13px;font-weight:600;flex:1;letter-spacing:-.1px}
.sprog{font-size:10px;color:var(--i60);font-weight:400}
.scnt{font-size:12px;font-weight:700;color:var(--g)}
.map-legend{display:flex;gap:20px;margin-top:14px;flex-wrap:wrap}
.ml{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--i60);font-weight:500}
.mld{width:11px;height:11px;border-radius:50%;flex-shrink:0}

/* CALCULATOR */
.cbox{background:var(--white);border-radius:18px;padding:36px;border:1px solid var(--bd);box-shadow:0 4px 24px rgba(0,0,0,.05);max-width:700px;margin:0 auto}
.cpres{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-bottom:24px}
.cp{padding:13px 8px;border-radius:11px;border:1.5px solid var(--bdm);text-align:center;cursor:pointer;transition:all .2s;background:var(--cream)}
.cp:hover{border-color:var(--g);background:var(--gl)}
.cp.on{background:var(--g);border-color:var(--g);color:#fff}
.cpa{font-size:17px;font-weight:800;display:block;margin-bottom:3px;letter-spacing:-.5px}
.cpl{font-size:10px;font-weight:500;opacity:.7;line-height:1.3}
.cp.on .cpl{opacity:.85}
.cr{background:var(--gll);border:1px solid rgba(27,94,59,.12);border-radius:12px;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.cr-t{font-size:14px;font-weight:400;color:var(--gd);line-height:1.6}
.cr-t strong{font-size:17px;font-weight:700;display:block;margin-bottom:3px;letter-spacing:-.3px}

/* STORIES */
.st-outer{position:relative}
.st-clip{overflow:hidden;border-radius:18px}
.st-track{display:flex;gap:18px;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.ssld{min-width:300px;max-width:300px;scroll-snap-align:start;background:var(--white);border-radius:18px;overflow:hidden;border:1px solid var(--bd);flex-shrink:0;transition:box-shadow .3s}
.ssld:hover{box-shadow:0 14px 36px rgba(0,0,0,.09)}
.simg{width:100%;aspect-ratio:1/1;position:relative;overflow:hidden}
.simg img{width:100%;height:100%;transition:transform .6s}
.ssld:hover .simg img{transform:scale(1.05)}
.sov{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(15,61,37,.65) 100%)}
.sloc{position:absolute;bottom:12px;left:14px;font-size:9px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:rgba(255,255,255,.9);background:rgba(0,0,0,.28);padding:3px 9px;border-radius:99px}
.sbody{padding:20px}
.sbody .ey{margin-bottom:8px}
.sq{font-size:15px;font-style:italic;font-weight:600;color:var(--ink);line-height:1.4;margin-bottom:10px}
.sinc{display:inline-flex;align-items:center;gap:6px;background:var(--gl);color:var(--gd);padding:4px 11px;border-radius:99px;font-size:10px;font-weight:700;margin-bottom:10px}
.sdesc{font-size:12px;color:var(--i60);line-height:1.65;font-weight:400}
.smeta{font-size:11px;color:var(--i40);margin-top:10px;padding-top:10px;border-top:1px solid var(--bd);font-weight:500}
.sarr{position:absolute;top:44%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:var(--white);box-shadow:0 4px 18px rgba(0,0,0,.12);border:1px solid var(--bd);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:17px;z-index:5;transition:background .2s}
.sarr:hover{background:var(--g);color:#fff}
.sal{left:-18px}.sar{right:-18px}
.sdtw{display:flex;gap:5px;justify-content:center;margin-top:22px}
.sdt{width:5px;height:5px;border-radius:99px;background:rgba(27,94,59,.2);cursor:pointer;transition:width .3s,background .3s}
.sdt.on{width:22px;background:var(--s)}

/* GALLERY */
.gstrip{display:flex;height:280px;gap:3px}
.gp{flex:1;overflow:hidden;position:relative;cursor:pointer;transition:flex .45s cubic-bezier(.4,0,.2,1)}
.gp:hover{flex:2.8}
.gp img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.gp:hover img{transform:scale(1.04)}
.gov{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(15,61,37,.75) 100%);opacity:0;transition:opacity .35s}
.gp:hover .gov{opacity:1}
.glbl{position:absolute;bottom:14px;left:16px;color:#fff;font-size:12px;font-weight:600;opacity:0;transform:translateY(5px);transition:opacity .3s,transform .3s}
.gp:hover .glbl{opacity:1;transform:translateY(0)}

/* TESTIMONIALS */
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tcard{background:var(--white);border-radius:18px;padding:28px;border:1px solid var(--bd);position:relative;transition:transform .3s,box-shadow .3s}
.tcard:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(0,0,0,.09)}
.tq-mark{position:absolute;top:18px;right:22px;font-size:72px;color:var(--gll);line-height:1;font-weight:800;font-family:serif;pointer-events:none}
.tstars{display:flex;gap:3px;margin-bottom:12px}
.star{color:var(--s);font-size:13px}
.tquote{font-size:14px;color:var(--ink);line-height:1.7;margin-bottom:18px;font-style:italic;font-weight:400}
.tperson{display:flex;align-items:center;gap:11px}
.tavatar{width:42px;height:42px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid var(--gl)}
.tavatar img{width:100%;height:100%}
.tname{font-size:13px;font-weight:700;letter-spacing:-.1px;margin-bottom:1px}
.trole{font-size:11px;color:var(--i60);font-weight:400}
.tco{font-size:10px;font-weight:700;color:var(--g);letter-spacing:.2px;margin-top:1px}
.ttag{position:absolute;top:22px;left:26px;font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:3px 10px;border-radius:99px}
.tt1{background:#EEF2FF;color:#3730A3}
.tt2{background:var(--sb);color:#A05010}

/* TRANSPARENCY */
.trgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.trcard{background:var(--white);border-radius:18px;padding:26px;border:1px solid var(--bd)}
.trtitle{font-size:14px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:9px;letter-spacing:-.1px}
.trico{width:32px;height:32px;border-radius:8px;background:var(--gl);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.donut{width:96px;height:96px;border-radius:50%;background:conic-gradient(var(--g) 0% 82%,#DDD8D0 82% 100%);flex-shrink:0;position:relative}
.donut::after{content:'82%';position:absolute;inset:12px;background:var(--white);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:var(--g);letter-spacing:-.5px}
.dw{display:flex;align-items:center;gap:22px}
.dl{display:flex;flex-direction:column;gap:9px}
.dr{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:400}
.dd{width:10px;height:10px;border-radius:2px;flex-shrink:0}
.regw{display:flex;flex-wrap:wrap;gap:7px}
.rc{padding:6px 13px;border-radius:99px;border:1.5px solid var(--bdm);font-size:11px;font-weight:700;color:var(--i60);background:var(--cream)}
.rpl{display:flex;flex-direction:column}
.rpr{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--bd)}
.rpr:last-child{border-bottom:none}
.rpi h5{font-size:13px;font-weight:600;margin-bottom:1px}
.rpi p{font-size:11px;color:var(--i40);font-weight:400}
.rpb{font-size:11px;font-weight:600;color:var(--g);display:flex;align-items:center;gap:4px;padding:5px 12px;border:1.5px solid var(--gl);border-radius:99px;transition:background .2s;cursor:pointer}
.rpb:hover{background:var(--gl)}

/* BANO UDYAMI */
.buw{background:var(--g);border-radius:20px;padding:44px;display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.bul h2{color:#fff;margin-bottom:12px}
.bul p{color:rgba(255,255,255,.7);font-size:15px;line-height:1.75;margin-bottom:24px;font-weight:400}
.bsteps{display:flex;flex-direction:column;gap:12px}
.bstep{display:flex;gap:12px;align-items:flex-start}
.bn{width:25px;height:25px;border-radius:50%;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0;margin-top:2px}
.bt{font-size:13px;color:rgba(255,255,255,.82);line-height:1.55;font-weight:400}
.bt strong{font-weight:700;color:#fff}
.bform{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);border-radius:18px;padding:26px}
.ff{width:100%;padding:11px 14px;border-radius:8px;border:1.5px solid var(--bdm);background:var(--white);font-size:13px;font-family:'Poppins',sans-serif;color:var(--ink);margin-bottom:10px;outline:none;transition:border-color .2s}
.ff:focus{border-color:var(--g)}
.ffd{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:#fff}
.ffd::placeholder{color:rgba(255,255,255,.38)}
.ffd:focus{border-color:var(--sl)}
textarea.ff{resize:vertical;min-height:86px}
.frow2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bsub{width:100%;background:var(--s);color:#fff;border:none;border-radius:8px;padding:14px;font-size:14px;font-weight:600;cursor:pointer;font-family:'Poppins',sans-serif;transition:background .2s}
.bsub:hover{background:#b85e1e}
.bnote{font-size:10px;color:rgba(255,255,255,.38);text-align:center;margin-top:9px}

/* CSR */
.csrl{display:grid;grid-template-columns:1.1fr 1fr;gap:52px;align-items:start}
.csteps{display:flex;flex-direction:column}
.cstep{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--bd)}
.cstep:last-child{border-bottom:none}
.csn{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}
.csc h4{font-size:14px;font-weight:600;margin-bottom:3px;letter-spacing:-.1px}
.csc p{font-size:12px;color:var(--i60);line-height:1.65;font-weight:400}
.clogs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}
.clog{height:48px;background:var(--cream);border:1px solid var(--bd);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--i40)}
.cform{background:var(--cream);border-radius:18px;padding:26px;border:1px solid var(--bd)}

/* DONATE */
.dlayo{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.dtrust{display:flex;flex-direction:column;gap:12px;margin-top:22px}
.dti{display:flex;align-items:center;gap:11px}
.dtck{width:20px;height:20px;border-radius:50%;background:rgba(240,160,80,.2);display:flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0}
.dtt{font-size:13px;color:rgba(255,255,255,.72);font-weight:400}
.dbox{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:28px}
.dtabs{display:flex;gap:4px;background:rgba(255,255,255,.07);border-radius:8px;padding:4px;margin-bottom:20px}
.dtab{flex:1;padding:9px;text-align:center;border-radius:7px;font-size:12px;font-weight:600;color:rgba(255,255,255,.5);cursor:pointer;transition:all .2s}
.dtab.on{background:var(--s);color:#fff}
.dlbl{font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.38);margin-bottom:11px}
.damts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:13px}
.da{background:rgba(255,255,255,.07);border:1.5px solid rgba(255,255,255,.12);border-radius:11px;padding:12px 9px;text-align:center;cursor:pointer;transition:all .2s}
.da:hover,.da.on{background:var(--s);border-color:var(--s)}
.dan{font-size:17px;font-weight:800;color:#fff;display:block;margin-bottom:2px;letter-spacing:-.5px}
.dal{font-size:10px;color:rgba(255,255,255,.65);font-weight:400}
.di2{width:100%;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.16);border-radius:8px;padding:11px 14px;color:#fff;font-size:13px;font-family:'Poppins',sans-serif;outline:none;margin-bottom:11px}
.di2::placeholder{color:rgba(255,255,255,.33)}
.di2:focus{border-color:var(--sl)}
.dsub{width:100%;background:var(--s);color:#fff;border:none;border-radius:8px;padding:14px;font-size:14px;font-weight:600;cursor:pointer;font-family:'Poppins',sans-serif;transition:background .2s}
.dsub:hover{background:#b85e1e}
.dnote{font-size:10px;color:rgba(255,255,255,.35);text-align:center;margin-top:9px}

/* NEWS */
.ngrid{display:flex;gap:18px}
.nc{min-width:300px;max-width:300px;scroll-snap-align:start;background:var(--white);border-radius:18px;overflow:hidden;border:1px solid var(--bd);transition:transform .25s,box-shadow .25s;flex-shrink:0}
.nc:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(0,0,0,.09)}
.ncimg{height:180px;overflow:hidden}
.ncimg img{width:100%;height:100%;transition:transform .5s}
.nc:hover .ncimg img{transform:scale(1.06)}
.ncb{padding:20px}
.ncd{font-size:9px;font-weight:700;color:var(--s);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px}
.ncb h3{font-size:16px;font-weight:600;line-height:1.35;margin-bottom:7px;letter-spacing:-.2px}
.ncb p{font-size:12px;color:var(--i60);line-height:1.65;font-weight:400}
.ncr{font-size:12px;font-weight:600;color:var(--g);display:flex;align-items:center;gap:4px;margin-top:11px;transition:gap .2s}
.nc:hover .ncr{gap:8px}

/* NL */
.nlin{background:var(--white);border-radius:18px;padding:36px 44px;display:flex;align-items:center;justify-content:space-between;gap:36px;border:1px solid var(--bd)}
.nlf{display:flex;gap:9px;width:360px;flex-shrink:0}
.nli{flex:1;padding:11px 15px;border-radius:8px;border:1.5px solid var(--bdm);background:var(--cream);font-size:13px;font-family:'Poppins',sans-serif;outline:none;transition:border-color .2s}
.nli:focus{border-color:var(--g)}

/* FOOTER */
footer{background:var(--ink);color:rgba(255,255,255,.55);padding:64px 7% 28px}
.fg{display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;gap:44px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.07)}
.fb h3{font-size:17px;font-weight:700;color:#fff;margin-bottom:9px}
.fb p{font-size:13px;line-height:1.75;max-width:250px;font-weight:400}
.fct{margin-top:14px;font-size:12px;color:rgba(255,255,255,.36);display:flex;flex-direction:column;gap:5px}
.fsoc{display:flex;gap:7px;margin-top:14px}
.fs{width:32px;height:32px;border-radius:7px;background:rgba(255,255,255,.07);display:flex;align-items:center;justify-content:center;font-size:12px;color:rgba(255,255,255,.48);transition:background .2s,color .2s;cursor:pointer}
.fs:hover{background:var(--s);color:#fff}
.fcol h4{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:#fff;margin-bottom:14px}
.fcol ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.fcol ul a{font-size:13px;color:rgba(255,255,255,.45);transition:color .2s;font-weight:400}
.fcol ul a:hover{color:var(--sl)}
.fbot{display:flex;justify-content:space-between;align-items:center;padding-top:22px;flex-wrap:wrap;gap:10px}
.fbot p{font-size:11px}
.freg{display:flex;gap:6px;flex-wrap:wrap}
.frc{font-size:9px;font-weight:700;color:rgba(255,255,255,.26);padding:3px 9px;border-radius:99px;border:1px solid rgba(255,255,255,.1)}
.flinks{display:flex;gap:16px}
.flinks a{font-size:11px;color:rgba(255,255,255,.28);transition:color .2s}
.flinks a:hover{color:rgba(255,255,255,.7)}

/* map tooltip */
#mtt{position:fixed;background:var(--ink);color:#fff;font-size:11px;font-weight:600;padding:7px 12px;border-radius:7px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:999;box-shadow:0 4px 16px rgba(0,0,0,.2);line-height:1.4}

/* mobile rules consolidated at end of file */

/* SDG CARDS */
.sdg-card{background:var(--white);border-radius:14px;padding:22px 16px;text-align:center;border-top:4px solid var(--sdg-c,#ccc);border:1px solid var(--bd);border-top:4px solid var(--sdg-c,#ccc);transition:transform .2s,box-shadow .2s}
.sdg-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.09)}
.sdg-num{font-size:10px;font-weight:800;color:var(--sdg-c);letter-spacing:1px;margin-bottom:6px;background:var(--cream);display:inline-block;padding:2px 8px;border-radius:99px}
.sdg-icon{font-size:28px;margin:8px 0}
.sdg-title{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:6px;line-height:1.3}
.sdg-desc{font-size:11px;color:var(--i60);line-height:1.55;font-weight:400}

/* GRANT CARDS */
.grant-card{background:var(--white);border-radius:18px;padding:28px;border:1.5px solid var(--bd);cursor:pointer;transition:all .3s}
.grant-card:hover{border-color:var(--g);box-shadow:0 8px 32px rgba(27,94,59,.12);transform:translateY(-4px)}
.grant-card.selected{border-color:var(--g);box-shadow:0 8px 32px rgba(27,94,59,.15);background:var(--gll)}
.grant-icon-wrap{width:72px;height:72px;border-radius:18px;display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.grant-title{font-size:16px;font-weight:700;color:var(--ink);margin-bottom:8px;letter-spacing:-.2px}
.grant-desc{font-size:13px;color:var(--i60);line-height:1.65;font-weight:400}
.grant-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}
.grant-tags span{font-size:10px;font-weight:700;background:var(--gl);color:var(--gd);padding:3px 10px;border-radius:99px}
.grant-apply{font-size:12px;font-weight:600;color:var(--g);margin-top:14px;display:flex;align-items:center;gap:4px}

/* STATE ACCORDION */
/* sacc styles defined below */

/* vision/mission mobile consolidated at end of file */

/* JOURNEY / TIMELINE */
/* old journey css removed */


/* GRANT ICONS - simple big */
.gic{display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;padding:20px 10px;border-radius:16px;border:2px solid transparent;transition:all .25s}
.gic:hover{background:var(--white);border-color:var(--gl);box-shadow:0 6px 24px rgba(26,58,92,.08)}
.gic.sel{background:var(--white);border-color:var(--gm);box-shadow:0 8px 28px rgba(14,124,123,.15)}
.gic-icon{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:12px;font-size:36px;transition:transform .25s}
.gic:hover .gic-icon,.gic.sel .gic-icon{transform:scale(1.12)}
.gic-name{font-size:13px;font-weight:700;color:var(--gd);margin-bottom:4px}
.gic-sub{font-size:11px;color:var(--i60);font-weight:400;line-height:1.4}

/* ── STATE ACCORDION (single authoritative definition) ── */
.sacc{
  background:var(--white);
  border-radius:12px;
  border:1.5px solid var(--bd);
  transition:border-color .2s,box-shadow .2s;
}
.sacc.open{
  border-color:var(--gm);
  box-shadow:0 4px 16px rgba(14,124,123,.12);
}
.sacc-hdr{
  display:flex;align-items:center;gap:10px;
  padding:12px 14px;
  cursor:pointer;
  -webkit-user-select:none;user-select:none;
  transition:background .15s;
}
.sacc-hdr:hover{background:var(--gl)}
.sacc.open .sacc-hdr{background:var(--gl);border-bottom:1px solid rgba(14,124,123,.1)}
.sacc-body{
  max-height:0;
  overflow:hidden;
  padding:0 14px 0 36px;
  background:var(--gll);
  transition:max-height .3s ease,padding .3s ease;
}
.sacc.open .sacc-body{max-height:600px;padding:10px 14px 14px 36px;}
.sacc-dcnt{font-size:10px;color:var(--gm);font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.sacc-districts{display:flex;flex-wrap:wrap;gap:6px}
.sacc-district{
  font-size:11px;font-weight:600;
  background:var(--white);color:var(--gd);
  padding:4px 11px;border-radius:99px;
  border:1px solid var(--bd);
}
.sacc-chev{font-size:11px;color:var(--i40);transition:transform .25s;margin-left:auto;flex-shrink:0}
.sacc.open .sacc-chev{transform:rotate(180deg);color:var(--gm)}
.sdot{width:9px;height:9px;border-radius:50%;flex-shrink:0;background:var(--gm)}
.sdot.hq{background:var(--s)}
.sname{font-size:13px;font-weight:600;flex:1;color:var(--ink)}
.sprog{font-size:10px;color:var(--i60);font-weight:400;margin-top:1px}

/* ── PROSE CONTENT (CKEditor HTML output, rendered on frontend) ── */
.prose-content{font-size:15px;line-height:1.85;color:var(--i60)}
.prose-content h2{font-size:1.45rem;font-weight:800;color:var(--gd);margin:2em 0 .6em;line-height:1.25}
.prose-content h3{font-size:1.15rem;font-weight:700;color:var(--gd);margin:1.6em 0 .5em;line-height:1.3}
.prose-content p{margin-bottom:1em}
.prose-content p:last-child{margin-bottom:0}
.prose-content strong{font-weight:700;color:var(--ink)}
.prose-content em{font-style:italic;color:var(--gm)}
.prose-content a{color:var(--gm);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.prose-content a:hover{color:var(--gd)}
.prose-content ul,.prose-content ol{margin:.75em 0 1em 1.5em;display:flex;flex-direction:column;gap:.35em}
.prose-content li{font-size:15px;color:var(--i60);line-height:1.7}
.prose-content ul>li{list-style:disc}
.prose-content ol>li{list-style:decimal}
.prose-content blockquote{border-left:4px solid var(--gm);padding:.75em 1.25em;background:var(--gl);border-radius:0 10px 10px 0;margin:1.5em 0;font-style:italic;color:var(--gm)}
.prose-content img{max-width:100%;border-radius:12px;margin:1.5em 0;display:block}
.prose-content table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:14px;border-radius:10px;overflow:hidden}
.prose-content th{background:var(--gd);color:#fff;font-weight:700;padding:10px 14px;text-align:left}
.prose-content td{border-bottom:1px solid var(--bd);padding:10px 14px;vertical-align:top}
.prose-content tr:last-child td{border-bottom:none}
.prose-content tr:nth-child(even) td{background:var(--cream)}
.prose-content figure.image{margin:1.5em 0}
.prose-content figure.image img{width:100%;border-radius:12px}
.prose-content figure.image figcaption{font-size:12px;color:var(--i40);text-align:center;margin-top:6px}

/* ── CONTENT BLOCKS (custom-page.php + page-extra-blocks.php) ── */
.cb-section{padding:64px 0}
.cb-bg-cream{background:var(--cream)}
.cb-bg-navy{background:var(--gd);color:#fff}
.cb-bg-green{background:var(--gm);color:#fff}
.cb-wrap{max-width:1100px;margin:0 auto;padding:0 24px}
.cb-heading{font-size:2rem;font-weight:700;margin-bottom:8px;line-height:1.2}
.cb-sub{font-size:1.05rem;color:var(--i60);margin-bottom:20px}
.cb-bg-navy .cb-sub,.cb-bg-green .cb-sub{color:rgba(255,255,255,.75)}
.cb-body{font-size:1rem;line-height:1.75}
.cb-body h2{font-size:1.5rem;font-weight:700;margin:1.4em 0 .5em;color:var(--gd)}
.cb-body h3{font-size:1.2rem;font-weight:600;margin:1.1em 0 .4em;color:var(--gd)}
.cb-body ul,.cb-body ol{padding-left:1.5em;margin:.8em 0}
.cb-body img{border-radius:10px;max-width:100%}
.cb-body blockquote{border-left:4px solid var(--gm);padding:.75em 1.25em;background:var(--gl,#f0faf9);border-radius:0 10px 10px 0;margin:1.5em 0;font-style:italic;color:var(--gm)}
.cb-body table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:15px;border-radius:10px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.07)}
.cb-body th{background:var(--gd);color:#fff;font-weight:700;padding:12px 16px;text-align:left}
.cb-body td{border-bottom:1px solid var(--bd);padding:11px 16px;vertical-align:top}
.cb-body tr:last-child td{border-bottom:none}
.cb-body tr:nth-child(even) td{background:var(--cream)}
.cb-layout-text{text-align:center;max-width:800px;margin:0 auto}
.cb-layout-image-left,.cb-layout-image-right{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.cb-layout-image-right .cb-img{order:2}.cb-layout-image-right .cb-text{order:1}
.cb-img img{width:100%;border-radius:12px;box-shadow:0 4px 24px rgba(26,58,92,.1)}
.cb-layout-hero{position:relative;padding:100px 0;background-size:cover;background-position:center}
.cb-hero-overlay{position:absolute;inset:0;background:rgba(0,0,0,.52)}
@media(max-width:768px){
  .cb-layout-image-left,.cb-layout-image-right{grid-template-columns:1fr;gap:24px}
  .cb-layout-image-right .cb-img{order:0}.cb-layout-image-right .cb-text{order:1}
  .cb-heading{font-size:1.6rem}
  .cb-layout-hero{padding:64px 0}
  .cb-body table{font-size:13px}
  .cb-body th,.cb-body td{padding:8px 10px}
}

/* ── CONTENT BLOCK DISPLAY STYLES (richtext mode) ── */
/* prose — default */
.cb-style-prose .cb-layout-text{max-width:800px;margin:0 auto}
.cb-style-prose .cb-body{font-size:15px;line-height:1.85;color:var(--i60)}
.cb-style-prose .cb-body h2{font-size:1.45rem;font-weight:800;color:var(--gd);margin:1.6em 0 .5em}
.cb-style-prose .cb-body h3{font-size:1.15rem;font-weight:700;color:var(--gd);margin:1.2em 0 .4em}
.cb-style-prose .cb-body p{margin-bottom:.9em}
.cb-style-prose .cb-body strong{font-weight:700;color:var(--ink)}
.cb-style-prose .cb-body em{color:var(--gm);font-style:italic}
.cb-style-prose .cb-body blockquote{border-left:4px solid var(--gm);padding:.75em 1.25em;background:var(--gl);border-radius:0 10px 10px 0;font-style:italic;color:var(--gm);margin:1.5em 0}

/* two-col — list items split into 2-column grid */
.cb-style-two-col .cb-layout-text{max-width:960px;margin:0 auto}
.cb-style-two-col .cb-body ul,.cb-style-two-col .cb-body ol{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;padding:0;list-style:none;margin:24px 0}
.cb-style-two-col .cb-body li{padding:12px 14px 12px 40px;background:var(--cream);border-radius:10px;position:relative;font-size:14px;line-height:1.55;color:var(--ink)}
.cb-style-two-col .cb-body li::before{content:'✓';position:absolute;left:14px;color:var(--gm);font-weight:700}
.cb-style-two-col .cb-body h2{text-align:center;font-size:1.6rem;font-weight:800;color:var(--navy);margin-bottom:.5em}
.cb-style-two-col .cb-body h3{font-size:1.1rem;font-weight:700;color:var(--navy);margin:1em 0 .3em}
.cb-style-two-col .cb-body p{font-size:15px;line-height:1.75;color:var(--i60);text-align:center}
.cb-style-two-col .cb-bg-navy .cb-body li,.cb-style-two-col.cb-bg-navy .cb-body li{background:rgba(255,255,255,.08);color:#fff}

/* feature-cards — list items as card grid */
.cb-style-feature-cards .cb-layout-text{max-width:1100px;margin:0 auto}
.cb-style-feature-cards .cb-body h2{text-align:center;font-size:1.6rem;font-weight:800;color:var(--navy);margin-bottom:.4em}
.cb-style-feature-cards .cb-body p{text-align:center;font-size:15px;color:var(--i60);margin-bottom:0}
.cb-style-feature-cards .cb-body ul,.cb-style-feature-cards .cb-body ol{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;padding:0;list-style:none;margin:28px 0 0}
.cb-style-feature-cards .cb-body li{padding:22px 18px;background:#fff;border:1.5px solid var(--bd);border-radius:14px;box-shadow:0 2px 10px rgba(26,58,92,.06);font-size:14px;line-height:1.6;color:var(--ink);transition:box-shadow .2s,border-color .2s}
.cb-style-feature-cards .cb-body li:hover{box-shadow:0 6px 24px rgba(14,124,123,.15);border-color:var(--gm)}
.cb-style-feature-cards .cb-body li strong{display:block;font-size:15px;font-weight:700;color:var(--navy);margin-bottom:5px}

/* centered — wide centered text with generous spacing */
.cb-style-centered .cb-layout-text{max-width:900px;margin:0 auto;text-align:center}
.cb-style-centered .cb-body{font-size:16px;line-height:2;color:var(--i60)}
.cb-style-centered .cb-body h2{font-size:1.75rem;font-weight:800;color:var(--navy);margin-bottom:.4em}
.cb-style-centered .cb-body h3{font-size:1.25rem;font-weight:700;color:var(--gd);margin:1.5em 0 .4em}
.cb-style-centered .cb-body ul{text-align:left;display:inline-block;margin:0.5em auto}
.cb-style-centered .cb-body blockquote{border:none;background:none;padding:0;font-size:1.2em;font-style:italic;color:var(--gm);text-align:center;border-top:2px solid var(--gm);border-bottom:2px solid var(--gm);padding:16px 0;margin:2em auto;max-width:700px}

/* responsive display styles */
@media(max-width:768px){
  .cb-style-two-col .cb-body ul,.cb-style-two-col .cb-body ol{grid-template-columns:1fr}
  .cb-style-feature-cards .cb-body ul,.cb-style-feature-cards .cb-body ol{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .cb-style-feature-cards .cb-body ul,.cb-style-feature-cards .cb-body ol{grid-template-columns:1fr}
}

/* ── SPECIAL CONTENT BLOCKS ── */
/* Comparison Table */
.cb-sp-table{overflow-x:auto;border-radius:12px}
.cb-sp-table table{width:100%;border-collapse:collapse;border-radius:12px;overflow:hidden;box-shadow:0 2px 24px rgba(26,58,92,.12);min-width:500px}
.cb-sp-table th{background:var(--gd);color:#fff;padding:14px 20px;text-align:left;font-size:14px;font-weight:700;letter-spacing:.3px}
.cb-sp-table th:first-child{background:#0f2847}
.cb-sp-table td{padding:13px 20px;border-bottom:1px solid var(--bd);font-size:14px;vertical-align:middle}
.cb-sp-table td:first-child{font-weight:600;color:var(--navy);background:var(--cream)}
.cb-sp-table tr:last-child td{border-bottom:none}
.cb-sp-table tr:nth-child(even) td:not(:first-child){background:#f6f9fd}
.cb-sp-table tr:hover td{background:#eef6ff}
.cb-sp-table tr:hover td:first-child{background:#e5eff5}

/* Icon Cards */
.cb-sp-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-top:8px}
.cb-sp-card{background:#fff;border:1.5px solid var(--bd);border-radius:16px;padding:28px 22px;transition:box-shadow .2s,border-color .2s,transform .2s}
.cb-sp-card:hover{box-shadow:0 8px 30px rgba(14,124,123,.16);border-color:var(--gm);transform:translateY(-3px)}
.cb-sp-card-icon{font-size:36px;margin-bottom:14px;line-height:1}
.cb-sp-card-title{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:8px;line-height:1.3}
.cb-sp-card-desc{font-size:14px;color:var(--i60);line-height:1.65}
.cb-bg-navy .cb-sp-card{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18)}
.cb-bg-navy .cb-sp-card:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.4)}
.cb-bg-navy .cb-sp-card-title{color:#fff}
.cb-bg-navy .cb-sp-card-desc{color:rgba(255,255,255,.72)}
.cb-bg-green .cb-sp-card{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2)}
.cb-bg-green .cb-sp-card-title{color:#fff}
.cb-bg-green .cb-sp-card-desc{color:rgba(255,255,255,.8)}

/* Steps */
.cb-sp-steps-list{display:flex;flex-direction:column;gap:20px;max-width:760px;margin:0 auto}
.cb-sp-step{display:flex;gap:20px;align-items:flex-start}
.cb-sp-step-num{flex:0 0 46px;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--gm),var(--gd));color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;box-shadow:0 4px 14px rgba(14,124,123,.3)}
.cb-sp-step-body{flex:1;padding-top:10px}
.cb-sp-step-title{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:5px;line-height:1.3}
.cb-sp-step-desc{font-size:14px;color:var(--i60);line-height:1.65}
.cb-bg-navy .cb-sp-step-title{color:#fff}
.cb-bg-navy .cb-sp-step-desc{color:rgba(255,255,255,.72)}
.cb-bg-navy .cb-sp-step-num{box-shadow:0 4px 14px rgba(0,0,0,.25)}

/* Timeline */
.cb-sp-timeline{position:relative;margin:8px 0;padding-left:44px;max-width:760px;margin-left:auto;margin-right:auto}
.cb-sp-timeline::before{content:'';position:absolute;left:14px;top:10px;bottom:20px;width:2px;background:linear-gradient(to bottom,var(--gm) 0%,var(--gd) 100%)}
.cb-sp-tl-item{position:relative;padding-bottom:32px}
.cb-sp-tl-item:last-child{padding-bottom:0}
.cb-sp-tl-dot{position:absolute;left:-38px;top:4px;width:20px;height:20px;border-radius:50%;background:var(--gm);border:3px solid #fff;box-shadow:0 0 0 2.5px var(--gm)}
.cb-sp-tl-year{font-size:12px;font-weight:700;color:var(--gm);letter-spacing:1px;text-transform:uppercase;margin-bottom:4px}
.cb-sp-tl-title{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:5px;line-height:1.3}
.cb-sp-tl-desc{font-size:14px;color:var(--i60);line-height:1.65}
.cb-bg-navy .cb-sp-timeline::before{background:linear-gradient(to bottom,rgba(255,255,255,.5),rgba(255,255,255,.2))}
.cb-bg-navy .cb-sp-tl-dot{border-color:var(--gd)}
.cb-bg-navy .cb-sp-tl-year{color:var(--gl,#b3f0ed)}
.cb-bg-navy .cb-sp-tl-title{color:#fff}
.cb-bg-navy .cb-sp-tl-desc{color:rgba(255,255,255,.7)}

/* Stats Grid */
.cb-sp-stats-grid{display:flex;flex-wrap:wrap;gap:32px 56px;justify-content:center;padding:8px 0}
.cb-sp-stat{text-align:center;min-width:120px}
.cb-sp-stat-num{font-size:clamp(2.2rem,5vw,3.5rem);font-weight:900;background:linear-gradient(135deg,var(--gm),var(--gd));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.1}
.cb-sp-stat-label{font-size:13px;color:var(--i60);margin-top:6px;font-weight:500;letter-spacing:.3px}
.cb-bg-navy .cb-sp-stat-num{background:linear-gradient(135deg,#7ff5e8,#b3f0ed);-webkit-background-clip:text;background-clip:text}
.cb-bg-navy .cb-sp-stat-label{color:rgba(255,255,255,.7)}
.cb-bg-cream .cb-sp-stat-num{background:linear-gradient(135deg,var(--gm),var(--gd));-webkit-background-clip:text;background-clip:text}

/* Quote Banner */
.cb-sp-quote{max-width:800px;margin:0 auto;text-align:center;padding:16px 24px}
.cb-sp-quote-mark{font-size:96px;color:var(--gm);opacity:.2;line-height:.8;margin-bottom:-16px;font-family:Georgia,'Times New Roman',serif;user-select:none}
.cb-sp-quote-text{font-size:clamp(1.2rem,3vw,1.7rem);line-height:1.5;font-style:italic;color:var(--navy);font-weight:500;margin-bottom:24px}
.cb-sp-quote-attr{font-size:14px;font-weight:700;color:var(--gm);letter-spacing:.5px}
.cb-sp-quote-role{font-size:13px;color:var(--i60);margin-top:3px}
.cb-bg-navy .cb-sp-quote-mark{color:#fff}
.cb-bg-navy .cb-sp-quote-text{color:#fff}
.cb-bg-navy .cb-sp-quote-attr{color:var(--gl,#b3f0ed)}
.cb-bg-navy .cb-sp-quote-role{color:rgba(255,255,255,.6)}

/* Checklist */
.cb-sp-checklist{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px}
.cb-sp-chk-item{display:flex;align-items:flex-start;gap:14px;padding:14px 20px;background:var(--cream);border-radius:12px;border-left:3px solid var(--gm)}
.cb-sp-chk-icon{flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:var(--gm);display:flex;align-items:center;justify-content:center;margin-top:1px}
.cb-sp-chk-text{font-size:15px;color:var(--ink);line-height:1.55}
.cb-bg-navy .cb-sp-chk-item{background:rgba(255,255,255,.1);border-left-color:var(--gl,#7ff5e8)}
.cb-bg-navy .cb-sp-chk-icon{background:var(--gl,#7ff5e8)}
.cb-bg-navy .cb-sp-chk-icon svg polyline{stroke:var(--gd)}
.cb-bg-navy .cb-sp-chk-text{color:rgba(255,255,255,.9)}

/* Photo Grid */
.cb-sp-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.cb-sp-photo-item{display:block;border-radius:10px;overflow:hidden;position:relative;aspect-ratio:4/3;cursor:pointer}
.cb-sp-photo-item img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.cb-sp-photo-item:hover img{transform:scale(1.05)}
.cb-sp-photo-cap{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 100%);color:#fff;font-size:12px;padding:20px 10px 8px;opacity:0;transition:opacity .25s}
.cb-sp-photo-item:hover .cb-sp-photo-cap{opacity:1}

/* Photo Carousel */
.cb-sp-carousel{position:relative;overflow:hidden;border-radius:16px;box-shadow:0 6px 32px rgba(26,58,92,.14)}
.cb-sp-car-track{display:flex;transition:transform .45s cubic-bezier(.4,0,.2,1)}
.cb-sp-car-slide{flex:0 0 100%;position:relative}
.cb-sp-car-slide img{width:100%;height:100%;object-fit:cover;display:block}
.cb-sp-car-cap{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);color:#fff;font-size:14px;padding:32px 20px 14px;text-align:center}
.cb-sp-car-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.2);backdrop-filter:blur(4px);border:2px solid rgba(255,255,255,.4);color:#fff;font-size:28px;width:44px;height:44px;border-radius:50%;cursor:pointer;line-height:1;transition:background .2s;display:flex;align-items:center;justify-content:center;padding:0}
.cb-sp-car-btn:hover{background:rgba(255,255,255,.35)}
.cb-sp-car-prev{left:14px}
.cb-sp-car-next{right:14px}
.cb-sp-car-dots{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:7px}
.cb-sp-car-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.45);border:none;cursor:pointer;padding:0;transition:background .2s,transform .2s}
.cb-sp-car-dot.active{background:#fff;transform:scale(1.3)}

/* Special block responsive */
@media(max-width:768px){
  .cb-sp-cards-grid{grid-template-columns:1fr 1fr}
  .cb-sp-stats-grid{gap:24px 32px}
  .cb-sp-table th,.cb-sp-table td{padding:10px 12px;font-size:13px}
  .cb-sp-step-num{width:38px;height:38px;flex:0 0 38px;font-size:16px}
  .cb-sp-quote-text{font-size:1.2rem}
  .cb-sp-timeline{padding-left:34px}
  .cb-sp-tl-dot{left:-29px;width:16px;height:16px}
  .cb-sp-timeline::before{left:10px}
  .cb-sp-photo-grid{grid-template-columns:1fr 1fr}
  .cb-sp-car-btn{width:36px;height:36px;font-size:22px}
}
@media(max-width:480px){
  .cb-sp-cards-grid{grid-template-columns:1fr}
  .cb-sp-stats-grid{gap:20px 24px}
}

/* ── JOURNEY SECTION ── */
.journey-sec{background:var(--gd);padding:72px 7% 56px;overflow:hidden}

/* Road scene — taller, content overlaid inside */
.road-scene{
  position:relative;
  height:360px;           /* taller scene */
  margin:44px 0 0;
  overflow:hidden;
  border-radius:20px;
  background:#3a6b7a;
}

/* Car — fixed at left-centre, never moves */
.car-wrap{
  position:absolute;
  left:22%;
  bottom:68px;            /* sits on road */
  transform:translateX(-50%);
  z-index:20;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.car-svg{width:120px;height:auto}
.car-svg.driving{animation:carBob .35s ease-in-out infinite alternate}
.car-svg.stopped{animation:none}
@keyframes carBob{0%{transform:translateY(0)}100%{transform:translateY(-4px)}}

/* Road dashes */
.road-dashes{
  position:absolute;bottom:22px;left:0;right:0;height:5px;z-index:3;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.7) 0 40px,transparent 40px 80px);
  background-size:80px 100%;
}
.road-dashes.driving{animation:dashScroll .35s linear infinite}
@keyframes dashScroll{from{background-position:0 0}to{background-position:-80px 0}}

/* ── MILESTONE SIGN — uses translateX, not right property ──
   State machine:  off-right → arrive (centre) → depart-left → off-left
   Uses a single transform transition so direction is always correct */
.mile-sign-wrap{
  position:absolute;
  bottom:68px;           /* same level as car */
  left:50%;              /* pivot point */
  transform:translateX(160%);  /* start: off-screen RIGHT */
  transition:transform .65s cubic-bezier(.25,.46,.45,.94),
             opacity  .4s ease;
  z-index:18;
  opacity:0;
  display:flex;
  flex-direction:column;
  align-items:center;
}
/* arrive: sign slides to just ahead of car */
.mile-sign-wrap.arrive{
  transform:translateX(-30%);
  opacity:1;
  transition:transform .65s cubic-bezier(.25,.46,.45,.94),
             opacity  .3s ease;
}
/* depart: sign exits screen LEFT — transform goes negative */
.mile-sign-wrap.depart{
  transform:translateX(-260%);
  opacity:0;
  transition:transform .5s cubic-bezier(.55,0,1,.45),
             opacity  .35s ease .1s;
}
.mile-sign{display:flex;flex-direction:column;align-items:center}
.mile-sign-yr{
  background:var(--sl);color:#fff;
  font-size:20px;font-weight:800;letter-spacing:-0.5px;
  padding:8px 22px;border-radius:10px;
  box-shadow:0 6px 20px rgba(74,144,196,.55);
  white-space:nowrap;
}
.mile-sign-post{width:4px;height:44px;background:rgba(255,255,255,.55);margin:0 auto}

/* ── INFO CARD — overlaid inside the road scene, above car ── */
.jcard-overlay{
  position:absolute;
  top:18px;right:24px;left:32%;   /* right portion of scene */
  z-index:25;
  pointer-events:none;
  opacity:0;
  transform:translateY(10px);
  transition:opacity .4s ease, transform .4s ease;
}
.jcard-overlay.on{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
.jcard-inner{
  background:rgba(10,22,42,.78);
  border:1px solid rgba(255,255,255,.18);
  border-radius:14px;
  padding:20px 24px;
  backdrop-filter:blur(12px);
}
.jcard-yr{font-size:9px;font-weight:700;letter-spacing:2.5px;color:var(--sl);margin-bottom:6px;text-transform:uppercase}
.jcard-title{font-size:19px;font-weight:700;color:#fff;margin-bottom:8px;letter-spacing:-.2px}
.jcard-desc{font-size:12px;color:rgba(255,255,255,.65);line-height:1.65;font-weight:400}
.jcard-stats{display:flex;gap:22px;margin-top:14px;flex-wrap:wrap}
.jstat-n{font-size:22px;font-weight:800;color:var(--sl);letter-spacing:-1px;line-height:1}
.jstat-l{font-size:9px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.5px;margin-top:3px;font-weight:600}

/* Progress dots */
.jdots-row{display:flex;gap:8px;justify-content:center;margin-top:20px;align-items:center}
.jdot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.2);cursor:pointer;transition:all .3s}
.jdot.on{width:24px;border-radius:4px;background:var(--sl)}

/* Controls */
.jcontrols{display:flex;justify-content:center;gap:10px;margin-top:14px;align-items:center}
.jbtn{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.6);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s}
.jbtn:hover{background:rgba(255,255,255,.18);color:#fff}
.jpause{padding:0 16px;border-radius:99px;font-size:11px;font-weight:600;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.5);cursor:pointer;height:32px;display:flex;align-items:center;gap:5px;transition:all .2s;font-family:'Poppins',sans-serif}
.jpause:hover{background:rgba(255,255,255,.16);color:#fff}
/* grant-grid mobile consolidated at end of file */


/* ── VISION & MISSION CARDS ── */
.vm-card{border-radius:20px;padding:40px;position:relative;overflow:hidden;cursor:default;
  transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s ease}
.vm-dark{background:var(--gd)}
.vm-light{background:var(--white);border:1.5px solid var(--bd)}
.vm-card:hover{transform:translateY(-8px) scale(1.015)}
.vm-dark:hover{box-shadow:0 28px 60px rgba(26,58,92,.45)}
.vm-light:hover{box-shadow:0 28px 60px rgba(14,124,123,.18);border-color:var(--gm)}

/* decorative orbs */
.vm-orb{position:absolute;border-radius:50%;pointer-events:none;transition:transform .5s ease,opacity .5s ease}
.vm-orb1{width:160px;height:160px;top:-40px;right:-40px;background:rgba(255,255,255,.05)}
.vm-orb2{width:120px;height:120px;bottom:-30px;left:-30px;background:rgba(255,255,255,.03)}
.vm-orb3{width:160px;height:160px;top:-40px;right:-40px;background:var(--gl);opacity:.4}
.vm-card:hover .vm-orb1{transform:scale(1.3);opacity:.09}
.vm-card:hover .vm-orb2{transform:scale(1.4);opacity:.06}
.vm-card:hover .vm-orb3{transform:scale(1.35);opacity:.65}

/* icon */
.vm-icon-wrap{width:56px;height:56px;border-radius:15px;display:flex;align-items:center;justify-content:center;margin-bottom:22px;position:relative;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.vm-card:hover .vm-icon-wrap{transform:rotate(-8deg) scale(1.15)}
.vm-icon-dark{background:rgba(255,255,255,.12)}
.vm-icon-light{background:var(--gl)}

/* labels & text */
.vm-label{font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--sl);margin-bottom:12px;transition:letter-spacing .3s}
.vm-label-teal{color:var(--gm)}
.vm-card:hover .vm-label{letter-spacing:4px}
.vm-heading{font-size:22px;font-weight:700;line-height:1.25;margin-bottom:16px;letter-spacing:-.3px;transition:color .2s}
.vm-dark .vm-heading{color:#fff}
.vm-heading-dark{color:var(--ink)}
.vm-body{font-size:13px;line-height:1.75;font-weight:400}
.vm-dark .vm-body{color:rgba(255,255,255,.65)}
.vm-body-dark{color:var(--i60)}

/* shine sweep on hover */
.vm-shine{position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.06) 50%,transparent 70%);transform:translateX(-100%);transition:transform .6s ease;pointer-events:none}
.vm-shine-light{background:linear-gradient(120deg,transparent 30%,rgba(14,124,123,.07) 50%,transparent 70%)}
.vm-card:hover .vm-shine{transform:translateX(100%)}

/* value cards hover */
.val-card{background:var(--white);border-radius:14px;padding:22px 18px;border:1px solid var(--bd);text-align:center;
  transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s,border-color .3s}
.val-card:hover{transform:translateY(-6px) scale(1.04);box-shadow:0 16px 40px rgba(26,58,92,.1);border-color:var(--gm)}
.val-card-icon{font-size:28px;margin-bottom:10px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.val-card:hover .val-card-icon{transform:scale(1.25) rotate(-5deg)}


/* mobile nav + responsive consolidated at end of file */

/* ── FLASH (public forms) ────────────────────────────────── */
.form-flash {
  padding: 12px 16px; border-radius: 8px;
  font-size: 13px; margin-bottom: 16px;
}
.form-flash.success { background: #D1FAE5; color: #065F46; }
.form-flash.error   { background: #FEE2E2; color: #991B1B; }

/* ── INNER PAGE HERO ─────────────────────────────────────── */
.page-hero {
  background: var(--gd); padding: 120px 7% 72px;
  margin-top: 64px; position: relative; overflow: hidden;
}
/* Background image support — injected via inline <style> in layout head */
.page-hero.has-bg-img {
  background-size: cover; background-position: center; background-repeat: no-repeat;
}
.page-hero.has-bg-img::before {
  content: ''; position: absolute; inset: 0;
  background: rgba(14,36,64,.78); z-index: 0;
}
.page-hero > * { position: relative; z-index: 1; }
.page-hero .ey { color: var(--sl); margin-bottom: 12px; }
.page-hero .h1 { color: #fff; }
/* Italic emphasis on navy hero must be light — dark forest green is invisible on dark blue */
.page-hero .it { color: #86efac; }
.page-hero .page-sub {
  font-size: 15px; color: rgba(255,255,255,.55);
  max-width: 520px; margin-top: 14px; font-weight: 400;
}

/* ── BREADCRUMB ──────────────────────────────────────────── */
.breadcrumb-bar {
  background: var(--white); border-bottom: 1px solid var(--bd);
  padding: 12px 7%; font-size: 12px; color: var(--i40);
  display: flex; gap: 8px; align-items: center;
}
.breadcrumb-bar a { color: var(--gm); }
.breadcrumb-bar a:hover { text-decoration: underline; }

/* ── STORY DETAIL PAGE ───────────────────────────────────── */
.story-hero-img {
  width: 100%; max-width: 440px; aspect-ratio: 1;
  border-radius: 20px; object-fit: cover;
  box-shadow: 0 24px 64px rgba(26,58,92,.2);
}
.story-quote {
  font-size: 22px; font-weight: 700; font-style: italic;
  color: var(--gd); line-height: 1.4; margin-bottom: 24px;
  border-left: 4px solid var(--gm); padding-left: 20px;
}

/* ── PROGRAMS GRID ───────────────────────────────────────── */
.program-card {
  background: var(--white); border-radius: 16px;
  border: 1.5px solid var(--bd); padding: 32px;
  transition: transform .3s, box-shadow .3s;
}
.program-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(26,58,92,.1);
  border-color: var(--gm);
}

/* ── CONTACT FORM ────────────────────────────────────────── */
.contact-input, .contact-select, .contact-textarea {
  width: 100%; padding: 12px 16px;
  border: 1.5px solid var(--bd); border-radius: 10px;
  font-size: 14px; font-family: 'Poppins', sans-serif;
  color: var(--ink); background: #fff; transition: border-color .2s;
  -webkit-appearance: none;
}
.contact-input:focus, .contact-select:focus, .contact-textarea:focus {
  outline: none; border-color: var(--gm);
  box-shadow: 0 0 0 3px rgba(14,124,123,.1);
}
.contact-textarea { resize: vertical; min-height: 120px; }
.contact-label {
  display: block; font-size: 12px; font-weight: 600;
  color: var(--gd); margin-bottom: 6px;
}
.form-group-pub { margin-bottom: 18px; }

/* ── GRANT APPLY FORM ────────────────────────────────────── */
.grant-tile {
  display: flex; flex-direction: column; align-items: center;
  gap: 10px; padding: 28px 20px; border-radius: 16px;
  border: 1.5px solid var(--bd); background: var(--white);
  cursor: pointer; transition: all .25s; text-align: center;
}
.grant-tile:hover, .grant-tile.selected {
  border-color: var(--gm); background: var(--gl);
  transform: translateY(-3px);
}
.grant-tile-icon { font-size: 36px; }
.grant-tile-title { font-size: 14px; font-weight: 700; color: var(--gd); }
.grant-tile-sub   { font-size: 12px; color: var(--i60); line-height: 1.4; }

/* ── TRANSPARENCY DONUT ──────────────────────────────────── */
.donut-wrap { position: relative; width: 180px; height: 180px; flex-shrink: 0; }
.donut-wrap svg { transform: rotate(-90deg); }
.donut-centre {
  position: absolute; inset: 0;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
}
.donut-pct { font-size: 32px; font-weight: 800; color: var(--gd); line-height: 1; }
.donut-lbl { font-size: 10px; font-weight: 600; color: var(--i40); text-transform: uppercase; letter-spacing: .5px; }

/* ── VM CARDS (Vision/Mission) ───────────────────────────── */
.vm-card {
  border-radius: 20px; padding: 40px; position: relative;
  overflow: hidden; transition: transform .3s;
}
.vm-card:hover { transform: translateY(-4px); }
.vm-dark  { background: var(--gd); }
.vm-light { background: var(--white); border: 1.5px solid var(--bd); }
.vm-orb {
  position: absolute; border-radius: 50%; opacity: .15;
  pointer-events: none;
}
.vm-orb1 { width:180px;height:180px;background:var(--s);top:-60px;right:-50px; }
.vm-orb2 { width:120px;height:120px;background:var(--gm);bottom:-30px;left:-30px; }
.vm-orb3 { width:160px;height:160px;background:var(--g);top:-50px;right:-40px; }
.vm-icon-wrap {
  width: 56px; height: 56px; border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 20px; position: relative; z-index: 1;
}
.vm-icon-dark  { background: rgba(255,255,255,.1); }
.vm-icon-light { background: var(--gl); }
.vm-label {
  font-size: 10px; font-weight: 700; letter-spacing: 2.5px;
  text-transform: uppercase; color: rgba(255,255,255,.5);
  margin-bottom: 12px; position: relative; z-index: 1;
}
.vm-label-teal { color: var(--gm); }
.vm-heading {
  font-size: 20px; font-weight: 700; color: #fff; line-height: 1.3;
  margin-bottom: 14px; position: relative; z-index: 1;
}
.vm-heading-dark { color: var(--gd); }
.vm-body {
  font-size: 13px; color: rgba(255,255,255,.6); line-height: 1.75;
  position: relative; z-index: 1;
}
.vm-body-dark { color: var(--i60); }
.vm-shine {
  position: absolute; top: 0; left: 0; right: 0;
  height: 1px; background: linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);
}
.vm-shine-light {
  background: linear-gradient(90deg,transparent,rgba(14,124,123,.2),transparent);
}

/* ── VALUES CARDS ────────────────────────────────────────── */
.val-card {
  background: var(--cream); border-radius: 14px;
  padding: 22px 18px; border: 1.5px solid var(--bd);
  transition: all .25s;
}
.val-card:hover {
  border-color: var(--gm); background: var(--gl);
  transform: translateY(-3px);
}
.val-card-icon { font-size: 28px; margin-bottom: 10px; }

/* ── MAP CONTAINER ───────────────────────────────────────── */
.map-container {
  position: relative; border-radius: 18px; overflow: visible;
  box-shadow: 0 8px 40px rgba(0,0,0,.08);
}
.map-img { width: 100%; height: auto; aspect-ratio: 1 / 1; display: block; border-radius: 18px; }
.map-overlay { position: absolute; inset: 0; pointer-events: none; }

/* ── MAP MARKERS ─────────────────────────────────────────── */
.marker-wrap {
  position: absolute; transform: translate(-50%,-50%);
  cursor: pointer; pointer-events: all; z-index: 10;
}
.marker {
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--g); border: 3px solid #fff;
  box-shadow: 0 3px 12px rgba(27,94,59,.4);
  display: flex; align-items: center; justify-content: center;
  transition: transform .2s, box-shadow .2s;
  position: relative;
}
.marker::after {
  content: ''; position: absolute; inset: -4px; border-radius: 50%;
  border: 2px solid rgba(27,94,59,.3);
  animation: ping 2s ease infinite;
}
@keyframes ping {
  0% { transform: scale(1); opacity: .8; }
  100% { transform: scale(1.8); opacity: 0; }
}
.marker:hover { transform: scale(1.25); box-shadow: 0 6px 20px rgba(27,94,59,.5); }
.marker.hq { background: var(--s); width: 34px; height: 34px; }
.marker.hq::after { border-color: rgba(21,101,168,.4); }
.marker-dot { width: 8px; height: 8px; border-radius: 50%; background: #fff; }
.marker-tip {
  position: absolute; bottom: calc(100% + 8px);
  left: 50%; transform: translateX(-50%);
  background: var(--ink); color: #fff; border-radius: 6px;
  padding: 5px 10px; font-size: 10px; font-weight: 600;
  white-space: nowrap; opacity: 0; pointer-events: none;
  transition: opacity .2s; z-index: 20;
}
.marker-tip::after {
  content: ''; position: absolute; top: 100%; left: 50%;
  transform: translateX(-50%);
  border: 4px solid transparent; border-top-color: var(--ink);
}
.marker-wrap:hover .marker-tip { opacity: 1; }
.marker-wrap:hover { z-index: 30; }

/* ── JOURNEY SECTION ─────────────────────────────────────── */
.journey-sec {
  background: var(--gd); padding: 80px 7% 40px;
  position: relative; overflow: hidden;
}
.road-scene {
  position: relative; height: 220px; margin: 32px 0;
  border-radius: 16px; overflow: hidden; background: #0a1525;
}
.car-wrap {
  position: absolute; left: 15%; bottom: 56px; z-index: 20;
  transition: left .6s ease;
}
.car-svg { width: 120px; }
.car-svg.driving { animation: carBob .6s ease-in-out infinite alternate; }
@keyframes carBob { from{transform:translateY(0)} to{transform:translateY(-2px)} }
.mile-sign-wrap {
  position: absolute; right: 18%; bottom: 60px; z-index: 15;
  transition: right .5s ease;
}
.mile-sign { display: flex; flex-direction: column; align-items: center; }
.mile-sign-yr {
  background: var(--s); color: #fff; font-size: 14px; font-weight: 800;
  padding: 4px 12px; border-radius: 6px; border: 2px solid #fff;
  letter-spacing: 1px;
}
.mile-sign-post { width: 3px; height: 28px; background: #fff; }
.jcard-overlay {
  position: absolute; right: 3%; top: 8px; width: 42%;
  background: rgba(14,124,123,.12); backdrop-filter: blur(8px);
  border-radius: 12px; border: 1px solid rgba(255,255,255,.1);
  overflow: hidden; padding: 16px;
}
.jcard-inner { color: #fff; overflow: hidden; }
.road-dashes {
  position: absolute; bottom: 52px; left: 0; right: 0; height: 4px;
  background: repeating-linear-gradient(90deg,#fff 0,#fff 28px,transparent 28px,transparent 48px);
  opacity: .25;
}
.road-dashes.driving { animation: dashMove 1s linear infinite; }
@keyframes dashMove { from{background-position:0} to{background-position:48px} }
.jdots-row { display: flex; justify-content: center; gap: 8px; margin-bottom: 20px; flex-wrap: wrap; }
.jdot-btn {
  width: 9px; height: 9px; border-radius: 50%;
  background: rgba(255,255,255,.25); border: none; cursor: pointer;
  transition: all .2s; padding: 0;
}
.jdot-btn.on { background: var(--gm); transform: scale(1.3); }
.jcontrols { display: flex; justify-content: center; align-items: center; gap: 12px; }
.jbtn {
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255,255,255,.1); color: #fff; border: 1px solid rgba(255,255,255,.2);
  cursor: pointer; font-size: 15px; transition: all .2s; font-family: inherit;
}
.jbtn:hover { background: rgba(255,255,255,.2); }
.jpause {
  background: rgba(255,255,255,.1); color: rgba(255,255,255,.7);
  border: 1px solid rgba(255,255,255,.15); border-radius: 8px;
  padding: 7px 16px; font-size: 12px; font-weight: 600; cursor: pointer;
  transition: all .2s; font-family: inherit;
}
.jpause:hover { background: rgba(255,255,255,.2); }

/* ── CAROUSEL (news & success stories) ──────────────────── */
.carousel-outer { overflow: hidden; position: relative; }
.carousel-track { display: flex; gap: 20px; transition: transform .6s cubic-bezier(.4,0,.2,1); will-change: transform; }
.carousel-card  { flex: 0 0 calc(33.333% - 14px); min-width: 0; }

/* ── DRAG SCROLL (story cards) ───────────────────────────── */
[style*="overflow-x:auto"] { cursor: grab; }
[style*="overflow-x:auto"].dragging { cursor: grabbing; user-select: none; }

/* ══════════════════════════════════════════════════════════
   COMPREHENSIVE MOBILE RESPONSIVE
   ══════════════════════════════════════════════════════════ */

/* ── Mobile nav button & drawer ── */
.mobile-menu-btn {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 40px; height: 40px;
  padding: 0;
  background: none;
  border: 1.5px solid var(--bd);
  border-radius: 9px;
  cursor: pointer;
}
.mobile-menu-btn span {
  display: block;
  width: 20px; height: 2px;
  background: var(--ink);
  border-radius: 2px;
  transition: transform .25s, opacity .25s;
}
.nav-drawer {
  position: fixed;
  top: 64px; left: 0; right: 0;
  background: rgba(245,248,250,.98);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--bd);
  padding: 12px 5% 20px;
  display: none;
  flex-direction: column;
  gap: 3px;
  z-index: 299;
  box-shadow: 0 8px 32px rgba(0,0,0,.1);
}
.nav-drawer.open { display: flex; }
.nav-drawer a {
  font-size: 14px;
  font-weight: 500;
  color: var(--i60);
  padding: 11px 14px;
  border-radius: 9px;
  transition: background .15s, color .15s;
  display: block;
}
.nav-drawer a:hover { background: var(--gl); color: var(--g); }
.nav-drawer .ncta-mob {
  background: var(--s);
  color: #fff !important;
  font-weight: 600;
  text-align: center;
  margin-top: 6px;
  border-radius: 9px;
}

/* ── 900px — tablets ── */
@media (max-width: 900px) {
  /* Nav */
  .nlinks { display: none; }
  .mobile-menu-btn { display: flex; }

  /* Hero: no forced full-height */
  .hero { grid-template-columns: 1fr; height: auto; min-height: auto; }
  .hr   { display: none; }
  .hl   { padding: 84px 6% 36px; }
  .hstats { flex-wrap: wrap; gap: 0; }

  /* Section */
  .sec { padding: 60px 5%; }
  .sh  { flex-direction: column; gap: 12px; margin-bottom: 32px; }

  /* Partner logos */
  .partners-sec { padding: 40px 5%; }
  .logos-grid   { grid-template-columns: repeat(4, 1fr); gap: 10px; }

  /* Programs / Services / Testimonials */
  .pgrid { grid-template-columns: 1fr 1fr; gap: 16px; }
  .sgrid { grid-template-columns: 1fr 1fr; gap: 16px; }
  .tgrid { grid-template-columns: 1fr; }

  /* Impact */
  .igrid { grid-template-columns: repeat(2, 1fr); }

  /* Map */
  .map-layout { grid-template-columns: 1fr; gap: 32px; }

  /* Gallery */
  .gstrip { height: 180px; }

  /* Stories / News — horizontal scroll */
  .ssld { min-width: 82vw; }
  .nc   { min-width: 82vw; }

  /* Transparency */
  .trgrid { grid-template-columns: 1fr; }

  /* CSR */
  .csrl { grid-template-columns: 1fr; gap: 32px; }

  /* Donate */
  .dlayo { grid-template-columns: 1fr; gap: 32px; }

  /* Bano Udyami */
  .buw { grid-template-columns: 1fr; padding: 28px 22px; gap: 24px; }

  /* Calculator */
  .cpres { grid-template-columns: repeat(3, 1fr); }
  .cbox  { padding: 24px 18px; }

  /* Newsletter */
  .nlin { flex-direction: column; padding: 24px; }
  .nlf  { width: 100%; }

  /* Journey */
  .journey-sec { padding: 52px 5% 40px; }
  .road-scene  { height: 260px; }

  /* Footer (overrides inline styles) */
  #siteFooter { padding: 48px 5% 28px !important; }
  #footerGrid {
    grid-template-columns: 1fr 1fr !important;
    gap: 28px !important;
  }

  /* Vision/Mission */
  .vm-grid   { grid-template-columns: 1fr !important; }
  .values-grid { grid-template-columns: 1fr 1fr !important; }
  .sdg-grid  { grid-template-columns: repeat(3, 1fr) !important; }
  .grant-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Inline-grid responsive helpers (home.php) */
  .hg2        { grid-template-columns: 1fr !important; }
  .hg3        { grid-template-columns: 1fr 1fr !important; }
  .hg4        { grid-template-columns: 1fr 1fr !important; }
  .hg-values  { grid-template-columns: 1fr 1fr !important; }
  .hg-map     { grid-template-columns: 1fr !important; }
  .hg-form    { grid-template-columns: 1fr !important; }
  /* Fix hero stats separator at tablet width */
  .hsi + .hsi { border-left: none !important; padding-left: 0 !important; }

  /* Carousel: become horizontal scroll on mobile */
  .carousel-outer { overflow-x: auto !important; scrollbar-width: none; }
  .carousel-outer::-webkit-scrollbar { display: none; }
  .carousel-card  { flex: 0 0 min(280px, 80vw) !important; }

  /* Disable scroll-reveal on mobile — avoids blank-space flicker */
  .rv, .rvl, .rvr {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .sg > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  /* Section header: left-align when stacked */
  .sh { align-items: flex-start !important; }

  /* Gallery: featured-first grid on mobile */
  #gallery {
    height: auto !important;
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 4px !important;
  }
  /* First gallery image spans full width as featured */
  #gallery > div:first-child {
    grid-column: 1 / -1 !important;
    flex: none !important;
    aspect-ratio: 16/9 !important;
    height: auto !important;
  }
  /* Remaining images: square thumbnails */
  #gallery > div:not(:first-child) {
    flex: none !important;
    aspect-ratio: 1/1 !important;
    height: auto !important;
  }

}

/* ── 640px — large phones ── */
@media (max-width: 640px) {
  /* Section */
  .sec { padding: 44px 5%; }

  /* Hero */
  .hl { padding: 80px 5% 28px; }
  .h-sub { font-size: 13px; }
  .hstats { padding-top: 16px; }
  .hsi + .hsi { border-left: none; padding-left: 0; }
  .h-acts { flex-direction: column; gap: 8px; }
  .h-acts .bp, .h-acts .bs { width: 100%; justify-content: center; text-align: center; }

  /* Partners */
  .logos-grid { grid-template-columns: repeat(3, 1fr); }

  /* Programs / Services — single col */
  .pgrid { grid-template-columns: 1fr; }
  .sgrid { grid-template-columns: 1fr; }

  /* Impact */
  .ibig  { font-size: 38px; }
  .icell { padding: 28px 14px; }

  /* Gallery — horizontal scroll */
  .gstrip { overflow-x: auto; height: 160px; flex-wrap: nowrap; }
  .gp { flex: none; min-width: 220px; height: 160px; }

  /* Stories / News */
  .ssld { min-width: 88vw; }
  .nc   { min-width: 88vw; }

  /* Journey card: stack below scene */
  .jcard-overlay {
    position: static !important;
    width: 100% !important;
    top: auto !important; right: auto !important; bottom: auto !important; left: auto !important;
    background: rgba(10,22,42,.85) !important;
    margin-top: 10px;
    border-radius: 12px;
    padding: 14px 16px;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
  }
  .jcard-overlay.on { opacity: 1 !important; transform: none !important; }
  .road-scene { height: 210px; border-radius: 14px; }
  .journey-sec { padding: 40px 5% 32px; }
  .jcard-stats { gap: 14px; }
  .jstat-n { font-size: 18px; }

  /* Bano Udyami */
  .buw { padding: 22px 16px; border-radius: 16px; }
  .frow2 { grid-template-columns: 1fr; }

  /* Calculator */
  .cpres { grid-template-columns: repeat(2, 1fr); }
  .cbox  { padding: 18px 14px; }
  .cr    { flex-direction: column; gap: 12px; align-items: flex-start; }

  /* Newsletter */
  .nlin  { padding: 20px; }
  .nlf   { flex-direction: column; }

  /* Footer */
  #siteFooter { padding: 40px 5% 24px !important; }
  #footerGrid { grid-template-columns: 1fr !important; gap: 24px !important; }
  #footerBottom { flex-direction: column; align-items: flex-start !important; gap: 8px !important; }

  /* Vision/Mission cards */
  .vm-card { padding: 28px 20px; }
  .values-grid { grid-template-columns: 1fr 1fr !important; }
  .sdg-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .grant-grid { grid-template-columns: 1fr !important; }

  /* Page hero */
  .page-hero { padding: 96px 5% 44px; }

  /* Inline-grid helpers: collapse to 1 col on phones */
  .hg2, .hg3, .hg4, .hg-values { grid-template-columns: 1fr !important; }

  /* Newsletter: stack email + button */
  #nlFormRow { flex-direction: column !important; }
  #nlFormRow input, #nlFormRow button { width: 100% !important; box-sizing: border-box !important; }
}

/* ── 400px — small phones ── */
@media (max-width: 400px) {
  .logos-grid { grid-template-columns: repeat(2, 1fr); }
  .ibig { font-size: 30px; }
  .icell { padding: 22px 10px; }
  .hsn  { font-size: 20px; }
  .sec  { padding: 36px 4%; }
  .pgrid, .sgrid { grid-template-columns: 1fr; }
  .values-grid { grid-template-columns: 1fr !important; }
  .hg2, .hg3, .hg4, .hg-values { grid-template-columns: 1fr !important; }
  .cpres { grid-template-columns: 1fr 1fr; }
  .buw  { padding: 18px 12px; }
  .vm-card { padding: 22px 16px; }
  .road-scene { height: 180px; }
  #footerGrid { gap: 20px !important; }
}

/* ── Dropdown Navigation ── */
.nlinks li.has-dropdown { position: relative; }
.nlinks .nav-top { display: flex; align-items: center; gap: 4px; }
.nav-arrow { font-size: 9px; opacity: .5; transition: transform .2s; display: inline-block; }
.nlinks li.has-dropdown:hover .nav-arrow { transform: rotate(180deg); opacity: .8; }
/* Invisible bridge fills the gap so moving the cursor into the dropdown doesn't lose hover */
.nlinks li.has-dropdown::after {
  content: ''; position: absolute; top: 100%; left: -12px; right: -12px; height: 10px;
}
.nav-dropdown {
  position: absolute; top: calc(100% + 10px); left: 50%;
  background: #fff; border-radius: 10px; min-width: 200px; list-style: none;
  box-shadow: 0 8px 32px rgba(26,58,92,.14); border: 1px solid var(--bd);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .18s, visibility .18s, transform .18s;
  transform: translateX(-50%) translateY(-6px);
  z-index: 500; padding: 6px;
}
.nlinks li.has-dropdown:hover .nav-dropdown {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.nav-dropdown li a {
  display: block; padding: 9px 14px; font-size: 13px; color: var(--navy);
  border-radius: 7px; font-weight: 500; white-space: nowrap;
  transition: background .15s, color .15s;
}
.nav-dropdown li a:hover { background: var(--gl); color: var(--g); }

/* ── Mobile group nav ── */
.mob-nav-group { border-bottom: 1px solid var(--bd); padding: 4px 0; }
.mob-nav-parent {
  display: block; padding: 10px 20px; font-size: 14px; font-weight: 700;
  color: var(--navy); letter-spacing: .3px;
}
.mob-nav-child {
  display: block; padding: 7px 20px 7px 32px; font-size: 13px;
  color: var(--i60); transition: color .15s;
}
.mob-nav-child:hover { color: var(--g) !important; }
