/* =========================================================
   TOKENS
   ========================================================= */
:root{
  --green-900:#0F2E22;
  --green-800:#153C2B;
  --green-700:#1F5A3D;
  --green-600:#2D7A52;
  --gold:#C79A2B;
  --soil:#A6472B;

  /* Theme-varying surfaces/text — overridden under [data-theme="dark"] */
  --paper:#F4F7F1;
  --paper-warm:#EAEEE3;
  --ink:#14231B;
  --ink-soft:#4B5C51;
  --line:rgba(20,35,27,0.12);
  --heading:var(--green-900);
  --link:var(--green-700);
  --card-bg:#ffffff;
  --header-bg:rgba(244,247,241,0.92);

  /* Fixed — always-dark brand bands (hero/footer/stats) keep light text
     regardless of site theme, so this never changes. */
  --on-dark:#F4F7F1;

  --font-display:'Bitter', 'Noto Serif Devanagari', serif;
  --font-body:'IBM Plex Sans', 'Noto Sans Devanagari', sans-serif;

  --maxw:1120px;
  --radius:10px;
  --radius-sm:6px;
  --header-h:68px;
}

[data-theme="dark"]{
  --paper:#141C18;
  --paper-warm:#1B241E;
  --ink:#E7ECE6;
  --ink-soft:#9FB0A6;
  --line:rgba(231,236,230,0.14);
  --heading:#F2F6F0;
  --link:#6FCB98;
  --card-bg:#1F2A23;
  --header-bg:rgba(20,28,24,0.88);
}

*{box-sizing:border-box;}
html{
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h) + 1px);
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  transition:background-color .25s ease, color .25s ease;
}

h1,h2,h3{
  font-family:var(--font-display);
  color:var(--heading);
  margin:0 0 0.5em;
  font-weight:700;
  line-height:1.15;
}

p{margin:0 0 1em; max-width:62ch; color:var(--ink-soft);}

a{color:var(--link); text-decoration:none;}
a:hover{color:var(--gold);}
a:focus-visible, button:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
.visually-hidden{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);}
.skip-link{
  position:absolute; left:-999px; top:0; background:var(--green-900); color:#fff;
  padding:10px 16px; z-index:1000;
}
.skip-link:focus{left:16px; top:16px;}

/* =========================================================
   BUTTONS
   ========================================================= */
.btn{
  display:inline-block;
  padding:12px 22px;
  border-radius:var(--radius);
  font-weight:600;
  border:1px solid transparent;
  transition:transform .15s ease, background .2s ease, color .2s ease;
}
.btn-primary{background:var(--green-700); color:#fff;}
.btn-primary:hover{background:var(--green-800); color:#fff; transform:translateY(-1px);}
.btn-ghost{border-color:rgba(244,247,241,0.5); color:var(--on-dark);}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold);}
.btn-outline-light{border-color:rgba(244,247,241,0.4); color:var(--on-dark);}
.btn-outline-light:hover{background:var(--on-dark); color:var(--green-900);}

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:sticky; top:0; z-index:100;
  background:var(--header-bg);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
  transition:background-color .25s ease;
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height:var(--header-h);
}
.brand{display:flex; align-items:center; gap:10px; color:var(--heading); font-weight:600;}
.brand-mark{
  display:inline-block; flex:none; width:28px; height:28px; object-fit:contain;
}
.brand-text{font-family:var(--font-display); font-size:1.08rem; white-space:nowrap;}
.brand-short{display:none;}

.header-right{display:flex; align-items:center; gap:20px;}

.nav-list{
  display:flex; gap:28px; list-style:none; margin:0; padding:0; align-items:center;
}
.nav-list a{color:var(--ink); font-weight:500; font-size:0.95rem;}
.nav-list a:hover{color:var(--gold);}
.nav-cta{
  background:var(--green-700); color:#fff !important; padding:8px 16px; border-radius:var(--radius);
}
.nav-cta:hover{background:var(--green-800); color:#fff !important;}

.nav-toggle{
  display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px;
}
.nav-toggle span{width:22px; height:2px; background:var(--ink); display:block;}

.header-controls{display:flex; align-items:center; gap:8px;}
.icon-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%;
  border:1px solid var(--line); background:transparent; color:var(--ink);
  cursor:pointer; padding:0;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease;
}
.icon-btn:hover{background:var(--paper-warm); color:var(--green-700); border-color:var(--green-700);}
.icon-btn .icon-moon{display:none;}
[data-theme="dark"] .icon-btn .icon-sun{display:none;}
[data-theme="dark"] .icon-btn .icon-moon{display:block;}
.lang-btn{
  width:auto; border-radius:var(--radius-sm); padding:0 12px; height:36px;
  font-size:0.8rem; font-weight:700; font-family:var(--font-body);
}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  overflow:hidden;
  background:var(--green-900);
  color:var(--on-dark);
  padding:88px 0 96px;
}
.notfound-hero{min-height:64vh; display:flex; align-items:center; padding:96px 0;}
.hero-bg{
  position:absolute; inset:0;
  background-size:cover; background-position:center 35%;
  transform:scale(1);
  animation:heroZoom 18s ease-out forwards;
}
.hero-scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,46,34,0.74) 0%, rgba(15,46,34,0.92) 100%);
}
@keyframes heroZoom{to{transform:scale(1.06);}}
.hero-inner{
  position:relative; z-index:1;
}
.hero-copy{max-width:640px;}
.hero-eyebrow{
  color:var(--gold); font-size:0.85rem; letter-spacing:0.01em; margin-bottom:18px;
}
.hero-title{
  color:var(--on-dark); font-size:clamp(2.1rem, 4vw, 3.1rem); max-width:14ch; font-weight:800;
}
.hero-title em{font-style:italic; color:var(--gold);}
.hero-sub{color:rgba(244,247,241,0.78); max-width:46ch;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-top:28px;}

/* =========================================================
   SECTIONS (generic)
   ========================================================= */
.section{padding:88px 0;}
.section-alt{background:var(--paper-warm);}
.section-title{font-size:clamp(1.5rem, 2.6vw, 2rem); margin-bottom:0.9em;}
.section-title.on-dark{color:var(--on-dark);}

[data-reveal]{
  opacity:0; transform:translateY(14px);
  transition:opacity .6s ease, transform .6s ease;
}
[data-reveal].is-visible{opacity:1; transform:none;}

/* =========================================================
   ABOUT
   ========================================================= */
.about-grid{
  display:grid; grid-template-columns:1.4fr 1fr; gap:56px; align-items:start;
}
.fact-panel{
  background:var(--card-bg); border:1px solid var(--line); border-radius:var(--radius); padding:28px;
  transition:background-color .25s ease;
}
.fact-panel h3{font-size:1rem; text-transform:none; margin-bottom:14px;}
.fact-panel dl{margin:0;}
.fact-panel dl > div{
  display:flex; justify-content:space-between; gap:12px;
  padding:9px 0; border-bottom:1px solid var(--line); font-size:0.92rem;
}
.fact-panel dl > div:last-child{border-bottom:0;}
.fact-panel dt{color:var(--ink-soft);}
.fact-panel dd{margin:0; font-weight:600; text-align:right; color:var(--heading);}

/* =========================================================
   ORGANISATION
   ========================================================= */
.section-lede{max-width:68ch; margin-bottom:2em;}
.fronts-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden;
}
.front{background:var(--paper); padding:20px 22px;}
.front h3{font-size:0.98rem; margin-bottom:4px;}
.front p{margin:0; font-size:0.86rem;}

/* =========================================================
   TIMELINE
   ========================================================= */
.timeline{
  list-style:none; margin:0; padding:0;
  border-left:2px solid var(--line);
  max-width:760px;
}
.timeline li{
  position:relative; padding:0 0 34px 32px;
}
.timeline li::before{
  content:""; position:absolute; left:-7px; top:4px;
  width:12px; height:12px; border-radius:50%;
  background:var(--paper); border:2px solid var(--green-700);
}
.timeline li.tl-memorial::before{border-color:var(--soil);}
.tl-year{
  display:block; font-family:var(--font-display); font-weight:600; color:var(--link);
  font-size:1.05rem; margin-bottom:4px;
}
.tl-memorial .tl-year{color:var(--soil);}
.timeline p{margin:0; max-width:56ch;}

/* =========================================================
   MOMENTS
   ========================================================= */
.moments-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;
}
.moments-grid img{
  display:block; width:100%; height:200px; object-fit:cover; border-radius:var(--radius);
}

/* =========================================================
   LEADERSHIP
   ========================================================= */
.leader-grid{
  display:grid; grid-template-columns:repeat(2, 1fr); gap:1px;
  background:var(--line); border:1px solid var(--line); margin-bottom:40px;
  border-radius:var(--radius); overflow:hidden;
}
.leader-row{
  background:var(--paper); padding:22px 24px; display:flex; align-items:center; gap:16px;
}
.leader-mark{
  width:44px; height:44px; border-radius:50%; flex:none;
  background:var(--green-700); color:#fff; font-family:var(--font-display); font-weight:600;
  display:flex; align-items:center; justify-content:center; font-size:0.95rem;
}
.leader-row h3{font-size:1.02rem; margin-bottom:2px;}
.leader-role{margin:0; font-size:0.88rem; color:var(--ink-soft);}

.memoriam{
  border-top:1px solid var(--line); padding-top:28px; max-width:920px;
  display:grid; grid-template-columns:1fr 280px; gap:32px; align-items:start;
}
.memoriam-label{
  color:var(--soil); font-weight:600; font-size:0.85rem; margin-bottom:6px;
}
.memoriam-name{
  font-family:var(--font-display); font-size:1.2rem; color:var(--heading); margin-bottom:8px;
}
.memoriam-name span{color:var(--ink-soft); font-style:italic; font-weight:400; font-size:1rem;}
.memoriam-text{margin:0;}
.memoriam-photo{display:block; width:100%; height:auto; border-radius:var(--radius);}

/* =========================================================
   STATS
   ========================================================= */
.stats-band{background:var(--green-900); color:var(--on-dark);}
.stats-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:32px; margin-top:20px;
}
.stat{border-top:1px solid rgba(244,247,241,0.25); padding-top:18px;}
.stat-num{
  font-family:var(--font-display); font-size:clamp(2.2rem, 4vw, 3rem); font-weight:600; color:var(--gold);
}
.stat-den{font-family:var(--font-display); font-size:1.4rem; color:rgba(244,247,241,0.55);}
.stat p{color:rgba(244,247,241,0.75); margin-top:6px; font-size:0.92rem;}

/* =========================================================
   PRIORITIES
   ========================================================= */
.priority-list{display:grid; gap:28px; max-width:820px;}
.priority{display:flex; gap:20px; align-items:flex-start;}
.priority-mark{
  font-family:var(--font-display); font-size:1.3rem; color:var(--gold);
  border:1px solid var(--line); border-radius:50%; width:40px; height:40px; flex:none;
  display:flex; align-items:center; justify-content:center;
}
.priority h3{font-size:1.05rem; margin-bottom:4px;}
.priority p{margin:0;}

/* =========================================================
   CONTACT
   ========================================================= */
.contact-grid{
  display:grid; grid-template-columns:1.4fr 1fr; gap:56px; align-items:start;
}
.contact-panel dl > div{
  display:block; padding:14px 0; border-bottom:1px solid var(--line);
}
.contact-panel dl > div:last-child{border-bottom:0;}
.contact-panel dt{
  color:var(--ink-soft); font-size:0.85rem; margin-bottom:4px;
}
.contact-panel dd{
  margin:0; font-weight:600; text-align:left; color:var(--heading); line-height:1.5;
}

/* =========================================================
   SYMBOL
   ========================================================= */
.symbol-grid{
  display:grid; grid-template-columns:0.8fr 1.2fr; gap:56px; align-items:center;
}
.symbol-art{max-width:280px;}
.symbol-art img{display:block; width:100%; height:auto; border-radius:var(--radius);}

/* =========================================================
   PRE-FOOTER
   ========================================================= */
.prefooter{background:var(--paper-warm); padding:56px 0; border-top:1px solid var(--line);}
.prefooter-inner{text-align:center;}
.prefooter-label{
  font-family:var(--font-display); font-size:1.2rem; color:var(--heading); margin-bottom:20px;
}
.social-row{display:flex; justify-content:center; flex-wrap:wrap; gap:14px; margin-bottom:16px;}
.social-row a{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 20px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--card-bg);
  color:var(--link); font-weight:600;
  transition:background-color .2s ease, border-color .2s ease, color .2s ease, transform .15s ease;
}
.social-row a:hover{
  color:#fff; background:var(--green-700); border-color:var(--green-700); transform:translateY(-1px);
}
.prefooter-note{font-size:0.8rem; color:var(--ink-soft); max-width:52ch; margin:0 auto;}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{background:var(--green-900); color:var(--on-dark); padding-top:56px;}
.footer-grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:32px; padding-bottom:40px;
}
.footer-brand{font-family:var(--font-display); font-size:1.2rem; margin:0 0 10px;}
.footer-desc{color:rgba(244,247,241,0.7); font-size:0.9rem; max-width:34ch; margin:0 0 14px;}
.footer-address{
  font-style:normal; color:rgba(244,247,241,0.6); font-size:0.85rem; line-height:1.6;
}
.footer-heading{font-size:0.82rem; color:var(--gold); margin:0 0 12px; font-weight:600;}
.site-footer nav ul{list-style:none; margin:0; padding:0; display:grid; gap:8px;}
.site-footer nav a{color:rgba(244,247,241,0.82); font-size:0.92rem;}
.site-footer nav a:hover{color:var(--gold);}

.footer-bottom{
  border-top:1px solid rgba(244,247,241,0.15);
  padding-top:22px; padding-bottom:30px;
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.footer-bottom p{margin:0; font-size:0.85rem; color:rgba(244,247,241,0.7); max-width:52ch;}
.footer-bottom strong{color:var(--on-dark);}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 860px){
  .about-grid, .symbol-grid, .contact-grid{grid-template-columns:1fr;}
  .memoriam{grid-template-columns:1fr;}
  .memoriam-photo{max-width:360px;}
  .symbol-art{order:-1; max-width:260px; margin:0 auto;}
  .leader-grid{grid-template-columns:1fr;}
  .stats-grid{grid-template-columns:repeat(2, 1fr);}
  .moments-grid{grid-template-columns:1fr;}
  .fronts-grid{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr; gap:24px;}
}

@media (max-width: 720px){
  .nav-toggle{display:flex;}
  .nav-list{
    position:absolute; top:68px; left:0; right:0;
    background:var(--paper); border-bottom:1px solid var(--line);
    flex-direction:column; align-items:flex-start; gap:0;
    max-height:0; overflow:hidden; transition:max-height .3s ease;
  }
  .nav-list.is-open{max-height:340px;}
  .nav-list li{width:100%;}
  .nav-list a{display:block; padding:14px 24px; width:100%;}
  .nav-list a.nav-cta{width:auto; display:block; margin:10px 24px; padding:12px 20px; text-align:center;}
  .hero{padding:64px 0 72px;}
  .section{padding:64px 0;}
  .footer-bottom{flex-direction:column; align-items:flex-start;}
  .fronts-grid{grid-template-columns:1fr;}
}

@media (max-width: 480px){
  .brand-full{display:none;}
  .brand-short{display:inline;}
}
