/* ==========================================================================
   Cytolix Labs — site stylesheet
   Design thesis: a document of record, not a brochure.
   Credentials are the hero; monospace carries anything verifiable.
   ========================================================================== */

:root{
  --ink:        #10233F;
  --navy:       #14417E;
  --teal:       #0E7C86;
  --teal-dk:    #0A5F67;
  --deep:       #0A1E33;
  --paper:      #FFFFFF;
  --wash:       #F4F7FB;
  --wash-2:     #EAF0F7;
  --rule:       #DCE4EE;
  --muted:      #5B6B7F;
  --amber:      #9A6700;
  --amber-bg:   #FDF6E3;

  --wrap: 1260px;
  --gut: 28px;

  --f-display: 'Archivo', system-ui, -apple-system, sans-serif;
  --f-body:    'Inter', system-ui, -apple-system, sans-serif;
  --f-mono:    'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  --step-0: 1rem;
  --step-1: 1.125rem;
  --step-2: 1.375rem;
  --step-3: 1.75rem;
  --step-4: 2.25rem;
  --step-5: clamp(2.05rem, 3.5vw, 3.05rem);
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--f-body);
  font-size:var(--step-0);
  line-height:1.62;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}

h1,h2,h3,h4{font-family:var(--f-display);color:var(--navy);margin:0 0 .55em;line-height:1.14;letter-spacing:-.021em;}
h1{font-size:var(--step-5);font-weight:700;letter-spacing:-.03em;}
h2{font-size:var(--step-4);font-weight:700;}
h3{font-size:var(--step-2);font-weight:650;}
h4{font-size:var(--step-1);font-weight:650;}
p{margin:0 0 1.05em;max-width:70ch;}
a{color:var(--navy);text-decoration-thickness:1px;text-underline-offset:3px;}
a:hover{color:var(--teal);}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut);}
.narrow{max-width:78ch;}

/* ---------- placeholder marker ---------- */
.ph{
  font-family:var(--f-mono);
  font-size:.86em;
  color:var(--amber);
  background:var(--amber-bg);
  border-bottom:1px dotted var(--amber);
  padding:.05em .34em;
  border-radius:2px;
  overflow-wrap:break-word;
}

/* ---------- eyebrow ---------- */
.eyebrow{
  font-family:var(--f-mono);
  font-size:.7rem;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--teal);
  margin:0 0 .85rem;
  font-weight:500;
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.utility{
  background:var(--deep);
  color:#C6D4E4;
  font-family:var(--f-mono);
  font-size:.72rem;
  letter-spacing:.02em;
}
.utility .wrap{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;align-items:center;padding-block:.5rem;}
.utility a{color:#C6D4E4;text-decoration:none;}
.utility a:hover{color:#fff;text-decoration:underline;}
.utility .sep{color:#3D5A78;}
.utility .ae{color:#FFC9A8;}
.utility .push{margin-left:auto;}

.masthead{
  position:sticky;top:0;z-index:60;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(9px);
  border-bottom:1px solid var(--rule);
}
.masthead .wrap{display:flex;align-items:center;gap:1.6rem;padding-block:.85rem;}

.brand{display:flex;flex-direction:column;text-decoration:none;line-height:1;flex-shrink:0;}
.brand b{
  font-family:var(--f-display);font-weight:800;font-size:1.42rem;
  letter-spacing:.055em;color:var(--navy);
}
.brand span{
  font-family:var(--f-body);font-size:.63rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--muted);margin-top:.28rem;
}

.nav{display:flex;gap:1.05rem;margin-left:auto;align-items:center;}
.nav a{
  font-size:.81rem;font-weight:500;color:var(--ink);text-decoration:none;
  padding-block:.3rem;border-bottom:2px solid transparent;white-space:nowrap;
}
.nav a:hover{color:var(--teal);border-bottom-color:var(--teal);}
.nav a[aria-current="page"]{color:var(--navy);border-bottom-color:var(--navy);}
.nav a.btn,
.nav .btn{
  color:#fff !important;
  background:var(--navy) !important;
  border-color:var(--navy) !important;
  border-bottom-color:var(--navy) !important;
}
.nav a.btn:hover,
.nav a.btn:focus-visible,
.nav .btn:hover,
.nav .btn:focus-visible{
  color:#fff !important;
  background:var(--teal) !important;
  border-color:var(--teal) !important;
  border-bottom-color:var(--teal) !important;
}

.btn{
  display:inline-block;font-family:var(--f-body);font-weight:600;font-size:.85rem;
  padding:.7rem 1.25rem;border-radius:2px;text-decoration:none;
  border:1.5px solid var(--navy);background:var(--navy);color:#fff;
  transition:background .16s ease,color .16s ease;
}
.btn:hover{background:var(--teal);border-color:var(--teal);color:#fff;}
.btn-ghost{background:transparent;color:var(--navy);}
.btn-ghost:hover{background:var(--navy);color:#fff;border-color:var(--navy);}
.btn-light{border-color:#fff;background:transparent;color:#fff;}
.btn-light:hover{background:#fff;color:var(--navy);border-color:#fff;}
.btn-sm{padding:.5rem .9rem;font-size:.78rem;}

.burger{
  display:none;margin-left:auto;background:none;border:1px solid var(--rule);
  border-radius:2px;padding:.5rem .6rem;cursor:pointer;
}
.burger span{display:block;width:19px;height:2px;background:var(--navy);margin:3.5px 0;}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{padding:5.2rem 0 0;border-bottom:1px solid var(--rule);}
.hero h1{max-width:17ch;margin-bottom:.5em;}
.hero .lede{font-size:var(--step-1);color:#31465F;max-width:62ch;margin-bottom:1.9rem;}
.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:3.3rem;}

/* ---------- SIGNATURE: credential ledger ---------- */
.ledger{
  border:1px solid var(--ink);
  border-bottom:none;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  background:var(--paper);
}
.ledger-cap{
  grid-column:1/-1;
  border-bottom:1px solid var(--ink);
  background:var(--ink);
  color:#9FB6CE;
  font-family:var(--f-mono);
  font-size:.66rem;
  letter-spacing:.19em;
  text-transform:uppercase;
  padding:.5rem .95rem;
  display:flex;justify-content:space-between;gap:1rem;
}
.ledger-cap em{font-style:normal;color:#6E8AA8;}
.led{
  padding:1.05rem .95rem 1.15rem;
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--ink);
}
.led:last-child{border-right:none;}
.led dt{
  font-family:var(--f-mono);font-size:.63rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted);margin-bottom:.5rem;
}
.led dd{
  margin:0;font-family:var(--f-mono);font-size:.98rem;
  font-weight:500;color:var(--ink);line-height:1.3;
}
.led dd .ph{font-size:.82rem;}

/* ==========================================================================
   SECTIONS
   ========================================================================== */
.band{padding:4.4rem 0;}
.band-wash{background:var(--wash);border-block:1px solid var(--rule);}
.band-deep{background:var(--deep);color:#D6E2EF;}
.band-deep h2,.band-deep h3{color:#fff;}
.band-deep p{color:#B9CADC;}
.band-deep .eyebrow{color:#5FBFC7;}
.band-tight{padding:3rem 0;}

.sec-head{max-width:62ch;margin-bottom:2.3rem;}
.sec-head p{color:var(--muted);font-size:var(--step-1);margin-bottom:0;}

/* grids */
.g2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;}

/* cards */
.card{
  background:var(--paper);border:1px solid var(--rule);
  padding:1.6rem 1.5rem;border-top:3px solid var(--teal);
}
.card h3{font-size:var(--step-1);margin-bottom:.5rem;}
.card p{font-size:.94rem;color:#3E5169;margin-bottom:.8rem;}
.card p:last-child{margin-bottom:0;}
.card .more{font-family:var(--f-mono);font-size:.76rem;letter-spacing:.06em;text-decoration:none;color:var(--teal);}
.card .more:hover{text-decoration:underline;}

.card-plain{border-top:1px solid var(--rule);}
.band-deep .card{background:#122B47;border-color:#1E3E60;border-top-color:var(--teal);}
.band-deep .card p{color:#A9BDD2;}

/* claim list (for manufacturers block) */
.claims{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:2.2rem;}
.claims div{border-top:2px solid var(--teal);padding-top:1rem;}
.claims h4{color:#fff;font-size:1.02rem;margin-bottom:.4rem;}
.claims p{font-size:.92rem;margin:0;}

/* authority strip — a second appearance of the ledger motif */
.authorities{
  border:1px solid var(--rule);background:var(--paper);
  display:flex;flex-wrap:wrap;
}
.authorities span{
  font-family:var(--f-mono);font-size:.79rem;letter-spacing:.04em;
  padding:.72rem 1.05rem;border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);color:var(--ink);flex:1 1 auto;text-align:center;
}

/* cities */
.cities{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.4rem;}
.cities li{
  list-style:none;font-family:var(--f-mono);font-size:.82rem;
  border:1px solid var(--rule);padding:.42rem .8rem;background:var(--paper);
}

/* tables */
.tbl{width:100%;border-collapse:collapse;margin:0 0 1.5rem;font-size:.93rem;}
.tbl caption{text-align:left;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--teal);padding-bottom:.7rem;}
.tbl th,.tbl td{border:1px solid var(--rule);padding:.78rem .9rem;text-align:left;vertical-align:top;}
.tbl thead th{background:var(--navy);color:#fff;font-weight:600;font-size:.84rem;
  letter-spacing:.02em;border-color:var(--navy);}
.tbl tbody th{background:var(--wash);color:var(--navy);font-weight:600;width:26%;}
.tbl td .ph{font-size:.84rem;}
.tbl .stage{font-family:var(--f-mono);font-size:.84rem;color:var(--teal);width:12%;white-space:nowrap;}

/* prose lists */
.ul{padding-left:0;margin:0 0 1.3rem;}
.ul li{
  list-style:none;position:relative;padding-left:1.4rem;margin-bottom:.55rem;max-width:70ch;
}
.ul li::before{
  content:"";position:absolute;left:0;top:.62em;width:7px;height:1.5px;background:var(--teal);
}
.band-deep .ul li::before{background:#5FBFC7;}

/* callout */
.callout{
  border-left:3px solid var(--teal);background:var(--wash);
  padding:1.15rem 1.35rem;margin:0 0 1.5rem;
}
.callout p{margin:0;font-size:.95rem;}
.callout p+p{margin-top:.7rem;}

/* CTA band */
.cta-band{background:var(--navy);color:#fff;padding:3.5rem 0;}
.cta-band h2{color:#fff;margin-bottom:.4em;}
.cta-band p{color:#C8D8EE;max-width:60ch;font-size:var(--step-1);}
.cta-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem;}

/* page header (interior pages) */
.phead{background:var(--wash);border-bottom:1px solid var(--rule);padding:3.2rem 0 2.9rem;}
.phead h1{font-size:var(--step-4);max-width:20ch;margin-bottom:.35em;}
.phead p{font-size:var(--step-1);color:#3E5169;max-width:64ch;margin-bottom:0;}

/* section anchor rule */
.anchor{
  border-top:1px solid var(--rule);padding-top:2.5rem;margin-top:2.9rem;
}
.anchor:first-of-type{border-top:none;padding-top:0;margin-top:0;}

/* form */
.form{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem 1.2rem;max-width:760px;}
.form .full{grid-column:1/-1;}
.field label{
  display:block;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--muted);margin-bottom:.35rem;
}
.field input,.field select,.field textarea{
  width:100%;font-family:var(--f-body);font-size:.94rem;color:var(--ink);
  padding:.62rem .75rem;border:1px solid var(--rule);border-radius:2px;background:var(--paper);
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal);
}
.field input:invalid:not(:placeholder-shown),
.field textarea:invalid:not(:placeholder-shown){border-color:#A33A2B;}
.field small{display:block;margin-top:.45rem;color:var(--muted);font-size:.78rem;line-height:1.5;}
.field textarea{min-height:120px;resize:vertical;}
.consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.88rem;color:var(--muted);}
.consent input{width:auto;margin-top:.25rem;}
.form-status{margin:0;color:var(--teal-dk);font-size:.86rem;font-weight:600;}
.credential-note{font-size:.82rem;color:var(--muted);font-style:normal;}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.foot{background:var(--deep);color:#A9BDD2;padding:3.4rem 0 0;font-size:.9rem;}
.foot a{color:#C6D4E4;text-decoration:none;}
.foot a:hover{color:#fff;text-decoration:underline;}
.foot h4{color:#fff;font-size:.74rem;font-family:var(--f-mono);letter-spacing:.15em;
  text-transform:uppercase;margin-bottom:.9rem;font-weight:500;}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:2rem;padding-bottom:2.6rem;}
.foot ul{list-style:none;padding:0;margin:0;}
.foot li{margin-bottom:.45rem;}
.foot .brand b{color:#fff;}
.foot .brand span{color:#6E8AA8;}
.foot-desc{margin-top:1rem;font-size:.86rem;color:#8FA6BF;max-width:34ch;}
.foot-legal{
  border-top:1px solid #1E3E60;padding:1.3rem 0 2rem;
  display:flex;flex-wrap:wrap;gap:.5rem 1.3rem;font-size:.79rem;color:#7E96B0;
}
.disclaimer{
  background:#081827;color:#7E96B0;font-size:.78rem;line-height:1.6;padding:1.3rem 0;
  border-top:1px solid #12293F;
}
.disclaimer p{max-width:none;margin:0;}

/* ==========================================================================
   MOTION + A11Y
   ========================================================================== */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease;}
.reveal.in{opacity:1;transform:none;}

:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}

.skip{
  position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;
  padding:.7rem 1rem;z-index:100;
}
.skip:focus{left:0;}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;}
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1000px){
  .ledger{grid-template-columns:repeat(2,1fr);}
  .led:nth-child(odd){border-right:1px solid var(--rule);}
  .led:nth-child(even){border-right:none;}
  .g4{grid-template-columns:repeat(2,1fr);}
  .foot-grid{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:1080px){
  .burger{display:block;}
  .nav{
    display:none;position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--paper);border-bottom:1px solid var(--rule);
    padding:.6rem var(--gut) 1.1rem;box-shadow:0 12px 24px rgba(16,35,63,.08);
  }
  .nav.open{display:flex;}
  .nav a{padding:.72rem 0;border-bottom:1px solid var(--rule);font-size:.95rem;}
  .nav a:hover{border-bottom-color:var(--rule);}
  .nav .btn{margin-top:.8rem;text-align:center;border-bottom:none;}
  .masthead .wrap{position:relative;}
  .g2,.g3,.claims{grid-template-columns:1fr;}
  .hero{padding-top:3.2rem;}
  .band{padding:3.2rem 0;}
  .form{grid-template-columns:1fr;}
  .utility .wrap{font-size:.66rem;gap:.3rem .9rem;}
  .utility .push{margin-left:0;}
}

@media (max-width:560px){
  :root{--gut:20px;}
  .utility .wrap{flex-wrap:nowrap;justify-content:space-between;padding-block:.6rem;}
  .utility .wrap > span:first-child,
  .utility .sep,
  .utility .push,
  .utility a[href^="mailto:partnerships"]{display:none;}
  .utility a{white-space:nowrap;}
  .ledger{grid-template-columns:1fr;}
  .led,.led:nth-child(odd){border-right:none;}
  .g4{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .authorities span{flex:1 1 50%;}
  .tbl{font-size:.86rem;}
  .tbl th,.tbl td{padding:.6rem .65rem;}
}

/* ==========================================================================
   VISUAL LAYER
   Original vector graphics only. No third-party imagery anywhere on this site.
   ========================================================================== */

/* ---------- icons ---------- */
.icon{width:1.5rem;height:1.5rem;display:block;color:var(--teal);}
.icon-lg{width:2.1rem;height:2.1rem;}

.icon-badge{
  width:3rem;height:3rem;display:grid;place-items:center;
  border:1px solid var(--rule);background:var(--wash);margin-bottom:1rem;
}
.card .icon-badge{margin-bottom:.9rem;}
.band-deep .icon-badge{background:#122B47;border-color:#24476B;}
.band-deep .icon{color:#5FBFC7;}

/* ---------- topographic hero motif ---------- */
.hero{position:relative;overflow:hidden;}
.hero .wrap{position:relative;z-index:2;}
.topo-wrap{
  position:absolute;inset:0 0 auto auto;width:min(58%,760px);height:100%;
  pointer-events:none;z-index:1;
  -webkit-mask-image:linear-gradient(to left,#000 5%,transparent 92%);
          mask-image:linear-gradient(to left,#000 5%,transparent 92%);
}
.topo{width:100%;height:100%;}
.topo path{fill:none;stroke:var(--navy);stroke-width:1.15;opacity:.30;}

/* ---------- Nepal map ---------- */
.map-frame{
  border:1px solid var(--rule);background:var(--paper);padding:1.1rem 1rem .75rem;
  --nm-top:#EDF3FA; --nm-bot:#D9E5F3;
}
.nepal-map{width:100%;height:auto;display:block;}
.nm-shadow{fill:#0E2A47;opacity:.07;}
.nm-land{fill:url(#nmg);stroke:var(--navy);stroke-width:2.6;stroke-linejoin:round;}
.nm-ridge{fill:none;stroke:var(--navy);stroke-width:1.5;opacity:.28;stroke-linecap:round;}
.nm-route{fill:none;stroke:var(--teal);stroke-width:1.9;stroke-dasharray:7 6;opacity:.72;stroke-linecap:round;}
.nm-route-primary{fill:none;stroke:var(--navy);stroke-width:3.5;opacity:.68;stroke-linecap:round;}
.nm-route-secondary{fill:none;stroke:var(--teal);stroke-width:1.65;stroke-dasharray:7 5;opacity:.82;stroke-linecap:round;}
.nm-route-onward{fill:none;stroke:#6E8AA8;stroke-width:1.25;stroke-dasharray:2 5;opacity:.7;stroke-linecap:round;}
.nm-dot{fill:var(--navy);stroke:var(--paper);stroke-width:2.6;}
.nm-subchannels circle{fill:var(--teal);stroke:var(--paper);stroke-width:1.5;}
.nm-hub{fill:var(--teal);stroke:var(--paper);stroke-width:3;}
.nm-hub-ring{fill:none;stroke:var(--teal);stroke-width:2;opacity:.55;}
.nm-hub-halo{fill:var(--teal);opacity:.14;}
.nm-label{
  font-family:var(--f-mono);font-size:26px;font-weight:500;
  letter-spacing:.08em;fill:var(--ink);
}
.nm-label-hub{font-size:33px;fill:var(--navy);font-weight:600;}
.nm-sub{font-family:var(--f-mono);font-size:21px;letter-spacing:.04em;fill:var(--muted);}
.map-key{
  display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;margin-top:.7rem;padding-top:.75rem;
  border-top:1px solid var(--rule);
  font-family:var(--f-mono);font-size:.7rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--muted);
}
.map-key i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:.45rem;
  vertical-align:baseline;background:var(--navy);}
.map-key i.hub{background:var(--teal);}
.map-key i.major{background:var(--navy);width:10px;height:10px;}
.map-key i.channel{background:var(--teal);width:6px;height:6px;margin-left:2px;margin-right:.55rem;}
.map-key i.onward{
  width:22px;height:0;border-radius:0;background:transparent;
  border-top:2px dotted #6E8AA8;transform:translateY(-2px);
}

/* ---------- stepper (registration pathway) ---------- */
.stepper{
  list-style:none;padding:0;margin:0 0 1.6rem;
  display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--rule);
}
.step{padding:1.3rem 1.05rem 1.4rem;border-right:1px solid var(--rule);position:relative;background:var(--paper);}
.step:last-child{border-right:none;}
.step::after{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--teal);
  opacity:calc(.32 + var(--i,0) * .17);
}
.step:nth-child(1){--i:0}.step:nth-child(2){--i:1}.step:nth-child(3){--i:2}
.step:nth-child(4){--i:3}.step:nth-child(5){--i:4}
.step-n{
  font-family:var(--f-mono);font-size:1.55rem;font-weight:500;color:var(--teal);
  display:block;line-height:1;margin-bottom:.7rem;
}
.step h4{font-size:1rem;margin-bottom:.35rem;}
.step p{font-size:.85rem;color:#4A5D74;margin:0;line-height:1.5;}

/* ---------- chain (supply chain rail) ---------- */
.chain{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.chain-step{padding:0 1.2rem 0 0;position:relative;}
.chain-step::before{
  content:"";position:absolute;left:0;right:0;top:21px;height:1px;background:var(--rule);z-index:0;
}
.chain-step:last-child::before{right:auto;width:44px;}
.chain-ico{
  position:relative;z-index:1;width:44px;height:44px;display:grid;place-items:center;
  background:var(--paper);border:1px solid var(--rule);border-radius:50%;margin-bottom:.95rem;
}
.band-wash .chain-step::before{background:#CDD9E7;}
.band-wash .chain-ico{background:var(--wash);}
.chain-step h4{font-size:.98rem;margin-bottom:.3rem;}
.chain-step p{font-size:.85rem;color:#4A5D74;margin:0;line-height:1.5;padding-right:.6rem;}

/* ---------- figures ---------- */
.figure{margin:0 0 1.6rem;border:1px solid var(--rule);padding:1.3rem 1.3rem 1rem;background:var(--paper);}
.figure figcaption{
  font-size:.79rem;color:var(--muted);margin-top:.9rem;padding-top:.75rem;
  border-top:1px solid var(--rule);
}
.sharebar{width:100%;height:auto;display:block;}
.sb-a{fill:var(--navy);} .sb-b{fill:var(--teal);} .sb-c{fill:#C9D6E6;}
.sb-t{font-family:var(--f-mono);font-size:9px;letter-spacing:.13em;fill:var(--navy);}
.sb-t2{fill:var(--teal);} .sb-t3{fill:var(--muted);}
.sb-v{font-family:var(--f-mono);font-size:11px;fill:var(--muted);}

/* ---------- photo slots ---------- */
.photoslot{
  aspect-ratio:var(--ar,4/3);
  border:1.5px dashed var(--amber);background:var(--amber-bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:1.2rem;gap:.4rem;color:var(--amber);
}
.ps-ico{width:2.1rem;height:2.1rem;opacity:.75;}
.ps-label{
  font-family:var(--f-mono);font-size:.74rem;letter-spacing:.11em;text-transform:uppercase;
  margin:0;color:var(--amber);font-weight:500;
}
.ps-dir{font-size:.8rem;margin:0;color:#7A5200;max-width:34ch;line-height:1.45;}

/* portrait row */
.portraits{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.portrait .photoslot{margin-bottom:1rem;}
.portrait h3{margin-bottom:.15rem;}
.portrait .role{
  font-family:var(--f-mono);font-size:.72rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--teal);margin-bottom:.7rem;
}
.portrait p{font-size:.92rem;color:#3E5169;}

/* ---------- stat row ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--rule);background:var(--paper);}
.stat{padding:1.5rem 1.3rem;border-right:1px solid var(--rule);}
.stat:last-child{border-right:none;}
.stat b{
  display:block;font-family:var(--f-display);font-size:2.1rem;font-weight:700;
  color:var(--navy);line-height:1;margin-bottom:.45rem;letter-spacing:-.02em;
}
.stat span{font-size:.88rem;color:var(--muted);display:block;line-height:1.45;}
.band-deep .stats{background:#122B47;border-color:#24476B;}
.band-deep .stat{border-right-color:#24476B;}
.band-deep .stat b{color:#fff;}
.band-deep .stat span{color:#A9BDD2;}

/* ---------- responsive for visual layer ---------- */
@media (max-width:1000px){
  .stepper{grid-template-columns:repeat(2,1fr);}
  .step{border-bottom:1px solid var(--rule);}
  .step:nth-child(2n){border-right:none;}
  .chain{grid-template-columns:repeat(2,1fr);gap:1.6rem 0;}
  .chain-step::before{display:none;}
  .portraits{grid-template-columns:1fr;}
  .stats{grid-template-columns:1fr;}
  .stat{border-right:none;border-bottom:1px solid var(--rule);}
  .stat:last-child{border-bottom:none;}
  .topo-wrap{width:70%;opacity:.7;}
}
@media (max-width:640px){
  .stepper{grid-template-columns:1fr;}
  .step{border-right:none;}
  .chain{grid-template-columns:1fr;}
  .topo-wrap{display:none;}
  .nm-label{font-size:40px;}
  .nm-label-hub{font-size:50px;}
  .nm-sub{font-size:32px;}
}

/* ---------- tables scroll rather than break the layout on small screens ---------- */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 1.5rem;}
.tbl-wrap .tbl{margin-bottom:0;}
@media (max-width:700px){
  .tbl-wrap{border-right:1px solid var(--rule);}
  .tbl-wrap .tbl{min-width:520px;}
}

/* ---------- prevent any long content from forcing a track wider than the viewport ---------- */
.g2>*,.g3>*,.g4>*,.claims>*,.portraits>*,.chain>*,.stepper>*{min-width:0;}
.wrap>*{max-width:100%;}

/* ==========================================================================
   HERO — two column. The right column carries the map so the space works.
   ========================================================================== */
.hero-grid{
  display:grid;grid-template-columns:.82fr 1.18fr;gap:2.4rem;align-items:center;
  padding-bottom:2.8rem;
}
.hero-copy h1{max-width:none;}
.hero-copy .lede{max-width:52ch;}
.hero .hero-actions{margin-bottom:0;}

.hero-map{position:relative;}
.hero-map .map-frame{
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(2px);
  box-shadow:0 18px 44px -28px rgba(16,35,63,.5);
}
.hero-map .nepal-map{max-height:470px;}

.topo-wrap{
  width:min(62%,860px);
  -webkit-mask-image:linear-gradient(to left,#000 25%,transparent 96%);
          mask-image:linear-gradient(to left,#000 25%,transparent 96%);
}

/* ledger sits full width beneath both columns */
.hero .ledger{margin-bottom:0;}

@media (max-width:1000px){
  .hero-grid{grid-template-columns:1fr;gap:2.2rem;padding-bottom:2.2rem;}
  .hero-copy h1{max-width:18ch;}
  .hero-map .nepal-map{max-height:none;}
  .topo-wrap{width:100%;opacity:.55;}
}

/* ---------- reach section: cities + stats, no duplicate map ---------- */
.reach{display:grid;grid-template-columns:1.1fr 1fr;gap:2.6rem;align-items:start;}
@media (max-width:900px){.reach{grid-template-columns:1fr;gap:1.8rem;}}

/* ---------- section heading with icon ---------- */
.sec-icon{display:flex;gap:1rem;align-items:center;margin-bottom:.95rem;}
.sec-icon>.icon-badge{margin-bottom:0;flex:0 0 auto;}
.sec-icon>div{min-width:0;}
.sec-icon .eyebrow{margin:0;}
.sec-icon h2{margin:0;overflow-wrap:break-word;hyphens:auto;}
@media (max-width:480px){
  .sec-icon{gap:.8rem;}
  .sec-icon>.icon-badge{width:2.5rem;height:2.5rem;}
  .sec-icon .icon-lg{width:1.6rem;height:1.6rem;}
}

/* ==========================================================================
   DROPDOWN NAVIGATION
   Sub-pages exist in the architecture; the nav now exposes them.
   ========================================================================== */
.nav-item{position:relative;display:flex;align-items:center;}
.nav-item>a{display:inline-flex;align-items:center;gap:.28rem;}
.nav-caret{width:9px;height:9px;flex:0 0 auto;transition:transform .16s ease;}
.nav-item.open>a .nav-caret{transform:rotate(180deg);}

.submenu{
  position:absolute;top:100%;left:-.9rem;min-width:250px;
  background:var(--paper);border:1px solid var(--rule);
  box-shadow:0 16px 34px -18px rgba(16,35,63,.34);
  padding:.4rem 0;margin:0;list-style:none;
  opacity:0;visibility:hidden;transform:translateY(-5px);
  transition:opacity .15s ease,transform .15s ease,visibility .15s;
  z-index:70;
}
.nav-item:hover>.submenu,
.nav-item:focus-within>.submenu,
.nav-item.open>.submenu{opacity:1;visibility:visible;transform:none;}
.submenu li{margin:0;}
.submenu a{
  display:block;padding:.55rem 1.1rem;font-size:.83rem;color:var(--ink);
  text-decoration:none;border-bottom:none;white-space:nowrap;
}
.submenu a:hover,.submenu a:focus{background:var(--wash);color:var(--navy);}
.submenu .sm-head{
  padding:.5rem 1.1rem .35rem;font-family:var(--f-mono);font-size:.63rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--teal);
}
.submenu .sm-sep{height:1px;background:var(--rule);margin:.35rem 0;}

@media (max-width:1080px){
  .nav-item{display:block;}
  .nav-item>a{justify-content:space-between;width:100%;}
  .submenu{
    position:static;opacity:1;visibility:visible;transform:none;
    border:none;box-shadow:none;min-width:0;padding:0 0 .5rem;
    max-height:0;overflow:hidden;transition:max-height .22s ease;
  }
  .nav-item.open>.submenu{max-height:520px;}
  .submenu a{padding:.5rem 0 .5rem 1.1rem;font-size:.9rem;border-bottom:1px solid var(--rule);}
  .submenu .sm-head{padding-left:1.1rem;}
}

/* ==========================================================================
   PARTNER HUB — three directions
   ========================================================================== */
.paths{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
.path{
  border:1px solid var(--rule);border-top:4px solid var(--teal);
  background:var(--paper);padding:1.7rem 1.5rem 1.6rem;display:flex;flex-direction:column;
}
.path .path-n{
  font-family:var(--f-mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--teal);margin-bottom:.9rem;
}
.path h3{font-size:1.22rem;margin-bottom:.5rem;}
.path .who{
  font-size:.83rem;color:var(--muted);border-left:2px solid var(--rule);
  padding-left:.7rem;margin-bottom:.9rem;
}
.path p{font-size:.93rem;color:#3E5169;}
.path .ul li{font-size:.9rem;}
.path .path-cta{margin-top:auto;padding-top:1.1rem;}
.path .path-cta a{
  font-family:var(--f-mono);font-size:.78rem;letter-spacing:.05em;
  text-decoration:none;color:var(--teal);font-weight:500;
}
.path .path-cta a:hover{text-decoration:underline;}
.path-lead{border-top-color:var(--navy);background:var(--wash);}
.path-lead .path-n{color:var(--navy);}

@media (max-width:900px){.paths{grid-template-columns:1fr;}}

/* direction switcher on sub-pages */
.switch{
  display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--rule);margin-bottom:2rem;
  background:var(--paper);
}
.switch a{
  flex:1 1 auto;text-align:center;padding:.72rem .9rem;font-size:.84rem;
  text-decoration:none;color:var(--muted);border-right:1px solid var(--rule);
}
.switch a:last-child{border-right:none;}
.switch a:hover{background:var(--wash);color:var(--navy);}
.switch a[aria-current="page"]{background:var(--navy);color:#fff;font-weight:600;}
@media (max-width:640px){
  .switch a{flex:1 1 100%;border-right:none;border-bottom:1px solid var(--rule);}
  .switch a:last-child{border-bottom:none;}
}

/* ==========================================================================
   DIAGRAMS — wave two
   ========================================================================== */
.figure-wide{padding:1.6rem 1.4rem 1.1rem;}
.flowdiag,.tiers,.ccrail{width:100%;height:auto;display:block;}

/* --- three directions --- */
.fd-tier{font-family:var(--f-mono);font-size:11px;letter-spacing:.17em;fill:var(--muted);}
.fd-tier2{fill:var(--teal);}
.fd-box{fill:var(--paper);stroke:var(--rule);stroke-width:1.4;}
.fd-core{fill:var(--navy);stroke:var(--navy);stroke-width:1.4;}
.fd-core-lab{font-family:var(--f-display);font-size:19px;font-weight:700;fill:#fff;letter-spacing:.04em;}
.fd-core-sub{font-family:var(--f-mono);font-size:12px;fill:#B9CADC;}
.fd-lab{font-family:var(--f-display);font-size:15px;font-weight:650;fill:var(--navy);}
.fd-sub{font-family:var(--f-mono);font-size:11px;fill:var(--muted);}
.fd-line{fill:none;stroke:var(--teal);stroke-width:1.8;}
.fd-thin{stroke-width:1.3;opacity:.6;}
.fd-arrow{fill:var(--teal);}
.fd-flow{font-family:var(--f-mono);font-size:11px;fill:var(--teal);letter-spacing:.04em;}
.fd-flow2{fill:var(--muted);}
.fd-loop{fill:none;stroke:var(--muted);stroke-width:1.2;stroke-dasharray:4 4;}
.fd-patient{fill:var(--wash-2);stroke:var(--navy);stroke-width:1.6;}
.fd-plab{font-family:var(--f-mono);font-size:10px;letter-spacing:.09em;fill:var(--navy);}

/* --- coverage tiers --- */
.ti-a{fill:var(--wash-2);stroke:var(--navy);stroke-width:1.4;}
.ti-b{fill:var(--paper);stroke:var(--teal);stroke-width:1.6;stroke-dasharray:5 4;}
.ti-c{fill:var(--wash);stroke:var(--rule);stroke-width:1.4;}
.ti-h{font-family:var(--f-mono);font-size:10px;letter-spacing:.17em;fill:var(--muted);}
.ti-h2{fill:var(--teal);}
.ti-n{font-family:var(--f-display);font-size:44px;font-weight:700;fill:var(--navy);}
.ti-n2{fill:var(--teal);}
.ti-l{font-family:var(--f-body);font-size:12px;fill:#3E5169;}
.ti-lb{font-size:13px;}
.ti-arrow{stroke:var(--teal);stroke-width:1.6;marker-end:none;}

/* --- cold chain rail --- */
.cc-band{fill:#E4F2F3;stroke:var(--teal);stroke-width:1;stroke-dasharray:4 4;}
.cc-range{font-family:var(--f-mono);font-size:10px;letter-spacing:.15em;fill:var(--teal);}
.cc-deg{font-family:var(--f-mono);font-size:15px;font-weight:500;fill:var(--teal-dk);}
.cc-trace{fill:none;stroke:var(--navy);stroke-width:2;}
.cc-stop circle{fill:var(--navy);stroke:var(--paper);stroke-width:2;}
.cc-lab{font-family:var(--f-display);font-size:13px;font-weight:650;fill:var(--navy);}
.cc-sub{font-family:var(--f-mono);font-size:10px;fill:var(--muted);}
.cc-axis{stroke:var(--rule);stroke-width:1;}
.cc-note{font-family:var(--f-body);font-size:11px;fill:var(--muted);}

/* --- timeline --- */
.timeline{list-style:none;padding:0;margin:0 0 1.5rem;position:relative;}
.timeline::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--rule);}
.tl-item{position:relative;padding-left:1.9rem;margin-bottom:1rem;display:flex;gap:1rem;flex-wrap:wrap;}
.tl-dot{position:absolute;left:0;top:.42em;width:11px;height:11px;border-radius:50%;
  background:var(--paper);border:2px solid var(--teal);}
.tl-when{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.06em;color:var(--teal);
  min-width:7rem;padding-top:.1rem;}
.tl-what{flex:1 1 16rem;min-width:0;font-size:.96rem;color:var(--ink);}

/* --- 404 --- */
.lost{width:220px;height:auto;margin:0 0 1.6rem;}
.lo-box{fill:var(--wash-2);stroke:var(--navy);stroke-width:1.6;stroke-linejoin:round;}
.lo-side{fill:var(--wash);stroke:var(--navy);stroke-width:1.6;stroke-linejoin:round;}
.lo-side2{fill:#E3EAF3;}
.lo-tape{stroke:var(--teal);stroke-width:1.6;stroke-dasharray:6 4;}
.lo-mark{fill:var(--paper);stroke:var(--teal);stroke-width:1.6;}
.lo-q{fill:none;stroke:var(--teal);stroke-width:1.9;stroke-linecap:round;}
.lo-dot{fill:var(--teal);}

/* --- icon rows for tables and cards --- */
.iconrow{display:flex;align-items:center;gap:.6rem;}
.iconrow .icon{width:1.25rem;height:1.25rem;flex:0 0 auto;}
.tbl .iconrow{font-weight:600;color:var(--navy);}

@media (max-width:700px){
  .figure,.figure-wide{padding:1rem .9rem .8rem;}
  .tl-when{min-width:100%;}
}

/* --- access barriers figure --- */
.barriers{width:100%;height:auto;display:block;}
.ba-src{fill:var(--wash-2);stroke:var(--navy);stroke-width:1.4;}
.ba-gate{fill:var(--paper);stroke:var(--teal);stroke-width:1.6;}
.ba-gt{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;fill:var(--teal);}
.ba-lab{font-family:var(--f-display);font-size:15px;font-weight:650;fill:var(--navy);}
.ba-sub{font-family:var(--f-mono);font-size:10.5px;fill:var(--muted);}
.ba-flow{stroke:var(--teal);stroke-width:1.8;}
.ba-patient{fill:var(--navy);}
.ba-plab{font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;fill:#fff;}
.ba-note{font-family:var(--f-body);font-size:11.5px;fill:var(--muted);}

/* --- inline icon inside a bullet --- */
.ul-ico{display:inline-flex;vertical-align:-.28em;margin-right:.45rem;}
.ul-ico .icon{width:1.05rem;height:1.05rem;}
.ul li:has(.ul-ico){padding-left:0;}
.ul li:has(.ul-ico)::before{display:none;}

/* --- ecological belts --- */
.belts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
.belt{border:1px solid var(--rule);background:var(--paper);padding:0 0 1.5rem;overflow:hidden;}
.belt-bar{height:6px;}
.belt-mt .belt-bar{background:linear-gradient(90deg,#7FA8C9,#B9D2E4);}
.belt-hl .belt-bar{background:linear-gradient(90deg,var(--teal),#7FC6CC);}
.belt-tr .belt-bar{background:linear-gradient(90deg,var(--navy),#4E7CBE);}
.belt>*:not(.belt-bar){padding-inline:1.4rem;}
.belt-n{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--teal);margin:1.3rem 0 .5rem;}
.belt h3{font-family:var(--f-display);font-size:1.7rem;margin-bottom:.25rem;color:var(--navy);}
.belt-pc{font-family:var(--f-mono);font-size:.78rem;color:var(--muted);margin-bottom:.9rem;}
.belt p:last-child{font-size:.9rem;color:#3E5169;margin-bottom:0;}
@media (max-width:900px){.belts{grid-template-columns:1fr;}}

/* --- reach bar --- */
.reachbar{width:100%;height:auto;display:block;}
.rb-cap{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;fill:var(--muted);}
.rb-track{fill:var(--wash-2);stroke:var(--rule);stroke-width:1;}
.rb-direct{fill:var(--navy);}
.rb-in{font-family:var(--f-mono);font-size:12px;fill:#fff;}
.rb-out{font-family:var(--f-mono);font-size:12px;fill:var(--muted);}
.rb-tick{stroke:var(--navy);stroke-width:1.2;}
.rb-pct{font-family:var(--f-display);font-size:15px;font-weight:700;fill:var(--navy);}
.rb-note{font-family:var(--f-body);font-size:11px;fill:var(--muted);}

/* ==========================================================================
   HERO POLISH
   ========================================================================== */
.hero{
  background:
    radial-gradient(1100px 520px at 82% 18%, rgba(14,124,134,.07), transparent 62%),
    linear-gradient(180deg, #FBFCFE 0%, var(--paper) 58%);
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:.55rem;
  font-family:var(--f-mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--teal);border:1px solid #CBE3E5;background:#F2F9FA;
  padding:.34rem .72rem;border-radius:2px;margin-bottom:1.4rem;
}
.hero-eyebrow b{
  width:6px;height:6px;border-radius:50%;background:var(--teal);flex:0 0 auto;
}
.hero-copy h1{margin-bottom:.42em;}
.hero .lede{font-size:1.16rem;color:#34495F;}

.hero-map .map-frame{
  box-shadow:0 26px 60px -34px rgba(16,35,63,.55), 0 2px 6px -2px rgba(16,35,63,.08);
}

/* ledger gains a little life */
.led{transition:background .18s ease;}
.led:hover{background:var(--wash);}
.ledger{box-shadow:0 14px 34px -30px rgba(16,35,63,.6);}

/* staggered entrance — disabled under reduced motion by the block further down */
@keyframes riseIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
.hero-copy .hero-eyebrow{animation:riseIn .55s ease both;animation-delay:.04s;}
.hero-copy h1{animation:riseIn .6s ease both;animation-delay:.10s;}
.hero-copy .lede{animation:riseIn .6s ease both;animation-delay:.18s;}
.hero-copy .hero-actions{animation:riseIn .6s ease both;animation-delay:.26s;}
.hero-map{animation:riseIn .75s ease both;animation-delay:.20s;}
.hero .ledger{animation:riseIn .6s ease both;animation-delay:.36s;}

/* buttons feel less flat */
.btn{box-shadow:0 1px 0 rgba(16,35,63,.05);}
.btn:not(.btn-ghost):not(.btn-light):hover{
  box-shadow:0 8px 18px -10px rgba(14,124,134,.7);transform:translateY(-1px);
}
.btn{transition:background .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease,border-color .16s ease;}

/* therapeutic cards lift on hover */
.card{transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease;}
a.card:hover,.card:hover{box-shadow:0 16px 32px -26px rgba(16,35,63,.55);}

@media (prefers-reduced-motion:reduce){
  .hero-copy .hero-eyebrow,.hero-copy h1,.hero-copy .lede,
  .hero-copy .hero-actions,.hero-map,.hero .ledger{animation:none;}
  .btn:hover{transform:none;}
}

@media (max-width:1000px){
  .hero{background:linear-gradient(180deg,#FBFCFE 0%,var(--paper) 60%);}
}

/* ==========================================================================
   JOURNEY BANNER — full-bleed, three beats over a terrain silhouette
   ========================================================================== */
.journey{
  position:relative;overflow:hidden;
  background:linear-gradient(165deg,#0B2038 0%,#123255 52%,#0E2A47 100%);
  color:#D6E2EF;padding:4.6rem 0 3.4rem;
  border-block:1px solid #0A1E33;
}
.terrain-wrap{
  position:absolute;left:0;right:0;bottom:0;height:66%;pointer-events:none;
  z-index:1;opacity:.9;
}
.terrain{width:100%;height:100%;display:block;}
.tr-back{fill:#16385C;}
.tr-mid{fill:#1B4468;}
.tr-front{fill:#215074;}

.journey-inner{position:relative;z-index:2;}

.journey-eyebrow{
  font-family:var(--f-mono);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  color:#5FBFC7;margin:0 0 1rem;
}
.journey-h{
  color:#fff;font-size:clamp(1.6rem,2.6vw,2.4rem);max-width:24ch;
  line-height:1.16;margin-bottom:2.6rem;
}

/* the rail sits between the heading and the beats on wide screens */
.journey-rail{display:flex;align-items:center;gap:0;margin:0 0 1.6rem;}
.jr-dot{
  width:13px;height:13px;border-radius:50%;flex:0 0 auto;
  background:#0E2A47;border:2px solid #5FBFC7;
}
.jr-a{background:#5FBFC7;}
.jr-end{background:#fff;border-color:#fff;}
.jr-line{
  flex:1 1 auto;height:2px;
  background-image:linear-gradient(90deg,#5FBFC7 55%,transparent 0);
  background-size:11px 2px;background-repeat:repeat-x;opacity:.75;
}

.beats{
  list-style:none;padding:0;margin:0 0 1.4rem;
  display:grid;grid-template-columns:repeat(3,1fr);gap:2.2rem;
}
.beat{position:relative;}
.beat-n{
  display:block;font-family:var(--f-mono);font-size:.78rem;letter-spacing:.2em;
  color:#5FBFC7;margin-bottom:.7rem;
}
.beat h3{color:#fff;font-size:1.18rem;margin-bottom:.55rem;line-height:1.25;}
.beat p{color:#AFC4D8;font-size:.95rem;margin:0;line-height:1.62;max-width:42ch;}

.journey-foot{
  font-family:var(--f-mono);font-size:.74rem;letter-spacing:.12em;
  color:#7E9BB8;margin:0;padding-top:1.5rem;border-top:1px solid #1E3E60;
}

@media (max-width:900px){
  .beats{grid-template-columns:1fr;gap:1.8rem;}
  .journey{padding:3.4rem 0 2.6rem;}
  .journey-h{margin-bottom:1.8rem;}
  .terrain-wrap{height:48%;opacity:.7;}
  .journey-rail{display:none;}
}

/* ==========================================================================
   THE CASE FOR NEPAL — argument columns + sourced stat grid
   ========================================================================== */
.argue{display:grid;grid-template-columns:1fr 1fr;gap:2.4rem;margin-bottom:2.4rem;}
.argue-col p{font-size:1rem;color:#33475F;}
.argue-col p strong{color:var(--navy);}
.argue-col em{font-style:italic;}
@media (max-width:860px){.argue{grid-template-columns:1fr;gap:1.4rem;}}

.statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);
  border:1px solid var(--rule);}
.sg{background:var(--paper);padding:1.5rem 1.3rem 1.35rem;display:flex;flex-direction:column;}
.sg b{
  font-family:var(--f-display);font-size:2.15rem;font-weight:700;color:var(--navy);
  line-height:1;letter-spacing:-.02em;margin-bottom:.6rem;
}
.sg span{font-size:.93rem;color:#3E5169;line-height:1.5;margin-bottom:.75rem;}
.sg i{
  font-family:var(--f-mono);font-size:.66rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--muted);font-style:normal;margin-top:auto;padding-top:.5rem;
  border-top:1px solid var(--rule);
}
.sg-hi{background:linear-gradient(160deg,#F2F9FA,#FFFFFF);}
.sg-hi b{color:var(--teal);}
.statnote{font-size:.82rem;color:var(--muted);margin-top:1.2rem;}
@media (max-width:900px){.statgrid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.statgrid{grid-template-columns:1fr;}}

/* ==========================================================================
   PAGE BACKDROPS
   One language — thin navy/teal linework, low opacity — a different motif per
   page, drawn from that page's own subject. Never competes with the content.
   ========================================================================== */
.phead{position:relative;overflow:hidden;}
.phead .wrap{position:relative;z-index:2;}

.pbg-wrap{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  -webkit-mask-image:linear-gradient(to left,#000 10%,rgba(0,0,0,.5) 40%,transparent 64%);
          mask-image:linear-gradient(to left,#000 10%,rgba(0,0,0,.5) 40%,transparent 64%);
}
.pbg-wrap::after{
  content:attr(data-motif);
  position:absolute;right:max(var(--gut),calc((100vw - var(--max))/2));bottom:1.25rem;
  max-width:44vw;text-align:right;
  font-family:var(--f-mono);font-size:.65rem;letter-spacing:.16em;
  color:var(--teal-dk);opacity:.72;
}
.pbg{width:100%;height:100%;display:block;}

/* shared line vocabulary */
.pb-line path,.pb-line-s,.pb-rule,.pb-grid,.pb-spoke,.pb-arc{
  fill:none;stroke:var(--navy);stroke-width:1.1;
}
.pb-line path{opacity:.34;}
.pb-line-s{opacity:.27;}
.pb-ring{fill:none;stroke:var(--navy);stroke-width:1.2;opacity:.29;}
.pb-arc{stroke:var(--teal);stroke-width:1.5;opacity:.38;stroke-dasharray:8 7;}
.pb-spoke{stroke:var(--teal);stroke-width:1.2;opacity:.26;stroke-dasharray:7 6;}
.pb-dot{fill:var(--teal);opacity:.52;}
.pb-hub{fill:var(--navy);opacity:.30;}
.pb-hex{fill:none;stroke:var(--navy);stroke-width:1;opacity:.20;}
.pb-block{fill:var(--navy);opacity:.045;}
.pb-win{fill:var(--navy);opacity:.08;}
.pb-margin{stroke:var(--teal);stroke-width:1.2;opacity:.30;}
.pb-rule{opacity:.20;}
.pb-grid{opacity:.14;}
.pb-check{fill:none;stroke:var(--teal);stroke-width:2;opacity:.40;
  stroke-linecap:round;stroke-linejoin:round;}
.pb-pin{fill:var(--teal);opacity:.16;}

/* terrain reused as a backdrop keeps the banner's fills but lighter */
.pbg-terrain .tr-back{fill:var(--navy);opacity:.07;}
.pbg-terrain .tr-mid{fill:var(--navy);opacity:.055;}
.pbg-terrain .tr-front{fill:var(--navy);opacity:.045;}
.pbg-terrain{-webkit-mask-image:none;mask-image:none;}
.pbg-terrain .pbg{height:auto;position:absolute;bottom:0;left:0;right:0;}

/* facade sits on the floor of the header */
.pbg-facade .pbg{height:100%;}

@media (max-width:860px){
  .pbg-wrap{opacity:.55;}
}
@media (max-width:560px){
  .pbg-wrap{display:none;}
}

/* section-level backdrop, for bands that need lifting */
.band{position:relative;}
.band > .wrap{position:relative;z-index:2;}
.band-bg{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.75;}

/* legal and policy pages */
.legal-masthead .wrap{min-height:84px;}
.legal-nav{display:flex;align-items:center;gap:1.2rem;margin-left:auto;}
.legal-nav a{font-size:.88rem;font-weight:600;text-decoration:none;}
.prose{max-width:820px;}
.prose h2{font-size:var(--step-2);margin-top:2.2rem;}
.prose h2:first-child{margin-top:0;}
.prose p,.prose li{color:#3E5169;line-height:1.75;}
.legal-footer{padding-top:1.4rem;}
@media (max-width:560px){
  .legal-masthead .wrap{min-height:74px;}
  .legal-nav{gap:.75rem;}
  .legal-nav a{font-size:.8rem;}
}
/* Homepage photographic banner trial (v14) */
.hero-photo {
  position: relative;
  min-height: 660px;
  overflow: hidden;
  background: #0a2236;
  color: #fff;
}
.hero-photo .hero-banner-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}
.hero-photo::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(6,23,38,.96) 0%, rgba(6,23,38,.88) 34%, rgba(6,23,38,.48) 58%, rgba(6,23,38,.12) 100%);
}
.hero-photo .topo-wrap { display: none; }
.hero-photo > .wrap { position: relative; z-index: 2; }
.hero-photo .hero-grid {
  grid-template-columns: minmax(0,650px) 1fr;
  min-height: 660px;
  align-items: center;
}
.hero-photo .hero-copy { padding: 54px 0 64px; }
.hero-photo .hero-map { display: none; }
.hero-photo h1 {
  color: #fff;
  text-shadow: 0 2px 18px rgba(0,0,0,.28);
}
.hero-photo .lede {
  color: #e3edf3;
  text-shadow: 0 1px 10px rgba(0,0,0,.24);
}
.hero-photo .hero-eyebrow {
  color:#92e3e1;
  background:transparent;
  border:0;
  border-left:3px solid #27b8bd;
  border-radius:0;
  padding:.18rem 0 .18rem .8rem;
  text-shadow:0 1px 8px rgba(0,0,0,.36);
}
.hero-photo .hero-eyebrow b { display:none; }

/* Company overview: use the formerly empty column as an explanatory visual. */
.company-overview {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 88% 25%, rgba(14,124,134,.1), transparent 27rem),
    linear-gradient(180deg,#fff,#f7fafc);
}
.company-overview::before {
  content:"";
  position:absolute;
  right:-100px;
  top:35px;
  width:520px;
  height:520px;
  border:1px solid rgba(20,65,126,.08);
  border-radius:50%;
  box-shadow:0 0 0 55px rgba(14,124,134,.025),0 0 0 110px rgba(20,65,126,.02);
}
.company-visual {
  position:sticky;
  top:130px;
  padding:2rem;
  border:1px solid #dbe5ef;
  background:rgba(255,255,255,.88);
  box-shadow:0 24px 65px -45px rgba(10,30,51,.6);
  backdrop-filter:blur(8px);
}
.cv-step { display:grid;grid-template-columns:42px 1fr;gap:.9rem;align-items:center; }
.cv-step > span {
  display:grid;place-items:center;width:42px;height:42px;border-radius:50%;
  background:#e9f5f6;color:var(--teal);font:600 .75rem var(--f-mono);
  border:1px solid #b8dfe2;
}
.cv-step b { display:block;color:var(--navy);font-family:var(--f-display); }
.cv-step small { color:var(--muted); }
.company-visual > i {
  display:block;width:1px;height:25px;margin:4px 0 4px 21px;
  background:linear-gradient(var(--teal),#b8dfe2);
}
.cv-final > span { background:var(--navy);color:#fff;border-color:var(--navy); }
.cv-proof {
  display:grid;grid-template-columns:auto 1fr auto 1fr;gap:.35rem .6rem;align-items:baseline;
  margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--rule);
}
.cv-proof strong { color:var(--teal);font:700 1.8rem var(--f-display); }
.cv-proof span { color:var(--muted);font-size:.78rem; }

/* Therapeutic-area page: denser editorial cards with subtle clinical graphics. */
.therapy-section {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 18%,rgba(14,124,134,.07),transparent 26rem),
    radial-gradient(circle at 92% 72%,rgba(20,65,126,.07),transparent 28rem),
    #f6f9fc;
}
.therapy-layout {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.35rem;
}
.therapy-layout .anchor {
  position:relative;
  margin:0;
  padding:2rem;
  background:rgba(255,255,255,.94);
  border:1px solid #dbe5ef;
  box-shadow:0 18px 50px -42px rgba(10,30,51,.7);
  overflow:hidden;
}
.therapy-layout .anchor::after {
  content:"";
  position:absolute;right:-54px;bottom:-58px;width:170px;height:170px;
  border:1px solid rgba(14,124,134,.12);border-radius:50%;
  box-shadow:0 0 0 28px rgba(14,124,134,.025),0 0 0 56px rgba(20,65,126,.018);
}
.therapy-layout .anchor:nth-child(5) { grid-column:1 / -1; }
.therapy-layout .anchor h2 { font-size:1.75rem; }
.therapy-layout .anchor p,
.therapy-layout .anchor ul { position:relative;z-index:1; }
.therapy-layout .sec-icon { border-bottom:1px solid var(--rule);padding-bottom:1rem;margin-bottom:1.2rem; }

/* Multi-tier network legend and nodes. */
.nm-subroute { fill:none;stroke:#67aeb4;stroke-width:1.25;stroke-dasharray:3 5;opacity:.72; }
.nm-subdot { fill:#fff;stroke:#0e7c86;stroke-width:1.5; }
.nm-microdot { fill:#0e7c86;opacity:.82; }
.map-key i.sub { width:8px;height:8px;background:#fff;border:2px solid var(--teal); }
.map-frame {
  background:
    linear-gradient(rgba(20,65,126,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(20,65,126,.025) 1px,transparent 1px),
    #fff;
  background-size:32px 32px;
}
.map-frame .nm-label { font-size:18px;letter-spacing:.055em; }
.map-frame .nm-label-hub { font-size:25px; }
.map-frame .nm-sub { font-size:15px; }

.supply-proof {
  padding:1.75rem;
  border:1px solid #d8e4ee;
  background:
    linear-gradient(135deg,rgba(14,124,134,.06),transparent 55%),
    #fff;
  box-shadow:0 22px 55px -44px rgba(10,30,51,.65);
}
.supply-proof > div {
  display:grid;grid-template-columns:38px 1fr;gap:.8rem;align-items:start;
  padding:.85rem 0;border-top:1px solid var(--rule);
}
.supply-proof > div > span {
  font:600 .72rem var(--f-mono);color:var(--teal);padding-top:.15rem;
}
.supply-proof p { margin:0; }
.supply-proof b { display:block;color:var(--navy); }
.supply-proof small { color:var(--muted); }

@media (max-width:900px) {
  .company-visual { position:relative;top:auto; }
  .therapy-layout { grid-template-columns:1fr; }
  .therapy-layout .anchor:nth-child(5) { grid-column:auto; }
}
.hero-photo .btn-ghost {
  color: #fff;
  border-color: rgba(255,255,255,.72);
  background: rgba(6,23,38,.24);
  backdrop-filter: blur(4px);
}
.hero-photo .btn-ghost:hover,
.hero-photo .btn-ghost:focus-visible {
  color: #0a2236;
  background: #fff;
  border-color: #fff;
}
.hero-photo .hero-ledger {
  background: rgba(255,255,255,.96);
  box-shadow: 0 18px 48px rgba(3,20,34,.22);
}
@media (max-width: 760px) {
  .hero-photo,
  .hero-photo .hero-grid { min-height: 690px; }
  .hero-photo .hero-banner-image { object-position: 72% center; }
  .hero-photo::before {
    background: linear-gradient(90deg, rgba(6,23,38,.96) 0%, rgba(6,23,38,.84) 55%, rgba(6,23,38,.48) 100%);
  }
  .hero-photo .hero-grid { grid-template-columns: 1fr; }
  .hero-photo .hero-copy {
    max-width: 92%;
    padding: 52px 0 58px;
  }
}
/* v15 image-led homepage */
.image-story {
  position: relative;
  min-height: 640px;
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
}
.image-story-bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.image-story::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}
.image-story-content {
  width: 100%;
  position: relative;
}
.image-story-partners::after {
  background: linear-gradient(90deg, rgba(7,26,43,.2) 0%, rgba(7,26,43,.42) 46%, rgba(7,26,43,.97) 72%);
}
.image-story-partners .image-story-content {
  padding-left: min(54%, 690px);
}
.image-story-partners .claims {
  grid-template-columns: 1fr;
  gap: .65rem;
  margin-top: 1.6rem;
}
.image-story-partners .claims > div {
  display: grid;
  grid-template-columns: 42px 1fr;
  column-gap: .85rem;
  padding: .85rem 0;
  border-top: 1px solid rgba(255,255,255,.16);
}
.image-story-partners .claims .icon-badge { grid-row: 1 / span 2; }
.image-story-partners .claims h4,
.image-story-partners .claims p { margin: 0; }
.image-story-partners .claims p { color: #cbd9e5; }
.image-story-access {
  color: #fff;
}
.image-story-access::after {
  background: linear-gradient(90deg, rgba(6,23,38,.96) 0%, rgba(6,23,38,.86) 38%, rgba(6,23,38,.32) 64%, rgba(6,23,38,.08) 100%);
}
.image-story-access .image-story-content { padding-right: 48%; }
.image-story-access h2,
.image-story-access .sec-head h2 { color: #fff; }
.image-story-access .sec-head p,
.image-story-access .cities { color: #dce7ef; }
.image-story-access .cities li {
  border-color: rgba(255,255,255,.28);
  background: rgba(7,26,43,.42);
  backdrop-filter: blur(3px);
}
.image-story-access .reach {
  grid-template-columns: 1fr;
}
.image-story-access .stats {
  margin-top: 1.2rem;
}
.image-story-access .stat {
  background: rgba(255,255,255,.94);
  color: var(--ink);
}
.image-story-access .btn-ghost {
  color: #fff;
  border-color: rgba(255,255,255,.72);
  background: rgba(7,26,43,.42);
}
@media (max-width: 900px) {
  .image-story-partners::after {
    background: linear-gradient(90deg, rgba(7,26,43,.82), rgba(7,26,43,.94));
  }
  .image-story-partners .image-story-content,
  .image-story-access .image-story-content {
    padding-left: var(--gut);
    padding-right: var(--gut);
  }
  .image-story-access::after {
    background: linear-gradient(90deg, rgba(6,23,38,.93), rgba(6,23,38,.7));
  }
}
@media (max-width: 600px) {
  .image-story { min-height: 720px; }
  .image-story-partners .image-story-bg { object-position: 35% center; }
  .image-story-access .image-story-bg { object-position: 66% center; }
  .image-story-partners::after,
  .image-story-access::after {
    background: rgba(6,23,38,.84);
  }
  .image-story-access .stats { grid-template-columns: 1fr !important; }
}
/* v20: information-rich visual support for lower-density pages */
.quality-system {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 5% 15%,rgba(14,124,134,.07),transparent 25rem),
    radial-gradient(circle at 96% 68%,rgba(20,65,126,.06),transparent 30rem),
    #f6f9fc;
}
.quality-system::before {
  content:"QMS";
  position:absolute;right:-1rem;top:13rem;
  font:800 13rem var(--f-display);letter-spacing:-.08em;
  color:rgba(20,65,126,.025);transform:rotate(90deg);
}
.quality-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.3rem;
}
.quality-grid .anchor {
  margin:0;
  padding:2rem;
  border:1px solid #dbe5ef;
  background:rgba(255,255,255,.95);
  box-shadow:0 20px 55px -46px rgba(10,30,51,.7);
}
.quality-grid .anchor:first-of-type { padding-top:2rem;border-top:1px solid #dbe5ef; }
.quality-grid .anchor::before {
  content:"";display:block;width:42px;height:3px;margin-bottom:1.25rem;
  background:linear-gradient(90deg,var(--teal),#8ed0d4);
}
.quality-grid #credentials,
.quality-grid #ethics { align-self:start; }

.access-path {
  padding:1.65rem;
  border:1px solid #d9e5ee;
  background:
    radial-gradient(circle at 90% 10%,rgba(14,124,134,.11),transparent 11rem),
    #fff;
  box-shadow:0 22px 55px -45px rgba(10,30,51,.7);
}
.access-path > div { display:grid;grid-template-columns:38px 1fr;gap:.8rem;align-items:center; }
.access-path > div > span {
  display:grid;place-items:center;width:36px;height:36px;border-radius:50%;
  background:#e7f4f5;border:1px solid #b8dfe2;color:var(--teal);
  font:600 .72rem var(--f-mono);
}
.access-path p { margin:0; }
.access-path b { display:block;color:var(--navy); }
.access-path small { color:var(--muted);line-height:1.4;display:block; }
.access-path > i {
  display:block;width:1px;height:22px;margin:4px 0 4px 18px;
  background:linear-gradient(var(--teal),#cbdde5);
}
.access-path .access-end > span { background:var(--navy);border-color:var(--navy);color:#fff; }

.institution-offer,
.distributor-readiness,
.contact-routing { position:relative;overflow:hidden; }
.institution-offer::after,
.distributor-readiness::after,
.contact-routing::after {
  content:"";position:absolute;right:-95px;bottom:-120px;width:420px;height:420px;
  border:1px solid rgba(14,124,134,.1);border-radius:50%;
  box-shadow:0 0 0 48px rgba(14,124,134,.025),0 0 0 96px rgba(20,65,126,.018);
  pointer-events:none;
}
.institution-offer .wrap,
.distributor-readiness .wrap,
.contact-routing .wrap { position:relative;z-index:1; }

@media (max-width:900px) {
  .quality-grid { grid-template-columns:1fr; }
}

/* ---------- Interactive Nepal map enhancement ---------- */
.map-frame {
  position:relative;
}
.nepal-map .map-region,
.nepal-map .map-pin {
  cursor:pointer;
  outline:none;
}
.nepal-map .map-region {
  transition:fill .2s ease,stroke .2s ease,filter .2s ease;
}
.nepal-map .map-pin .nm-dot,
.nepal-map .map-pin .nm-hub,
.nepal-map .map-pin .nm-hub-ring,
.nepal-map .map-pin .nm-hub-halo,
.nepal-map .map-pin .nm-label,
.nepal-map .map-pin .nm-sub {
  transform-box:fill-box;
  transform-origin:center;
  transition:fill .2s ease,stroke .2s ease,transform .2s ease,opacity .2s ease;
}
.nepal-map .map-region:hover,
.nepal-map .map-region:focus-visible,
.nepal-map .map-region.is-active {
  fill:#d7e8ef;
  stroke:var(--teal);
  filter:drop-shadow(0 3px 5px rgba(16,35,63,.12));
}
.nepal-map .map-pin:hover .nm-dot,
.nepal-map .map-pin:focus-visible .nm-dot,
.nepal-map .map-pin.is-active .nm-dot {
  fill:var(--teal);
  stroke:#fff;
  transform:scale(1.38);
  filter:drop-shadow(0 3px 4px rgba(16,35,63,.28));
}
.nepal-map .map-pin:hover .nm-hub,
.nepal-map .map-pin:focus-visible .nm-hub,
.nepal-map .map-pin.is-active .nm-hub {
  fill:var(--navy);
  transform:scale(1.28);
  filter:drop-shadow(0 3px 4px rgba(16,35,63,.28));
}
.nepal-map .map-pin:hover .nm-hub-ring,
.nepal-map .map-pin:focus-visible .nm-hub-ring,
.nepal-map .map-pin.is-active .nm-hub-ring {
  stroke:var(--navy);
  transform:scale(1.18);
  opacity:.9;
}
.nepal-map .map-pin:hover .nm-label,
.nepal-map .map-pin:focus-visible .nm-label,
.nepal-map .map-pin.is-active .nm-label,
.nepal-map .map-pin:hover .nm-sub,
.nepal-map .map-pin:focus-visible .nm-sub,
.nepal-map .map-pin.is-active .nm-sub {
  fill:var(--teal);
}
.nepal-map .nm-route-primary {
  transition:stroke .25s ease,stroke-width .25s ease,opacity .25s ease;
}
.nepal-map.has-active-route .nm-route-primary {
  opacity:.16;
}
.nepal-map.has-active-route .nm-route-primary.is-active {
  stroke:var(--teal);
  stroke-width:5;
  opacity:1;
  filter:drop-shadow(0 2px 2px rgba(14,124,134,.18));
}
.map-tooltip {
  position:absolute;
  z-index:5;
  max-width:min(280px,calc(100% - 16px));
  padding:.58rem .72rem;
  border:1px solid rgba(255,255,255,.14);
  border-radius:4px;
  background:var(--navy);
  box-shadow:0 12px 28px rgba(16,35,63,.2);
  color:#fff;
  font:500 .72rem/1.35 var(--f-mono);
  letter-spacing:.045em;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transform:translateY(-100%);
  transition:opacity .14s ease,visibility .14s ease;
}
.map-tooltip.is-visible {
  opacity:1;
  visibility:visible;
}
.map-detail {
  display:grid;
  grid-template-columns:minmax(190px,.55fr) minmax(260px,1.45fr);
  gap:1rem 1.5rem;
  align-items:center;
  margin-top:.9rem;
  padding:1rem 1.1rem;
  border:1px solid #d7e4ea;
  border-left:4px solid var(--teal);
  background:linear-gradient(105deg,#f5fafb 0%,#fff 72%);
  box-shadow:0 14px 34px -30px rgba(16,35,63,.5);
}
.map-detail-heading {
  display:grid;
  gap:.16rem;
}
.map-detail-label {
  color:var(--teal);
  font:600 .64rem/1.3 var(--f-mono);
  letter-spacing:.1em;
  text-transform:uppercase;
}
.map-detail strong {
  color:var(--navy);
  font:600 1.25rem/1.2 var(--f-display);
}
.map-detail-type {
  color:var(--muted);
  font:500 .72rem/1.35 var(--f-mono);
  letter-spacing:.03em;
}
.map-detail p {
  margin:0;
  color:#405269;
  font-size:.93rem;
  line-height:1.6;
}
@media (prefers-reduced-motion:no-preference) {
  .nepal-map .map-pin[data-location="kathmandu"] .nm-hub-halo {
    animation:map-hub-pulse 2.8s ease-out infinite;
  }
  @keyframes map-hub-pulse {
    0%,30% { transform:scale(.9);opacity:.18; }
    80%,100% { transform:scale(1.42);opacity:0; }
  }
}
@media (max-width:640px) {
  .map-frame {
    padding:.72rem .62rem;
  }
  .map-detail {
    grid-template-columns:1fr;
    gap:.55rem;
    padding:.85rem .9rem;
  }
  .map-detail p {
    font-size:.86rem;
  }
}
@media (prefers-reduced-motion:reduce) {
  .nepal-map .map-region,
  .nepal-map .map-pin *,
  .nepal-map .nm-route-primary,
  .map-tooltip {
    transition:none;
    animation:none;
  }
}

/* ---------- Seven-province interactive map ---------- */
.province-map-layout{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(260px,.62fr);
  gap:1rem;
  align-items:stretch;
}
.province-map-stage{
  position:relative;
  min-width:0;
  overflow:hidden;
  border:1px solid #d7e4ea;
  background:#f5fafb;
}
.province-map-stage::before,
.province-map-stage::after{
  content:"";
  position:absolute;
  z-index:0;
  width:210px;
  height:210px;
  border:1px solid rgba(14,124,134,.10);
  border-radius:50%;
  pointer-events:none;
}
.province-map-stage::before{right:-116px;top:-118px;box-shadow:0 0 0 38px rgba(14,124,134,.025);}
.province-map-stage::after{left:-142px;bottom:-142px;box-shadow:0 0 0 48px rgba(20,65,126,.02);}
.province-map-caption{
  position:absolute;
  z-index:3;
  top:.72rem;
  left:.8rem;
  display:flex;
  align-items:center;
  gap:.55rem;
  padding:.38rem .55rem;
  border:1px solid rgba(16,35,63,.1);
  background:rgba(255,255,255,.93);
  box-shadow:0 8px 20px -18px rgba(16,35,63,.6);
  color:var(--muted);
  font:500 .58rem/1.25 var(--f-mono);
  letter-spacing:.075em;
  text-transform:uppercase;
}
.province-map-caption span{
  color:var(--teal);
  font-weight:700;
}
.province-map-caption b{
  color:var(--navy);
  font-weight:600;
}
.nepal-province-map{
  position:relative;
  z-index:1;
  padding:1rem .55rem 0;
}
.province-control{
  cursor:pointer;
  outline:none;
}
.province-shape{
  stroke:#fff;
  stroke-width:2.4;
  vector-effect:non-scaling-stroke;
  transition:fill .18s ease,stroke .18s ease,filter .18s ease;
}
.province-koshi .province-shape{fill:#80c8cc;}
.province-madhesh .province-shape{fill:#a8d9d5;}
.province-bagmati .province-shape{fill:#5eb4bd;}
.province-gandaki .province-shape{fill:#c8dde9;}
.province-lumbini .province-shape{fill:#abc9da;}
.province-karnali .province-shape{fill:#d8e7ee;}
.province-sudurpashchim .province-shape{fill:#c1d8e3;}
.province-control:hover .province-shape,
.province-control:focus-visible .province-shape{
  fill:#2b929c;
  stroke:#fff;
  filter:drop-shadow(0 5px 5px rgba(16,35,63,.2));
}
.province-control.is-active .province-shape{
  fill:var(--navy);
  stroke:#fff;
  stroke-width:3.4;
  filter:drop-shadow(0 7px 7px rgba(16,35,63,.22));
}
.province-control:focus-visible .province-shape{
  stroke:#f2b84b;
  stroke-width:4.5;
}
.province-label{
  fill:var(--navy);
  font-family:var(--f-mono);
  font-size:13px;
  font-weight:700;
  letter-spacing:.045em;
  text-transform:uppercase;
  pointer-events:none;
  transition:fill .18s ease;
}
.province-pop{
  fill:#405269;
  font-size:10.5px;
  font-weight:500;
  letter-spacing:.015em;
}
.province-control:hover .province-label,
.province-control:focus-visible .province-label,
.province-control.is-active .province-label{
  fill:#fff;
}
.province-control:hover .province-pop,
.province-control:focus-visible .province-pop,
.province-control.is-active .province-pop{
  fill:#dff4f5;
}
.province-map-coordinate{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  gap:.38rem;
  width:max-content;
  max-width:calc(100% - 1.4rem);
  margin:-.2rem .7rem .7rem auto;
  padding:.42rem .58rem;
  border:1px solid #d7e4ea;
  background:#fff;
  color:#556a80;
  font:500 .58rem/1.3 var(--f-mono);
  letter-spacing:.04em;
  text-transform:uppercase;
}
.province-map-coordinate i{
  width:8px;
  height:8px;
  flex:0 0 auto;
  border:2px solid #fff;
  border-radius:50%;
  background:var(--teal);
  box-shadow:0 0 0 2px rgba(14,124,134,.22);
}
.province-map-coordinate b{
  color:var(--navy);
  font-weight:700;
}
.province-tooltip{
  position:absolute;
  z-index:6;
  display:grid;
  gap:.12rem;
  min-width:180px;
  max-width:260px;
  padding:.55rem .68rem;
  border:1px solid rgba(255,255,255,.16);
  background:var(--navy);
  box-shadow:0 14px 30px rgba(16,35,63,.22);
  color:#fff;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transform:translateY(-100%);
  transition:opacity .14s ease,visibility .14s ease;
}
.province-tooltip.is-visible{opacity:1;visibility:visible;}
.province-tooltip strong{
  font:600 .8rem/1.25 var(--f-display);
  letter-spacing:.015em;
}
.province-tooltip span{
  color:#cfe7ea;
  font:500 .61rem/1.4 var(--f-mono);
  letter-spacing:.025em;
}
.province-detail{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:1.1rem;
  border:1px solid #d7e4ea;
  border-top:4px solid var(--teal);
  background:#fff;
  box-shadow:0 16px 36px -32px rgba(16,35,63,.55);
}
.province-detail-kicker{
  margin:0 0 .58rem;
  color:var(--teal);
  font:700 .58rem/1.35 var(--f-mono);
  letter-spacing:.09em;
  text-transform:uppercase;
}
.province-detail-title{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end;
  gap:.1rem .5rem;
  padding-bottom:.8rem;
  border-bottom:1px solid var(--rule);
}
.province-detail-title h3{
  grid-row:1 / span 2;
  align-self:center;
  margin:0;
  color:var(--navy);
  font-size:clamp(1.45rem,2.7vw,2.15rem);
}
.province-detail-title strong{
  color:var(--navy);
  font:650 1.05rem/1.1 var(--f-display);
  text-align:right;
}
.province-detail-title span{
  color:var(--muted);
  font:500 .55rem/1.2 var(--f-mono);
  letter-spacing:.075em;
  text-align:right;
  text-transform:uppercase;
}
.province-detail-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  margin:.85rem 0;
  border:1px solid var(--rule);
}
.province-detail-metrics div{
  min-width:0;
  padding:.62rem .45rem;
  border-right:1px solid var(--rule);
}
.province-detail-metrics div:last-child{border-right:0;}
.province-detail-metrics small{
  display:block;
  margin-bottom:.18rem;
  color:var(--muted);
  font:500 .5rem/1.25 var(--f-mono);
  letter-spacing:.045em;
  text-transform:uppercase;
}
.province-detail-metrics b{
  display:block;
  white-space:nowrap;
  color:var(--navy);
  font:650 .72rem/1.2 var(--f-display);
}
.province-detail-copy{
  margin:0;
  color:#405269;
  font-size:.82rem;
  line-height:1.55;
}
.province-detail-network{
  margin-top:auto;
  padding:.6rem .65rem;
  border-left:3px solid var(--teal);
  background:#eef7f8;
  color:var(--navy);
  font:600 .62rem/1.45 var(--f-mono);
  letter-spacing:.025em;
}
.province-detail-source{
  margin:.68rem 0 0;
  color:#6b7b8e;
  font-size:.6rem;
  line-height:1.45;
}
.province-map-guide{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem 1.2rem;
  margin-top:.8rem;
  padding-top:.75rem;
  border-top:1px solid var(--rule);
}
.province-map-guide>span{
  flex:0 0 auto;
  color:var(--muted);
  font:600 .59rem/1.35 var(--f-mono);
  letter-spacing:.07em;
  text-transform:uppercase;
}
.province-quicklist{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:.32rem;
}
.province-quicklist button{
  min-height:30px;
  padding:.34rem .52rem;
  border:1px solid #cbdbe3;
  border-radius:0;
  background:#fff;
  color:#405269;
  font:600 .58rem/1.2 var(--f-mono);
  letter-spacing:.025em;
  cursor:pointer;
  transition:background-color .16s ease,border-color .16s ease,color .16s ease;
}
.province-quicklist button:hover,
.province-quicklist button:focus-visible{
  border-color:var(--teal);
  color:var(--teal);
}
.province-quicklist button.is-active{
  border-color:var(--navy);
  background:var(--navy);
  color:#fff;
}
.hero-map .province-map-layout{display:block;}
.hero-map .province-detail{margin-top:.7rem;padding:.85rem .9rem;}
.hero-map .province-detail-title h3{font-size:1.4rem;}
.hero-map .province-detail-metrics{margin:.62rem 0;}
.hero-map .province-detail-copy{font-size:.75rem;}
.hero-map .province-detail-source{display:none;}
.hero-map .province-map-guide{
  display:block;
  margin-top:.65rem;
  padding-top:.65rem;
}
.hero-map .province-map-guide>span{display:none;}
.hero-map .province-quicklist{justify-content:flex-start;}

@media (max-width:980px){
  .province-map-layout{grid-template-columns:1fr;}
  .province-map-guide{display:block;}
  .province-map-guide>span{display:block;margin-bottom:.55rem;}
  .province-quicklist{justify-content:flex-start;}
}
@media (max-width:640px){
  .nepal-province-map{padding:1.35rem .15rem 0;}
  .province-map-caption{top:.45rem;left:.45rem;padding:.3rem .42rem;}
  .province-map-caption b{display:none;}
  .province-map-coordinate{
    margin:-.1rem .4rem .45rem;
    max-width:calc(100% - .8rem);
    width:auto;
    justify-content:center;
  }
  .province-pop{display:none;}
  .province-label{font-size:16px;}
  .province-detail{padding:.85rem;}
  .province-detail-title{grid-template-columns:1fr;}
  .province-detail-title h3{grid-row:auto;}
  .province-detail-title strong,.province-detail-title span{text-align:left;}
  .province-detail-metrics div{padding:.52rem .35rem;}
  .province-detail-metrics b{font-size:.72rem;}
  .province-map-guide{padding:.65rem .1rem 0;}
  .province-quicklist button{flex:1 1 calc(50% - .35rem);}
}
@media (prefers-reduced-motion:reduce){
  .province-shape,
  .province-label,
  .province-quicklist button,
  .province-tooltip{transition:none;}
}
