/* ==========================================================================
   AIITA — All India Ideal Teacher Association
   Design system & global styles
   ========================================================================== */

/* ---------- Design tokens ---------- */
:root {
  /* Brand palette */
  --navy-900: #0c223f;
  --navy-800: #103055;
  --navy-700: #123b6d;
  --navy-600: #1a4d8a;
  --navy-500: #2563a8;
  --blue-100: #e7eefa;
  --blue-50:  #f2f6fd;

  --gold-600: #c88a1e;
  --gold-500: #e0a83b;
  --gold-400: #eec066;
  --gold-100: #fbeecf;

  --teal-700: #0f6b6a;
  --teal-500: #15908d;
  --teal-100: #d9efee;

  --cream:    #fbf8f2;
  --paper:    #ffffff;
  --ink-900:  #131c29;
  --ink-700:  #2c3a4d;
  --ink-500:  #56657a;
  --ink-400:  #7a879a;
  --line:     #e7e2d8;
  --line-soft:#f0ece3;

  /* Semantic */
  --bg:        var(--cream);
  --surface:   var(--paper);
  --surface-2: #f6f2ea;
  --text:      var(--ink-900);
  --text-soft: var(--ink-500);
  --primary:   var(--navy-700);
  --primary-strong: var(--navy-900);
  --accent:    var(--gold-500);
  --accent-strong: var(--gold-600);
  --secondary: var(--teal-500);
  --border:    var(--line);
  --map-off:   #d3dae5;

  /* Type */
  --font-head: "Fraunces", "Georgia", "Times New Roman", serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  /* Radii & shadow */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --r-xl: 30px;
  --r-pill: 999px;
  --shadow-sm: 0 1px 2px rgba(16,32,60,.06), 0 2px 6px rgba(16,32,60,.05);
  --shadow-md: 0 8px 24px rgba(16,32,60,.10);
  --shadow-lg: 0 22px 55px rgba(12,34,63,.18);

  /* Layout */
  --maxw: 1180px;
  --gap: clamp(1rem, 2.4vw, 2rem);
  --section-y: clamp(3.5rem, 7vw, 6.5rem);
  --nav-h: 74px;
  --ease: cubic-bezier(.4, .14, .16, 1);
}

[data-theme="dark"] {
  --bg:        #0b1522;
  --surface:   #101d2e;
  --surface-2: #14273c;
  --text:      #eef3fa;
  --text-soft: #9fb1c8;
  --primary:   #6ea3e6;
  --primary-strong: #a9c8f2;
  --accent:    #f0be5f;
  --accent-strong: #f5cd80;
  --secondary: #3ec2bd;
  --border:    #223650;
  --line:      #223650;
  --line-soft: #1a2c42;
  --blue-50:   #13263c;
  --blue-100:  #17304b;
  --gold-100:  #2a2413;
  --teal-100:  #12312f;
  --surface-3: #17293e;
  --map-off:   #263a54;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.4);
  --shadow-md: 0 10px 30px rgba(0,0,0,.45);
  --shadow-lg: 0 26px 60px rgba(0,0,0,.55);
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-body);
  background: var(--bg);
  color: var(--text);
  line-height: 1.65;
  font-size: 16.5px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
input, textarea, select { font: inherit; color: inherit; }
ul { list-style: none; padding: 0; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 4px; }

/* ---------- Typography ---------- */
h1, h2, h3, h4 { font-family: var(--font-head); font-weight: 600; line-height: 1.12; letter-spacing: -.01em; color: var(--text); }
h1 { font-size: clamp(2.3rem, 5.2vw, 4rem); }
h2 { font-size: clamp(1.8rem, 3.6vw, 2.85rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); }
p { color: var(--text); }
.lede { font-size: clamp(1.05rem, 1.7vw, 1.28rem); color: var(--text-soft); line-height: 1.6; }
.eyebrow {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--font-body); font-weight: 700; font-size: .78rem;
  letter-spacing: .16em; text-transform: uppercase; color: var(--accent-strong);
}
.eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--accent); border-radius: 2px; }
.text-center { text-align: center; }
.text-center .eyebrow { justify-content: center; }

/* ---------- Layout ---------- */
.wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: clamp(1.1rem, 4vw, 2.2rem); }
.section { padding-block: var(--section-y); }
.section--tint { background: var(--surface-2); }
.section--navy { background: var(--navy-900); color: #eaf0fb; }
.section--navy h1,.section--navy h2,.section--navy h3 { color: #fff; }
.section-head { max-width: 720px; margin-bottom: clamp(2rem, 4vw, 3.2rem); }
.section-head.text-center { margin-inline: auto; }
.grid { display: grid; gap: var(--gap); }
.g-2 { grid-template-columns: repeat(2, 1fr); }
.g-3 { grid-template-columns: repeat(3, 1fr); }
.g-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px){ .g-3,.g-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px){ .g-2,.g-3,.g-4 { grid-template-columns: 1fr; } }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  padding: .85rem 1.5rem; border-radius: var(--r-pill); font-weight: 650;
  font-size: .96rem; letter-spacing: .01em; cursor: pointer;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), color .2s;
  will-change: transform; white-space: nowrap;
}
.btn svg { width: 1.05em; height: 1.05em; }
.btn--primary { background: var(--primary); color: #fff; box-shadow: var(--shadow-sm); }
.btn--primary:hover { background: var(--primary-strong); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn--accent { background: linear-gradient(135deg, var(--gold-500), var(--gold-600)); color: #3a2a06; box-shadow: 0 8px 22px rgba(200,138,30,.35); }
.btn--accent:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(200,138,30,.45); }
.btn--ghost { background: transparent; color: var(--text); border: 1.5px solid var(--border); }
.btn--ghost:hover { border-color: var(--primary); color: var(--primary); transform: translateY(-2px); }
.btn--light { background: rgba(255,255,255,.12); color: #fff; border: 1.5px solid rgba(255,255,255,.28); }
.btn--light:hover { background: rgba(255,255,255,.2); transform: translateY(-2px); }
.btn--sm { padding: .55rem 1.05rem; font-size: .85rem; }
.btn--block { width: 100%; }

/* ---------- Header / Nav ---------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: color-mix(in srgb, var(--surface) 82%, transparent);
  backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid transparent;
  transition: border-color .3s, background .3s, box-shadow .3s;
}
.site-header.scrolled { border-bottom-color: var(--border); box-shadow: var(--shadow-sm); }
.nav { display: flex; align-items: center; gap: 1.4rem; height: var(--nav-h); }
.brand { display: flex; align-items: center; gap: .8rem; margin-right: auto; }
.brand__logo { height: 40px; width: auto; flex: none; }
.brand__divider { width: 1px; height: 30px; background: var(--border); flex: none; }
.brand__tag { font-family: var(--font-head); font-size: .82rem; font-weight: 600; line-height: 1.15; color: var(--text-soft); }
@media (max-width: 560px){ .brand__divider, .brand__tag { display: none; } .brand__logo { height: 36px; } }
.nav__links { display: flex; align-items: center; gap: .2rem; }
.nav__links a {
  position: relative; padding: .5rem .8rem; border-radius: var(--r-sm);
  font-weight: 550; font-size: .95rem; color: var(--text-soft);
  transition: color .2s, background .2s;
}
.nav__links a:hover { color: var(--text); background: var(--surface-2); }
.nav__links a.active { color: var(--primary); }
.nav__links a.active::after {
  content:""; position:absolute; left:.8rem; right:.8rem; bottom:.28rem; height:2px;
  background: var(--accent); border-radius: 2px;
}
.nav__actions { display: flex; align-items: center; gap: .6rem; }
.theme-toggle {
  width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center;
  color: var(--text-soft); border: 1px solid var(--border); transition: .2s;
}
.theme-toggle:hover { color: var(--accent-strong); border-color: var(--accent); }
.theme-toggle svg { width: 20px; height: 20px; }
.theme-toggle .sun { display: none; }
[data-theme="dark"] .theme-toggle .sun { display: block; }
[data-theme="dark"] .theme-toggle .moon { display: none; }
.nav__burger { display: none; width: 44px; height: 44px; border-radius: 10px; }
.nav__burger span { display:block; width: 22px; height: 2px; background: var(--text); margin: 4px auto; border-radius: 2px; transition: .3s; }

/* Dropdown */
.has-drop { position: relative; }
.drop {
  position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%) translateY(8px);
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md);
  box-shadow: var(--shadow-lg); padding: .5rem; min-width: 220px;
  opacity: 0; visibility: hidden; transition: .22s var(--ease); z-index: 50;
}
.has-drop:hover .drop, .has-drop:focus-within .drop { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.drop a { display: block; padding: .55rem .7rem; border-radius: 8px; font-size: .9rem; color: var(--text-soft); }
.drop a:hover { background: var(--surface-2); color: var(--primary); }

@media (max-width: 940px){
  .nav__links {
    position: fixed; inset: var(--nav-h) 0 auto 0; flex-direction: column; align-items: stretch;
    background: var(--surface); border-bottom: 1px solid var(--border); padding: 1rem;
    gap: .1rem; box-shadow: var(--shadow-lg); transform: translateY(-120%); transition: transform .35s var(--ease);
    max-height: calc(100vh - var(--nav-h)); overflow-y: auto;
  }
  .nav__links.open { transform: translateY(0); }
  .nav__links a { padding: .8rem 1rem; font-size: 1rem; }
  .nav__links a.active::after { display:none; }
  .drop { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: none; padding: 0 0 .4rem 1rem; min-width: 0; background: transparent; }
  .nav__burger { display: block; }
  .nav__burger.open span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
  .nav__burger.open span:nth-child(2){ opacity: 0; }
  .nav__burger.open span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }
}

/* ---------- Hero ---------- */
.hero { position: relative; overflow: hidden; background: var(--navy-900); color: #eef3fb; padding-block: clamp(3.5rem, 8vw, 6.5rem); }
.hero::before {
  content:""; position:absolute; inset:0; z-index:0; opacity:.5;
  background:
    radial-gradient(60% 55% at 82% 12%, rgba(224,168,59,.28), transparent 60%),
    radial-gradient(50% 50% at 10% 92%, rgba(21,144,141,.30), transparent 60%);
}
.hero__pattern { position:absolute; inset:0; z-index:0; opacity:.10;
  background-image: radial-gradient(currentColor 1px, transparent 1px); background-size: 26px 26px; color:#fff; }
.hero .wrap { position: relative; z-index: 2; }
.hero__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
@media (max-width: 900px){ .hero__grid { grid-template-columns: 1fr; } }
.hero h1 { color: #fff; }
.hero h1 .hl { color: var(--gold-400); font-style: italic; }
.hero .lede { color: #c3d2ea; max-width: 46ch; }
.hero__cta { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.8rem; }
.hero__badges { display:flex; flex-wrap:wrap; gap:1.4rem; margin-top:2.2rem; }
.hero__badge { display:flex; align-items:center; gap:.6rem; font-size:.88rem; color:#b7c7e0; }
.hero__badge b { display:block; font-family:var(--font-head); font-size:1.5rem; color:#fff; line-height:1; }
.hero__badge .num { color: var(--gold-400); }

.hero__card {
  background: linear-gradient(160deg, rgba(255,255,255,.09), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.16); border-radius: var(--r-lg);
  padding: 1.6rem; backdrop-filter: blur(8px); box-shadow: var(--shadow-lg);
}
.hero__card h3 { color:#fff; font-size:1.15rem; }
.pledge-line { display:flex; gap:.7rem; padding:.6rem 0; border-bottom:1px dashed rgba(255,255,255,.14); color:#cdd9ee; font-size:.94rem; }
.pledge-line:last-child { border-bottom: none; }
.pledge-line svg { width:20px; height:20px; color: var(--gold-400); flex:none; margin-top:2px; }

/* ---------- Marquee / ticker ---------- */
.ticker { background: var(--navy-900); color:#fff; overflow:hidden; border-bottom:3px solid var(--accent); }
.ticker__inner { display:flex; gap:3rem; padding:.6rem 0; white-space:nowrap; width:max-content; animation: ticker 32s linear infinite; }
.ticker:hover .ticker__inner { animation-play-state: paused; }
.ticker__item { display:inline-flex; align-items:center; gap:.55rem; font-size:.9rem; color:#dbe6f7; }
.ticker__item b { color: var(--gold-400); font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:.72rem; }
@keyframes ticker { to { transform: translateX(-50%); } }

/* ---------- Cards ---------- */
.card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg);
  overflow: hidden; box-shadow: var(--shadow-sm);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
}
.card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); border-color: color-mix(in srgb, var(--accent) 40%, var(--border)); }
.card__body { padding: 1.4rem; }
.card__media { aspect-ratio: 16/10; position: relative; overflow: hidden; }
.card__media img { width:100%; height:100%; object-fit: cover; transition: transform .5s var(--ease); }
.card:hover .card__media img { transform: scale(1.06); }
.tag {
  display:inline-flex; align-items:center; gap:.4rem; font-size:.72rem; font-weight:700; letter-spacing:.04em;
  text-transform:uppercase; padding:.32rem .7rem; border-radius:var(--r-pill);
  background: var(--gold-100); color: var(--gold-600);
}
.tag--teal { background: var(--teal-100); color: var(--teal-700); }
.tag--blue { background: var(--blue-100); color: var(--navy-600); }
.card h3 a:hover { color: var(--primary); }
.card__meta { display:flex; align-items:center; gap:.8rem; font-size:.82rem; color:var(--text-soft); margin-top:.8rem; }
.card__meta svg { width:15px; height:15px; opacity:.7; }

/* Feature cards */
.feature { text-align:left; padding:1.7rem; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); transition:.3s var(--ease); }
.feature:hover { transform:translateY(-5px); box-shadow:var(--shadow-md); }
.feature__icon { width:54px; height:54px; border-radius:15px; display:grid; place-items:center; margin-bottom:1.1rem; background:var(--blue-50); color:var(--primary); }
.feature__icon svg { width:26px; height:26px; }
.feature:nth-child(3n+2) .feature__icon { background:var(--gold-100); color:var(--gold-600); }
.feature:nth-child(3n+3) .feature__icon { background:var(--teal-100); color:var(--teal-700); }
.feature h3 { font-size:1.2rem; margin-bottom:.5rem; }
.feature p { color:var(--text-soft); font-size:.96rem; }

/* Stat band */
.stats { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
@media (max-width:720px){ .stats{ grid-template-columns:repeat(2,1fr);} }
.stat { text-align:center; padding:1.4rem 1rem; border-radius:var(--r-lg); background:var(--surface); border:1px solid var(--border); }
.stat b { display:block; font-family:var(--font-head); font-size:clamp(2rem,4vw,2.9rem); color:var(--primary); line-height:1; }
.stat span { display:block; margin-top:.5rem; font-size:.86rem; letter-spacing:.04em; text-transform:uppercase; color:var(--text-soft); font-weight:600; }

/* ---------- Team cards ---------- */
.person {
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--shadow-sm); transition:.3s var(--ease); text-align:center;
}
.person:hover { transform:translateY(-5px); box-shadow:var(--shadow-md); }
.person__avatar { height:150px; background:linear-gradient(135deg,var(--navy-700),var(--navy-500)); position:relative; }
.person:nth-child(3n+2) .person__avatar { background:linear-gradient(135deg,var(--teal-700),var(--teal-500)); }
.person:nth-child(3n+3) .person__avatar { background:linear-gradient(135deg,var(--gold-600),var(--gold-400)); }
.person__initials {
  position:absolute; left:50%; bottom:-34px; transform:translateX(-50%);
  width:88px; height:88px; border-radius:50%; display:grid; place-items:center;
  font-family:var(--font-head); font-size:1.7rem; font-weight:600; color:#fff;
  background:rgba(255,255,255,.16); border:4px solid var(--surface); backdrop-filter:blur(4px);
}
.person__body { padding:2.6rem 1.3rem 1.5rem; }
.person__role { display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--accent-strong); margin-bottom:.35rem; }
.person h3 { font-size:1.18rem; }
.person__qual { font-size:.84rem; color:var(--text-soft); margin-top:.3rem; }
.person__foot { display:flex; align-items:center; justify-content:center; gap:1rem; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line-soft); font-size:.84rem; color:var(--text-soft); }
.person__foot a { display:inline-flex; align-items:center; gap:.35rem; color:var(--primary); font-weight:600; }
.person__foot svg { width:15px; height:15px; }
.chip { display:inline-flex; align-items:center; gap:.35rem; font-size:.78rem; padding:.25rem .6rem; border-radius:var(--r-pill); background:var(--surface-2); color:var(--text-soft); font-weight:600; }

/* ---------- Zones / map ---------- */
.zones { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(1.5rem,4vw,3rem); align-items:start; }
@media (max-width:900px){ .zones{ grid-template-columns:1fr; } }
.india-map { width:100%; height:auto; filter: drop-shadow(0 20px 40px rgba(12,34,63,.14)); }
.india-map .state { fill: var(--blue-100); stroke: var(--surface); stroke-width:1.4; transition:.25s var(--ease); cursor:pointer; }
.india-map .state:hover { fill: var(--gold-400); }
.india-map .state.zone-active { fill: var(--primary); }
.map-pin { cursor:pointer; }
.map-pin .pin-dot, .map-pin .pin-halo { transition:.3s var(--ease); transform-origin:center; }
.map-pin:hover .pin-dot { r:11; }
.map-pin:hover .pin-halo { opacity:.2 !important; }
.map-pin.on .pin-halo { animation: pulse 1.8s ease-in-out infinite; }
@keyframes pulse { 0%,100%{ opacity:.12; } 50%{ opacity:.32; } }
.zone-list { display:flex; flex-direction:column; gap:.6rem; }
.zone-item {
  display:flex; align-items:center; gap:1rem; padding:1rem 1.2rem; border-radius:var(--r-md);
  background:var(--surface); border:1px solid var(--border); cursor:pointer; transition:.25s var(--ease); text-align:left; width:100%;
}
.zone-item:hover, .zone-item.active { border-color:var(--accent); background:var(--gold-100); transform:translateX(4px); }
.zone-item__dot { width:14px; height:14px; border-radius:50%; flex:none; }
.zone-item h4 { font-family:var(--font-body); font-weight:700; font-size:1rem; margin:0; }
.zone-item p { font-size:.82rem; color:var(--text-soft); margin:0; }
.zone-item__count { margin-left:auto; font-family:var(--font-head); font-size:1.4rem; color:var(--primary); }

/* State directory */
.state-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:.9rem; }
.state-card {
  display:flex; align-items:center; gap:.8rem; padding:1rem 1.1rem; border-radius:var(--r-md);
  background:var(--surface); border:1px solid var(--border); transition:.25s var(--ease);
}
.state-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--accent); }
.state-card__flag { width:38px; height:38px; border-radius:10px; display:grid; place-items:center; font-weight:700; color:#fff; font-size:.85rem; flex:none; }
.state-card b { font-size:.98rem; font-weight:650; }
.state-card small { display:block; color:var(--text-soft); font-size:.78rem; }

/* ---------- Search / filter bar ---------- */
.toolbar { display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; margin-bottom:2rem; }
.search {
  flex:1 1 280px; display:flex; align-items:center; gap:.6rem; padding:.7rem 1.1rem;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-pill); box-shadow:var(--shadow-sm);
}
.search svg { width:19px; height:19px; color:var(--text-soft); flex:none; }
.search input { border:none; background:none; outline:none; width:100%; font-size:.98rem; }
.filters { display:flex; flex-wrap:wrap; gap:.45rem; }
.filter-chip {
  padding:.5rem 1rem; border-radius:var(--r-pill); background:var(--surface); border:1px solid var(--border);
  font-size:.86rem; font-weight:600; color:var(--text-soft); transition:.2s;
}
.filter-chip:hover { border-color:var(--primary); color:var(--primary); }
.filter-chip.active { background:var(--primary); color:#fff; border-color:var(--primary); }

/* ---------- Forms ---------- */
.form-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); padding:clamp(1.5rem,4vw,2.6rem); box-shadow:var(--shadow-md); }
.field { margin-bottom:1.15rem; }
.field label { display:block; font-weight:600; font-size:.9rem; margin-bottom:.45rem; }
.field .req { color:#d1495b; }
.field input, .field select, .field textarea {
  width:100%; padding:.8rem 1rem; border:1.5px solid var(--border); border-radius:var(--r-sm);
  background:var(--bg); transition:.2s; font-size:.98rem;
}
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 15%, transparent); }
.field textarea { resize:vertical; min-height:120px; }
.field small { display:block; color:var(--text-soft); font-size:.8rem; margin-top:.35rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.15rem; }
@media (max-width:560px){ .form-row{ grid-template-columns:1fr; } }
.form-note { display:flex; gap:.7rem; padding:1rem; border-radius:var(--r-md); background:var(--blue-50); font-size:.88rem; color:var(--text-soft); }
.form-note svg{ width:20px;height:20px;color:var(--primary);flex:none; }
.alert { padding:1rem 1.2rem; border-radius:var(--r-md); font-size:.92rem; margin-bottom:1rem; display:none; }
.alert.show { display:block; }
.alert--ok { background:var(--teal-100); color:var(--teal-700); border:1px solid color-mix(in srgb,var(--teal-500) 30%,transparent); }
.alert--err { background:#fbe4e6; color:#b0324a; }

/* ---------- Page header (interior) ---------- */
.page-hero { background:var(--navy-900); color:#fff; padding-block:clamp(3rem,7vw,5rem); position:relative; overflow:hidden; }
.page-hero::before { content:""; position:absolute; inset:0; opacity:.4;
  background:radial-gradient(50% 60% at 88% 10%, rgba(224,168,59,.3), transparent 60%),
             radial-gradient(45% 55% at 5% 100%, rgba(21,144,141,.28), transparent 60%); }
.page-hero .wrap { position:relative; z-index:1; }
.page-hero h1 { color:#fff; max-width:16ch; }
.page-hero p { color:#c3d2ea; max-width:60ch; margin-top:.8rem; }
.crumbs { display:flex; gap:.5rem; align-items:center; font-size:.85rem; color:#9fb3d4; margin-bottom:1rem; }
.crumbs a:hover { color:#fff; }
.crumbs svg{ width:14px;height:14px;opacity:.6; }

/* ---------- Gallery ---------- */
.masonry { columns: 3 260px; column-gap: 1rem; }
.masonry .shot { break-inside: avoid; margin-bottom:1rem; border-radius:var(--r-md); overflow:hidden; position:relative; box-shadow:var(--shadow-sm); cursor:pointer; }
.masonry .shot img { width:100%; transition:transform .5s var(--ease); }
.masonry .shot:hover img { transform:scale(1.05); }
.shot__cap { position:absolute; inset:auto 0 0 0; padding:1.4rem .9rem .8rem; background:linear-gradient(transparent,rgba(8,20,38,.85)); color:#fff; font-size:.85rem; font-weight:600; opacity:0; transition:.3s; }
.masonry .shot:hover .shot__cap { opacity:1; }

/* Lightbox */
.lightbox { position:fixed; inset:0; z-index:200; background:rgba(6,15,30,.92); display:none; place-items:center; padding:2rem; backdrop-filter:blur(4px); }
.lightbox.open { display:grid; }
.lightbox img { max-width:92vw; max-height:82vh; border-radius:var(--r-md); box-shadow:var(--shadow-lg); }
.lightbox__close { position:absolute; top:1.4rem; right:1.4rem; width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.14); color:#fff; display:grid; place-items:center; }
.lightbox__cap { position:absolute; bottom:1.6rem; left:0; right:0; text-align:center; color:#dbe6f7; font-size:.95rem; }

/* ---------- CTA band ---------- */
.cta-band { position:relative; overflow:hidden; border-radius:var(--r-xl); background:linear-gradient(135deg,var(--navy-800),var(--navy-600)); color:#fff; padding:clamp(2.4rem,6vw,4rem); text-align:center; box-shadow:var(--shadow-lg); }
.cta-band::before{ content:""; position:absolute; inset:0; opacity:.14; background-image:radial-gradient(#fff 1.2px, transparent 1.2px); background-size:22px 22px; }
.cta-band > * { position:relative; z-index:1; }
.cta-band h2 { color:#fff; }
.cta-band p { color:#c9d7ee; max-width:52ch; margin:1rem auto 1.8rem; }
.cta-band .btn-row { display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; }

/* ---------- Footer ---------- */
.site-footer { background:var(--navy-900); color:#c6d4ea; padding-top:clamp(3rem,6vw,4.5rem); }
.footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1.3fr; gap:2rem; padding-bottom:2.5rem; border-bottom:1px solid rgba(255,255,255,.1); }
@media (max-width:860px){ .footer-grid{ grid-template-columns:1fr 1fr; gap:1.8rem; } }
@media (max-width:520px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-brand__logo{ display:flex; align-items:center; gap:.7rem; margin-bottom:1.1rem; }
.footer-wordmark{ height:44px; width:auto; filter: brightness(1.15); }
.site-footer p { color:#a9bad6; font-size:.92rem; }
.footer-col h4 { color:#fff; font-family:var(--font-body); font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:1rem; }
.footer-col a { display:block; padding:.3rem 0; color:#a9bad6; font-size:.93rem; transition:.2s; }
.footer-col a:hover { color:var(--gold-400); transform:translateX(3px); }
.footer-contact li { display:flex; gap:.6rem; margin-bottom:.8rem; font-size:.92rem; color:#a9bad6; }
.footer-contact svg { width:18px; height:18px; color:var(--gold-400); flex:none; margin-top:2px; }
.social { display:flex; gap:.6rem; margin-top:1.2rem; }
.social a { width:40px; height:40px; border-radius:11px; display:grid; place-items:center; background:rgba(255,255,255,.08); color:#c6d4ea; transition:.25s; }
.social a:hover { background:var(--gold-500); color:#3a2a06; transform:translateY(-3px); }
.social svg { width:19px; height:19px; }
.footer-bottom { display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center; padding:1.5rem 0; font-size:.85rem; color:#8ea3c4; }
.footer-bottom a:hover { color:#fff; }

/* ---------- Newsletter ---------- */
.news-inline { display:flex; gap:.5rem; margin-top:1rem; }
.news-inline input { flex:1; padding:.7rem 1rem; border-radius:var(--r-pill); border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.08); color:#fff; }
.news-inline input::placeholder{ color:#8ea3c4; }

/* ---------- Utilities / animation ---------- */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in { opacity:1; transform:none; }
.reveal[data-d="1"]{ transition-delay:.08s; }
.reveal[data-d="2"]{ transition-delay:.16s; }
.reveal[data-d="3"]{ transition-delay:.24s; }
.reveal[data-d="4"]{ transition-delay:.32s; }
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; }
}
.divider { height:1px; background:var(--border); border:0; margin-block:1.5rem; }
.pill-note { display:inline-flex; align-items:center; gap:.5rem; padding:.4rem .9rem; border-radius:var(--r-pill); background:var(--surface-2); border:1px solid var(--border); font-size:.82rem; color:var(--text-soft); font-weight:600; }
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.6rem}.mb-0{margin-bottom:0}
.muted{ color:var(--text-soft); }
.empty-state{ text-align:center; padding:3rem 1rem; color:var(--text-soft); }
.empty-state svg{ width:52px; height:52px; opacity:.4; margin-bottom:1rem; }

/* ==========================================================================
   v2 additions — slider, accurate map, real photos, state panels, character
   ========================================================================== */

.tag--gold { background: var(--gold-500); color: #3a2a06; }

/* ---------- Recent-work slider ---------- */
.slider { position: relative; border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--shadow-lg); }
.slider__track { position: relative; height: clamp(420px, 56vw, 620px); }
@media (max-width: 620px){ .slider__track { height: clamp(360px, 88vw, 520px); } }
.slide {
  position: absolute; inset: 0; display: flex; align-items: flex-end;
  background-size: cover; background-position: center; color: #fff;
  opacity: 0; visibility: hidden; transform: scale(1.04);
  transition: opacity .8s var(--ease), transform 6s linear, visibility .8s;
}
.slide.active { opacity: 1; visibility: visible; transform: scale(1); }
.slide__inner { padding: clamp(1.5rem, 4vw, 3rem); max-width: 640px; }
.slide__inner h3 { color: #fff; font-size: clamp(1.4rem, 3.2vw, 2.3rem); margin: .7rem 0 .5rem; }
.slide__inner p { color: #d7e0ee; font-size: clamp(.95rem, 1.4vw, 1.08rem); max-width: 52ch; }
.slide__cta { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.1rem; font-weight: 700; color: var(--gold-400); }
.slide__cta svg { width: 1.1em; height: 1.1em; transition: transform .25s; }
.slide:hover .slide__cta svg { transform: translateX(4px); }
.slider__arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
  width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center;
  background: rgba(255,255,255,.16); color: #fff; backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.25); transition: .2s;
}
.slider__arrow:hover { background: var(--gold-500); color: #3a2a06; }
.slider__arrow svg { width: 22px; height: 22px; }
.slider__arrow.prev { left: 1rem; } .slider__arrow.next { right: 1rem; }
.slider__dots { position: absolute; bottom: 1.1rem; right: 1.4rem; z-index: 5; display: flex; gap: .5rem; }
.slider__dots .dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.4); transition: .25s; }
.slider__dots .dot.active { background: var(--gold-400); width: 26px; border-radius: var(--r-pill); }
@media (max-width: 560px){ .slider__arrow { width: 40px; height: 40px; } }

/* ---------- Video cards (YouTube facade) ---------- */
.video-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-sm); transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.video-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.video-thumb, .video-frame { display: block; width: 100%; aspect-ratio: 16/9; border: 0; }
.video-thumb { position: relative; background-size: cover; background-position: center; cursor: pointer; }
.video-thumb::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,22,42,.05), rgba(9,22,42,.45)); transition: opacity .3s; }
.video-thumb:hover::after { opacity: .7; }
.video-play {
  position: absolute; inset: 0; margin: auto; z-index: 2; width: 62px; height: 62px; border-radius: 50%;
  display: grid; place-items: center; background: rgba(224,168,59,.95); color: #3a2a06;
  box-shadow: 0 8px 24px rgba(0,0,0,.35); transition: transform .25s var(--ease), background .25s;
}
.video-thumb:hover .video-play { transform: scale(1.12); background: var(--gold-400); }
.video-play svg { width: 28px; height: 28px; margin-left: 3px; }
.video-card__body { padding: 1.1rem 1.3rem 1.3rem; }
.video-card__body h3 { font-size: 1.05rem; line-height: 1.3; }
.video-card__body p { font-size: .85rem; margin-top: .3rem; }
.video-all svg { transition: transform .25s; }
.video-all:hover svg { transform: translateX(4px); }

/* ---------- Accurate India map ---------- */
.india-real { width: 100%; height: auto; max-height: 560px; display: block; filter: drop-shadow(0 20px 45px rgba(12,34,63,.16)); overflow: visible; }
.india-real path { outline: none; }
.india-real path.st-on:hover { fill-opacity: .75 !important; }
.india-real path.st-off { cursor: default; }
#zoneMap { position: relative; }

/* ---------- Real photo avatars (leadership cards) ---------- */
.person__avatar--photo { height: 260px; }
.person__avatar--photo img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.person__avatar--photo + .person__body { padding-top: 1.4rem; }
.person__avatar--photo::after {
  content: ""; position: absolute; inset: 0; box-shadow: inset 0 -50px 60px -30px rgba(9,22,42,.55);
}

/* ---------- State panels (state-teams page) ---------- */
.zone-block { margin-bottom: 2.8rem; }
.zone-block__title { display: flex; align-items: center; gap: .6rem; margin-bottom: 1.2rem; font-family: var(--font-body); font-weight: 700; font-size: 1.25rem; }
.state-panels { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1rem; }
.state-panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.2rem; box-shadow: var(--shadow-sm); transition: .25s var(--ease); }
.state-panel:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.state-panel--empty { opacity: .72; border-style: dashed; }
.state-panel__head { display: flex; align-items: center; gap: .8rem; margin-bottom: .3rem; }
.state-panel__flag { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; color: #fff; font-weight: 700; font-size: .95rem; flex: none; }
.state-panel__head b { font-size: 1.08rem; font-family: var(--font-head); }
.state-panel__head small { display: block; color: var(--text-soft); font-size: .8rem; }
.state-panel__members { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line-soft); display: flex; flex-direction: column; gap: 1rem; }
.mini { display: flex; gap: .9rem; align-items: flex-start; }
.mini__photo, .mini__ini { width: 58px; height: 58px; border-radius: 12px; flex: none; object-fit: cover; object-position: top center; }
.mini__ini { display: grid; place-items: center; color: #fff; font-weight: 700; }
.mini__info { display: flex; flex-direction: column; min-width: 0; }
.mini__role { font-size: .7rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.mini__info b { font-size: 1rem; line-height: 1.2; }
.mini__info small { color: var(--text-soft); font-size: .82rem; margin-top: .1rem; }
.mini__phone { display: inline-flex; align-items: center; gap: .35rem; color: var(--primary); font-weight: 600; font-size: .84rem; margin-top: .35rem; }
.mini__phone svg { width: 14px; height: 14px; }

/* ---------- "Who we are" — photo composition + stat strip ---------- */
.about-grid { display: grid; grid-template-columns: 1.02fr .98fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
@media (max-width: 900px){ .about-grid { grid-template-columns: 1fr; } }

.about-visual { position: relative; padding: 0 1.4rem 2.6rem 0; min-height: 380px; }
.about-photo { border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-lg); border: 4px solid var(--surface); }
.about-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.about-photo--a { width: 78%; aspect-ratio: 4/3; }
.about-photo--b {
  position: absolute; right: 0; bottom: 1.2rem; width: 46%; aspect-ratio: 1/1;
  z-index: 2;
}
.about-visual::before {
  content: ""; position: absolute; left: -18px; top: -18px; width: 90px; height: 90px; z-index: 0;
  background-image: radial-gradient(var(--accent) 1.4px, transparent 1.4px); background-size: 14px 14px; opacity: .5;
  border-radius: 6px;
}
.about-badge {
  position: absolute; left: -12px; bottom: -14px; z-index: 3;
  display: flex; align-items: center; gap: .8rem; max-width: 300px;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md);
  padding: .85rem 1.1rem; box-shadow: var(--shadow-lg);
}
.about-badge__ring { width: 42px; height: 42px; border-radius: 12px; flex: none; display: grid; place-items: center; background: var(--gold-100); color: var(--gold-600); }
.about-badge__ring svg { width: 22px; height: 22px; }
.about-badge b { display: block; font-family: var(--font-body); font-size: .86rem; line-height: 1.25; color: var(--text); }
.about-badge span { font-size: .76rem; color: var(--text-soft); }
@media (max-width: 460px){ .about-photo--a { width: 88%; } .about-photo--b { width: 52%; } .about-badge { position: static; margin-top: 1rem; max-width: none; } }

.stat-strip {
  display: grid; grid-template-columns: repeat(4, 1fr); margin-top: clamp(2.5rem, 5vw, 4rem);
  background: var(--navy-900); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-md);
}
.stat-strip__item { padding: 1.7rem 1rem; text-align: center; position: relative; }
.stat-strip__item + .stat-strip__item::before { content: ""; position: absolute; left: 0; top: 22%; height: 56%; width: 1px; background: rgba(255,255,255,.12); }
.stat-strip__item b { display: block; font-family: var(--font-head); font-size: clamp(1.8rem, 3.4vw, 2.6rem); color: var(--gold-400); line-height: 1; }
.stat-strip__item span { display: block; margin-top: .5rem; font-size: .8rem; letter-spacing: .05em; text-transform: uppercase; color: #b7c7e0; font-weight: 600; }
@media (max-width: 620px){ .stat-strip { grid-template-columns: repeat(2, 1fr); } .stat-strip__item:nth-child(3)::before, .stat-strip__item:nth-child(2)::before { } .stat-strip__item:nth-child(odd)::before { display: none; } }

/* ---------- Character: ornaments & texture ---------- */
.section--tint { position: relative; }
.ornament { display:flex; align-items:center; justify-content:center; gap:.8rem; color:var(--accent); margin: 0 auto 1rem; }
.ornament::before, .ornament::after { content:""; height:1px; width:min(60px,12vw); background:linear-gradient(90deg,transparent,var(--accent)); }
.ornament::after { background:linear-gradient(90deg,var(--accent),transparent); }
.ornament svg { width: 26px; height: 26px; }
.hero, .page-hero, .cta-band, .section--navy { }
.hero::after, .cta-band::after {
  content:""; position:absolute; right:-60px; top:-60px; width:280px; height:280px; z-index:0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23e0a83b' stroke-width='0.6' opacity='0.5'%3E%3Cpath d='M50 5 61 39 95 39 68 61 79 95 50 74 21 95 32 61 5 39 39 39z'/%3E%3Cpath d='M50 18 57 40 80 40 62 54 69 76 50 62 31 76 38 54 20 40 43 40z'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain;
  opacity:.5; pointer-events:none;
}
.cta-band::after { right:auto; left:-40px; bottom:-50px; top:auto; width:200px; height:200px; }

/* Objectives — Islamic list with numerals */
.obj-list { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:720px){ .obj-list{ grid-template-columns:1fr; } }
.obj { display:flex; gap:1rem; padding:1.2rem 1.3rem; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); box-shadow:var(--shadow-sm); transition:.25s var(--ease); }
.obj:hover { transform:translateX(4px); border-color:color-mix(in srgb,var(--accent) 40%,var(--border)); }
.obj__n { font-family:var(--font-head); font-size:1.5rem; color:var(--accent-strong); line-height:1; flex:none; width:2ch; }
.obj p { color:var(--text-soft); font-size:.96rem; margin:0; }
.urdu { font-size:1.15rem; line-height:2.1; direction:rtl; text-align:right; color:var(--text-soft); font-family:"Noto Nastaliq Urdu","Jameel Noori Nastaleeq",serif; }

/* Full Urdu objectives block */
.urdu-objectives { margin-top: clamp(2rem, 5vw, 3.2rem); padding-top: clamp(2rem, 5vw, 3rem); border-top: 1px solid var(--border); }
.urdu-objectives__head { text-align: center; margin-bottom: 1.8rem; }
.urdu-objectives__head h3 { font-family: "Noto Nastaliq Urdu", serif; font-size: clamp(1.6rem, 3.4vw, 2.3rem); color: var(--text); line-height: 1.8; direction: rtl; }
.urdu-objectives__head p { color: var(--text-soft); margin-top: .4rem; }
.obj-list--rtl .obj--rtl { flex-direction: row-reverse; text-align: right; }
.obj--rtl .obj__n--ur { font-family: "Noto Nastaliq Urdu", serif; color: var(--accent-strong); width: auto; min-width: 1.6ch; text-align: center; }
.obj--rtl .urdu { margin: 0; color: var(--text); font-size: 1.08rem; line-height: 2; }

/* Prose (blog article) */
.prose{ max-width:720px; margin-inline:auto; }
.prose p{ margin-bottom:1.2rem; color:var(--text); line-height:1.8; }
.prose h2{ margin:2rem 0 1rem; }
.prose h3{ margin:1.6rem 0 .8rem; }
.prose ul{ list-style:disc; padding-left:1.4rem; margin-bottom:1.2rem; color:var(--text); }
.prose li{ margin-bottom:.5rem; }
.prose blockquote{ border-left:4px solid var(--accent); padding:.4rem 0 .4rem 1.4rem; margin:1.5rem 0; font-family:var(--font-head); font-size:1.3rem; font-style:italic; color:var(--text); }
.prose img{ border-radius:var(--r-md); margin:1.5rem 0; }
