:root{
  --navy:#0A1628;--blue-l:#2563EB;--blue-v:#3B82F6;
  --cyan:#06B6D4;--green:#10B981;--green-dk:#059669;--green-lt:#34D399;
  --hero-bg:#EEF3FF;--off:#F8FAFF;
  --g50:#F1F5F9;--g100:#E2E8F0;--g400:#94A3B8;--g500:#64748B;--g600:#475569;--g800:#1E293B;
  --gb:linear-gradient(135deg,#1A4FBF,#2563EB);
  --gg:linear-gradient(135deg,#059669,#10B981);
  --gh:linear-gradient(135deg,#0A1628 0%,#0F2044 40%,#1A3A6B 100%);
  --s1:0 2px 8px rgba(10,22,40,.07);
  --s2:0 8px 32px rgba(10,22,40,.11);
  --s3:0 20px 60px rgba(10,22,40,.16);
  --r:16px;--rl:24px;--rx:32px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Plus Jakarta Sans',sans-serif;color:var(--g800);background:#fff;overflow-x:hidden;line-height:1.6}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:1000;height:68px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.97);backdrop-filter:blur(18px);border-bottom:1px solid rgba(10,22,40,.07);box-shadow:0 2px 16px rgba(10,22,40,.06);transition:all .3s}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.lm{width:38px;height:38px;background:var(--gb);border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:17px;box-shadow:0 4px 14px rgba(37,99,235,.38)}
.lt{color:var(--navy);font-weight:700;font-size:16px;line-height:1.2}
.lt span{display:block;font-size:10px;font-weight:500;color:var(--blue-l);letter-spacing:1.5px;text-transform:uppercase}
.nl{display:flex;gap:28px;list-style:none}
.nl a{color:var(--g600);text-decoration:none;font-size:14px;font-weight:500;transition:color .2s}
.nl a:hover{color:var(--blue-l)}
.ncta{background:var(--gb);color:#fff;padding:9px 20px;border-radius:8px;font-weight:600;font-size:14px;text-decoration:none;transition:all .2s;box-shadow:0 4px 14px rgba(37,99,235,.32)}
.ncta:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(37,99,235,.46)}
.hbg{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px}
.hbg span{width:22px;height:2px;background:var(--navy);border-radius:2px}
.mm{display:none;position:fixed;top:68px;left:0;right:0;z-index:999;background:rgba(255,255,255,.98);backdrop-filter:blur(18px);padding:20px 5% 24px;border-bottom:1px solid var(--g100);box-shadow:0 8px 28px rgba(10,22,40,.10)}
.mm.open{display:flex;flex-direction:column;gap:4px}
.mm a{padding:11px 0;color:var(--g800);text-decoration:none;font-size:15px;font-weight:500;border-bottom:1px solid var(--g50)}
.mm a.cta-link{border:none;margin-top:8px;background:var(--gb);color:#fff;padding:12px 20px;border-radius:10px;text-align:center;font-weight:700}

/* ── HERO ── */
#home{background:var(--hero-bg);position:relative;overflow:hidden;display:flex;align-items:flex-start;padding-top:68px}
.hgrid{position:absolute;inset:0;background-image:linear-gradient(rgba(37,99,235,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,.05) 1px,transparent 1px);background-size:54px 54px;pointer-events:none}
.hgl{position:absolute;top:-100px;left:-60px;width:550px;height:550px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.09) 0%,transparent 68%);pointer-events:none}
.hgr{position:absolute;bottom:-60px;right:5%;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(16,185,129,.07) 0%,transparent 68%);pointer-events:none}
.hero-inner{position:relative;z-index:2;max-width:1400px;margin:0 auto;width:100%;display:grid;grid-template-columns:1fr 1.05fr;align-items:center;padding:52px 5% 40px;gap:20px}
.hcopy{padding-bottom:0}
.hbadge{display:inline-flex;align-items:center;gap:8px;background:rgba(16,185,129,.10);border:1px solid rgba(16,185,129,.28);color:var(--green-dk);padding:6px 14px;border-radius:100px;font-size:11.5px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;margin-bottom:22px}
.hbadge::before{content:'';width:6px;height:6px;background:var(--green);border-radius:50%;animation:blink 2s infinite}
@keyframes blink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.5)}}
.htitle{font-family:'DM Serif Display',serif;font-size:clamp(34px,4vw,60px);color:var(--navy);line-height:1.08;margin-bottom:20px}
.htitle em{font-style:italic;color:var(--blue-l)}
.htitle .hl{background:linear-gradient(130deg,#1A4FBF,#06B6D4);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hsub{font-size:16px;color:var(--g500);line-height:1.78;max-width:460px;margin-bottom:32px}
.hacts{display:flex;gap:12px;flex-wrap:wrap}
.bp{background:var(--gb);color:#fff;padding:13px 26px;border-radius:10px;font-weight:700;font-size:15px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;box-shadow:0 8px 28px rgba(37,99,235,.36);transition:all .3s}
.bp:hover{transform:translateY(-2px);box-shadow:0 16px 44px rgba(37,99,235,.5)}
.bg2{background:#fff;border:1.5px solid var(--g100);color:var(--navy);padding:13px 26px;border-radius:10px;font-weight:600;font-size:15px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;box-shadow:var(--s1);transition:all .25s}
.bg2:hover{border-color:var(--blue-l);color:var(--blue-l);box-shadow:var(--s2)}
.hstats{display:flex;gap:28px;margin-top:38px;padding-top:30px;border-top:1px solid rgba(10,22,40,.09);flex-wrap:wrap}
.hsn{font-family:'DM Serif Display',serif;font-size:32px;color:var(--navy);line-height:1}
.hsn span{color:var(--blue-l)}
.hsl{font-size:12px;color:var(--g500);margin-top:4px;font-weight:500}

/* phones column */
.hphones{position:relative;display:flex;justify-content:center;align-items:flex-start;padding-top:16px;padding-bottom:20px;overflow:visible}
.pstage{position:relative;width:480px;height:560px;flex-shrink:0}
.ph{position:absolute;background:#0B1A30;border-radius:38px;overflow:hidden;border:2px solid rgba(255,255,255,.12)}
.ph-c{width:222px;left:50%;transform:translateX(-50%);top:0;z-index:3;box-shadow:0 40px 90px rgba(10,22,40,.28),0 0 0 1px rgba(37,99,235,.18),0 0 70px rgba(37,99,235,.13);animation:lC 4s ease-in-out infinite}
@keyframes lC{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-12px)}}
.ph-l{width:192px;left:0;top:40px;transform:rotate(-7deg);z-index:2;box-shadow:0 28px 70px rgba(10,22,40,.20),0 0 50px rgba(16,185,129,.09);animation:lL 4.5s ease-in-out infinite}
@keyframes lL{0%,100%{transform:rotate(-7deg) translateY(0)}50%{transform:rotate(-7deg) translateY(-8px)}}
.ph-r{width:192px;right:0;top:40px;transform:rotate(7deg);z-index:2;box-shadow:0 28px 70px rgba(10,22,40,.20),0 0 50px rgba(6,182,212,.09);animation:lR 5s ease-in-out infinite .6s}
@keyframes lR{0%,100%{transform:rotate(7deg) translateY(0)}50%{transform:rotate(7deg) translateY(-8px)}}
.pnotch{width:58px;height:15px;background:#06101f;border-radius:0 0 11px 11px;margin:0 auto 8px}
.pbody{padding:0 10px 14px}
.papp{border-radius:12px;padding:12px;margin-bottom:8px;color:#fff}
.papp.bl{background:var(--gb)}.papp.gn{background:var(--gg)}
.pat{font-size:11px;font-weight:700}.pas{font-size:9px;opacity:.75;margin-top:1px}
.prow{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.09);border-radius:9px;padding:8px 9px;margin-bottom:5px;color:#fff;display:flex;justify-content:space-between;align-items:center}
.rl{font-size:9px;opacity:.58}.rv{font-size:13px;font-weight:800;color:#67E8F9}
.rv.g{color:#6EE7B7}
.pli{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.05);border-radius:7px;padding:7px 8px;margin-bottom:4px}
.ld{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.lt2{font-size:9px;color:rgba(255,255,255,.7)}
.pbtns{display:flex;gap:4px;margin-top:7px}
.pb{flex:1;padding:7px;border-radius:7px;text-align:center;font-size:9px;font-weight:700}
.pb.b{background:var(--blue-l);color:#fff}
.pb.gn{background:linear-gradient(135deg,#059669,#10B981);color:#fff}
.pb.gh{background:rgba(255,255,255,.07);color:rgba(255,255,255,.68)}
.ekpis{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:7px}
.ek{background:rgba(255,255,255,.07);border-radius:8px;padding:8px}
.ekl{font-size:8px;color:rgba(255,255,255,.5);font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.ekv{font-size:14px;font-weight:800;color:#fff;margin-top:1px}
.ekv.b{color:#93C5FD}.ekv.g{color:#6EE7B7}
.ebars{display:flex;align-items:flex-end;gap:4px;height:36px;background:rgba(255,255,255,.04);border-radius:8px;padding:5px 7px 4px;margin-bottom:7px}
.ebar{flex:1;border-radius:2px 2px 0 0;background:rgba(37,99,235,.65)}
.ebar.hi{background:#3B82F6}.ebar.gn{background:#10B981}
.eitem{display:flex;justify-content:space-between;align-items:center;background:rgba(255,255,255,.05);border-radius:7px;padding:6px 8px;margin-bottom:4px}
.eil{font-size:9px;color:rgba(255,255,255,.72)}
.etg{font-size:8px;padding:2px 6px;border-radius:100px;font-weight:700}
.etg.ok{background:rgba(16,185,129,.2);color:#6EE7B7}
.etg.pe{background:rgba(245,158,11,.2);color:#FCD34D}
.chip{position:absolute;background:#fff;border:1px solid rgba(10,22,40,.09);border-radius:13px;padding:9px 13px;box-shadow:0 8px 28px rgba(10,22,40,.11);display:flex;align-items:center;gap:9px;white-space:nowrap;z-index:10}
.cico{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.ctl{font-size:12px;font-weight:700;color:var(--navy)}.csl{font-size:10px;color:var(--g500);margin-top:1px}
.ca{left:-72px;bottom:140px;animation:cf 3s ease-in-out infinite}
.cb{right:-76px;top:90px;animation:cf 3.5s ease-in-out infinite .8s}
.cc{right:-76px;bottom:100px;animation:cf 4s ease-in-out infinite 1.6s}
@keyframes cf{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

/* ── TRUST BAR ── */
#trust{background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 40%,#c7d2fe 100%);overflow:hidden}
.trust-top{padding:20px 5%;display:flex;align-items:center;justify-content:center;border-bottom:1px solid rgba(37,99,235,.12)}
.trust-top-lbl{font-size:13px;font-weight:600;color:rgba(37,99,235,.6);text-transform:uppercase;letter-spacing:1.5px;text-align:center}
.trust-marquee-wrap{position:relative;padding:22px 0;overflow:hidden}
.trust-marquee-wrap::before,.trust-marquee-wrap::after{content:'';position:absolute;top:0;bottom:0;width:120px;z-index:2}
.trust-marquee-wrap::before{left:0;background:linear-gradient(90deg,#dbeafe,transparent)}
.trust-marquee-wrap::after{right:0;background:linear-gradient(-90deg,#c7d2fe,transparent)}
.trust-track{display:flex;width:max-content;animation:marquee 28s linear infinite}
.trust-track:hover{animation-play-state:paused}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.titem{display:flex;align-items:center;gap:10px;padding:0 40px;font-size:15px;font-weight:700;color:rgba(30,58,138,.75);border-right:1px solid rgba(37,99,235,.15);white-space:nowrap;transition:color .2s}
.titem:hover{color:#1e3a8a}
.tiico{font-size:20px}
.titem-sub{font-size:11px;color:rgba(37,99,235,.5);font-weight:500;margin-top:1px}

/* ── SHARED ── */
section{padding:92px 5%}
.wrap{max-width:1400px;margin:0 auto}
.stag{display:inline-flex;align-items:center;gap:6px;background:rgba(37,99,235,.07);border:1px solid rgba(37,99,235,.18);color:var(--blue-l);padding:5px 12px;border-radius:100px;font-size:11.5px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;margin-bottom:13px}
.stitle{font-family:'DM Serif Display',serif;font-size:clamp(28px,3vw,46px);color:var(--navy);line-height:1.13;margin-bottom:13px}
.stitle em{font-style:italic;color:var(--blue-l)}
.ssub{font-size:16px;color:var(--g500);max-width:580px;line-height:1.76}

/* ── SOLUTIONS ── */
#solutions{background:#fff}
.shdr{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:48px;gap:20px;flex-wrap:wrap}
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.sc{border:1px solid var(--g100);border-radius:var(--rl);padding:30px;background:#fff;position:relative;overflow:hidden;transition:all .32s}
.sc::before{content:'';position:absolute;inset:0;background:var(--gb);opacity:0;transition:opacity .32s}
.sc:hover{transform:translateY(-5px);box-shadow:var(--s3);border-color:transparent}
.sc:hover::before{opacity:1}
.sc:hover .sico{background:rgba(255,255,255,.14)}
.sc:hover .stit,.sc:hover .sdsc,.sc:hover .slnk,.sc:hover .stag2{color:#fff}
.sc:hover .stag2{background:rgba(255,255,255,.14)}
.sc.ft{background:var(--gb);border-color:transparent;box-shadow:0 0 40px rgba(37,99,235,.22)}
.sc.ft .stit,.sc.ft .sdsc,.sc.ft .slnk{color:#fff}
.sc.ft .sico{background:rgba(255,255,255,.14)}
.sc.ft .stag2{background:rgba(255,255,255,.14);color:#fff}
.sin{position:relative;z-index:1}
.sico{width:50px;height:50px;border-radius:13px;background:var(--g50);display:flex;align-items:center;justify-content:center;font-size:23px;margin-bottom:16px;transition:background .32s}
.stit{font-size:16.5px;font-weight:700;color:var(--navy);margin-bottom:8px;transition:color .32s}
.sdsc{font-size:13.5px;color:var(--g500);line-height:1.7;margin-bottom:15px;transition:color .32s}
.stags2{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:14px}
.stag2{background:var(--g50);color:var(--g600);font-size:11px;font-weight:600;padding:3px 9px;border-radius:100px;transition:all .32s}
.slnk{font-size:13px;font-weight:700;color:var(--blue-l);text-decoration:none;display:flex;align-items:center;gap:4px;transition:color .32s}

/* ── EDUCATION ── */
#education{background:var(--off)}
.egrid{display:grid;grid-template-columns:1fr 1fr;gap:68px;align-items:center}
.efs{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:28px}
.ef{background:#fff;border:1px solid var(--g100);border-radius:var(--r);padding:17px;transition:all .22s}
.ef:hover{box-shadow:var(--s2);transform:translateY(-2px)}
.efico{font-size:21px;margin-bottom:6px}
.eftit{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:3px}
.efdsc{font-size:12px;color:var(--g500);line-height:1.6}
.dash{background:#fff;border:1px solid var(--g100);border-radius:var(--rx);box-shadow:var(--s3);overflow:hidden}
.dbar{background:var(--navy);padding:12px 17px;display:flex;align-items:center;gap:9px}
.dd{width:9px;height:9px;border-radius:50%}
.dttl{color:rgba(255,255,255,.76);font-size:12px;font-weight:600;margin-left:4px}
.dbody{padding:17px}
.krow{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}
.kpi{background:var(--g50);border:1px solid var(--g100);border-radius:11px;padding:12px}
.kl{font-size:10px;color:var(--g500);font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.kv{font-size:19px;font-weight:800;color:var(--navy);line-height:1;margin-top:1px}
.kv.b{color:var(--blue-l)}.kv.g{color:var(--green)}
.kc{font-size:10px;color:var(--green);margin-top:1px}
.carea{background:var(--g50);border-radius:11px;padding:13px;margin-bottom:11px;height:86px}
.cbars{display:flex;align-items:flex-end;gap:5px;height:58px}
.cbar{flex:1;border-radius:3px 3px 0 0;background:var(--gb);opacity:.7}
.cbar.hi{opacity:1;background:var(--blue-l)}.cbar.gn{background:var(--gg);opacity:.9}
.dtbl{width:100%;border-collapse:collapse}
.dtbl th{font-size:10px;color:var(--g500);font-weight:600;text-transform:uppercase;padding:5px 7px;text-align:left;border-bottom:1px solid var(--g100)}
.dtbl td{font-size:11px;padding:7px;border-bottom:1px solid var(--g50);color:var(--g800)}
.dbdg{font-size:10px;font-weight:600;padding:2px 7px;border-radius:100px}
.dbdg.ok{background:rgba(16,185,129,.1);color:var(--green)}
.dbdg.pe{background:rgba(245,158,11,.1);color:#D97706}

/* ── MUNICIPAL ── */
#municipal{background:#fff}
.ggrid{display:grid;grid-template-columns:1fr 1fr;gap:68px;align-items:center}
.gapps{display:flex;flex-direction:column;gap:12px;margin-top:26px}
.gapp{background:#fff;border:1px solid var(--g100);border-radius:var(--r);padding:16px 18px;display:flex;align-items:center;gap:14px;transition:all .22s}
.gapp:hover{border-color:var(--blue-v);box-shadow:var(--s2);transform:translateX(4px)}
.gico{width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0}
.gtit{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:2px}
.gdsc{font-size:12.5px;color:var(--g500)}
.gpwrap{display:flex;justify-content:center}
.gph{width:252px;background:var(--navy);border-radius:38px;overflow:hidden;border:3px solid rgba(255,255,255,.1);box-shadow:var(--s3),0 0 50px rgba(16,185,129,.12)}
.gpn{width:70px;height:17px;background:#060d1a;border-radius:0 0 11px 11px;margin:0 auto}
.gpb{padding:0 12px 20px}
.gphdr{background:var(--gg);padding:17px 14px 22px;margin:0 -12px 14px;color:#fff}
.gpht{font-size:15px;font-weight:700}
.gphs{font-size:11px;opacity:.78}
.gpmenu{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.gpmi{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:11px;padding:12px 8px;text-align:center;color:#fff}
.gpmiico{font-size:18px;margin-bottom:3px}
.gpmitxt{font-size:9.5px;opacity:.72}
.gpbill{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:11px;padding:12px}
.gpbt{font-size:9.5px;color:rgba(255,255,255,.5);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:7px}
.gpbr{display:flex;justify-content:space-between;margin-bottom:5px}
.gpbl{font-size:11px;color:rgba(255,255,255,.62)}
.gpbv{font-size:11.5px;font-weight:700;color:#fff}
.gptt{border-top:1px solid rgba(255,255,255,.1);padding-top:6px;margin-top:3px;display:flex;justify-content:space-between;align-items:center}
.gpttl{font-size:11.5px;color:rgba(255,255,255,.9);font-weight:700}
.gpttv{font-size:14px;font-weight:800;color:var(--green-lt)}
.gppay{width:100%;background:var(--gg);border:none;border-radius:9px;padding:11px;color:#fff;font-size:12px;font-weight:700;margin-top:9px;cursor:pointer}

/* ── TECH STACK ── */
#tech{background:var(--navy);padding:76px 5%}
.tchdr{text-align:center;margin-bottom:52px}
.tchdr .stitle{color:#fff}
.tchdr .ssub{color:rgba(255,255,255,.55);margin:0 auto}
.tcgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}
.tcc{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:var(--r);padding:24px;transition:all .3s}
.tcc:hover{background:rgba(255,255,255,.08);border-color:rgba(37,99,235,.38);transform:translateY(-2px)}
.tccl{font-size:11px;font-weight:700;color:var(--cyan);text-transform:uppercase;letter-spacing:1px;margin-bottom:14px}
.tcis{display:flex;flex-direction:column;gap:9px}
.tci{display:flex;align-items:center;gap:9px;font-size:13.5px;color:rgba(255,255,255,.72);font-weight:500}
.tcico{font-size:17px}

/* ── WHY US ── */
#why{background:var(--off)}
.wgrid{display:grid;grid-template-columns:1fr 1.3fr;gap:68px;align-items:center}
.wfs{display:flex;flex-direction:column;gap:14px;margin-top:26px}
.wf{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--g100);border-radius:var(--r);padding:18px;transition:all .22s}
.wf:hover{box-shadow:var(--s2);border-color:rgba(37,99,235,.18)}
.wico{width:41px;height:41px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.wft{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:3px}
.wfd{font-size:13px;color:var(--g500);line-height:1.62}
.mcs{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.mc{background:#fff;border:1px solid var(--g100);border-radius:var(--rl);padding:26px 22px;text-align:center;transition:all .3s}
.mc:hover{box-shadow:var(--s2);transform:translateY(-2px)}
.mc.b{background:var(--gb);border-color:transparent}
.mc.g{background:var(--gg);border-color:transparent}
.mcn{font-family:'DM Serif Display',serif;font-size:42px;color:var(--navy);line-height:1}
.mc.b .mcn,.mc.g .mcn{color:#fff}
.mcu{font-size:24px;color:var(--blue-l)}
.mc.b .mcu,.mc.g .mcu{color:rgba(255,255,255,.8)}
.mcd{font-size:13px;color:var(--g500);margin-top:6px;font-weight:500}
.mc.b .mcd,.mc.g .mcd{color:rgba(255,255,255,.75)}

/* ── TESTIMONIALS ── */
#testimonials{background:#fff}
.teshdr{text-align:center;margin-bottom:48px}
.teshdr .ssub{margin:0 auto}
.tesgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tescard{background:var(--off);border:1px solid var(--g100);border-radius:var(--rl);padding:28px;position:relative;transition:all .3s}
.tescard::before{content:'"';position:absolute;top:13px;right:20px;font-family:'DM Serif Display',serif;font-size:68px;color:var(--blue-l);opacity:.1;line-height:1}
.tescard:hover{box-shadow:var(--s3);transform:translateY(-3px);border-color:rgba(37,99,235,.13)}
.tescard.ft{background:var(--gb);border-color:transparent}
.tsstr{color:#FBBF24;font-size:13px;margin-bottom:13px}
.tstxt{font-size:14.5px;color:var(--g600);line-height:1.75;margin-bottom:20px}
.tescard.ft .tstxt{color:rgba(255,255,255,.85)}
.tsauth{display:flex;align-items:center;gap:10px}
.tsav{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fff;flex-shrink:0}
.tsnm{font-size:13.5px;font-weight:700;color:var(--navy)}
.tescard.ft .tsnm{color:#fff}
.tsrl{font-size:11.5px;color:var(--g500)}
.tescard.ft .tsrl{color:rgba(255,255,255,.62)}

/* ── BLOG ── */
#blog{background:var(--off)}
.blhdr{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:40px;gap:16px;flex-wrap:wrap}
.blgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.blc{background:#fff;border:1px solid var(--g100);border-radius:var(--rl);overflow:hidden;transition:all .3s}
.blc:hover{box-shadow:var(--s3);transform:translateY(-3px)}
.blimg{height:160px;display:flex;align-items:center;justify-content:center;font-size:42px}
.blimg.edu{background:linear-gradient(135deg,#EFF6FF,#DBEAFE)}
.blimg.gov{background:linear-gradient(135deg,#ECFDF5,#D1FAE5)}
.blimg.tch{background:linear-gradient(135deg,#F0F9FF,#E0F2FE)}
.blbody{padding:20px}
.blcat{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--blue-l);margin-bottom:6px}
.bltit{font-size:15px;font-weight:700;color:var(--navy);line-height:1.4;margin-bottom:8px}
.blex{font-size:13px;color:var(--g500);line-height:1.65;margin-bottom:13px}
.blmeta{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--g500)}
.bldot{width:3px;height:3px;background:var(--g400);border-radius:50%}

/* ── CTA ── */
#cta{background:var(--gh);padding:92px 5%;position:relative;overflow:hidden}
.ctabl{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:560px;height:280px;background:radial-gradient(ellipse,rgba(37,99,235,.2) 0%,transparent 70%)}
.ctain{max-width:1400px;margin:0 auto;position:relative;z-index:2}
.ctatop{text-align:center;max-width:680px;margin:0 auto}
.ctatit{font-family:'DM Serif Display',serif;font-size:clamp(28px,3.6vw,48px);color:#fff;line-height:1.13;margin-bottom:16px}
.ctasub{font-size:16px;color:rgba(255,255,255,.6);margin-bottom:34px;line-height:1.72}
.ctaacts{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.bwhite{background:#fff;color:var(--navy);padding:12px 24px;border-radius:10px;font-weight:700;font-size:15px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;box-shadow:0 8px 28px rgba(10,22,40,.18);transition:all .25s}
.bwhite:hover{transform:translateY(-2px);box-shadow:0 16px 44px rgba(10,22,40,.24)}
.boutl{background:transparent;border:1.5px solid rgba(255,255,255,.28);color:#fff;padding:12px 24px;border-radius:10px;font-weight:600;font-size:15px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:all .25s}
.boutl:hover{border-color:rgba(255,255,255,.58);background:rgba(255,255,255,.08)}
.ctaform{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:var(--rl);padding:34px;margin-top:46px;backdrop-filter:blur(12px);max-width:840px;margin-left:auto;margin-right:auto}
.cftit{text-align:center;color:#fff;font-size:19px;font-weight:700;margin-bottom:5px}
.cfsub{text-align:center;color:rgba(255,255,255,.5);font-size:13.5px;margin-bottom:24px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:13px}
.fg{display:flex;flex-direction:column;gap:5px}
.fg.full{grid-column:1/-1}
.fg label{font-size:12.5px;font-weight:600;color:rgba(255,255,255,.72)}
.fg input,.fg select,.fg textarea{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:9px;padding:10px 14px;color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;outline:none;transition:border-color .2s}
.fg input::placeholder,.fg textarea::placeholder{color:rgba(255,255,255,.3)}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--blue-v)}
.fg select option{background:var(--navy)}
.fg textarea{resize:vertical;min-height:90px}
.fsub{width:100%;background:var(--gb);border:none;border-radius:10px;padding:13px;color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 8px 28px rgba(37,99,235,.36)}
.fsub:hover{transform:translateY(-2px);box-shadow:0 16px 44px rgba(37,99,235,.5)}

/* ── FOOTER ── */
footer{background:var(--navy);color:rgba(255,255,255,.62);padding:72px 5% 34px}
.fin{max-width:1400px;margin:0 auto}
.fgr{display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;gap:40px;margin-bottom:52px}
.fbrand p{font-size:13.5px;line-height:1.76;margin-top:13px;max-width:280px}
.fsoc{display:flex;gap:8px;margin-top:16px}
.fsb{width:34px;height:34px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;transition:all .2s;text-decoration:none;color:rgba(255,255,255,.7)}
.fsb:hover{background:var(--blue-l);border-color:transparent;color:#fff}
.fcol h4{color:#fff;font-size:13.5px;font-weight:700;margin-bottom:13px}
.fcol ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.fcol ul a{color:rgba(255,255,255,.52);font-size:13.5px;text-decoration:none;transition:color .2s}
.fcol ul a:hover{color:#fff}
.fci{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px;font-size:13px}
.fciico{flex-shrink:0;margin-top:1px}
.fbot{border-top:1px solid rgba(255,255,255,.08);padding-top:24px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.fbot p{font-size:12.5px}
.fbl{display:flex;gap:18px;flex-wrap:wrap}
.fbl a{color:rgba(255,255,255,.42);font-size:12.5px;text-decoration:none}
.fbl a:hover{color:#fff}

/* ── SCROLL REVEAL ── */
.rev{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.rev.in{opacity:1;transform:none}
/* Fallback: ensure content visible if JS doesn't fire */
@media(prefers-reduced-motion:reduce){.rev{opacity:1;transform:none}}

/* ── RESPONSIVE ── */
@media(max-width:1280px){
  .pstage{width:430px;height:500px}
  .ph-c{width:200px}.ph-l,.ph-r{width:175px}
  .tcgrid{grid-template-columns:repeat(2,1fr)}
  .fgr{grid-template-columns:1fr 1fr}
}
@media(max-width:1100px){
  .chip{display:none}
  .pstage{width:380px;height:460px}
  .ph-c{width:184px}.ph-l,.ph-r{width:160px}
}
@media(max-width:960px){
  .hero-inner{grid-template-columns:1fr;padding:36px 5% 32px;text-align:center}
  .hsub{max-width:100%;margin-left:auto;margin-right:auto}
  .hacts{justify-content:center}
  .hstats{justify-content:center}
  .hphones{padding-top:28px;padding-bottom:20px}
  .pstage{width:340px;height:400px}
  .ph-c{width:174px}.ph-l,.ph-r{width:150px}
  .ph-l{left:0}.ph-r{right:0}
  .chip{display:none}
  .egrid,.ggrid,.wgrid{grid-template-columns:1fr;gap:42px}
  .tesgrid,.blgrid{grid-template-columns:1fr 1fr}
  .nl{display:none}.ncta{display:none}
  .hbg{display:flex}
  nav{padding:0 4%}
}
@media(max-width:768px){
  section{padding:60px 5%}
  .sgrid{grid-template-columns:1fr 1fr}
  .efs{grid-template-columns:1fr 1fr}
  .fgrid{grid-template-columns:1fr}
  .krow{grid-template-columns:1fr 1fr}
  .hphones{padding-top:20px;padding-bottom:16px}
  .pstage{width:300px;height:360px}
  .ph-c{width:154px;border-radius:30px}
  .ph-l,.ph-r{width:134px;border-radius:26px}
  .ph-l{left:-4px;top:50px}.ph-r{right:-4px;top:50px}
  .titem{font-size:13px;padding:0 28px}
  .stitle{font-size:clamp(24px,5vw,36px)}
  .fgr{grid-template-columns:1fr 1fr}
  .fbrand{grid-column:1/-1}
  .tcgrid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  section{padding:48px 5%}
  .sgrid{grid-template-columns:1fr}
  .tesgrid,.blgrid{grid-template-columns:1fr}
  .tcgrid{grid-template-columns:1fr}
  .efs{grid-template-columns:1fr}
  .mcs{grid-template-columns:1fr 1fr}
  .fgr{grid-template-columns:1fr}
  .hphones{padding-top:16px;padding-bottom:12px}
  .pstage{width:270px;height:320px}
  .ph-c{width:138px;border-radius:28px}
  .ph-l,.ph-r{width:120px;border-radius:24px}
  .ph-l{left:-2px;top:46px}.ph-r{right:-2px;top:46px}
  .pnotch{width:46px;height:12px}
  .shdr,.blhdr{flex-direction:column;align-items:flex-start}
  .hstats{gap:16px;flex-wrap:wrap;justify-content:center}
  .fbot{flex-direction:column;align-items:flex-start;gap:12px}
  .titem{padding:0 20px;font-size:12px}
  .titem-sub{display:none}
  .sc{padding:22px}
  .fg.full{grid-column:1}
  .ctaacts{flex-direction:column;align-items:center}
  .bwhite,.boutl{width:100%;justify-content:center}
}
@media(max-width:480px){
  .hero-inner{padding:28px 4% 24px}
  .htitle{font-size:clamp(26px,7vw,34px)}
  .hacts{flex-direction:column;align-items:center}
  .bp,.bg2{width:100%;justify-content:center;padding:13px 20px}
  .hphones{padding-top:12px;padding-bottom:10px}
  .pstage{width:240px;height:290px}
  .ph-c{width:120px;border-radius:24px}
  .ph-l,.ph-r{width:103px;border-radius:20px}
  .ph-l{top:40px}.ph-r{top:40px}
  .ekpis{grid-template-columns:1fr 1fr}
  .papp{padding:9px}.pbody{padding:0 8px 12px}
  nav{padding:0 4%;height:60px}
  .mm{top:60px}
  section{padding:40px 4%}
  .stag{font-size:10px}
  .stitle{font-size:clamp(22px,6vw,30px)}
  footer{padding:40px 4% 20px}
  .hsn{font-size:26px}
  .titem{padding:0 16px;font-size:11px}
  .krow{grid-template-columns:1fr}
  .mcs{grid-template-columns:1fr}
  .fgr{grid-template-columns:1fr}
  .tcgrid{grid-template-columns:1fr}
}
