/* ============================================================
   YUBASHAKTI  –  Modern Full-Width CSS  (Mobile-First)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&family=Outfit:wght@600;700;800&display=swap');

/* ─── TOKENS ─────────────────────────────────────────────── */
:root {
  --orange:        #f97316;
  --orange-dark:   #ea6c0c;
  --orange-pale:   #fff7ed;
  --orange-border: #fed7aa;

  --navy:          #0f172a;
  --navy-2:        #1e293b;

  --white:         #ffffff;
  --gray-50:       #f8fafc;
  --gray-100:      #f1f5f9;
  --gray-200:      #e2e8f0;
  --gray-400:      #94a3b8;
  --gray-500:      #64748b;
  --gray-700:      #334155;
  --gray-900:      #0f172a;

  --green:         #16a34a;
  --green-pale:    #f0fdf4;
  --green-border:  #86efac;
  --red:           #dc2626;
  --red-pale:      #fef2f2;
  --red-border:    #fca5a5;

  --r-sm: .375rem;
  --r-md: .625rem;
  --r-lg: 1rem;
  --r-xl: 1.25rem;

  --sh-sm: 0 1px 4px rgba(0,0,0,.06);
  --sh-md: 0 4px 16px rgba(0,0,0,.08);
  --sh-lg: 0 8px 32px rgba(0,0,0,.10);

  --ease: .22s ease;

  --font:  'Inter', system-ui, sans-serif;
  --font-h:'Outfit', system-ui, sans-serif;

  /* ── Canonical hero gradient (used across ALL page heroes) ── */
  --hero-bg: linear-gradient(135deg, #0f172a 0%, #1a2f4e 55%, #0e2236 100%);
}

/* ─── SHARED HERO BASE (applies to every page hero section) ─ */
/* Usage: add class="site-hero" to every hero <section>          */
.site-hero {
  background: var(--hero-bg);
  padding: 2.5rem 0 2rem;
  position: relative;
  overflow: hidden;
}
.site-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 26px 26px;
}
@media (min-width: 1024px) {
  .site-hero { padding: 3.5rem 0 3rem; }
}


/* ─── RESET ──────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: hidden; }
body {
  font-family: var(--font);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--gray-700);
  background: var(--white);   /* pure white – no grey gaps */
  padding-top: 88px;  /* offset for fixed navbar (85px height + 3px border) */
  /* overflow-x: hidden moved to <html> to preserve position:sticky on navbar */
  -webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; height: auto; }
a { color: var(--orange); text-decoration: none; transition: color var(--ease); }
a:hover { color: var(--orange-dark); }
ul, ol { list-style: none; }
h1,h2,h3,h4,h5,h6 {
  font-family: var(--font-h);
  color: var(--gray-900);
  line-height: 1.2;
  font-weight: 700;
  margin-bottom: .6rem;
}

/* ─── CONTAINER ──────────────────────────────────────────── */
.container {
  width: 100%;
  max-width: 1180px;
  margin-inline: auto;
  padding-inline: 1rem;
}

/* ================================================================
   NAVBAR
================================================================ */
.navbar {
  background: var(--white);
  border-bottom: 3px solid var(--orange);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 1000;
  box-shadow: 0 2px 12px rgba(0,0,0,.08);
}

.nav-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 85px;
}

/* ── Mobile: 3-col grid so logo is truly centered ── */
@media (max-width: 767px) {
  .nav-container {
    display: grid;
    grid-template-columns: 44px 1fr 44px;
    align-items: center;
    padding-inline: 8px;
  }
  .logo {
    grid-column: 2;
    justify-self: center;
  }
  .mobile-toggle {
    grid-column: 3;
    justify-self: end;
  }
}

.logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
  height: 85px;
  padding: 10px 0;
}

.logo-img {
  height: 70px;
  max-height: 70px;
  max-width: 260px;
  object-fit: contain;
  display: block;
}

/* ── hamburger ── */
.mobile-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: none;
  background: none;
  cursor: pointer;
  color: var(--navy);
  border-radius: var(--r-sm);
  flex-shrink: 0;
  transition: background var(--ease), color var(--ease);
  padding: 0;
}
.mobile-toggle:hover { background: var(--gray-100); }
.mobile-toggle svg { display: block; }

/* ── desktop nav ── */
.nav-menu { display: none; }
.nav-menu a {
  display: inline-block;
  padding: .4rem .85rem;
  font-size: .875rem;
  font-weight: 600;
  color: var(--gray-900);
  border-radius: var(--r-sm);
  transition: background var(--ease), color var(--ease);
}
.nav-menu a:hover, .nav-menu a.active {
  background: var(--orange-pale);
  color: var(--orange-dark);
}

/* ── mobile drawer ── */
.nav-menu.active {
  display: flex;
  flex-direction: column;
  position: fixed;
  top: 61px;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--white);
  padding: 1.25rem 1rem;
  gap: 0;
  z-index: 999;
  overflow-y: auto;
  box-shadow: var(--sh-lg);
}
.nav-menu.active a {
  display: block;
  padding: .9rem 1rem;
  font-size: 1rem;
  border-radius: 0;
  border-bottom: 1px solid var(--gray-100);
}
.nav-menu.active a:last-child { border-bottom: none; }

/* ================================================================
   BREADCRUMB
================================================================ */
.breadcrumbs {
  padding: .6rem 0 .75rem;
  font-size: .78rem;
  color: var(--gray-500);
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
  align-items: center;
}
.breadcrumbs a { color: var(--gray-700); font-weight: 500; }
.breadcrumbs a:hover { color: var(--orange); }

/* ================================================================
   HERO  –  full bleed, edge to edge
================================================================ */
.hero-section {
  background: var(--navy);
  color: var(--white);
  padding: 2.5rem 0 2.25rem;
  position: relative;
  overflow: hidden;
  /* full-width is natural since it's outside .container */
}
/* subtle dot pattern */
.hero-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
}
/* warm glow */
.hero-section::after {
  content: '';
  position: absolute;
  bottom: -60px;
  right: -60px;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(249,115,22,.12) 0%, transparent 70%);
  pointer-events: none;
}

.hero-inner {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  background: rgba(249,115,22,.15);
  border: 1px solid rgba(249,115,22,.4);
  color: #fbbf24;
  padding: .3rem .85rem;
  border-radius: 9999px;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  margin-bottom: .875rem;
  width: fit-content;
}
.pulse-dot {
  width: 6px;
  height: 6px;
  background: #22c55e;
  border-radius: 50%;
  animation: blink 1.6s infinite;
}
@keyframes blink { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(1.5)} }

.hero-title {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--white);
  margin-bottom: .875rem;
  line-height: 1.15;
  letter-spacing: -.02em;
}
.hero-title span { color: var(--orange); }

.hero-intro {
  font-size: .92rem;
  color: rgba(255,255,255,.78);
  margin-bottom: 1.5rem;
  line-height: 1.75;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-bottom: 1.75rem;
}
.btn-hero-primary, .btn-hero-secondary, .btn-hero-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  font-family: var(--font);
  font-size: .875rem;
  font-weight: 700;
  padding: .75rem 1.15rem;
  border-radius: var(--r-md);
  cursor: pointer;
  transition: all var(--ease);
  text-align: center;
  white-space: nowrap;
  flex: 1 1 calc(50% - .3rem); /* 2 per row on mobile */
  min-width: 130px;
}
.btn-hero-primary {
  background: var(--orange);
  color: var(--white);
  border: none;
  box-shadow: 0 4px 18px rgba(249,115,22,.4);
}
.btn-hero-primary:hover { background: var(--orange-dark); color: var(--white); transform: translateY(-1px); }
.btn-hero-secondary {
  background: rgba(255,255,255,.09);
  color: var(--white);
  border: 1.5px solid rgba(255,255,255,.22);
}
.btn-hero-secondary:hover { background: rgba(255,255,255,.17); color: var(--white); }
.btn-hero-ghost {
  background: transparent;
  color: rgba(255,255,255,.75);
  border: 1.5px solid rgba(255,255,255,.18);
  flex: 1 1 100%; /* full width on 3rd row mobile */
}
.btn-hero-ghost:hover { background: rgba(255,255,255,.08); color: var(--white); border-color: rgba(255,255,255,.35); }

.hero-quick-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .6rem;
}
.quick-fact-card {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--r-md);
  padding: .8rem .5rem;
  text-align: center;
}
.quick-fact-value {
  font-family: var(--font-h);
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--orange);
  display: block;
  line-height: 1;
  margin-bottom: .3rem;
}
.quick-fact-label {
  font-size: .6rem;
  font-weight: 600;
  color: rgba(255,255,255,.6);
  text-transform: uppercase;
  letter-spacing: .04em;
  display: block;
}

/* Hero sidebar stat card – desktop only */
/* hero-sidebar-card — visible on all screen sizes, stacks on mobile */
.hero-sidebar-card { display: block; }

/* ================================================================
   PAGE BODY  –  MAIN LAYOUT  (zero card borders!)
================================================================ */
main.container { padding-top: 0; }

.portal-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  padding-bottom: 3rem;
}

/* Article – NO card, NO border, plain white */
.main-content {
  background: transparent;
  padding: 1.25rem 0;
  min-width: 0;
}

/* Sidebar */
.sidebar {
  display: flex;
  flex-direction: column;
  gap: .875rem;
  padding-bottom: 1rem;
}
.widget {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--r-lg);
  padding: 1.1rem;
}
.widget-title {
  font-size: .875rem;
  font-weight: 700;
  color: var(--gray-900);
  margin-bottom: .75rem;
  padding-bottom: .45rem;
  border-bottom: 2px solid var(--orange-pale);
}
.widget-links { display: flex; flex-direction: column; }
.widget-links a {
  display: flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem .5rem;
  font-size: .83rem;
  font-weight: 500;
  color: var(--gray-700);
  border-radius: var(--r-sm);
  transition: background var(--ease), color var(--ease);
  border-bottom: 1px solid var(--gray-100);
}
.widget-links li:last-child a { border-bottom: none; }
.widget-links a::before { content: '›'; color: var(--orange); font-size: 1rem; font-weight: 900; }
.widget-links a:hover { background: var(--orange-pale); color: var(--orange-dark); }

/* Widget table */
.widget table { width: 100%; border-collapse: collapse; font-size: .78rem; }
.widget table td { padding: .35rem .25rem; border-bottom: 1px solid var(--gray-100); vertical-align: top; }
.widget table tr:last-child td { border-bottom: none; }

/* ================================================================
   ARTICLE CONTENT
================================================================ */
.article-header { margin-bottom: 1.25rem; }
.article-title { font-size: 1.5rem; font-weight: 800; margin-bottom: .4rem; }
.article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .75rem;
  font-size: .75rem;
  color: var(--gray-500);
}

.content-body { color: var(--gray-700); }
.content-body p { margin-bottom: .9rem; line-height: 1.75; }
.content-body strong { color: var(--gray-900); }

.content-body h2 {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--gray-900);
  margin: 2.5rem 0 1rem;
  padding: .65rem 1rem .65rem .9rem;
  background: linear-gradient(to right, #fff3e8, #fffaf5 80%, transparent);
  border-left: 4px solid var(--orange);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  border-bottom: none;
  position: relative;
}
.content-body h2::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(to right, var(--orange-border), transparent);
}
.content-body section:first-child h2 { margin-top: 0; }

.content-body h3 {
  font-size: .95rem;
  font-weight: 700;
  color: var(--gray-900);
  margin: 1.5rem 0 .5rem;
  padding: .4rem .75rem;
  background: var(--gray-50);
  border-left: 3px solid var(--orange-border);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  display: inline-block;
  width: 100%;
}

/* ================================================================
   TOC
================================================================ */
.toc {
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  border-left: 3px solid var(--orange);
  border-radius: var(--r-md);
  padding: .875rem 1rem;
  margin-bottom: 1rem;
}
.toc-title { font-weight: 700; font-size: .85rem; color: var(--gray-900); margin-bottom: .6rem; }
#toc-list { display: flex; flex-direction: column; }
#toc-list li { }
#toc-list a {
  display: block;
  font-size: .8rem;
  color: var(--gray-700);
  padding: .25rem 0;
  border-bottom: 1px solid var(--gray-100);
  transition: color var(--ease), padding-left var(--ease);
}
#toc-list li:last-child a { border-bottom: none; }
#toc-list a:hover { color: var(--orange); padding-left: .3rem; }

.toc-toggle-wrap { margin-bottom: 1.5rem; }
.toc-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  background: var(--orange-pale);
  color: var(--orange-dark);
  border: 1.5px solid var(--orange-border);
  border-radius: var(--r-sm);
  padding: .4rem .875rem;
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--font);
  transition: background var(--ease), color var(--ease);
}
.toc-toggle-btn:hover { background: var(--orange); color: var(--white); border-color: var(--orange); }

/* ================================================================
   TABLES
================================================================ */
.content-body table {
  width: 100%;
  border-collapse: collapse;
  font-size: .845rem;
  margin: 1.1rem 0;
  display: block;
  overflow-x: auto;
  border: 1px solid var(--gray-200);
  border-radius: var(--r-md);
}
.content-body thead { background: var(--navy); }
.content-body th {
  padding: .65rem 1rem;
  text-align: left;
  font-size: .78rem;
  font-weight: 600;
  color: var(--white);
  white-space: nowrap;
}
.content-body td {
  padding: .6rem 1rem;
  border-bottom: 1px solid var(--gray-100);
  vertical-align: top;
  min-width: 110px;
}
.content-body tbody tr:last-child td { border-bottom: none; }
.content-body tbody tr:nth-child(even) { background: var(--gray-50); }
.content-body tbody tr:hover { background: var(--orange-pale); }

/* ================================================================
   ALERT BOXES
================================================================ */
.info-box, .warning-box, .danger-box, .success-box, .tip-box, .highlight-box {
  padding: .8rem 1rem;
  border-radius: var(--r-md);
  font-size: .855rem;
  margin: 1rem 0;
  line-height: 1.65;
}
.info-box    { background: #eff6ff; border-left: 3px solid #3b82f6; color: #1e3a8a; }
.warning-box { background: #fffbeb; border-left: 3px solid #f59e0b; color: #78350f; }
.danger-box  { background: var(--red-pale); border-left: 3px solid var(--red); color: #7f1d1d; }
.success-box { background: var(--green-pale); border-left: 3px solid var(--green); color: #14532d; }
.tip-box     { background: #faf5ff; border-left: 3px solid #7c3aed; color: #3b0764; }
.highlight-box { background: var(--orange-pale); border-left: 3px solid var(--orange); color: #7c2d12; }
.box-title   { display: block; font-weight: 700; margin-bottom: .25rem; }

/* ================================================================
   STEP LIST
================================================================ */
.step-list {
  counter-reset: step;
  display: flex;
  flex-direction: column;
  gap: .45rem;
  margin: 1rem 0;
}
.step-list li {
  counter-increment: step;
  display: flex;
  align-items: flex-start;
  gap: .875rem;
  padding: .8rem 1rem;
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  border-radius: var(--r-md);
  font-size: .875rem;
  line-height: 1.65;
}
.step-list li::before {
  content: counter(step);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.625rem;
  height: 1.625rem;
  border-radius: 50%;
  background: var(--orange);
  color: var(--white);
  font-size: .72rem;
  font-weight: 800;
  font-family: var(--font-h);
  margin-top: .1rem;
}

/* ================================================================
   ICON LISTS  (cross / tick)
================================================================ */
.icon-list {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  margin: .875rem 0;
}
.icon-list li {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  padding: .6rem .875rem;
  border-radius: var(--r-md);
  font-size: .855rem;
  line-height: 1.6;
  transition: background var(--ease);
}
.cross-list li { background: #fff8f8; border: 1px solid #fee2e2; }
.cross-list li:hover { background: var(--red-pale); }
.tick-list li  { background: #f8fff9; border: 1px solid #bbf7d0; }
.tick-list li:hover { background: var(--green-pale); }

.list-icon { width: 22px; height: 22px; flex-shrink: 0; margin-top: .1rem; }
.tick-list li::before, .cross-list li::before { display: none !important; content: none !important; }

/* Legacy checklist */
.checklist { display: flex; flex-direction: column; gap: .25rem; margin: .875rem 0; }
.checklist li {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  padding: .45rem 0;
  font-size: .875rem;
  border-bottom: 1px solid var(--gray-100);
}
.checklist li:last-child { border-bottom: none; }
.checklist li::before {
  content: '';
  display: block;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--green) url("data:image/svg+xml,%3Csvg viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 10.5l3.5 3.5 6.5-6.5' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat;
  margin-top: .25rem;
}

/* Legacy rejection-list */
.rejection-list { display: flex; flex-direction: column; gap: .35rem; margin: .875rem 0; }
.rejection-list li {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  padding: .6rem .875rem;
  font-size: .855rem;
  line-height: 1.6;
  background: #fff8f8;
  border: 1px solid #fee2e2;
  border-radius: var(--r-md);
}
.rejection-list li::before { display: none; }

/* ================================================================
   NEWS TIMELINE
================================================================ */
.news-timeline {
  position: relative;
  padding-left: 1.75rem;
  margin: 1.1rem 0;
}
.news-timeline::before {
  content: '';
  position: absolute;
  left: .45rem;
  top: .5rem;
  bottom: .5rem;
  width: 2px;
  background: var(--gray-200);
}
.timeline-item { position: relative; margin-bottom: 1.5rem; }
.timeline-item:last-child { margin-bottom: 0; }
.timeline-item::before {
  content: '';
  position: absolute;
  left: -1.45rem;
  top: .35rem;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--orange);
  box-shadow: 0 0 0 3px rgba(249,115,22,.2);
}
.timeline-date {
  font-size: .72rem;
  font-weight: 700;
  color: var(--gray-500);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: .2rem;
}
.timeline-content h3 { font-size: .9rem; margin-bottom: .2rem; font-family: var(--font); }
.timeline-content p  { font-size: .82rem; color: var(--gray-500); margin-bottom: .3rem; }
.timeline-tag {
  display: inline-block;
  font-size: .65rem;
  font-weight: 700;
  padding: .12rem .55rem;
  border-radius: 9999px;
  background: var(--orange-pale);
  color: var(--orange-dark);
  border: 1px solid var(--orange-border);
  letter-spacing: .03em;
  text-transform: uppercase;
}
.upcoming-tag { background: #fefce8; color: #854d0e; border-color: #fde047; }

/* ================================================================
   BENEFIT CARDS
================================================================ */
.benefit-cards-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: .75rem;
  margin: 1rem 0;
}
.benefit-card {
  display: flex;
  gap: .875rem;
  align-items: flex-start;
  padding: 1rem 1.1rem;
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  border-radius: var(--r-md);
  transition: border-color var(--ease), box-shadow var(--ease);
}
.benefit-card:hover { border-color: var(--orange-border); box-shadow: var(--sh-sm); }
.benefit-card-icon { font-size: 1.4rem; flex-shrink: 0; line-height: 1; }
.benefit-card h3 { font-size: .9rem; font-family: var(--font); margin-bottom: .2rem; }
.benefit-card p  { font-size: .82rem; color: var(--gray-500); margin: 0; }

/* ================================================================
   PAYMENT STATUS  (strict 2×2)
================================================================ */
.payment-status-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .75rem;
  margin: 1rem 0;
}
.payment-status-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.1rem .75rem;
  border-radius: var(--r-md);
  border: 1.5px solid;
  transition: transform var(--ease), box-shadow var(--ease);
}
.payment-status-card:hover { transform: translateY(-2px); box-shadow: var(--sh-md); }
.payment-status-card.approved { background: var(--green-pale); border-color: var(--green-border); }
.payment-status-card.pending  { background: #fff7ed; border-color: #fdba74; }
.payment-status-card.rejected { background: var(--red-pale);  border-color: var(--red-border);  }
.payment-status-card.failed   { background: #faf5ff; border-color: #d8b4fe; }
.psc-icon-wrap { width: 48px; height: 48px; margin: 0 auto .6rem; }
.psc-icon-wrap svg { width: 48px; height: 48px; }
.payment-status-card h3 { font-size: .83rem; font-weight: 700; margin-bottom: .3rem; font-family: var(--font); }
.payment-status-card p  { font-size: .75rem; color: var(--gray-500); margin: 0; line-height: 1.5; }

/* ================================================================
   DISTRICT GRID
================================================================ */
.district-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .375rem;
  margin: .875rem 0;
}
.district-chip {
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  border-radius: var(--r-sm);
  padding: .4rem .6rem;
  font-size: .75rem;
  font-weight: 500;
  text-align: center;
  color: var(--gray-700);
  transition: background var(--ease), border-color var(--ease);
}
.district-chip:hover { background: var(--orange-pale); border-color: var(--orange-border); color: var(--orange-dark); }

/* ================================================================
   SCHEME CARDS
================================================================ */
.scheme-cards-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .65rem;
  margin: .875rem 0;
}
.scheme-card {
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  border-radius: var(--r-md);
  padding: .875rem .75rem;
  text-align: center;
  transition: box-shadow var(--ease), border-color var(--ease);
}
.scheme-card:hover { box-shadow: var(--sh-md); border-color: var(--orange-border); }
.scheme-icon { font-size: 1.4rem; margin-bottom: .35rem; }
.scheme-card h3 { font-size: .75rem; font-family: var(--font); font-weight: 700; margin-bottom: .2rem; }
.scheme-card p  { font-size: .7rem; color: var(--gray-500); margin: 0; }

/* ================================================================
   FAQ ACCORDION
================================================================ */
.faq-wrapper { display: flex; flex-direction: column; gap: .35rem; margin: .875rem 0; }
.faq-item {
  border: 1px solid var(--gray-200);
  border-radius: var(--r-md);
  overflow: hidden;
  transition: border-color var(--ease);
}
.faq-item.active { border-color: var(--orange-border); }
.faq-question {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  padding: .8rem 1rem;
  background: var(--gray-50);
  border: none;
  outline: none;
  cursor: pointer;
  font-family: var(--font);
  font-size: .875rem;
  font-weight: 600;
  color: var(--gray-900);
  text-align: left;
  transition: background var(--ease);
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
}
.faq-question:hover { background: var(--orange-pale); }
.faq-item.active .faq-question { background: var(--orange-pale); color: var(--orange-dark); }
.faq-icon { flex-shrink: 0; font-size: 1rem; color: var(--orange); font-weight: 700; line-height: 1; }
.faq-answer { display: none; }
.faq-item.active .faq-answer { display: block; }
.faq-answer-inner {
  padding: .75rem 1rem .875rem;
  font-size: .855rem;
  line-height: 1.7;
  color: var(--gray-700);
  border-top: 1px solid var(--gray-100);
  background: var(--white);
}
.faq-answer-inner p { margin-bottom: .5rem; }
.faq-answer-inner p:last-child { margin-bottom: 0; }

/* ================================================================
   HELPLINE BOX
================================================================ */
.helpline-box {
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%);
  color: var(--white);
  border-radius: var(--r-lg);
  padding: 1.5rem 1.25rem;
  text-align: center;
  margin: 1rem 0;
}
.helpline-box p { color: rgba(255,255,255,.7); font-size: .83rem; }
.helpline-number {
  display: block;
  font-family: var(--font-h);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--orange);
  margin: .4rem 0;
}

/* ================================================================
   DISCLAIMER
================================================================ */
.disclaimer-box {
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  border-radius: var(--r-md);
  padding: .875rem 1rem;
  font-size: .77rem;
  color: var(--gray-500);
  margin: 1rem 0;
  line-height: 1.65;
}

/* ================================================================
   SCHEME STAT LIST (Hero sidebar / mobile card)
================================================================ */
.hero-sidebar-card {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  border-top: 3px solid var(--orange);
  border-radius: var(--r-lg);
  padding: 1.25rem 1.25rem 1rem;
  margin-top: .75rem;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.hero-sidebar-card h3 {
  color: var(--white);
  font-size: .92rem;
  margin-bottom: .875rem;
  display: flex;
  align-items: center;
  gap: .4rem;
}

/* Mobile: clean 2-column grid */
.scheme-stat-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .5rem;
}
.scheme-stat-list li {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  padding: .6rem .7rem;
  border-radius: var(--r-sm);
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.1);
  transition: background var(--ease);
}
.scheme-stat-list li:hover { background: rgba(255,255,255,.13); }
.stat-label {
  color: rgba(255,255,255,.5);
  font-size: .63rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.stat-value {
  color: var(--white);
  font-weight: 700;
  font-size: .8rem;
  line-height: 1.2;
}
.status-badge-live {
  display: inline-flex;
  align-items: center;
  background: #22c55e;
  color: var(--white);
  padding: .15rem .6rem;
  border-radius: 9999px;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .06em;
  width: fit-content;
  box-shadow: 0 0 8px rgba(34,197,94,.4);
}

/* ================================================================
   FOOTER
================================================================ */
.site-footer {
  background: var(--navy);
  color: rgba(255,255,255,.65);
  padding: 2.25rem 0 1.1rem;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}
.footer-widget h3 { font-family: var(--font-h); color: var(--white); font-size: .9rem; margin-bottom: .75rem; }
.footer-widget p  { font-size: .8rem; line-height: 1.7; }
.footer-links { display: flex; flex-direction: column; gap: .2rem; }
.footer-links a {
  font-size: .8rem;
  color: rgba(255,255,255,.6);
  padding: .2rem 0;
  transition: color var(--ease);
}
.footer-links a:hover { color: var(--orange); }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.08);
  padding-top: 1rem;
  font-size: .75rem;
  color: rgba(255,255,255,.35);
  text-align: center;
}

/* ================================================================
   BENGALI TEXT
================================================================ */
.bn-text { font-family: 'Noto Serif Bengali', serif; }

/* ================================================================
   RESPONSIVE  ≥ 640px  (Tablet)
================================================================ */
@media (min-width: 640px) {
  .container { padding-inline: 1.5rem; }
  .hero-title { font-size: 1.9rem; }
  .hero-actions { flex-wrap: nowrap; }
  .btn-hero-primary, .btn-hero-secondary, .btn-hero-ghost { flex: 0 0 auto; }
  .btn-hero-ghost { flex: 0 0 auto; }
  .quick-fact-value { font-size: 1.25rem; }
  .quick-fact-label { font-size: .65rem; }
  .benefit-cards-grid { grid-template-columns: repeat(2, 1fr); }
  .district-grid { grid-template-columns: repeat(3, 1fr); }
  .scheme-cards-grid { grid-template-columns: repeat(3, 1fr); }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ================================================================
   RESPONSIVE  ≥ 1024px  (Desktop)
================================================================ */
@media (min-width: 1024px) {
  .container { padding-inline: 2rem; }

  /* Navbar */
  .mobile-toggle { display: none; }
  .nav-menu { display: flex; gap: .25rem; }
  /* nav-container stays 60px — set globally, no override needed */

  /* Hero */
  .hero-section { padding: 3.5rem 0 3rem; }
  .hero-inner { grid-template-columns: 1fr 280px; gap: 3rem; align-items: start; }
  /* hero-sidebar-card — desktop: revert to single-column row layout in narrow sidebar */
  .scheme-stat-list {
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  .scheme-stat-list li {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    background: rgba(255,255,255,.05);
    border-radius: 0;
    margin: 0;
    padding: .45rem .25rem;
    border-bottom: 1px solid rgba(255,255,255,.08);
  }
  .scheme-stat-list li:last-child { border-bottom: none; }
  .stat-label { font-size: .75rem; text-transform: none; letter-spacing: 0; margin-bottom: 0; }
  .stat-value { font-size: .8rem; }
  .hero-title { font-size: 2.3rem; }
  .hero-actions { flex-wrap: nowrap; gap: .75rem; }
  .btn-hero-primary, .btn-hero-secondary, .btn-hero-ghost { flex: 0 0 auto; }
  .quick-fact-value { font-size: 1.35rem; }

  /* Portal */
  .portal-layout {
    grid-template-columns: 1fr 280px;
    gap: 2.5rem;
    padding: 1.5rem 0 4rem;
    align-items: start;
  }
  .main-content { padding: 1.5rem 0; }
  .sidebar { position: sticky; top: 76px; }

  /* Content */
  .content-body h2 { font-size: 1.3rem; }
  .content-body h3 { font-size: 1rem; }

  /* Grids */
  .benefit-cards-grid  { grid-template-columns: repeat(2, 1fr); }
  .district-grid       { grid-template-columns: repeat(4, 1fr); }
  .scheme-cards-grid   { grid-template-columns: repeat(3, 1fr); }
  .footer-grid         { grid-template-columns: repeat(3, 1fr); }
}

/* ─── Safety net: prevent horizontal overflow ─── */
html, body { max-width: 100%; overflow-x: hidden; }
*, section, article, div, aside { max-width: 100%; }

/* ================================================================
   MISSING & SUPPLEMENTARY STYLES
================================================================ */

/* hero-content wrapper (text side of hero) */
.hero-content { flex: 1 1 auto; }

/* cross-icon / tick-icon – these are the SVGs inside .list-icon */
.cross-icon, .tick-icon { display: block; flex-shrink: 0; }

/* comparison-table – full-width responsive table alias */
.comparison-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .845rem;
  margin: 1.1rem 0;
  display: block;
  overflow-x: auto;
  border: 1px solid var(--gray-200);
  border-radius: var(--r-md);
}
.comparison-table thead { background: var(--navy); }
.comparison-table th {
  padding: .65rem 1rem;
  text-align: left;
  font-size: .78rem;
  font-weight: 600;
  color: var(--white);
  white-space: nowrap;
}
.comparison-table td {
  padding: .6rem 1rem;
  border-bottom: 1px solid var(--gray-100);
  vertical-align: top;
  min-width: 110px;
}
.comparison-table tbody tr:last-child td { border-bottom: none; }
.comparison-table tbody tr:nth-child(even) { background: var(--gray-50); }
.comparison-table tbody tr:hover { background: var(--orange-pale); }

/* sticky-widget – same as .widget, ensure it doesn't need extra CSS */
.sticky-widget { /* inherits .widget styles */ }

/* ── Divider between sections ── */
.content-body section + section { border-top: 1px solid var(--gray-100); padding-top: .5rem; }

/* ── Better link underline in body text ── */
.content-body a:not(.btn-hero-primary):not(.btn-hero-secondary):not(.btn-hero-ghost) {
  text-decoration: underline;
  text-decoration-color: var(--orange-border);
  text-underline-offset: 3px;
}
.content-body a:not(.btn-hero-primary):not(.btn-hero-secondary):hover {
  text-decoration-color: var(--orange);
}

/* ── Scrollbar styling (Webkit) ── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--gray-100); }
::-webkit-scrollbar-thumb { background: var(--gray-400); border-radius: 9999px; }
::-webkit-scrollbar-thumb:hover { background: var(--orange); }

/* ── Text selection ── */
::selection { background: var(--orange); color: var(--white); }

/* ── Focus ring (accessibility) ── */
:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 2px;
  border-radius: var(--r-sm);
}

/* ── Smooth image display ── */
img { display: block; max-width: 100%; height: auto; }

/* ── Print ── */
@media print {
  .navbar, .sidebar, .hero-actions, .toc-toggle-wrap, .site-footer { display: none; }
  .portal-layout { grid-template-columns: 1fr; }
  body { font-size: 12pt; color: #000; }
  a { color: #000; text-decoration: underline; }
}

/* ─── COMMENT SECTION ────────────────────────────────────── */
.comment-section{
  background:#f8fafc;
  border-top:2px solid #e2e8f0;
  padding:3rem 0 2.5rem;
}
.comment-section .container{
  max-width:820px;
  margin:0 auto;
  padding:0 1.25rem;
}
.comment-section-title{
  display:flex;
  align-items:center;
  gap:.65rem;
  font-family:'Outfit',sans-serif;
  font-size:1.25rem;
  font-weight:800;
  color:#0f172a;
  margin-bottom:1.5rem;
}
.comment-section-title .cs-icon{
  width:36px;
  height:36px;
  background:#fff7ed;
  border:1.5px solid #fed7aa;
  border-radius:.5rem;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.comment-form{
  background:#fff;
  border:1.5px solid #e2e8f0;
  border-radius:1rem;
  padding:1.5rem;
  box-shadow:0 2px 12px rgba(0,0,0,.05);
  margin-bottom:2rem;
}
.comment-form-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:.875rem;
  margin-bottom:.875rem;
}
.cf-group{
  display:flex;
  flex-direction:column;
  gap:.3rem;
}
.cf-group label{
  font-size:.76rem;
  font-weight:700;
  color:#334155;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.cf-group label span.cf-req{
  color:#f97316;
  margin-left:.15rem;
}
.cf-group input,.cf-group textarea{
  padding:.625rem .875rem;
  border:1.5px solid #e2e8f0;
  border-radius:.5rem;
  font-size:.875rem;
  font-family:'Inter',sans-serif;
  color:#0f172a;
  background:#f8fafc;
  transition:border-color .18s,box-shadow .18s,background .18s;
  outline:none;
  width:100%;
}
.cf-group input:focus,.cf-group textarea:focus{
  border-color:#f97316;
  box-shadow:0 0 0 3px rgba(249,115,22,.1);
  background:#fff;
}
.cf-group textarea{
  min-height:110px;
  resize:vertical;
  line-height:1.7;
}
.cf-row-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.875rem;
}
.cf-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:.875rem;
}
.cf-note{
  font-size:.72rem;
  color:#94a3b8;
  line-height:1.5;
}
.cf-submit{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  background:#f97316;
  color:#fff;
  padding:.65rem 1.4rem;
  border-radius:.5rem;
  font-size:.875rem;
  font-weight:700;
  border:none;
  cursor:pointer;
  font-family:'Inter',sans-serif;
  transition:background .18s,transform .12s;
}
.cf-submit:hover{background:#ea6c0c;transform:translateY(-1px)}
.cf-submit:active{transform:translateY(0)}
.cf-success{
  display:none;
  align-items:center;
  gap:.5rem;
  background:#f0fdf4;
  border:1.5px solid #86efac;
  color:#14532d;
  padding:.75rem 1rem;
  border-radius:.625rem;
  font-size:.875rem;
  font-weight:600;
  margin-top:1rem;
}
/* sample comments list */
.comment-list{
  display:flex;
  flex-direction:column;
  gap:1rem;
  margin-top:1.5rem;
}
.comment-item{
  background:#fff;
  border:1.5px solid #e2e8f0;
  border-radius:.875rem;
  padding:1rem 1.25rem;
  transition:box-shadow .18s;
}
.comment-item:hover{box-shadow:0 3px 12px rgba(0,0,0,.06)}
.comment-meta{
  display:flex;
  align-items:center;
  gap:.625rem;
  margin-bottom:.5rem;
  flex-wrap:wrap;
}
.comment-avatar{
  width:34px;
  height:34px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:'Outfit',sans-serif;
  font-size:.85rem;
  font-weight:800;
  color:#fff;
  flex-shrink:0;
}
.comment-author{
  font-weight:700;
  font-size:.85rem;
  color:#0f172a;
}
.comment-date{
  font-size:.72rem;
  color:#94a3b8;
  margin-left:auto;
}
.comment-text{
  font-size:.85rem;
  color:#475569;
  line-height:1.75;
}
@media(min-width:640px){
  .comment-form-grid{grid-template-columns:1fr 1fr}
  .comment-form-grid .cf-group:first-child{grid-column:1/-1}
}

/* ─── STICKY REACTION BAR ────────────────────────────────── */
.sticky-reaction-bar{
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  z-index:1100;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-top:1.5px solid #e2e8f0;
  box-shadow:0 -4px 24px rgba(0,0,0,.10);
  padding:.55rem 1rem;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
}
.srb-inner{
  display:flex;
  align-items:center;
  gap:.5rem;
  max-width:500px;
  width:100%;
}
.srb-divider{
  width:1px;
  height:28px;
  background:#e2e8f0;
  flex-shrink:0;
}
/* Love button */
.srb-love-btn{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  padding:.55rem .75rem;
  border-radius:.6rem;
  border:1.5px solid #fecdd3;
  background:#fff1f2;
  color:#e11d48;
  font-family:'Inter',sans-serif;
  font-size:.82rem;
  font-weight:700;
  cursor:pointer;
  transition:background .18s,border-color .18s,transform .12s,box-shadow .18s;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
}
.srb-love-btn:hover{
  background:#ffe4e6;
  border-color:#fda4af;
  box-shadow:0 3px 12px rgba(225,29,72,.15);
}
.srb-love-btn.loved{
  background:#e11d48;
  border-color:#e11d48;
  color:#fff;
  box-shadow:0 3px 14px rgba(225,29,72,.35);
}
.srb-love-btn.loved .srb-heart{
  animation:heartBeat .4s ease;
}
.srb-love-count{
  font-size:.75rem;
  font-weight:800;
  min-width:1.2rem;
  text-align:center;
}
/* Comment button */
.srb-comment-btn{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  padding:.55rem .75rem;
  border-radius:.6rem;
  border:1.5px solid #fed7aa;
  background:#fff7ed;
  color:#c2410c;
  font-family:'Inter',sans-serif;
  font-size:.82rem;
  font-weight:700;
  cursor:pointer;
  transition:background .18s,border-color .18s,transform .12s,box-shadow .18s;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
  text-decoration:none;
}
.srb-comment-btn:hover{
  background:#ffedd5;
  border-color:#fdba74;
  box-shadow:0 3px 12px rgba(194,65,12,.15);
  color:#c2410c;
}
.srb-comment-btn:active,.srb-love-btn:active{transform:scale(.96)}
/* pulse animation for unloved → loved */
@keyframes heartBeat{
  0%{transform:scale(1)}
  30%{transform:scale(1.35)}
  60%{transform:scale(.9)}
  100%{transform:scale(1)}
}
/* push page content up so sticky bar doesn't cover footer */
body.has-sticky-bar{
  padding-bottom:62px;
}
