/* ABPSSP Maharashtra & Goa. Palette taken from the Parishad emblem:
   red band, navy band, royal-blue band, white insignia, gold motto. */
:root {
  --red: #e0262f;
  --red-deep: #b3141b;
  --navy: #101c62;
  --blue: #2e63f0;
  --sky: #5fb4ec;
  --gold: #f5c518;

  --bg: #060a1c;
  --bg-2: #0a1030;
  --ink: #eef1ff;
  --muted: #a3abcf;
  --line: rgba(255, 255, 255, 0.09);
  --glass: rgba(255, 255, 255, 0.045);
  --glass-2: rgba(255, 255, 255, 0.08);

  --grad: linear-gradient(100deg, var(--red) 0%, var(--gold) 45%, var(--sky) 100%);
  --grad-btn: linear-gradient(110deg, var(--red) 0%, #c7174f 45%, var(--blue) 100%);

  --r: 22px;
  --f-display: "Plus Jakarta Sans", "Noto Sans Devanagari", system-ui, sans-serif;
  --f-deva: "Noto Sans Devanagari", "Inter", sans-serif;
  --f-body: "Inter", "Noto Sans Devanagari", system-ui, sans-serif;
  --ease: cubic-bezier(.2, .8, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: clip; }
html { font-size: calc(100% * var(--fs, 1)); }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body {
  margin: 0; font-family: var(--f-body); font-size: 1.0625rem; line-height: 1.65;
  color: var(--ink); background: var(--bg); -webkit-font-smoothing: antialiased;
}
html:is([lang="hi"],[lang="mr"]) body { font-family: var(--f-deva); }
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3, h4 { margin: 0 0 .5em; line-height: 1.2; font-weight: 700; }
h2 { font-family: var(--f-display); font-size: clamp(1.7rem, 3.8vw, 2.8rem); letter-spacing: -.02em; }
html:is([lang="hi"],[lang="mr"]) :is(h1, h2, h3, h4) { font-family: var(--f-deva); letter-spacing: 0; }
p { margin: 0 0 1em; }
hr { border: 0; border-top: 1px solid var(--line); margin: 22px 0; }
::selection { background: var(--red); color: #fff; }

.wrap { width: min(1200px, 100% - 32px); margin-inline: auto; }
.muted { color: var(--muted); }
.small { font-size: .88rem; }
.nowrap { white-space: nowrap; }
.grad-text { background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.link { color: var(--gold); font-weight: 700; text-decoration: none; }
.link:hover { text-decoration: underline; }
.skip { position: absolute; left: -999px; top: 8px; z-index: 200; background: #fff; color: #000; padding: 8px 14px; border-radius: 8px; }
.skip:focus { left: 8px; }

/* ---------- Ambient layers ---------- */
.aurora { position: fixed; inset: 0; z-index: -2; overflow: hidden; pointer-events: none;
  background: radial-gradient(ellipse at 50% -10%, #111c55 0%, var(--bg) 60%); }
.blob { position: absolute; border-radius: 50%; filter: blur(90px); opacity: .5; will-change: transform; }
.b1 { width: 46vw; height: 46vw; background: var(--red-deep); top: -12vw; left: -10vw; animation: drift1 22s ease-in-out infinite alternate; }
.b2 { width: 52vw; height: 52vw; background: #1c3fd0; bottom: -20vw; right: -14vw; animation: drift2 26s ease-in-out infinite alternate; opacity: .45; }
.b3 { width: 28vw; height: 28vw; background: #b8860b; top: 40%; left: 45%; opacity: .14; animation: drift1 30s ease-in-out infinite alternate-reverse; }
@keyframes drift1 { to { transform: translate(12vw, 10vh) scale(1.15); } }
@keyframes drift2 { to { transform: translate(-10vw, -12vh) scale(1.1); } }
.grain { position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .06;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.progress { position: fixed; top: 0; left: 0; height: 3px; width: 100%; z-index: 100; transform-origin: 0 50%; transform: scaleX(0);
  background: linear-gradient(90deg, #ff9933 0 33%, #fff 33% 66%, #138808 66%); }

/* ---------- Glass + spotlight ---------- */
.glass {
  background: linear-gradient(160deg, var(--glass-2), var(--glass));
  border: 1px solid var(--line); border-radius: var(--r);
  backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%);
}
.spot { position: relative; overflow: hidden; isolation: isolate; }
.spot::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0; transition: opacity .4s;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,.10), transparent 45%);
}
.spot:hover::before { opacity: 1; }
.spot::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; opacity: 0; transition: opacity .4s;
  background: radial-gradient(300px circle at var(--mx, 50%) var(--my, 50%), rgba(245,197,24,.7), rgba(224,38,47,.4) 40%, transparent 70%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
}
.spot:hover::after { opacity: 1; }

/* ---------- Buttons, chips, pills ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  padding: .95em 1.7em; border-radius: 999px; border: 0; cursor: pointer;
  font: 700 .98rem/1.1 var(--f-body); text-decoration: none; color: #fff; text-align: center;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), background .3s;
}
html:is([lang="hi"],[lang="mr"]) .btn { font-family: var(--f-deva); font-size: 1.02rem; }
.btn-primary { background: var(--grad-btn); background-size: 160% 100%; box-shadow: 0 10px 30px -10px rgba(224,38,47,.7); }
.btn-primary:hover { transform: translateY(-2px); background-position: 100% 0; box-shadow: 0 16px 40px -12px rgba(46,99,240,.8); }
.btn-glass { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(10px); }
.btn-glass:hover { background: rgba(255,255,255,.14); transform: translateY(-2px); }
.btn-white { background: #fff; color: var(--navy); }
.btn-white:hover { transform: translateY(-2px); }
.btn-sm { padding: .7em 1.15em; font-size: .88rem; }
.btn.full { width: 100%; }
.chip {
  display: inline-flex; align-items: center; gap: 8px; font: 600 .9rem var(--f-body); color: var(--muted); text-decoration: none; cursor: pointer;
  padding: .55em 1.05em; border-radius: 999px; background: rgba(255,255,255,.05); border: 1px solid var(--line); transition: .25s;
}
html:is([lang="hi"],[lang="mr"]) .chip { font-family: var(--f-deva); font-size: .98rem; }
.chip:hover { color: #fff; border-color: rgba(255,255,255,.25); }
.chip.on { background: var(--grad-btn); color: #fff; border-color: transparent; }
.chip i { width: 9px; height: 9px; border-radius: 50%; background: var(--rc, var(--gold)); }
.chips-row, .filters { display: flex; flex-wrap: wrap; gap: 8px; }
.filters { margin-bottom: 26px; }
.chips-row { margin-top: 18px; }
.pill { display: inline-block; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: .35em .8em; border-radius: 999px;
  background: rgba(245,197,24,.14); color: var(--gold); border: 1px solid rgba(245,197,24,.3); }
.pill.ghost { background: transparent; color: var(--muted); border-color: var(--line); }

/* ---------- Header ---------- */
.header { position: fixed; top: 14px; left: 0; right: 0; z-index: 60; padding-inline: 16px; }
.header-inner {
  width: min(1280px, 100%); margin-inline: auto; display: flex; align-items: center; gap: 12px;
  padding: 8px 10px 8px 12px; border-radius: 999px;
  background: rgba(8, 12, 36, .55); border: 1px solid var(--line);
  backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%);
  transition: background .3s, box-shadow .3s;
}
.header.scrolled .header-inner { background: rgba(8, 12, 36, .85); box-shadow: 0 10px 40px -10px rgba(0,0,0,.6); }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; flex: none; }
.brand img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; clip-path: circle(49%); }
.brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.brand-text strong { font-family: var(--f-display); font-size: 1rem; letter-spacing: .06em; }
.brand-text small { color: var(--gold); font-size: .75rem; font-weight: 600; white-space: nowrap; }
.nav { display: flex; gap: 0; margin-left: auto; }
.nav a { text-decoration: none; font-weight: 600; font-size: .86rem; color: var(--muted); padding: .55em .7em; border-radius: 999px; transition: color .2s, background .2s; white-space: nowrap; }
html:is([lang="hi"],[lang="mr"]) .nav a { font-size: .95rem; }
.nav a:hover, .nav a.active { color: #fff; background: rgba(255,255,255,.08); }
.nav-only-mobile { display: none; }
.header-actions { display: flex; align-items: center; gap: 8px; margin-left: 6px; }
.menu-btn { display: none; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: rgba(255,255,255,.06); cursor: pointer; position: relative; flex: none; }
.menu-btn span { position: absolute; left: 12px; right: 12px; height: 2px; background: #fff; border-radius: 2px; transition: transform .3s var(--ease); }
.menu-btn span:first-child { top: 16px; } .menu-btn span:last-child { top: 24px; }
.menu-btn[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.menu-btn[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
.lang-switch { display: inline-flex; padding: 3px; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid var(--line); flex: none; }
.lang-switch button { font: 700 .8rem/1 var(--f-body); color: var(--muted); background: none; border: 0; cursor: pointer; padding: .55em .7em; border-radius: 999px; transition: background .25s, color .25s; }
.lang-switch button:hover { color: #fff; }
.lang-switch button[aria-pressed="true"] { background: var(--grad-btn); color: #fff; }
.lang-switch button:focus-visible { outline: 2px solid var(--gold); outline-offset: 1px; }

/* ---------- Home hero ---------- */
.hero { position: relative; min-height: 100svh; display: grid; align-items: center; padding: 130px 0 80px; overflow: hidden; }
.grid-floor {
  position: absolute; left: -50%; right: -50%; bottom: -10%; height: 55%; pointer-events: none;
  background-image: linear-gradient(rgba(95,180,236,.18) 1px, transparent 1px), linear-gradient(90deg, rgba(95,180,236,.18) 1px, transparent 1px);
  background-size: 60px 60px; transform: perspective(500px) rotateX(62deg); transform-origin: 50% 100%;
  -webkit-mask-image: linear-gradient(to top, #000 10%, transparent 80%); mask-image: linear-gradient(to top, #000 10%, transparent 80%);
  animation: floor 6s linear infinite;
}
@keyframes floor { to { background-position: 0 60px; } }
.hero-inner { position: relative; display: grid; grid-template-columns: 1.15fr 1fr; gap: 48px; align-items: center; }
.tag { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; font-size: .82rem; letter-spacing: .06em;
  padding: .5em 1em; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid var(--line); color: var(--gold); }
.dot { width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--red); animation: pulse 2s infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(224,38,47,.7); } 70% { box-shadow: 0 0 0 10px rgba(224,38,47,0); } 100% { box-shadow: 0 0 0 0 rgba(224,38,47,0); } }
.hero-hi {
  font-family: var(--f-deva); font-weight: 800; font-size: clamp(3.4rem, 9.5vw, 7.2rem); line-height: 1; margin: 22px 0 0;
  background: linear-gradient(180deg, #fff 30%, #ffd84d 75%, #f5a623); -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 8px 40px rgba(245,197,24,.25));
}
.hero-sub { font-family: var(--f-deva); font-weight: 700; font-size: clamp(1.5rem, 3.4vw, 2.4rem); color: #fff; margin: 4px 0 6px; letter-spacing: .02em; }
.hero-en { font-family: var(--f-display); font-weight: 700; font-size: clamp(1rem, 2vw, 1.35rem); margin-bottom: 18px; }
html:is([lang="hi"],[lang="mr"]) .hero-en { font-family: var(--f-deva); font-size: clamp(1.2rem, 2.4vw, 1.6rem); }
.lead { color: var(--muted); font-size: 1.1rem; max-width: 36em; }
.cta-row { display: flex; flex-wrap: wrap; gap: 12px; margin: 26px 0 34px; }
.hero-meta { display: flex; gap: 30px; margin: 0; flex-wrap: wrap; }
.hero-meta div { border-left: 2px solid var(--red); padding-left: 14px; }
.hero-meta dt { font-family: var(--f-display); font-size: 1.6rem; font-weight: 700; line-height: 1; }
.hero-meta dd { margin: 4px 0 0; color: var(--muted); font-size: .85rem; }

.hero-emblem { position: relative; aspect-ratio: 1; width: min(500px, 100%); margin-inline: auto; display: grid; place-items: center; perspective: 900px; }
.emblem {
  position: relative; z-index: 2; width: 64%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; clip-path: circle(49.5%);
  transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .4s var(--ease); animation: float 6s ease-in-out infinite;
}
@keyframes float { 50% { translate: 0 -10px; } }
.emblem-glow { position: absolute; width: 70%; aspect-ratio: 1; border-radius: 50%; z-index: 1;
  background: conic-gradient(from 0deg, var(--red), var(--gold), var(--blue), var(--red)); filter: blur(40px); opacity: .55; animation: spin 12s linear infinite; }
.ring-text { position: absolute; inset: 0; width: 100%; height: 100%; animation: spin 40s linear infinite; z-index: 1; }
.ring-text text { font-family: var(--f-deva); font-weight: 700; font-size: 15px; letter-spacing: 1px; fill: rgba(255,255,255,.75); }
.orbit { position: absolute; border-radius: 50%; border: 1px solid rgba(255,255,255,.12); }
.o1 { inset: 2%; border-style: dashed; animation: spin 60s linear infinite reverse; }
.o2 { inset: 15%; border-color: rgba(245,197,24,.25); animation: spin 14s linear infinite; }
.o2 i { position: absolute; top: -5px; left: 50%; width: 10px; height: 10px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 18px 4px rgba(245,197,24,.7); }
@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- Inner page hero ---------- */
.page-hero { padding: 150px 0 40px; position: relative; }
.page-hero h1 { font-family: var(--f-display); font-size: clamp(2.2rem, 6vw, 4.2rem); letter-spacing: -.03em; margin: 10px 0 12px; line-height: 1.05; }
html:is([lang="hi"],[lang="mr"]) .page-hero h1 { font-family: var(--f-deva); font-weight: 800; letter-spacing: 0; }
.page-hero .lead { font-size: 1.15rem; }
.crumb { font-size: .85rem; color: var(--muted); margin: 0; }
.crumb a { color: var(--gold); text-decoration: none; }
.crumb > span:first-of-type { margin: 0 6px; opacity: .5; }

/* ---------- Marquee ---------- */
.marquee { overflow: hidden; border-block: 1px solid var(--line); background: rgba(255,255,255,.02); padding: 18px 0; transform: rotate(-1.5deg) scaleX(1.03); margin: 10px 0; }
.marquee-track { display: flex; gap: 34px; width: max-content; animation: marquee 34s linear infinite; align-items: center; }
.marquee span { font-family: var(--f-display); font-weight: 900; font-size: clamp(1.4rem, 3vw, 2.4rem); white-space: nowrap; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.45); }
.marquee span:nth-of-type(odd) { font-family: var(--f-deva); font-weight: 800; color: #fff; -webkit-text-stroke: 0; }
.marquee b { color: var(--gold); font-size: 1.2rem; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Sections ---------- */
.section { padding: clamp(60px, 9vw, 110px) 0; position: relative; }
.section.tight { padding: clamp(32px, 5vw, 56px) 0; }
.head { max-width: 760px; margin-bottom: 36px; }
.head-row { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.head-row h2 { margin: 0; }
.kicker { font-family: var(--f-body); font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .16em; color: var(--gold); margin-bottom: 12px; display: flex; align-items: center; gap: 10px; }
.kicker::before { content: ""; width: 22px; height: 2px; background: var(--gold); border-radius: 2px; flex: none; }
html:is([lang="hi"],[lang="mr"]) .kicker { letter-spacing: .04em; font-size: .9rem; }
.sub-h { font-family: var(--f-display); font-size: 1.1rem; letter-spacing: .02em; margin-bottom: 16px; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
.two-col.wide-left { grid-template-columns: 1.6fr 1fr; }
.two-col > *, .contact-grid > * { min-width: 0; }
.prose p { color: #d5daf3; font-size: 1.05rem; }
.prose h2 { margin-top: 1.2em; }
.prose h2:first-of-type { margin-top: 0; }
.side { padding: 28px; }
.sticky { position: sticky; top: 110px; }

/* Welcome / about split */
.about { display: grid; grid-template-columns: 1fr 1.1fr; gap: 64px; align-items: center; }
.about-visual { perspective: 1000px; }
.tilt { padding: 18px; border-radius: 50%; transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .4s var(--ease);
  box-shadow: 0 40px 100px -30px rgba(46,99,240,.5); max-width: 460px; margin-inline: auto; }
.tilt img { border-radius: 50%; clip-path: circle(49.6%); }
.about-copy p { color: var(--muted); }
.badges { list-style: none; padding: 0; margin: 20px 0 24px; display: flex; flex-wrap: wrap; gap: 8px; }
.badges li { font-size: .85rem; font-weight: 600; padding: .5em 1em; border-radius: 12px; background: rgba(255,255,255,.05); border: 1px solid var(--line); }
.badges li:first-child { border-color: rgba(245,197,24,.4); color: var(--gold); }

/* Ticks */
.ticks { list-style: none; padding: 0; margin: 16px 0; display: grid; gap: 12px; }
.ticks li { display: flex; gap: 12px; align-items: flex-start; }
.ticks li::before { content: ""; flex: none; width: 22px; height: 22px; margin-top: 3px; border-radius: 7px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E"), var(--grad-btn);
  background-size: 14px, cover; background-repeat: no-repeat; background-position: center; }
.small-ticks li { font-size: .95rem; color: var(--muted); }
.light-ticks li { color: rgba(255,255,255,.9); }
.light-ticks li::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23101c62' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E"), linear-gradient(#fff, #fff); }

/* President */
.president { display: grid; grid-template-columns: 160px 1fr; gap: 36px; align-items: center; padding: 36px; margin: 0;
  background: radial-gradient(circle at 0% 0%, rgba(245,197,24,.14), transparent 45%), linear-gradient(160deg, var(--glass-2), var(--glass)); }
.pres-img { width: 160px; height: 160px; border-radius: 50%; object-fit: cover; clip-path: circle(49%); box-shadow: 0 0 0 4px var(--bg), 0 0 0 6px var(--gold); }
.president blockquote { margin: 0 0 16px; font-size: clamp(1.1rem, 2vw, 1.35rem); line-height: 1.55; font-style: italic; color: #e3e7ff; }
.president figcaption { display: flex; flex-direction: column; }
.president figcaption strong { font-size: 1.1rem; }

/* Values / vision cards */
.values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.value { padding: 32px 28px; display: flex; flex-direction: column; border-top: 2px solid var(--accent); }
.value::before { background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), color-mix(in srgb, var(--accent) 22%, transparent), transparent 50%); }
.value-no { font-family: var(--f-display); font-size: .85rem; color: var(--accent); letter-spacing: .1em; margin-bottom: 18px; }
.value-title { font-family: var(--f-display); font-size: 1.5rem; }
.value p { color: var(--muted); margin: 0; }

/* Timeline */
.timeline { list-style: none; margin: 0; padding: 28px 28px 28px 30px; position: relative; }
.timeline li { position: relative; padding: 0 0 18px 26px; border-left: 2px solid rgba(255,255,255,.12); display: grid; }
.timeline li:last-child { padding-bottom: 0; }
.timeline li::before { content: ""; position: absolute; left: -7px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 12px rgba(245,197,24,.7); }
.timeline b { font-family: var(--f-display); font-size: 1.15rem; line-height: 1.2; }
.timeline span { color: var(--muted); font-size: .95rem; }

/* Aims */
.aims { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.aim { padding: 30px 26px; }
.aim-no { font-family: var(--f-display); font-weight: 900; font-size: 3rem; line-height: 1; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; display: block; margin-bottom: 16px; }
.aim h3 { font-size: 1.2rem; }
.aim p { color: var(--muted); margin: 0; }

/* Regions / prants */
.regions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.region {
  text-align: left; color: var(--ink); text-decoration: none; padding: 26px 24px 22px; min-height: 160px;
  display: grid; grid-template-rows: auto 1fr auto; gap: 4px; transition: transform .35s var(--ease), border-color .3s;
}
.region::before { background: radial-gradient(360px circle at var(--mx, 50%) var(--my, 50%), color-mix(in srgb, var(--rc) 25%, transparent), transparent 55%); }
.region:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--rc) 60%, transparent); }
.regions > .region:last-child:nth-child(4n + 3) { grid-column: span 2; }
.r-dot { width: 14px; height: 14px; border-radius: 50%; background: var(--rc); box-shadow: 0 0 20px 2px color-mix(in srgb, var(--rc) 70%, transparent); margin-bottom: 18px; }
.r-dot.big { width: 22px; height: 22px; margin: 0; }
.r-hi { font-family: var(--f-deva); font-weight: 800; font-size: 1.5rem; line-height: 1.2; align-self: end; }
.r-en { color: var(--muted); font-size: .88rem; font-weight: 600; }
.r-go { position: absolute; right: 22px; top: 20px; font-size: 1.2rem; color: var(--rc); transition: transform .3s var(--ease); }
.region:hover .r-go { transform: translateX(4px); }
.prant-title { display: flex; align-items: center; gap: 16px; margin-bottom: 26px; }
.prant-title h2 { margin: 0; font-family: var(--f-deva); font-weight: 800; }
.prant-page .r-dot.big { background: var(--rc); box-shadow: 0 0 24px 4px color-mix(in srgb, var(--rc) 70%, transparent); }

/* Programs */
.program-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.tile { padding: 26px; display: flex; flex-direction: column; text-decoration: none; color: var(--ink); transition: transform .3s var(--ease); min-height: 220px; }
.tile:hover { transform: translateY(-4px); }
.tile h3 { font-family: var(--f-display); font-size: 1.05rem; letter-spacing: -.01em; margin-top: auto; }
html:is([lang="hi"],[lang="mr"]) .tile h3 { font-family: var(--f-deva); font-size: 1.3rem; }
.tile p { color: var(--muted); margin: 0; font-size: .93rem; }
.t-icon { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; margin-bottom: 22px; flex: none;
  background: rgba(255,255,255,.06); border: 1px solid var(--line); }
.t-icon svg { width: 26px; height: 26px; fill: none; stroke: var(--gold); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.t-icon.big { width: 76px; height: 76px; border-radius: 22px; }
.t-icon.big svg { width: 38px; height: 38px; }
.program-detail { padding: 40px; margin-bottom: 20px;
  background: radial-gradient(circle at 90% 10%, rgba(224,38,47,.3), transparent 50%), linear-gradient(160deg, rgba(16,28,98,.7), rgba(255,255,255,.03)); }
.program-detail h2 { margin-bottom: 12px; }
.program-detail .lead { font-size: 1.2rem; color: #dfe3fb; max-width: 44em; }
.program-detail .cta-row { margin-bottom: 0; }
.program-detail .cta-row:empty { display: none; }

/* Upcoming events (home) */
.upcoming { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.up { display: flex; gap: 16px; align-items: center; padding: 18px; text-decoration: none; color: var(--ink); transition: transform .3s var(--ease); }
.up:hover { transform: translateY(-3px); }
.up-date, .event-date { flex: none; width: 62px; height: 66px; border-radius: 16px; display: grid; place-content: center; text-align: center; line-height: 1;
  background: linear-gradient(160deg, var(--red-deep), var(--navy)); border: 1px solid rgba(255,255,255,.15); }
.up-date b, .event-date b { font-family: var(--f-display); font-size: 1.5rem; }
.up-date small, .event-date small { font-size: .7rem; color: var(--gold); text-transform: uppercase; letter-spacing: .1em; margin-top: 5px; font-weight: 700; }
.event-date small.wide { font-size: .68rem; line-height: 1.25; letter-spacing: .02em; text-transform: none; padding: 0 4px; margin: 0; }
.up-body { display: grid; gap: 2px; line-height: 1.3; }

/* Events page */
.countdown { display: flex; align-items: center; gap: 28px; padding: 28px 32px; margin-bottom: 18px; flex-wrap: wrap;
  background: radial-gradient(circle at 0% 50%, rgba(245,197,24,.18), transparent 50%), linear-gradient(160deg, var(--glass-2), var(--glass)); }
.cd-num { font-family: var(--f-display); font-weight: 900; font-size: clamp(3rem, 7vw, 5rem); line-height: 1; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cd-label { color: var(--muted); font-size: .85rem; text-transform: uppercase; letter-spacing: .12em; margin: 0; }
.cd-name { font-family: var(--f-display); font-size: clamp(1.2rem, 2.4vw, 1.8rem); font-weight: 700; margin: 2px 0 0; }
html:is([lang="hi"],[lang="mr"]) .cd-name { font-family: var(--f-deva); }
.days { list-style: none; padding: 0 0 10px; margin: 0; display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.2) transparent; }
.day { flex: 0 0 170px; scroll-snap-align: start; padding: 18px; border-radius: 18px; border: 1px solid var(--line); background: rgba(255,255,255,.035); }
.day.own { border-top: 2px solid var(--red); }
.day.next { border-color: rgba(245,197,24,.6); background: rgba(245,197,24,.08); }
.d-date { font-family: var(--f-display); font-weight: 700; font-size: 1.8rem; line-height: 1; }
.d-date small { display: block; font-size: .72rem; color: var(--gold); letter-spacing: .14em; margin-top: 6px; text-transform: uppercase; }
.d-name { margin-top: 16px; font-weight: 600; line-height: 1.3; font-size: .93rem; }
.event-list { display: grid; gap: 14px; }
.event { display: grid; grid-template-columns: auto 1fr; gap: 24px; padding: 28px; scroll-margin-top: 110px; }
.event h3 { font-family: var(--f-display); font-size: 1.3rem; margin-bottom: 4px; }
.event p { margin: 0 0 8px; color: #d5daf3; }
.event p.muted { color: var(--gold); margin-bottom: 12px; }
.event:target { border-color: rgba(245,197,24,.6); }

/* News */
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.news { transition: transform .35s var(--ease); display: flex; flex-direction: column; }
.news:hover { transform: translateY(-4px); }
.news-img { height: 170px; width: 100%; object-fit: cover; border-bottom: 1px solid var(--line); display: grid; place-items: center; }
.news-img svg { width: 44px; height: 44px; fill: none; stroke: rgba(255,255,255,.55); stroke-width: 1.4; }
.ph-news { background: radial-gradient(circle at 30% 30%, var(--red), transparent 60%), linear-gradient(135deg, var(--navy), #1a0a14); }
.ph-press { background: radial-gradient(circle at 70% 40%, var(--blue), transparent 60%), linear-gradient(135deg, #07102f, var(--navy)); }
.ph-circular { background: radial-gradient(circle at 50% 70%, var(--gold), transparent 55%), linear-gradient(135deg, var(--red-deep), var(--navy)); }
.news-body { padding: 20px 22px 24px; }
.news-meta { display: flex; gap: 6px; margin: 0 0 10px; }
.news time { font-size: .78rem; font-weight: 700; color: var(--muted); letter-spacing: .04em; text-transform: uppercase; }
.news h3 { font-size: 1.12rem; margin: 6px 0; }
.news p { color: var(--muted); margin: 0 0 8px; font-size: .95rem; }

/* Gallery */
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.g-item { margin: 0; border-radius: 18px; overflow: hidden; position: relative; border: 1px solid var(--line); background: var(--glass); }
.g-open { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.g-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .6s var(--ease); }
.g-item:hover img { transform: scale(1.05); }
.g-item figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 16px 12px; font-size: .88rem; font-weight: 600;
  background: linear-gradient(transparent, rgba(3,6,20,.85)); pointer-events: none; }
.g-ph { aspect-ratio: 4 / 3; display: grid; place-items: center;
  background: radial-gradient(circle at 30% 20%, hsl(var(--h) 70% 45% / .5), transparent 60%), linear-gradient(135deg, var(--navy), var(--bg)); }
.g-ph svg { width: 40px; height: 40px; fill: none; stroke: rgba(255,255,255,.35); stroke-width: 1.4; }
.lightbox { position: fixed; inset: 0; z-index: 120; background: rgba(3,5,15,.94); display: grid; grid-template-columns: 60px 1fr 60px; align-items: center; padding: 20px; backdrop-filter: blur(10px); }
.lightbox figure { margin: 0; grid-column: 2; text-align: center; }
.lightbox img { max-height: 80vh; margin: 0 auto; border-radius: 12px; }
.lightbox figcaption { margin-top: 12px; color: var(--muted); }
.lightbox button { background: rgba(255,255,255,.08); border: 1px solid var(--line); color: #fff; width: 48px; height: 48px; border-radius: 50%; font-size: 1.6rem; cursor: pointer; }
.lb-close { position: absolute; top: 20px; right: 20px; }
.lb-prev { grid-column: 1; } .lb-next { grid-column: 3; }

/* Tables */
.table-wrap { overflow-x: auto; }
.table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.table th { text-align: left; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); padding: 16px 18px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.table td { padding: 14px 18px; border-bottom: 1px solid var(--line); vertical-align: top; }
.table tr:last-child td { border-bottom: 0; }
.table tbody tr:hover { background: rgba(255,255,255,.03); }
.table a { color: var(--sky); text-decoration: none; }

/* Membership */
.fee { font-family: var(--f-display); font-weight: 900; font-size: 3.4rem; line-height: 1; margin: 4px 0 8px; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.steps { padding-left: 0; list-style: none; counter-reset: s; display: grid; gap: 12px; margin: 0 0 22px; }
.steps li { counter-increment: s; display: flex; gap: 12px; align-items: flex-start; font-size: .95rem; }
.steps li::before { content: counter(s); flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: .8rem; background: var(--grad-btn); }
.side .btn + .btn { margin-top: 10px; }

/* Downloads */
.dl-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.dl { display: flex; align-items: center; gap: 18px; padding: 16px 20px; }
.dl .t-icon { margin: 0; }
.dl-body { display: grid; flex: 1; }

/* Donate */
.pay-grid { display: grid; gap: 14px; }
.qr-ph { width: 170px; aspect-ratio: 1; border-radius: 16px; border: 1px dashed rgba(255,255,255,.25); display: grid; place-items: center; font-family: var(--f-display); color: var(--muted); margin-bottom: 12px;
  background: repeating-linear-gradient(45deg, rgba(255,255,255,.03) 0 8px, transparent 8px 16px); }

/* Callout */
.callout {
  margin-top: 26px; display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap;
  padding: 34px 38px; border-radius: var(--r); position: relative; overflow: hidden;
  background: linear-gradient(110deg, rgba(179,20,27,.92), rgba(16,28,98,.95) 60%, rgba(46,99,240,.9)); border: 1px solid rgba(255,255,255,.14);
}
.callout > div:first-child { flex: 1 1 420px; }
.callout h3 { font-family: var(--f-display); font-size: clamp(1.2rem, 2.2vw, 1.6rem); margin-bottom: 8px; }
.callout p { margin: 0; color: rgba(255,255,255,.85); max-width: 46em; }
.callout .cta-row { margin: 0; }

/* Forms / contact */
.contact-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 24px; align-items: start; }
.form { padding: 30px; display: grid; gap: 16px; }
.row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field { display: grid; gap: 6px; font-size: .85rem; font-weight: 600; color: var(--muted); }
.field.req > span::after { content: " *"; color: var(--red); }
.field input, .field select, .field textarea {
  font: 500 1rem var(--f-body); color: var(--ink); width: 100%; padding: .8em 1em; border-radius: 12px;
  background: rgba(3, 6, 20, .55); border: 1px solid var(--line); transition: border-color .2s, box-shadow .2s;
}
.field select { appearance: none; padding-right: 40px; background-repeat: no-repeat; background-position: right 12px center; background-size: 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a3abcf' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); }
.field option { background: var(--bg-2); color: var(--ink); }
.field :is(input, select, textarea):focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 4px rgba(245,197,24,.15); }
.field .invalid { border-color: var(--red); box-shadow: 0 0 0 4px rgba(224,38,47,.15); }
.form-status { margin: 0; min-height: 1.4em; font-weight: 600; }
.form-status.ok { color: #6ee7a0; }
.form-status.err { color: #ff7b82; }
.c-list { margin: 0 0 22px; display: grid; gap: 16px; }
.c-list dt { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); font-weight: 700; }
.c-list dd { margin: 2px 0 0; font-size: 1.02rem; }
.c-list a { text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.25); }
.map-ph { min-height: 240px; border-radius: 16px; border: 1px dashed rgba(255,255,255,.2); display: grid; place-items: center; text-align: center; padding: 20px; color: var(--muted);
  background: repeating-linear-gradient(45deg, rgba(255,255,255,.02) 0 10px, transparent 10px 20px); }
.map-ph iframe { width: 100%; height: 100%; min-height: 280px; border: 0; border-radius: 16px; }

/* Footer */
.footer { position: relative; padding: 30px 0 26px; border-top: 1px solid var(--line); overflow: hidden; margin-top: 40px; }
.footer-motto { font-family: var(--f-deva); font-weight: 800; font-size: clamp(4rem, 16vw, 14rem); line-height: .9; text-align: center; margin: 0 0 30px;
  background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0)); -webkit-background-clip: text; background-clip: text; color: transparent; user-select: none; }
.footer-cols { display: grid; grid-template-columns: 2fr 1.3fr 1fr; gap: 36px; }
.footer h4 { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; font-family: var(--f-body); }
.footer-brand { display: flex; align-items: flex-start; gap: 14px; }
.footer-brand img { border-radius: 50%; clip-path: circle(49%); flex: none; }
.footer-brand strong { display: block; font-family: var(--f-deva); font-size: 1.15rem; line-height: 1.3; }
.footer-brand small { color: var(--gold); display: block; margin-bottom: 10px; }
.footer-brand p { margin: 0 0 6px; font-size: .9rem; }
.footer-links { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, auto); gap: 6px 18px; justify-content: start; }
.footer-cols > div:last-child .footer-links { grid-template-columns: 1fr; }
.footer-links a { text-decoration: none; color: var(--muted); font-weight: 600; font-size: .92rem; }
.footer-links a:hover { color: #fff; }
.footer-bottom { margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; color: var(--muted); font-size: .88rem; }
.tri { display: inline-flex; border-radius: 3px; overflow: hidden; }
.tri i { width: 22px; height: 5px; } .tri i:nth-child(1) { background: #ff9933; } .tri i:nth-child(2) { background: #fff; } .tri i:nth-child(3) { background: #138808; }

/* ---------- Reveal ---------- */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease), transform .8s var(--ease); transition-delay: var(--d, 0s); }
.reveal.in { opacity: 1; transform: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1280px) {
  .menu-btn { display: block; }
  .nav {
    position: absolute; top: calc(100% + 10px); left: 16px; right: 16px; flex-direction: column; gap: 2px; padding: 12px;
    border-radius: 24px; background: rgba(8,12,36,.96); border: 1px solid var(--line); backdrop-filter: blur(20px);
    opacity: 0; visibility: hidden; transform: translateY(-8px); transition: .3s var(--ease); max-height: calc(100svh - 110px); overflow-y: auto;
  }
  .nav.open { opacity: 1; visibility: visible; transform: none; }
  .nav a { padding: .8em 1em; font-size: 1rem !important; }
  .nav-only-mobile { display: block; }
  .header-actions { margin-left: auto; }
}
@media (max-width: 1080px) {
  .regions, .upcoming { grid-template-columns: repeat(2, 1fr); }
  .regions > .region:last-child:nth-child(odd) { grid-column: span 2; }
  .program-grid, .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .aims { grid-template-columns: 1fr; }
  .hide-md { display: none; }
}
@media (max-width: 860px) {
  .hero { padding-top: 110px; }
  .hero-inner, .about, .two-col, .two-col.wide-left, .contact-grid, .footer-cols { grid-template-columns: 1fr; }
  .hero-emblem { order: -1; width: min(300px, 80%); }
  .values, .news-grid { grid-template-columns: 1fr; }
  .president { grid-template-columns: 1fr; text-align: left; padding: 26px; gap: 20px; }
  .pres-img { width: 96px; height: 96px; }
  .sticky { position: static; }
  .page-hero { padding-top: 120px; }
}
@media (max-width: 560px) {
  body { font-size: 16px; }
  .hide-sm { display: none; }
  .program-grid, .upcoming { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .regions { gap: 10px; }
  .region { padding: 20px 16px 18px; min-height: 130px; }
  .r-hi { font-size: 1.25rem; }
  .row { grid-template-columns: 1fr; }
  .form, .side, .program-detail { padding: 22px; }
  .callout { padding: 26px 22px; }
  .event { grid-template-columns: 1fr; gap: 14px; padding: 22px; }
  .hero-meta { gap: 20px; }
  .table { font-size: .88rem; }
  .table th, .table td { padding: 12px; }
  .lightbox { grid-template-columns: 1fr; }
  .lb-prev, .lb-next { position: absolute; bottom: 24px; }
  .lb-prev { left: 30%; } .lb-next { right: 30%; }
}
@media (max-width: 400px) {
  .lang-switch button { padding: .5em .55em; font-size: .76rem; }
  .brand-text small { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; }
}

/* ---------- Maharashtra & Goa focus ---------- */
.tag-crest { width: 22px; height: 22px; border-radius: 50%; object-fit: cover; clip-path: circle(49%); flex: none; }
.hero-title { margin: 22px 0 4px; line-height: 1; display: flex; flex-direction: column; gap: 10px; }
.grad-gold {
  font-family: var(--f-display); font-weight: 900; font-size: clamp(2.5rem, 6.4vw, 5.4rem); letter-spacing: -.035em; line-height: .98;
  background: linear-gradient(180deg, #fff 25%, #ffd84d 70%, #f5a623); -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 8px 40px rgba(245,197,24,.25));
}
html:is([lang="hi"],[lang="mr"]) .grad-gold { font-family: var(--f-deva); font-weight: 800; letter-spacing: 0; font-size: clamp(3rem, 8vw, 6.4rem); line-height: 1.05; }
.hero-unit { font-family: var(--f-body); font-size: .8rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--sky); }
html:is([lang="hi"],[lang="mr"]) .hero-unit { font-family: var(--f-deva); letter-spacing: .05em; font-size: 1rem; }
.hero-motto { font-family: var(--f-deva); font-weight: 700; font-size: clamp(1.25rem, 2.6vw, 1.9rem); color: #fff; margin: 12px 0 4px; }
.emblem-mh { width: 68%; box-shadow: 0 0 0 6px rgba(255,255,255,.06); }
html:is([lang="hi"],[lang="mr"]) .brand-text strong { font-family: var(--f-deva); font-size: 1.1rem; letter-spacing: 0; }
.brand-text small { letter-spacing: .12em; }
.head-p { margin: 8px 0 0; max-width: 44em; }
.parent { display: grid; grid-template-columns: 110px 1fr; gap: 24px; padding: 30px; align-items: start; }
.parent img, .parent-block > img { width: 110px; aspect-ratio: 1; border-radius: 50%; object-fit: cover; clip-path: circle(49%); }
.parent h3 { font-family: var(--f-display); font-size: 1.2rem; }
.parent .badges { margin-bottom: 0; }
.parent-block { display: grid; grid-template-columns: 160px 1fr; gap: 36px; padding: 36px; align-items: start; }
.parent-block > img { width: 160px; }
.timeline.compact { padding: 8px 0 0 4px; margin-top: 8px; }
.region-note { padding: 16px 20px; border-radius: 14px; border-left: 3px solid var(--gold); background: rgba(245,197,24,.07); color: #e9ecff !important; }
.event-list.national .event { border-left: 3px solid var(--sky); }
.event-list.national .event-date { background: linear-gradient(160deg, var(--blue), var(--navy)); }
@media (max-width: 860px) {
  .parent, .parent-block { grid-template-columns: 1fr; padding: 24px; }
  .parent img { width: 80px; }
  .parent-block > img { width: 110px; }
}
@media (max-width: 560px) {
  .brand { gap: 8px; min-width: 0; }
  .brand img { width: 40px; height: 40px; }
  .brand-text { min-width: 0; }
  .brand-text strong { font-size: .72rem; line-height: 1.15; max-width: 9em; white-space: normal; }
  html:is([lang="hi"],[lang="mr"]) .brand-text strong { font-size: .98rem; }
  .brand-text small { font-size: .66rem; }
  .header-inner { gap: 6px; padding-right: 6px; }
  .header-actions { gap: 6px; }
  .lang-switch button { padding: .5em .55em; font-size: .76rem; }
}
@media (max-width: 350px) { .brand-text { display: none; } }

/* Corporate type tuning (Inter / Plus Jakarta Sans / Noto Sans Devanagari) */
h2, .page-hero h1, .value-title, .sub-h, .callout h3, .event h3, .tile h3 { letter-spacing: -.015em; }
.grad-gold { letter-spacing: -.03em; }
html:is([lang="hi"],[lang="mr"]) .grad-gold { line-height: 1.25; padding-top: .05em; }
html:is([lang="hi"],[lang="mr"]) :is(h1, h2, h3) { line-height: 1.35; }
.hero-motto, .r-hi, .marquee span:nth-of-type(odd), .footer-motto { font-weight: 700; }
.footer-motto { line-height: 1.1; }
.hero-unit { font-weight: 600; }

/* ---------- People & event photos ---------- */
.face { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; flex: none; border: 1px solid rgba(255,255,255,.2); }
.face.ph { display: inline-grid; place-items: center; background: linear-gradient(145deg, var(--navy), var(--bg)); color: var(--gold); font-weight: 700; font-size: .85rem; }
.face.lg { width: 96px; height: 96px; border: 0; box-shadow: 0 0 0 3px var(--bg), 0 0 0 5px var(--gold); }
.who { display: inline-flex; align-items: center; gap: 10px; }
.people-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; margin-bottom: 22px; }
.person { margin: 0; padding: 24px 16px 20px; text-align: center; display: grid; justify-items: center; gap: 14px; }
.person figcaption { display: grid; gap: 4px; }
.person strong { font-size: .98rem; line-height: 1.3; }
.person span { color: var(--muted); font-size: .84rem; line-height: 1.35; }
.pres-card { display: flex; gap: 16px; align-items: center; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--line); }
.pres-card > div { display: grid; gap: 2px; }
.pres-card a { color: var(--sky); text-decoration: none; }
.event-imgs { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.event-imgs .g-open { width: 150px; height: 100px; border-radius: 12px; overflow: hidden; border: 1px solid var(--line); padding: 0; background: none; cursor: zoom-in; }
.event-imgs img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.event-imgs .g-open:hover img { transform: scale(1.06); }
.pres-img { object-position: 50% 15%; }
@media (max-width: 560px) {
  .people-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .face.lg { width: 76px; height: 76px; }
  .event-imgs .g-open { width: calc(50% - 5px); }
}

/* Values & membership checklist */
.value-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.vcard { padding: 24px; border-left: 3px solid var(--gold); }
.vcard h3 { font-size: 1.1rem; margin-bottom: 6px; }
.vcard p { color: var(--muted); margin: 0; font-size: .95rem; }
.need { padding: 14px 16px; margin: 0 0 18px; border-radius: 14px; background: rgba(95,180,236,.08); border: 1px solid rgba(95,180,236,.25); }
.need p { margin: 0 0 6px; } .need p:last-child { margin: 0; }
.need-t { font-weight: 700; font-size: .9rem; color: var(--sky); }
@media (max-width: 1080px) { .value-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .value-grid { grid-template-columns: 1fr; } }

/* ID card section */
.idcard { display: grid; grid-template-columns: 1fr auto; gap: 36px; padding: 36px; align-items: center;
  background: radial-gradient(circle at 100% 0%, rgba(245,197,24,.14), transparent 45%), linear-gradient(160deg, var(--glass-2), var(--glass)); }
.idcard .steps { margin: 18px 0 24px; }
.idcard-fee { text-align: center; padding: 24px 30px; border-radius: 18px; border: 1px dashed rgba(245,197,24,.4); }
.idcard-fee .fee { margin: 4px 0; }
@media (max-width: 760px) { .idcard { grid-template-columns: 1fr; padding: 24px; } .idcard-fee { text-align: left; } }
.idcard-note { margin: -8px 0 20px; max-width: 46em; }

/* ---------- Veterans' Help Desk ---------- */
.asof { display: inline-block; margin-top: 6px; padding: .5em .9em; border-radius: 10px; font-size: .86rem; color: var(--gold); background: rgba(245,197,24,.08); border: 1px solid rgba(245,197,24,.25); }
.jump { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.hotlines { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.hot { display: grid; gap: 4px; align-content: start; padding: 20px; text-decoration: none; color: var(--ink); transition: transform .3s var(--ease); }
.hot:hover { transform: translateY(-3px); }
.hot b { font-family: var(--f-display); font-size: 1.35rem; letter-spacing: -.01em; color: #fff; }
.hot.primary { background: linear-gradient(150deg, rgba(179,20,27,.55), rgba(16,28,98,.6)); border-color: rgba(255,255,255,.18); }
.hot-label { font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gold); }
html:is([lang="hi"],[lang="mr"]) .hot-label { text-transform: none; letter-spacing: 0; font-size: .9rem; }
.hot-desc { font-size: .84rem; color: var(--muted); line-height: 1.45; }
.hot-desc.warn { color: #ffd3d5; }
.emergency { padding: 30px 34px; border-radius: var(--r); background: linear-gradient(120deg, rgba(179,20,27,.9), rgba(90,10,30,.92)); border: 1px solid rgba(255,255,255,.15); }
.emergency h2 { color: #fff; margin-bottom: 16px; }
.steps.light li { color: #fff; font-size: 1rem; }
.steps.light li::before { background: #fff; color: var(--red-deep); }
.accordion { display: grid; gap: 10px; }
.acc { padding: 0; overflow: hidden; }
.acc summary { cursor: pointer; list-style: none; padding: 18px 22px; font-weight: 700; font-size: 1.05rem; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.acc summary::-webkit-details-marker { display: none; }
.acc summary::after { content: "+"; font-size: 1.4rem; color: var(--gold); transition: transform .3s var(--ease); }
.acc[open] summary::after { transform: rotate(45deg); }
.acc-body { padding: 0 22px 20px; color: #d5daf3; }
.acc-body ul, .acc-body ol { margin: 0; padding-left: 1.2em; display: grid; gap: 8px; }
.acc-body a, .dir a, .more-list a { color: var(--sky); }
.acc-body .table { margin-top: 4px; }
.dir-tools { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 16px 0 12px; }
.dir-search, .dir-city { font: 500 1rem var(--f-body); color: var(--ink); padding: .75em 1em; border-radius: 12px; background: rgba(3,6,20,.55); border: 1px solid var(--line); }
.dir-search { flex: 1 1 320px; }
.dir-city { flex: 0 1 220px; }
.dir-city option { background: var(--bg-2); }
.dir-search:focus, .dir-city:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 4px rgba(245,197,24,.15); }
.dir-note { margin-bottom: 12px; color: var(--muted); font-size: .92rem; display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; }
.dir-note p { margin: 0; flex: 1 1 420px; }
.dir-note:empty { display: none; }
.dir-tabs .count { font-size: .75rem; opacity: .75; margin-left: 2px; }
.table.dir td { font-size: .9rem; }
.table.dir td:first-child { min-width: 260px; }
.dir-empty { padding: 24px; margin: 0; }
#dirTable { max-height: 70vh; overflow: auto; }
#dirTable thead th { position: sticky; top: 0; background: #0b1233; z-index: 1; }
.more-list { list-style: none; padding: 0; margin: 0 0 24px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.more-list li { padding: 20px 22px; color: #d5daf3; font-size: .95rem; }
.sources { padding-top: 10px; border-top: 1px solid var(--line); }
@media (max-width: 1080px) { .hotlines { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) {
  .hotlines, .more-list { grid-template-columns: 1fr; }
  .emergency { padding: 24px 20px; }
  .table.dir td:first-child { min-width: 200px; }
}

/* Larger leader portraits (Organisation page, prant pages, tables) */
.people-grid { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px; }
.person { padding: 14px 14px 20px; gap: 14px; }
.person .face.lg { width: 100%; height: auto; aspect-ratio: 4 / 5; border-radius: 16px; box-shadow: 0 0 0 2px rgba(245,197,24,.55), 0 18px 40px -18px rgba(0,0,0,.8); object-position: 50% 18%; }
.person strong { font-size: 1.05rem; }
.person span { font-size: .88rem; }
.pres-card { flex-direction: column; align-items: flex-start; }
.pres-card .face.lg { width: 100%; max-width: 260px; height: auto; aspect-ratio: 4 / 5; border-radius: 16px; object-position: 50% 18%; box-shadow: 0 0 0 2px rgba(245,197,24,.55); }
.face { width: 44px; height: 44px; }
.pres-img { width: 200px; height: 200px; }
.president { grid-template-columns: 200px 1fr; }
@media (max-width: 860px) { .pres-img { width: 140px; height: 140px; } .president { grid-template-columns: 1fr; } }
@media (max-width: 560px) {
  .people-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .person { padding: 10px 10px 14px; }
  .person strong { font-size: .92rem; }
  .person span { font-size: .8rem; }
}
.steps.light li { display: block; position: relative; padding-left: 38px; }
.steps.light li::before { position: absolute; left: 0; top: 1px; }

/* Directory: "show more", and card layout on phones */
.dir-more { display: flex; margin: 14px auto; }
@media (max-width: 720px) {
  .dir-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: 0 16px 4px; scroll-snap-type: x proximity; }
  .dir-tabs::-webkit-scrollbar { display: none; }
  .dir-tabs .chip { flex: none; scroll-snap-align: start; }
  .dir-tools { position: sticky; top: 76px; z-index: 5; margin: 12px -16px; padding: 10px 16px; background: rgba(6,10,28,.94); backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
  .dir-search { flex-basis: 100%; }
  .dir-city { flex: 1 1 auto; }
  #dirTable { max-height: none; overflow: visible; background: none; border: 0; backdrop-filter: none; }
  .table.dir, .table.dir tbody, .table.dir tr, .table.dir td { display: block; width: 100%; }
  .table.dir thead { display: none; }
  .table.dir tr { margin-bottom: 12px; padding: 16px; border-radius: 16px; border: 1px solid var(--line); background: linear-gradient(160deg, var(--glass-2), var(--glass)); }
  .table.dir tbody tr:hover { background: linear-gradient(160deg, var(--glass-2), var(--glass)); }
  .table.dir td { border: 0; padding: 4px 0; font-size: .95rem; min-width: 0 !important; }
  .table.dir td:first-child { font-size: 1.02rem; padding-bottom: 8px; line-height: 1.4; }
  .table.dir td:first-child .muted { display: block; margin-top: 4px; font-size: .88rem; line-height: 1.5; }
  .table.dir td:not(:first-child)::before { content: attr(data-label); display: block; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); margin-bottom: 2px; }
  html:is([lang="hi"],[lang="mr"]) .table.dir td:not(:first-child)::before { text-transform: none; letter-spacing: 0; font-size: .8rem; }
  .table.dir td br { display: none; }
  .table.dir a.tel { display: inline-flex; align-items: center; gap: 6px; margin: 4px 6px 2px 0; padding: .5em .9em; border-radius: 999px; font-weight: 700; text-decoration: none; color: #fff; background: rgba(95,180,236,.16); border: 1px solid rgba(95,180,236,.4); }
  .table.dir a.tel::before { content: "📞"; font-size: .85em; }
  .table.dir a[href^="mailto:"] { display: block; margin-top: 4px; word-break: break-all; }
  .dir-more { width: 100%; }
}

/* ---------- Dropdown menus ---------- */
.nav { align-items: center; }
.nav .top { font: 600 .86rem var(--f-body); color: var(--muted); padding: .55em .75em; border-radius: 999px; text-decoration: none; white-space: nowrap; transition: color .2s, background .2s; }
html:is([lang="hi"],[lang="mr"]) .nav .top { font-family: var(--f-deva); font-size: .95rem; }
.nav .top:hover, .nav .top.active, .dd.open > .dd-btn { color: #fff; background: rgba(255,255,255,.08); }
.dd { position: relative; }
.dd-btn { background: none; border: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.dd-btn i { font-style: normal; font-size: .7em; opacity: .7; transition: transform .25s var(--ease); }
.dd.open > .dd-btn i { transform: rotate(180deg); }
.dd-panel { display: none; position: absolute; top: calc(100% + 10px); left: 0; min-width: 240px; padding: 10px; border-radius: 18px; z-index: 70;
  background: rgba(8,12,36,.97); border: 1px solid var(--line); box-shadow: 0 24px 60px -20px rgba(0,0,0,.8); backdrop-filter: blur(20px); }
.dd.open > .dd-panel { display: block; }
.dd-wide > .dd-panel { left: 50%; transform: translateX(-50%); min-width: 720px; }
.dd-wide.open > .dd-panel { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 4px 10px; }
.dd-panel::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.dd-group { display: grid; align-content: start; }
.dd-h { margin: 6px 12px 6px; font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); }
html:is([lang="hi"],[lang="mr"]) .dd-h { letter-spacing: .02em; font-size: .82rem; text-transform: none; }
.nav .dd-panel a { display: block; padding: .6em .9em; border-radius: 10px; font-size: .92rem; color: #dfe3fb; white-space: normal; }
.nav .dd-panel a:hover, .nav .dd-panel a.active { background: rgba(255,255,255,.08); color: #fff; }
@media (max-width: 1280px) {
  .nav .top, .dd-btn { width: 100%; justify-content: space-between; text-align: left; padding: .85em 1em; font-size: 1rem; border-radius: 12px; }
  .dd-panel, .dd-wide > .dd-panel { position: static; transform: none; min-width: 0; box-shadow: none; border: 0; background: rgba(255,255,255,.03); margin: 2px 0 8px; backdrop-filter: none; }
  .dd-wide.open > .dd-panel { display: block; }
  .dd-panel::before { display: none; }
  .nav .dd-panel a { padding: .75em 1em; font-size: .98rem; }
}

/* ---------- Text size control ---------- */
.fs-ctl { position: fixed; left: 14px; bottom: 14px; z-index: 55; display: flex; padding: 3px; border-radius: 999px; background: rgba(8,12,36,.88); border: 1px solid var(--line); backdrop-filter: blur(12px); box-shadow: 0 10px 30px -10px rgba(0,0,0,.7); }
.fs-ctl button { font: 700 .8rem/1 var(--f-body); color: var(--muted); background: none; border: 0; cursor: pointer; padding: .6em .7em; border-radius: 999px; min-width: 34px; }
.fs-ctl button[aria-pressed="true"] { background: var(--grad-btn); color: #fff; }
.fs-ctl button:focus-visible { outline: 2px solid var(--gold); }

/* ---------- Help hub, scam alert, related, directions ---------- */
.hub { display: grid; gap: 22px; }
.hub-group .dd-h { margin: 0 0 10px; }
.hub-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.hub-tile { display: flex; align-items: center; gap: 14px; padding: 16px 18px; text-decoration: none; color: var(--ink); font-weight: 600; transition: transform .3s var(--ease); }
.hub-tile:hover { transform: translateY(-3px); }
.hub-tile .t-icon { margin: 0; width: 44px; height: 44px; }
.hub-tile span:nth-child(2) { flex: 1; line-height: 1.3; }
.hub-tile i { font-style: normal; color: var(--gold); }
.scam { padding: 28px 30px; border-left: 4px solid #ff9f1c; background: linear-gradient(160deg, rgba(255,159,28,.12), rgba(255,255,255,.03)); }
.scam h2 { font-size: clamp(1.4rem, 3vw, 2rem); }
.scam a { color: var(--sky); }
.related { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--line); }
.related .dd-h { margin: 0 0 10px; }
.dirn { display: inline-flex; align-items: center; gap: 4px; margin-top: 6px; font-size: .85rem; font-weight: 600; color: var(--gold) !important; text-decoration: none; }
.dirn:hover { text-decoration: underline; }
.app-tip { margin: 0 0 14px; }
@media (max-width: 720px) {
  .table.dir a.dirn { display: inline-flex; margin: 4px 6px 2px 0; padding: .5em .9em; border-radius: 999px; background: rgba(245,197,24,.12); border: 1px solid rgba(245,197,24,.35); }
  .fs-ctl { left: 10px; bottom: 10px; }
  .fs-ctl button { padding: .55em .6em; min-width: 30px; }
  .hub-grid { grid-template-columns: 1fr; }
}

/* ---------- Print ---------- */
@media print {
  .aurora, .grain, .progress, .header, .footer, .fs-ctl, .marquee, .hero-emblem, .jump, .related, .dir-tools, .dir-more, .skip, .btn, .dirn { display: none !important; }
  body, html { background: #fff !important; color: #000 !important; font-size: 11pt; }
  * { color: #000 !important; background: none !important; box-shadow: none !important; -webkit-text-fill-color: #000 !important; filter: none !important; backdrop-filter: none !important; }
  .glass, .table-wrap, .acc, .hot, .scam, .emergency { border: 1px solid #999 !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
  .page-hero { padding-top: 0; }
  details.acc { display: block; } details.acc > * { display: block !important; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; }
  #dirTable { max-height: none !important; overflow: visible !important; }
  .table.dir tr { page-break-inside: avoid; }
}

/* ---------- Mobile app view (phone screens) ---------- */
.tabbar { display: none; }
@media (max-width: 720px) {
  html { -webkit-tap-highlight-color: transparent; }
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .tabbar {
    display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 65;
    padding: 6px 6px calc(6px + env(safe-area-inset-bottom)); background: rgba(8,12,36,.96); border-top: 1px solid var(--line);
    backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%);
  }
  .tabbar a, .tabbar button {
    display: grid; justify-items: center; gap: 3px; padding: 7px 2px 5px; border-radius: 14px; border: 0; background: none; cursor: pointer;
    color: var(--muted); text-decoration: none; font: 600 .68rem/1.1 var(--f-body); transition: color .2s, background .2s, transform .15s;
  }
  html:is([lang="hi"],[lang="mr"]) .tabbar a, html:is([lang="hi"],[lang="mr"]) .tabbar button { font-family: var(--f-deva); font-size: .74rem; }
  .tabbar svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .tabbar .on { color: #fff; }
  .tabbar .on svg { stroke: var(--gold); }
  .tabbar .on::after { content: ""; width: 18px; height: 3px; border-radius: 3px; background: var(--gold); margin-top: 1px; }
  .tabbar a:active, .tabbar button:active { transform: scale(.92); background: rgba(255,255,255,.06); }

  /* Compact top bar; the menu lives in the tab bar */
  .header { top: calc(8px + env(safe-area-inset-top)); padding-inline: 10px; }
  .header-inner { padding: 6px 8px 6px 8px; }
  .menu-btn { display: none !important; }
  .nav {
    position: fixed; top: calc(74px + env(safe-area-inset-top)); bottom: calc(76px + env(safe-area-inset-bottom)); left: 10px; right: 10px;
    max-height: none; overflow-y: auto; overscroll-behavior: contain; border-radius: 22px; padding: 12px;
  }
  body.sheet-open { overflow: hidden; }
  .fs-ctl { bottom: calc(84px + env(safe-area-inset-bottom)); }

  /* Native-feeling taps */
  :is(.hot, .hub-tile, .region, .tile, .up, .news, .btn, .chip, .person, .dl, .portal):active { transform: scale(.97); transition: transform .1s; }

  /* Lighter effects to save battery */
  .blob { filter: blur(60px); }
  .grid-floor { display: none; }
  .page-hero { padding-top: 110px; }
  .footer { margin-top: 20px; }
}
html.standalone .app-tip { display: none; }
@media (max-width: 720px) and (display-mode: standalone) {
  .header { top: calc(4px + env(safe-area-inset-top)); }
}
@media (max-width: 720px) {
  /* backdrop-filter on the header would trap the fixed menu sheet inside it */
  .header-inner, .header.scrolled .header-inner { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(8,12,36,.94); }
  .nav { transform: none; }
}
@media (max-width: 720px) {
  /* Text size lives in the menu sheet on phones */
  .fs-ctl { display: none; }
  body.sheet-open .fs-ctl { display: flex; left: 50%; transform: translateX(-50%); bottom: calc(90px + env(safe-area-inset-bottom)); z-index: 72; }
  body.sheet-open .nav { padding-bottom: 70px; }
}
@media (max-width: 1280px) {
  .nav { align-items: stretch; }
  .nav > .dd, .nav > a.top { width: 100%; }
  .dd-btn i { font-size: .95rem; opacity: .9; }
}
@media (max-width: 720px) {
  .nav { background: #0b1030; }
  .nav .top, .dd-btn { font-size: 1.05rem; font-weight: 700; color: #fff; }
  .nav > .dd + .dd, .nav > .dd + a.top { border-top: 1px solid var(--line); }
  .dd-panel, .dd-wide > .dd-panel { background: rgba(255,255,255,.04); border-radius: 14px; }
}
@media (max-width: 720px) {
  body.sheet-open .fs-ctl { display: none; }
  body.sheet-open .nav { padding-bottom: 12px; }
  .fs-ctl.in-sheet, body.sheet-open .fs-ctl.in-sheet { display: flex; position: static; transform: none; width: max-content; margin: 16px auto 4px; box-shadow: none; }
}
