/* ==========================================================
   base.css — fonts, reset, typography, primitives
   ========================================================== */

/* Devanagari from the visitor's own Kohinoor (Apple devices) when present.
   The face is limited to the Devanagari block, so Latin text never touches it
   and falls straight through to Google Sans. Where Kohinoor is absent (Android,
   Windows) these faces resolve to nothing and Google Sans' own Devanagari,
   delivered by Google Fonts, takes over. Nothing is hosted or embedded. */
@font-face{font-family:"BMS Deva";font-weight:400;font-style:normal;
  src:local("Kohinoor Devanagari Regular"),local("KohinoorDevanagari-Regular"),local("Kohinoor Devanagari");
  unicode-range:U+0900-097F,U+1CD0-1CF4,U+A8E0-A8FF}
@font-face{font-family:"BMS Deva";font-weight:500;font-style:normal;
  src:local("Kohinoor Devanagari Medium"),local("KohinoorDevanagari-Medium");
  unicode-range:U+0900-097F,U+1CD0-1CF4,U+A8E0-A8FF}
@font-face{font-family:"BMS Deva";font-weight:600;font-style:normal;
  src:local("Kohinoor Devanagari Semibold"),local("KohinoorDevanagari-Semibold");
  unicode-range:U+0900-097F,U+1CD0-1CF4,U+A8E0-A8FF}
@font-face{font-family:"BMS Deva";font-weight:700;font-style:normal;
  src:local("Kohinoor Devanagari Bold"),local("KohinoorDevanagari-Bold");
  unicode-range:U+0900-097F,U+1CD0-1CF4,U+A8E0-A8FF}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--f-body);font-size:1rem;line-height:1.65;font-weight:400;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;font-kerning:normal;
  overflow-x:hidden;min-height:100vh;
  transition:background-color .3s var(--ease),color .3s var(--ease);
}
html[lang="hi"] body{line-height:1.75}
h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol{margin:0}
ul[role="list"],ol[role="list"]{list-style:none;padding:0}
img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--haldi);color:#111A3C}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}
.on-night :focus-visible,.hdr.over:not(.solid) :focus-visible,.ftr :focus-visible,.drawer :focus-visible{outline-color:var(--haldi)}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0;margin:-1px}
.skip{position:fixed;left:16px;top:-80px;z-index:200;background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:var(--r-s);font-weight:600;transition:top .2s}
.skip:focus{top:12px}

/* ---------- type ----------
   Display: Eczar (Latin + Devanagari drawn together). Text and UI: Google Sans.
   Hindi gets more leading than English; never any letter-spacing on Devanagari. */
h1,h2,h3,h4{font-family:var(--f-display);font-weight:700;line-height:1.15;text-wrap:balance;letter-spacing:0;color:var(--ink)}
html[lang="en"] h1,html[lang="en"] h2{letter-spacing:-.012em;line-height:1.1}
html[lang="en"] h3{line-height:1.2}
html[lang="hi"] h1{line-height:1.3}
html[lang="hi"] h2{line-height:1.36}
html[lang="hi"] h3{line-height:1.45}
h3,h4{font-weight:600}
p{text-wrap:pretty}
.h1{font-size:clamp(2.2rem,1rem + 4.6vw,4.4rem)}
.h2{font-size:clamp(1.75rem,1.05rem + 2.3vw,2.85rem)}
.h3{font-size:clamp(1.2rem,1rem + .7vw,1.55rem)}
.lede{font-size:clamp(1.05rem,.95rem + .4vw,1.2rem);line-height:1.7;color:var(--ink-2);max-width:62ch}
html[lang="hi"] .lede{line-height:1.8}
.muted{color:var(--ink-2)}
.small{font-size:.9rem}
.num{font-family:var(--f-num);font-variant-numeric:lining-nums tabular-nums;font-weight:600;letter-spacing:-.01em}
.eyebrow{
  display:inline-flex;align-items:center;gap:.7em;
  font-family:var(--f-body);font-weight:600;font-size:.84rem;color:var(--ink-2);line-height:1.4;
  margin-bottom:var(--s-4);
}
html[lang="en"] .eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem}
.eyebrow::before{content:"";width:8px;height:8px;background:var(--haldi);flex:none}
.on-night .eyebrow,.eyebrow.on-night{color:var(--on-night-2)}

/* ---------- layout primitives ---------- */
.wrap{width:100%;max-width:calc(var(--maxw) + var(--gutter)*2);margin-inline:auto;padding-inline:max(var(--gutter),env(safe-area-inset-left,0px))}
.wrap-narrow{max-width:calc(820px + var(--gutter)*2)}
.wrap-read{max-width:calc(720px + var(--gutter)*2)}
.sec{padding-block:var(--sec)}
.sec-sm{padding-block:calc(var(--sec)*.6)}
.bg-2{background:var(--bg-2)}
.bg-3{background:var(--bg-3)}
.on-night{
  background:var(--night);color:var(--on-night);
  --primary:var(--haldi);--primary-ink:#111A3C;--primary-hover:#FFC44D;
}
.on-night h1,.on-night h2,.on-night h3,.on-night h4{color:var(--on-night)}
.on-night .lede,.on-night .muted{color:var(--on-night-2)}
.stack>*+*{margin-top:var(--s,1rem)}
.row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.grid{display:grid;gap:clamp(16px,2.2vw,28px)}
.center{text-align:center}

/* ---------- icons ---------- */
.ico{width:1.25em;height:1.25em;flex:none;vertical-align:-.25em}
.ico-lg{width:1.6em;height:1.6em}

/* ---------- buttons ---------- */
.btn{
  --b-bg:var(--primary);--b-fg:var(--primary-ink);--b-bd:var(--primary);
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  min-height:48px;padding:.65em 1.3em;
  font-family:var(--f-body);font-weight:600;font-size:.97rem;line-height:1.25;text-decoration:none;white-space:nowrap;
  color:var(--b-fg);background:var(--b-bg);border:1.5px solid var(--b-bd);border-radius:var(--r-s);
  overflow:hidden;isolation:isolate;
  transition:background-color .2s,color .2s,border-color .2s,transform .2s var(--ease);
}
.btn::after{content:"";position:absolute;inset:0;background:currentColor;opacity:0;z-index:-1;transition:opacity .2s}
.btn:hover::after{opacity:.1}
.btn:active{transform:translateY(1px)}
.btn .ico{width:1.2em;height:1.2em;transition:transform .25s var(--ease)}
.btn:hover .ico-go{transform:translateX(3px)}
.btn-primary{}
.btn-line{--b-bg:transparent;--b-fg:var(--ink);--b-bd:var(--ink-3)}
.btn-line:hover{--b-bd:var(--ink)}
.btn-soft{--b-bg:var(--accent-soft);--b-fg:var(--primary);--b-bd:transparent}
.btn-wa{--b-bg:var(--wa);--b-fg:#fff;--b-bd:var(--wa)}
.btn-light{--b-bg:var(--on-night);--b-fg:var(--night);--b-bd:var(--on-night)}
.btn-ghost-night{--b-bg:transparent;--b-fg:var(--on-night);--b-bd:var(--on-night-line)}
.btn-ghost-night:hover{--b-bd:var(--on-night)}
.btn-sm{min-height:40px;padding:.45em 1em;font-size:.9rem}
.btn-lg{min-height:56px;padding:.8em 1.6em;font-size:1.02rem}
.btn[disabled]{opacity:.5;pointer-events:none}

.link{
  display:inline-flex;align-items:center;gap:.45em;font-weight:600;color:var(--primary);text-decoration:none;
  background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:3px;
  transition:background-size .3s var(--ease),color .2s;
}
.link:hover{background-size:100% 2px}
.link .ico{width:1.1em;height:1.1em;transition:transform .25s var(--ease)}
.link:hover .ico{transform:translateX(3px)}
.on-night .link{color:var(--haldi)}
html[data-theme="dark"] .link{color:var(--haldi)}

/* ---------- chips: small rectangular tags, one hue per initiative ---------- */
.chip{
  --c:var(--ink-2);--cs:var(--bg-3);
  display:inline-flex;align-items:center;gap:.5em;padding:.22em .65em;border-radius:var(--r-s);
  background:var(--cs);color:var(--c);font-size:.78rem;font-weight:600;line-height:1.5;white-space:nowrap;
}
.chip i{width:7px;height:7px;background:currentColor;flex:none}
.chip.gau{--c:var(--gau);--cs:var(--gau-soft)}
.chip.shiksha{--c:var(--shiksha);--cs:var(--shiksha-soft)}
.chip.jansewa{--c:var(--jansewa);--cs:var(--jansewa-soft)}
.chip.plain{--c:var(--ink-2);--cs:var(--bg-3)}
/* initiative tone, set on any wrapper: .tone-gau / .tone-shiksha / .tone-jansewa / .tone-haldi */
.tone-gau{--tone:var(--gau);--tone-soft:var(--gau-soft)}
.tone-shiksha{--tone:var(--shiksha);--tone-soft:var(--shiksha-soft)}
.tone-jansewa{--tone:var(--jansewa);--tone-soft:var(--jansewa-soft)}
.tone-haldi{--tone:var(--haldi-deep);--tone-soft:var(--haldi-soft)}

/* ---------- forms ---------- */
.field{display:grid;gap:.45rem;min-width:0}
.field>label,.field .lbl{font-weight:600;font-size:.92rem;display:flex;justify-content:space-between;gap:.5rem}
.field .opt{font-weight:400;color:var(--ink-3);font-size:.84rem}
.in{
  width:100%;min-height:52px;padding:.7em .95em;border-radius:var(--r-s);
  background:var(--surface);border:1px solid var(--ink-3);color:var(--ink);line-height:1.5;
  transition:border-color .2s,box-shadow .2s,background-color .3s;
}
textarea.in{min-height:132px;resize:vertical}
.in::placeholder{color:var(--ink-3)}
.in:hover{border-color:var(--ink)}
.in:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 28%,transparent)}
.in[aria-invalid="true"]{border-color:var(--crit)}
.err{color:var(--crit);font-size:.85rem;font-weight:600;min-height:1.2em}
.pills{display:flex;flex-wrap:wrap;gap:.5rem}
.pill{position:relative}
.pill input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer;margin:0}
.pill span{
  display:inline-flex;align-items:center;gap:.6em;min-height:44px;padding:.4em 1em;border-radius:var(--r-s);
  border:1px solid var(--ink-3);background:var(--surface);font-weight:500;font-size:.94rem;
  transition:background-color .2s,border-color .2s,color .2s;
}
.pill span::before{content:"";width:14px;height:14px;border:1.5px solid currentColor;border-radius:2px;flex:none;transition:background-color .2s,box-shadow .2s}
.pill input[type="radio"]+span::before{border-radius:50%}
.pill input:checked+span{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}
.pill input:checked+span::before{background:currentColor;box-shadow:inset 0 0 0 2.5px var(--primary)}
.pill input:focus-visible+span{outline:2px solid var(--focus);outline-offset:3px}
.pill:hover span{border-color:var(--ink)}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
