
/* ===================================================================== */
/*  FONT                                                                  */
/* ===================================================================== */
@font-face{
  font-family:'Abar';
  src:url('/catalog/font_abar.woff2') format('woff2-variations');
  font-weight:100 950; font-style:normal; font-display:swap;
}

/* ===================================================================== */
/*  TOKENS                                                                */
/* ===================================================================== */
:root{
  --green:#004538;      --green-2:#005740;   --green-deep:#00291F;
  --green-soft:#1B5633; --green-mist:#7FA292;
  --gold:#F6CE3E;       --gold-deep:#D0AF2B; --gold-soft:#FBE9A8;
  --cream:#FCFAF5;      --sand:#F2EDE2;      --sand-2:#E7DFCE;
  --ink:#11201B;        --ink-60:#5A6A64;    --ink-35:#98A5A0;
  --line:rgba(0,69,56,.13);
  --accent:var(--gold);            /* per-fund accent, set inline */
  --stage-w:1440px;     --stage-h:810px;
  --pad:76px;
  --ff:'Abar','Segoe UI',system-ui,-apple-system,sans-serif;

  /* type scale — deliberate jumps, not a flat ramp */
  --t-display:74px;  --t-h1:60px;   --t-h2:44px;   --t-h3:26px;
  --t-lead:16.5px;   --t-body:14.2px; --t-small:12.4px; --t-micro:10.8px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;background:#0B1512;overscroll-behavior:none}
body{font-family:var(--ff);color:var(--ink);-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility}
button,input,select,textarea{font-family:inherit;color:inherit;background:none;border:0}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
::selection{background:var(--gold);color:var(--green-deep)}

/* ===================================================================== */
/*  STAGE                                                                 */
/* ===================================================================== */
#viewport{position:fixed;inset:0;display:grid;place-items:center;
  background:radial-gradient(ellipse at 50% 0%,#12241E 0%,#0B1512 70%)}
#stage{width:var(--stage-w);height:var(--stage-h);position:relative;
  transform-origin:center center;box-shadow:0 40px 120px rgba(0,0,0,.55);
  background:var(--cream);overflow:hidden}

.slide{position:absolute;inset:0;background:var(--cream);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .42s cubic-bezier(.4,0,.2,1),transform .42s cubic-bezier(.4,0,.2,1);
  transform:translateY(14px) scale(.995)}
.slide.on{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.slide-inner{position:absolute;top:0;inset-inline-start:0;width:100%;height:100%;
  padding:var(--pad) var(--pad) 62px;display:flex;flex-direction:column;
  transform-origin:top right}
[dir=ltr] .slide-inner{transform-origin:top left}

/* ===================================================================== */
/*  BRAND — the true Lotus sign (exact vector from Lotus_Sign.pdf)        */
/* ===================================================================== */
.sign{display:block;color:var(--gold);flex-shrink:0}
.sign svg{display:block;width:100%;height:100%}
.sign.xs{width:26px}  .sign.sm{width:38px}
.sign.md{width:64px}  .sign.lg{width:104px} .sign.xl{width:190px}

.logo{display:flex;align-items:center;gap:14px}
.logo .lw{line-height:1}
.logo .lw b{display:block;font-size:23px;font-weight:800;letter-spacing:.16em;
  color:var(--green);font-family:'Segoe UI',system-ui,sans-serif}
.logo .lw span{display:block;font-size:10.5px;letter-spacing:.14em;color:var(--ink-60);
  margin-top:3px;font-family:'Segoe UI',system-ui,sans-serif}
.logo.rev .lw b{color:#fff} .logo.rev .lw span{color:rgba(255,255,255,.62)}

.wedge{position:absolute;pointer-events:none;opacity:.5}
.wedge.tl{top:0;inset-inline-start:0;width:44%;height:100%;
  background:linear-gradient(115deg,rgba(255,255,255,.055) 0 42%,transparent 42%)}

/* ===================================================================== */
/*  CHROME                                                                */
/* ===================================================================== */
#chrome{position:absolute;inset:0;pointer-events:none;z-index:40}
#topbar{position:absolute;top:0;inset-inline:0;height:58px;padding:0 var(--pad);
  display:flex;align-items:center;justify-content:space-between;pointer-events:auto;gap:16px}
#topbar .lead-l{display:flex;align-items:center;gap:14px;min-width:0}
.crumb{display:flex;align-items:center;gap:9px;font-size:11.5px;
  letter-spacing:.08em;color:var(--ink-35);font-weight:600;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crumb .n{color:var(--gold-deep);font-weight:800}
#topbar .tools{display:flex;align-items:center;gap:8px;flex-shrink:0}

.tbtn{height:31px;padding:0 14px;border:1px solid var(--line);border-radius:999px;
  font-size:11.5px;font-weight:700;letter-spacing:.05em;color:var(--ink-60);
  display:inline-flex;align-items:center;gap:7px;transition:.18s;white-space:nowrap}
.tbtn:hover{border-color:var(--green);color:var(--green);background:rgba(0,69,56,.04)}
.tbtn.cta{background:var(--gold);border-color:var(--gold);color:var(--green-deep);font-weight:800}
.tbtn.cta:hover{background:var(--gold-deep);border-color:var(--gold-deep);color:#fff}

/* burger — the supplied slashed-bar mark */
#burger{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;
  display:grid;place-items:center;transition:.2s;flex-shrink:0;
  background:rgba(252,250,245,.7);color:var(--ink-60)}
#burger:hover{border-color:var(--green);background:var(--green);color:#fff}
#burger svg{width:17px;height:auto;display:block;fill:currentColor}
#burger svg path{fill:currentColor}

#footer{position:absolute;bottom:0;inset-inline:0;height:52px;padding:0 var(--pad);
  display:flex;align-items:center;justify-content:space-between;pointer-events:auto;
  font-size:11.5px;color:var(--ink-35);letter-spacing:.06em}
#footer .pager{display:flex;align-items:center;gap:14px}
.pbtn{width:29px;height:29px;border-radius:50%;border:1px solid var(--line);
  display:grid;place-items:center;transition:.18s;color:var(--ink-60)}
.pbtn:hover:not(:disabled){border-color:var(--green);color:var(--green)}
.pbtn:disabled{opacity:.26;cursor:default}
.pbtn svg{width:13px;height:13px}
/* RTL flips the flex row, so the chevrons must mirror too: in Persian
   "next" sits on the LEFT and points left, "previous" on the right. */
[dir=rtl] .pbtn svg{transform:scaleX(-1)}
#progress{position:absolute;bottom:0;inset-inline-start:0;height:2px;background:var(--gold);
  transition:width .42s cubic-bezier(.4,0,.2,1);z-index:45}

/* ===================================================================== */
/*  SIDE DRAWER NAV                                                       */
/* ===================================================================== */
#scrim{position:absolute;inset:0;z-index:55;background:rgba(0,32,25,.5);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:.3s;pointer-events:auto}
#scrim.on{opacity:1;visibility:visible}

/* pointer-events MUST be re-enabled here — #chrome disables them */
#drawer{position:absolute;top:0;bottom:0;inset-inline-start:0;width:400px;z-index:60;
  pointer-events:auto;
  background:var(--green-deep);color:#fff;display:flex;flex-direction:column;
  transform:translateX(-102%);transition:transform .34s cubic-bezier(.4,0,.2,1);
  box-shadow:20px 0 60px rgba(0,0,0,.4)}
[dir=rtl] #drawer{transform:translateX(102%)}
#drawer.on{transform:none !important}
#drawer .dhead{padding:22px 26px 18px;border-bottom:1px solid rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}
#drawer .dhead .dt{font-size:12px;letter-spacing:.2em;color:var(--gold);font-weight:800}
#dClose{width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.25);
  display:grid;place-items:center;color:#fff;font-size:15px;line-height:1;transition:.18s}
#dClose:hover{background:rgba(255,255,255,.12)}
#drawer .dbody{flex:1;overflow-y:auto;padding:10px 0 20px;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}
#drawer .dbody::-webkit-scrollbar{width:5px}
#drawer .dbody::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:3px}

.dtop{display:flex;gap:8px;padding:12px 26px 14px;border-bottom:1px solid rgba(255,255,255,.1)}
.dtop button{flex:1;height:34px;border:1px solid rgba(255,255,255,.2);border-radius:3px;
  font-size:11.5px;font-weight:700;color:rgba(255,255,255,.85);transition:.18s;
  display:inline-flex;align-items:center;justify-content:center;gap:6px}
.dtop button:hover{background:var(--gold);border-color:var(--gold);color:var(--green-deep)}

.dchap{border-bottom:1px solid rgba(255,255,255,.07)}
.dchap>.dch{width:100%;display:flex;align-items:center;gap:13px;padding:14px 26px;
  text-align:start;transition:.16s;color:#fff}
.dchap>.dch:hover{background:rgba(255,255,255,.06)}
.dchap>.dch em{font-style:normal;font-size:10.5px;color:var(--gold);font-weight:800;
  letter-spacing:.1em;min-width:20px}
.dchap>.dch b{font-size:15.5px;font-weight:700;flex:1}
.dchap>.dch .cv{font-size:10px;color:rgba(255,255,255,.4);transition:transform .24s}
.dchap.open>.dch .cv{transform:rotate(90deg)}
[dir=rtl] .dchap>.dch .cv{transform:scaleX(-1)}
[dir=rtl] .dchap.open>.dch .cv{transform:scaleX(-1) rotate(-90deg)}
.dchap.active>.dch b{color:var(--gold)}

.dchap .ditems{max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1)}
.dchap.open .ditems{max-height:640px}
.ditems button{width:100%;display:flex;align-items:center;gap:11px;
  padding:8px 26px 8px 46px;text-align:start;font-size:12.6px;
  color:rgba(255,255,255,.6);transition:.15s;line-height:1.5}
[dir=rtl] .ditems button{padding:8px 46px 8px 26px}
.ditems button:hover{color:#fff;background:rgba(255,255,255,.05)}
.ditems button i{font-style:normal;font-size:10px;color:rgba(255,255,255,.28);
  min-width:22px;font-variant-numeric:tabular-nums}
.ditems button.cur{color:var(--gold);font-weight:700;
  box-shadow:inset 3px 0 0 var(--gold)}
[dir=rtl] .ditems button.cur{box-shadow:inset -3px 0 0 var(--gold)}
#drawer .dfoot{padding:16px 26px;border-top:1px solid rgba(255,255,255,.12);flex-shrink:0}

/* ===================================================================== */
/*  TYPOGRAPHY                                                            */
/* ===================================================================== */
.kicker{font-size:11px;letter-spacing:.26em;font-weight:800;color:var(--gold-deep);
  text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;gap:12px}
.kicker::after{content:'';flex:1;height:1px;background:var(--line);max-width:130px}
h1.title{font-size:var(--t-h1);font-weight:800;line-height:1.1;color:var(--green);letter-spacing:-.018em}
h2.title{font-size:var(--t-h2);font-weight:800;line-height:1.14;color:var(--green);letter-spacing:-.016em}
h2.title.sm{font-size:34px;line-height:1.2}
h3.sub{font-size:var(--t-h3);font-weight:500;color:var(--ink-60);line-height:1.45;margin-top:12px}
p.body{font-size:var(--t-body);line-height:2.0;color:#2C3B36;font-weight:400}
p.body+p.body{margin-top:13px}
p.lead{font-size:var(--t-lead);line-height:1.92;color:#1E2E29;font-weight:500}
.rule{height:1px;background:var(--line);margin:22px 0}
[dir=ltr] p.body,[dir=ltr] p.lead{line-height:1.78}
[dir=ltr] h1.title,[dir=ltr] h2.title{letter-spacing:-.028em}

/* ===================================================================== */
/*  COMPONENTS                                                            */
/* ===================================================================== */
.stats{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.stats .s{background:var(--cream);padding:18px 20px}
.stats .s .v{font-size:34px;font-weight:800;color:var(--green);line-height:1;
  font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.stats .s .l{font-size:12.2px;color:var(--ink-60);margin-top:9px;font-weight:600}
.stats .s .n{font-size:var(--t-micro);color:var(--ink-35);margin-top:3px}

.hero-stat{display:flex;align-items:baseline;gap:12px}
.hero-stat .v{font-size:96px;font-weight:800;color:var(--green);line-height:.88;
  font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.hero-stat .u{font-size:21px;font-weight:700;color:var(--gold-deep)}

.card{background:#fff;border:1px solid var(--line);padding:22px 24px;position:relative}
.card.tint{background:var(--sand)}
.card .ct{font-size:16px;font-weight:800;color:var(--green);margin-bottom:8px;line-height:1.35}
.card .cd{font-size:var(--t-small);line-height:1.75;color:var(--ink-60)}
.card .num{position:absolute;top:16px;inset-inline-end:18px;font-size:12px;
  font-weight:800;color:var(--gold-deep)}

ul.bul{list-style:none;display:grid;gap:9px}
ul.bul li{display:flex;gap:11px;font-size:12.9px;line-height:1.72;color:#33423D}
ul.bul li::before{content:'';width:11px;height:6px;background:var(--accent);flex-shrink:0;
  margin-top:7px;clip-path:polygon(28% 0,100% 0,72% 100%,0 100%)}
ul.bul.tight li{font-size:12.2px;line-height:1.62}

table.facts{width:100%;border-collapse:collapse}
table.facts td{padding:8.5px 0;font-size:12.6px;border-bottom:1px solid var(--line);
  vertical-align:top;line-height:1.6}
table.facts td:first-child{color:var(--ink-60);width:38%;font-weight:600}
table.facts td:last-child{color:var(--green);font-weight:700}
table.facts tr:last-child td{border-bottom:0}

table.data{width:100%;border-collapse:collapse;font-size:12.5px}
table.data thead th{background:var(--green);color:#fff;padding:11px 12px;text-align:start;
  font-weight:700;font-size:11.6px;letter-spacing:.04em}
table.data tbody td{padding:8.5px 12px;border-bottom:1px solid var(--line);color:#33423D}
table.data tbody tr:nth-child(even){background:rgba(0,69,56,.022)}
table.data tbody tr:hover{background:var(--gold-soft)}
table.data tbody tr.total{background:var(--sand-2);font-weight:800;color:var(--green)}
table.data tbody tr.total td{border-bottom:0}
table.data .num{font-variant-numeric:tabular-nums;text-align:end}
table.data .idx{color:var(--ink-35);width:34px}

.bars{display:grid;gap:5px}
.bars .row{display:grid;grid-template-columns:212px 1fr 88px;align-items:center;gap:12px;
  padding:4px 0;transition:.16s}
.bars .row:hover{background:rgba(246,206,62,.14)}
.bars .nm{font-size:12.3px;color:#33423D;font-weight:600;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.bars .tr{height:15px;background:var(--sand);position:relative;overflow:hidden}
.bars .fill{position:absolute;inset-block:0;inset-inline-start:0;width:0;
  background:linear-gradient(90deg,var(--green) 0%,var(--green-soft) 100%);
  transition:width 1s cubic-bezier(.2,.8,.3,1)}
[dir=rtl] .bars .fill{background:linear-gradient(270deg,var(--green) 0%,var(--green-soft) 100%)}
.bars .row:hover .fill{background:linear-gradient(90deg,var(--gold-deep),var(--gold))}
.bars .vl{font-size:12.3px;font-weight:800;color:var(--green);
  font-variant-numeric:tabular-nums;text-align:end}

/* logo wall — marks sized by optical area, never by a shared bounding box */
.wall{display:grid;gap:14px}
.wall .cell{background:#fff;border:1px solid var(--line);display:grid;place-items:center;
  padding:14px;transition:.22s;min-height:0;overflow:hidden}
.wall .cell:hover{border-color:var(--accent);box-shadow:0 8px 22px rgba(0,69,56,.09)}
.wall .cell img{max-width:86%;max-height:74%;object-fit:contain;
  filter:grayscale(1) contrast(1.08) opacity(.72);transition:.22s}
.wall .cell:hover img{filter:none;transform:scale(1.06)}

.tl{display:grid;gap:0}
.tl .it{display:grid;grid-template-columns:100px 1fr;gap:14px;padding:9px 0;
  border-bottom:1px solid var(--line);align-items:start;transition:.16s}
.tl .it:hover{background:rgba(246,206,62,.13)}
.tl .it:last-child{border-bottom:0}
.tl .y{font-size:11.2px;font-weight:800;color:var(--gold-deep);padding-top:2px;letter-spacing:.03em}
.tl .t{font-size:12.4px;line-height:1.62;color:#33423D}
.grp-label{font-size:11.5px;letter-spacing:.18em;font-weight:800;color:var(--green);
  padding-bottom:8px;border-bottom:2px solid var(--gold);margin-bottom:6px;display:inline-block}

.chips{display:flex;gap:7px;flex-wrap:wrap}
.chip{height:28px;padding:0 14px;border:1px solid var(--line);border-radius:999px;
  font-size:11.6px;font-weight:700;color:var(--ink-60);transition:.16s}
.chip:hover{border-color:var(--green);color:var(--green)}
.chip.on{background:var(--green);border-color:var(--green);color:#fff}

.fgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}
.fcard{background:#fff;border:1px solid var(--line);padding:15px 15px 14px;text-align:start;
  transition:.2s;display:flex;flex-direction:column;gap:10px;min-height:132px;
  position:relative;overflow:hidden}
.fcard::after{content:'';position:absolute;bottom:0;inset-inline-start:0;width:0;height:3px;
  background:var(--accent);transition:width .28s}
.fcard:hover{border-color:var(--green);transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(0,69,56,.11)}
.fcard:hover::after{width:100%}
.fcard.hide{display:none}
.fcard img{object-fit:contain;object-position:right center;align-self:flex-start;
  max-width:100%}
[dir=ltr] .fcard img{object-position:left center}
.fcard .fn{font-size:12.4px;font-weight:700;color:var(--green);line-height:1.45}
.fcard .ft{font-size:10.6px;color:var(--ink-35);margin-top:auto;line-height:1.5}

/* fund detail — seamless mark, no box, no frame, no background */
.fhead{display:flex;align-items:center;gap:24px;margin-bottom:2px}
.fmark{flex-shrink:0;display:grid;place-items:center}
.fmark img{object-fit:contain;display:block}
.fhead .meta{min-width:0}
.fhead .meta .fn{font-size:30px;font-weight:800;color:var(--green);line-height:1.22;
  letter-spacing:-.015em}
.fhead .meta .ft{font-size:12.4px;color:var(--ink-60);margin-top:9px;display:flex;
  align-items:center;gap:9px;flex-wrap:wrap}
.tag{display:inline-block;padding:3px 10px;background:var(--green);color:#fff;
  font-size:10.5px;font-weight:700;border-radius:2px;letter-spacing:.04em}
.tag.gold{background:var(--accent);color:var(--green-deep)}

.ph{font-size:11px;letter-spacing:.17em;font-weight:800;color:var(--green);
  margin-bottom:12px;display:flex;align-items:center;gap:9px}
.ph::after{content:'';flex:1;height:1px;background:var(--line)}

.legend{display:grid;gap:6px}
/*  The value used to be flung to the far end with margin-inline-start:auto,
    which in a wide column left a hand's width of nothing between a label and
    its own percentage — the eye had to travel to pair them up. Now the value
    sits immediately after the swatch and the label follows it, so the two
    read as one phrase. min-width keeps the numbers in a tidy column, which
    is the only thing the auto-margin was really buying. */
.legend .li{display:flex;align-items:center;gap:8px;font-size:11.6px;color:#33423D;line-height:1.4}
.legend .li i{width:9px;height:9px;flex-shrink:0;border-radius:2px}
.legend .li b{min-width:3.1em;text-align:start;font-weight:800;color:var(--green);
  font-variant-numeric:tabular-nums}

.slide.dark,.msec.dark{background:var(--green);color:#fff}
.slide.dark .slide-inner,.msec.dark .slide-inner{color:#fff}
.slide.dark h1.title,.slide.dark h2.title,.msec.dark h1.title,.msec.dark h2.title{color:#fff}
.slide.dark p.body,.slide.dark p.lead,.msec.dark p.body,.msec.dark p.lead{color:#CCDAD7}
.slide.dark .kicker,.msec.dark .kicker{color:var(--gold)}
.slide.dark .kicker::after,.msec.dark .kicker::after{background:rgba(255,255,255,.2)}
.slide.dark .rule,.msec.dark .rule{background:rgba(255,255,255,.16)}
.slide.dark .ph,.msec.dark .ph{color:var(--gold)}
.slide.dark .ph::after,.msec.dark .ph::after{background:rgba(255,255,255,.16)}

.divider{position:absolute;inset:0;display:flex;flex-direction:column;
  justify-content:center;padding:0 var(--pad);background:var(--green)}
.divider .dn{font-size:14px;font-weight:800;letter-spacing:.3em;color:var(--gold);margin-bottom:22px}
.divider h1{font-size:var(--t-display);font-weight:800;color:#fff;line-height:1.02;letter-spacing:-.03em}
.divider .dl{width:92px;height:4px;background:var(--gold);margin-top:30px}
.divider .dsub{font-size:15px;color:#9EB8B3;margin-top:22px;max-width:580px;line-height:1.78}
.divider .dsign{position:absolute;bottom:var(--pad);inset-inline-end:var(--pad);opacity:.16}

/* establishing shot — image panel sized to the source's native width so the
   photograph is never upscaled; the text column absorbs the remaining space */
.estab{position:absolute;inset:0;display:grid;grid-template-columns:1fr 640px;
  background:var(--green)}
[dir=ltr] .estab{grid-template-columns:640px 1fr}
.estab .pic{position:relative;overflow:hidden;order:2}
[dir=ltr] .estab .pic{order:0}
.estab .pic img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;display:block}
.estab .pic::after{content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(0,41,31,.55) 0%,rgba(0,41,31,0) 34%)}
[dir=ltr] .estab .pic::after{background:linear-gradient(270deg,rgba(0,41,31,.55) 0%,rgba(0,41,31,0) 34%)}
.estab .txt{padding:var(--pad);display:flex;flex-direction:column;justify-content:center;
  position:relative;order:1}
.estab .txt .ek{font-size:11px;letter-spacing:.28em;font-weight:800;color:var(--gold);
  margin-bottom:18px}
.estab .txt h2{font-size:44px;font-weight:800;line-height:1.14;color:#fff;
  white-space:pre-line;letter-spacing:-.02em}
.estab .txt p{font-size:14.6px;line-height:1.95;color:#B8CBC7;margin-top:20px;
  max-width:520px}
.estab .txt .eadr{margin-top:22px;padding-top:16px;border-top:1px solid rgba(255,255,255,.18);
  font-size:12.2px;color:#8CB3A9;line-height:1.7;display:flex;gap:10px;
  align-items:flex-start}
.estab .estats{display:flex;gap:0;margin-top:auto;padding-top:26px}
.estab .estats div{padding-inline-end:28px;margin-inline-end:28px;
  border-inline-end:1px solid rgba(255,255,255,.18)}
.estab .estats div:last-child{border:0;margin:0;padding:0}
.estab .estats b{display:block;font-size:30px;font-weight:800;color:#fff;line-height:1;
  font-variant-numeric:tabular-nums}
.estab .estats span{display:block;font-size:11.4px;color:#8CB3A9;margin-top:7px;
  font-weight:600}
.estab .esign{position:absolute;top:var(--pad);inset-inline-end:var(--pad);opacity:.5}

/* ===================================================================== */
/*  COVER                                                                 */
/*  The photograph carries the story: the book spines name the business   */
/*  lines, and the gold sculpture IS the Lotus sign — so no second mark    */
/*  competes with it. Nothing is cropped away; the title instead sits on   */
/*  a brand-green veil that reads as the wall continuing, with the tall    */
/*  bar surviving as a soft ghost behind the type.                        */
/* ===================================================================== */
/*  NO SCRIM. The gradients that used to sit here are gone: the right half
    of the photograph is flat wall at #0C4334, which puts white text at
    about 9:1 and brand gold at about 8:1 against it. A veil would only
    muddy a clean image. The trade is that this layout is tied to THIS
    photograph — swap in a busy one and legibility goes with it.

    The picture is already a composition. The object sits left of centre,
    its two rising bars point up and to the right into empty wall, and
    Persian reads right to left, so the reader starts exactly where that
    space is. The type is one right-hand column in three tiers — mark,
    title, facts — held right in BOTH languages, because the photograph
    decides where the space is, not the script.                           */
.cover{position:absolute;inset:0;overflow:hidden;background:var(--green-deep)}
.cover .cimg{position:absolute;inset:0}
.cover .cimg img{width:100%;height:100%;object-fit:cover;
  object-position:50% 100%;display:block}
/* bottom-anchored. The asset is already cropped to 16:9 by taking the
   excess off the TOP — flat wall — because the bottom carries the shelf's
   front edge, the one horizontal that grounds the picture. This only
   guards against a future asset arriving at a different ratio. */

.cover .cin{position:absolute;inset:0;z-index:2;
  /* 132px, not var(--pad): the shelf's top edge crosses the frame at
     about y=731 of 810. Type any closer reads as having fallen onto the
     wood rather than sitting on the wall. */
  padding:var(--pad) var(--pad) 132px;
  display:flex;flex-direction:column;align-items:flex-start}
[dir=ltr] .cover .cin{align-items:flex-end}
/*  44%, and the number is derived, not chosen. The gold object and its base
    occupy up to x≈730 of 1440. The right margin sits at 1440−67 = 1373. So
    the widest a column can be before it reaches the object is 1373−730 =
    643px, which is 44.6% — round down. At 52% the column could have run to
    x=624 and collided; nothing does at 44%, in either language, and long
    English strings wrap inside the column instead of escaping it. */
.cover .ctitle,.cover .cmark,.cover .cmeta{max-width:44%}

/* tier 1 — the mark */
.cover .cmark{line-height:1}
.cover .cmark b{display:block;font-size:28px;font-weight:800;letter-spacing:.16em;
  color:#fff;font-family:'Segoe UI',system-ui,sans-serif}
.cover .cmark span{display:block;font-size:11px;letter-spacing:.14em;
  color:#9EB4AE;margin-top:5px;
  font-family:'Segoe UI',system-ui,sans-serif}

/* tier 2 — the title. margin-top:auto drops the group to the foot of the
   column so the slack collects above it, which is where the empty wall is. */
.cover .ctitle{margin-top:auto}
.cover .ck{font-size:13px;color:var(--gold);font-weight:700;margin-bottom:10px;
  /* Persian is a joined script. This used to be tracked at .34em, which was
     a whisper at 13px but tears «معرفی اجمالی» apart once v6.1 takes it to
     41px — so Farsi gets almost none and Latin keeps the full amount. */
  letter-spacing:.02em}
[dir=ltr] .cover .ck{letter-spacing:.3em}
.cover h1{font-size:56px;font-weight:800;color:#fff;line-height:1.12;
  white-space:pre-line;letter-spacing:-.028em}
.cover .crule{width:118px;height:2px;background:var(--gold);margin:26px 0 24px}
.cover .cs{font-size:17px;color:#E2E8E7;font-weight:500;line-height:1.6}

/* tier 3 — the facts, one hairline-separated line */
.cover .cmeta{margin-top:44px;display:flex;flex-wrap:wrap;align-items:center;
  gap:0 16px}
.cover .cmeta span{font-size:13px;font-weight:600;color:#CED9D6;
  display:flex;align-items:center;gap:0 16px}
.cover .cmeta span+span::before{content:'';width:1px;height:13px;
  background:rgba(246,206,62,.45)}
.cover .cstamp{flex-basis:100%;font-size:10.5px;letter-spacing:.06em;
  color:#7C9991;margin-top:9px;font-weight:600}
.cover .cstamp::before{display:none}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.steps .st{padding:22px 24px;border-inline-start:1px solid var(--line);position:relative}
.steps .st:first-child{border-inline-start:0;padding-inline-start:0}
.steps .st .n{width:32px;height:32px;border-radius:50%;background:var(--gold);
  color:var(--green-deep);display:grid;place-items:center;font-weight:800;font-size:14px;margin-bottom:14px}
.steps .st .t{font-size:15px;font-weight:800;color:var(--green);margin-bottom:7px}
.steps .st .d{font-size:12.2px;line-height:1.72;color:var(--ink-60)}

.pull{border-inline-start:3px solid var(--gold);padding-inline-start:22px;
  font-size:18px;line-height:1.78;font-weight:600;color:var(--green)}
.slide.dark .pull,.msec.dark .pull{color:#fff;border-color:var(--gold)}

.sp{flex:1} .mt-a{margin-top:auto}
.hint{font-size:var(--t-micro);color:var(--ink-35);letter-spacing:.04em}
.linkpill{display:inline-flex;align-items:center;gap:10px;padding:10px 18px;
  background:var(--green);color:#fff;font-size:12.6px;font-weight:700;border-radius:2px;
  transition:.18s}
.linkpill:hover{background:var(--green-2)}
.linkpill u{text-decoration:none;color:var(--gold);font-variant-numeric:tabular-nums}

/* ===================================================================== */
/*  CONTACT / ACTION                                                      */
/* ===================================================================== */
/*  RESTING STATE, NOT HOVER STATE
    These panels used to sit at rgba(255,255,255,.055) fill with a .16
    border — barely a rumour on screen, and on a CMYK press a 5% white tint
    over solid green either disappears or bands. The effect was that the
    contact page only became legible when the cursor was on it, which is no
    use on paper and no use to anyone reading rather than pointing.

    So the resting state is now made of SOLID brand colour: a --green-2
    panel with a gold-tinted edge. Hover still lifts to full gold, but it
    now adds emphasis to something already readable instead of revealing
    it. Every value below is chosen to survive four-colour separation. */
.acts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.act{display:flex;align-items:center;gap:15px;padding:17px 19px;
  background:var(--green-2);
  border:1px solid rgba(246,206,62,.55);transition:.2s;text-align:start;width:100%}
.act:hover{background:var(--gold);border-color:var(--gold);transform:translateY(-2px)}
.act .ai{width:40px;height:40px;border-radius:50%;background:rgba(246,206,62,.22);
  display:grid;place-items:center;flex-shrink:0;transition:.2s;color:var(--gold)}
.act:hover .ai{background:rgba(0,41,31,.14);color:var(--green-deep)}
.act .ai svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9}
.act .at{font-size:14px;font-weight:800;color:#fff;line-height:1.3}
.act .ad{font-size:11.6px;color:#D1E1DD;margin-top:4px;
  font-variant-numeric:tabular-nums;direction:ltr;text-align:start}
[dir=rtl] .act .ad{text-align:right}
.act:hover .at,.act:hover .ad{color:var(--green-deep)}

.lform{background:var(--green-2);border:1px solid rgba(246,206,62,.42);padding:20px 22px}
.lform .lt{font-size:14.5px;font-weight:800;color:#fff;margin-bottom:4px}
.lform .ls{font-size:11.6px;color:#8CB3A9;margin-bottom:15px;line-height:1.6}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:9px}
.fld{position:relative}
.fld label{display:block;font-size:10px;color:#80ABA0;margin-bottom:4px;
  letter-spacing:.06em;font-weight:600}
.fld input,.fld select{width:100%;height:33px;padding:0 10px;font-size:12.2px;color:#fff;
  background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.18);border-radius:2px;
  transition:.16s;appearance:none}
.fld select{cursor:pointer}
.fld select option{background:var(--green-deep);color:#fff}
.fld input:focus,.fld select:focus{outline:0;border-color:var(--gold);background:rgba(0,0,0,.34)}
.fld input::placeholder{color:rgba(255,255,255,.28)}
.fld.err input,.fld.err select{border-color:#E2795C}
.fsubmit{width:100%;height:40px;background:var(--gold);color:var(--green-deep);
  font-size:13px;font-weight:800;border-radius:2px;margin-top:6px;transition:.18s;
  display:inline-flex;align-items:center;justify-content:center;gap:9px}
.fsubmit:hover{background:#fff}
.fnote{font-size:10px;color:#669A8C;margin-top:9px;line-height:1.6}
.fok{font-size:12.2px;color:var(--gold);margin-top:10px;font-weight:700;display:none}
.fok.on{display:block}

/* secondary contact lines + social — all live links, all with icons */
.minirows{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.minirow{display:flex;align-items:center;gap:11px;padding:9px 12px;
  border:1px solid rgba(246,206,62,.42);transition:.18s}
.minirow:hover{border-color:var(--gold);background:rgba(246,206,62,.12)}
.minirow .mi{width:26px;height:26px;border-radius:50%;background:rgba(246,206,62,.22);
  display:grid;place-items:center;flex-shrink:0;color:var(--gold)}
.minirow .mi svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}
.minirow .ml{font-size:10.2px;color:#B8CBC7;line-height:1.3}
.minirow .mv{font-size:12.4px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums;
  line-height:1.3;margin-top:2px;direction:ltr;text-align:start}
[dir=rtl] .minirow .mv{text-align:right}
.minirow:hover .mv{color:var(--gold)}

.socials{display:flex;gap:9px;flex-wrap:wrap}
.soc{display:flex;align-items:center;gap:9px;padding:8px 13px;border-radius:999px;
  border:1px solid rgba(246,206,62,.5);transition:.18s}
.soc:hover{background:var(--gold);border-color:var(--gold)}
.soc svg{width:14px;height:14px;fill:currentColor;color:var(--gold);flex-shrink:0}
.soc:hover svg{color:var(--green-deep)}
.soc span{font-size:11.6px;font-weight:700;color:#D9E6E2;direction:ltr}
.soc:hover span{color:var(--green-deep)}

.ctrows{display:grid;gap:0}
.ctrows .r{display:grid;grid-template-columns:1fr auto;gap:16px;padding:9px 0;
  border-bottom:1px solid rgba(255,255,255,.3);align-items:center}
.ctrows .r:last-child{border-bottom:0}
.ctrows .r .l{font-size:11.6px;color:#B8CBC7}
.ctrows .r .v{font-size:12.6px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}
.ctrows a.r:hover .v{color:var(--gold)}

/* ===================================================================== */
/*  MOBILE APP SHELL                                                      */
/*  Phones get a different view model, not a squeezed deck: five chapter  */
/*  tabs, continuous vertical scroll inside each, funds as bottom sheets. */
/* ===================================================================== */
body.mob{--pad:20px; --t-display:34px; --t-h1:29px; --t-h2:23px; --t-h3:16px;
  --t-lead:15px; --t-body:14.5px; --t-small:13px; --t-micro:11.5px;
  background:var(--cream);overscroll-behavior-y:none}
body.mob #viewport{position:fixed;top:0;inset-inline:0;width:100%;height:100dvh;
  display:block;background:var(--cream)}
body.mob #stage{display:none !important}
body.mob #chrome{display:none !important}

#mapp{display:none;position:fixed;top:0;inset-inline:0;width:100%;
  height:100vh;height:100svh;height:100dvh;   /* iOS: toolbar-aware */
  flex-direction:column;background:var(--cream);overflow:hidden}
body.mob #mapp{display:flex}

/* --- top bar ---------------------------------------------------------- */
#mhead{height:56px;flex-shrink:0;display:flex;align-items:center;gap:12px;
  padding:0 14px 0 var(--pad);background:rgba(252,250,245,.96);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);z-index:20}
#mhead .mt{flex:1;min-width:0;font-size:15px;font-weight:800;color:var(--green);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#mhead .mnum{font-size:10.5px;font-weight:800;color:var(--gold-deep);letter-spacing:.14em}
.mbtn{height:36px;min-width:36px;padding:0 12px;border:1px solid var(--line);border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  font-size:12px;font-weight:700;color:var(--ink-60);flex-shrink:0;background:#fff}
.mbtn:active{background:var(--sand)}
.mbtn.icon{padding:0;width:36px}
.mbtn.icon svg{width:16px;fill:currentColor}

/* --- scrolling chapter views ------------------------------------------ */
#mviews{flex:1;position:relative;min-height:0}
.mview{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;display:none;
  padding-bottom:calc(30px + env(safe-area-inset-bottom))}
.mview.on{display:block}
.msec{border-bottom:8px solid var(--sand);padding:4px 0 10px}
.msec:last-child{border-bottom:0}
.msec .slide-inner{position:static !important;width:100% !important;height:auto !important;
  padding:26px var(--pad) 22px !important;display:block !important;transform:none !important}
.msec .slide{position:static;opacity:1;visibility:visible;pointer-events:auto;
  transform:none;background:transparent}
.msec .divider,.msec .cover{position:static}
.msec [style*="grid-template-columns"]{grid-template-columns:1fr !important}
.msec .two,.msec .acts,.msec .frow,.msec .minirows,.msec .steps{grid-template-columns:1fr !important}
.msec .stats{grid-template-columns:1fr 1fr !important}
.msec .fgrid{grid-template-columns:1fr 1fr !important}
.msec .wall{grid-template-columns:1fr 1fr !important;grid-auto-rows:96px !important}
.msec .mt-a{margin-top:22px}
.msec .sp{flex:none}
.msec h2.title{margin-bottom:2px}
.msec .rule{margin:16px 0}
.msec .steps .st{border-inline-start:0;border-top:1px solid var(--line);
  padding:18px 0 0;margin-top:18px}
.msec .steps .st:first-child{border-top:0;margin-top:0;padding-top:0}
.msec .bars .row{grid-template-columns:1fr auto !important;gap:4px 10px}
.msec .bars .tr{grid-column:1/-1;order:3;height:11px}
.msec .wall .cell img{max-width:78% !important;max-height:66% !important}
.msec .pull{font-size:15.5px}
.msec .donut{max-width:210px;height:auto}
.msec table.facts td{font-size:13px}
/* tables stay tables, but scroll rather than crush */
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-inline:calc(var(--pad) * -1);
  padding-inline:var(--pad)}
.tscroll table.data{min-width:430px;font-size:12.4px}

/* mobile hero (cover) --------------------------------------------------- */
.mhero{background:linear-gradient(118deg,var(--green-deep) 0%,var(--green) 52%,var(--green-2) 100%);
  color:#fff;padding:34px var(--pad) 30px;position:relative;overflow:hidden}
.mhero .bs{position:absolute;top:-30px;inset-inline-end:-70px;width:300px;height:420px;
  background:linear-gradient(112deg,transparent 0 46%,rgba(255,255,255,.05) 46% 62%,transparent 62%)}
.mhero .k{font-size:11px;letter-spacing:.28em;color:var(--gold);font-weight:700;margin-bottom:14px}
.mhero h1{font-size:31px;font-weight:800;line-height:1.16;white-space:pre-line;letter-spacing:-.02em}
.mhero .s{font-size:14.5px;color:rgba(255,255,255,.72);margin-top:12px;font-weight:500}
.mhero .m{margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.18)}
.mhero .m span{display:block;font-size:12.5px;color:rgba(255,255,255,.65);font-weight:600;margin-bottom:5px}
.mhero .as{margin-top:14px;font-size:11px;letter-spacing:.08em;color:rgba(255,255,255,.4);font-weight:600}

/* mobile establishing shot — image on top, text below */
.mestab{background:var(--green);color:#fff;border-bottom:8px solid var(--sand)}
.mestab .mpic{position:relative;aspect-ratio:4/3;overflow:hidden}
.mestab .mpic img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;display:block}
.mestab .mpic::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,41,31,0) 55%,rgba(0,41,31,.85) 100%)}
.mestab .mtxt{padding:22px var(--pad) 26px}
.mestab .ek{font-size:10.5px;letter-spacing:.26em;font-weight:800;color:var(--gold);margin-bottom:12px}
.mestab h2{font-size:26px;font-weight:800;line-height:1.18;white-space:pre-line;letter-spacing:-.02em}
.mestab p{font-size:13.6px;line-height:1.9;color:rgba(255,255,255,.75);margin-top:14px}
.mestab .estats{display:flex;flex-wrap:wrap;gap:0;margin-top:20px}
.mestab .estats div{padding-inline-end:20px;margin-inline-end:20px;
  border-inline-end:1px solid rgba(255,255,255,.18)}
.mestab .estats div:last-child{border:0;margin:0;padding:0}
.mestab .estats b{display:block;font-size:23px;font-weight:800;line-height:1;
  font-variant-numeric:tabular-nums}
.mestab .estats span{display:block;font-size:10.8px;color:rgba(255,255,255,.55);margin-top:5px;font-weight:600}
.mestab .eadr{margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.18);
  font-size:11.8px;color:rgba(255,255,255,.55);line-height:1.7;display:flex;gap:9px;align-items:flex-start}

/* --- bottom tab bar ---------------------------------------------------- */
#mtabs{flex-shrink:0;display:grid;grid-template-columns:repeat(5,1fr);
  background:rgba(252,250,245,.97);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);z-index:20;
  padding-bottom:env(safe-area-inset-bottom)}
#mtabs button{height:56px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:3px;font-size:10px;font-weight:700;color:var(--ink-35);
  position:relative;padding:0 2px;line-height:1.25;text-align:center}
#mtabs button b{font-size:11px;font-weight:800;color:var(--ink-35)}
#mtabs button.on{color:var(--green)}
#mtabs button.on b{color:var(--gold-deep)}
#mtabs button.on::before{content:'';position:absolute;top:0;inset-inline:14px;height:2.5px;
  background:var(--gold)}
#mtabs button span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}

/* --- floating CTA ------------------------------------------------------ */
#mcta{position:absolute;inset-inline-end:16px;bottom:16px;z-index:15;
  height:46px;padding:0 20px;border-radius:999px;background:var(--gold);
  color:var(--green-deep);font-size:13.5px;font-weight:800;
  display:inline-flex;align-items:center;gap:8px;
  box-shadow:0 8px 24px rgba(0,41,31,.28);transition:.2s}
#mcta:active{transform:scale(.96)}
#mcta.hide{display:none}

/* --- fund bottom sheet ------------------------------------------------- */
#msheet{position:fixed;top:0;inset-inline:0;width:100%;
  height:100vh;height:100svh;height:100dvh;
  z-index:70;display:flex;flex-direction:column;
  background:var(--cream);transform:translateY(100%);visibility:hidden;
  transition:transform .32s cubic-bezier(.4,0,.2,1),visibility .32s}
#msheet.on{transform:none;visibility:visible}
#msheet .sh{height:54px;flex-shrink:0;display:flex;align-items:center;gap:12px;
  padding:0 14px 0 var(--pad);border-bottom:1px solid var(--line);background:#fff}
#msheet .sh .st{flex:1;font-size:14px;font-weight:800;color:var(--green);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#msheet .sb{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding-bottom:calc(24px + env(safe-area-inset-bottom))}
#msheet .sb .slide-inner{position:static !important;width:100% !important;height:auto !important;
  padding:22px var(--pad) !important;display:block !important;transform:none !important}
#msheet .sb [style*="grid-template-columns"]{grid-template-columns:1fr !important}
#msheet .fhead{gap:16px}
#msheet .fmark img{max-width:84px !important;max-height:84px !important}
#msheet .fhead .meta .fn{font-size:20px}
#msheet .donut{max-width:200px;height:auto}
#msheet .ph{margin-top:22px}

/* forms: 16px minimum or iOS zooms the viewport on focus */
body.mob .fld input,body.mob .fld select{height:44px;font-size:16px}
body.mob .fld label{font-size:11.5px}
body.mob .fsubmit{height:50px;font-size:15px}
body.mob .act{padding:16px 16px}
body.mob .soc{padding:11px 15px}
body.mob .minirow{padding:12px 14px}

/* ===================================================================== */
/*  TABLET / SMALL LAPTOP — pagination kept, slides reflow to one column   */
/* ===================================================================== */
body.rf #stage{width:100vw;height:100vh;height:100dvh;box-shadow:none;transform:none !important}
body.rf{--pad:22px; --t-display:40px; --t-h1:32px; --t-h2:25px; --t-h3:17px;
        --t-lead:14.5px; --t-body:13.4px; --t-small:12px}
body.rf .slide-inner{padding:64px var(--pad) 66px;overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;transform:none !important;width:100% !important;height:100% !important;
  display:block}
body.rf .slide-inner>div[style*=grid],
body.rf .slide-inner>div[style*=flex]{display:block !important}
body.rf .slide-inner [style*="grid-template-columns"]{grid-template-columns:1fr !important}
/* these keep 2 columns on phone — selectors deliberately out-specify the rule above */
body.rf .slide-inner .fgrid{grid-template-columns:1fr 1fr !important}
body.rf .slide-inner .stats{grid-template-columns:1fr 1fr !important}
body.rf .slide-inner .wall{grid-template-columns:1fr 1fr !important;grid-auto-rows:92px !important}
body.rf .slide-inner .two,body.rf .slide-inner .acts,
body.rf .slide-inner .frow,body.rf .slide-inner .minirows{grid-template-columns:1fr !important}
body.rf .slide-inner .steps{grid-template-columns:1fr !important}
body.rf .steps .st{border-inline-start:0;border-top:1px solid var(--line);padding-inline-start:0}
body.rf .steps .st:first-child{border-top:0}
body.rf .bars .row{grid-template-columns:1fr 62px !important;gap:8px}
body.rf .bars .tr{grid-column:1/-1;order:3}
body.rf .fhead{gap:14px}
body.rf .fmark img{max-width:74px !important;max-height:74px !important}
body.rf .fcard img{max-width:76px !important;max-height:46px !important}
body.rf .wall .cell img{max-width:80% !important;max-height:70% !important}
body.rf .fhead .meta .fn{font-size:19px}
body.rf .hero-stat .v{font-size:62px}
body.rf .divider{padding:0 var(--pad);position:relative;height:100%;justify-content:center}
/* tablet reflow: the picture keeps its empty right half at this width, so
   the column survives — it just gets wider and the facts stack.
   (.cm / .cl were targeted here too and matched nothing.) */
body.rf .cover .cin{padding:var(--pad) var(--pad) 96px;align-items:flex-start}
body.rf .cover .cmark,body.rf .cover .ctitle,body.rf .cover .cmeta{max-width:62%}
body.rf .cover h1{font-size:40px}
body.rf .cover .ck{font-size:15px}
body.rf .cover .cs{font-size:16px}
body.rf .cover .cmeta{display:block;margin-top:28px}
body.rf .cover .cmeta span{display:block;margin:0 0 7px;font-size:12.5px}
body.rf .cover .cmeta span+span::before{display:none}
/* sticky bars get a backdrop on phone; .dk is set by JS for dark slides */
body.rf #topbar{height:56px;padding:0 var(--pad);background:rgba(252,250,245,.94);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
body.rf #footer{height:56px;padding:0 var(--pad);background:rgba(252,250,245,.94);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
body.rf #chrome.dk #topbar{background:rgba(0,41,31,.94);border-bottom-color:rgba(255,255,255,.14)}
body.rf #chrome.dk #footer{background:rgba(0,41,31,.94);border-top-color:rgba(255,255,255,.14)}
body.rf .crumb{font-size:10.5px}
body.rf #drawer{width:min(88vw,380px)}
body.rf .tbtn{height:34px;padding:0 13px}
body.rf .pbtn{width:36px;height:36px}
body.rf table.data{font-size:11.4px}
body.rf table.data thead th,body.rf table.data tbody td{padding:7px 8px}
body.rf .donut{max-width:210px;height:auto}
body.rf .gbars{max-width:100%}
body.rf .act{padding:14px 15px}
body.rf .sign.xl{width:120px}
body.rf .divider .dsign{display:none}
body.rf .pull{font-size:15px}

/* tablet — two columns kept where it still reads */
@media (min-width:700px) and (max-width:1100px){
  body.rf .fgrid{grid-template-columns:1fr 1fr 1fr !important}
  body.rf .wall{grid-template-columns:repeat(3,1fr) !important}
  body.rf .acts{grid-template-columns:1fr 1fr !important}
}
/* ===================================================================== */
/*  PDF EXPORT — set by pdf.py via window.__PRINT__                       */
/*  One slide per page at the exact 1440×810 design size, so the printed  */
/*  document is pixel-identical to the screen deck. Text stays vector and */
/*  selectable; Persian shaping is Chrome's, i.e. correct.                */
/* ===================================================================== */
/* Page geometry is written in by pdf.py:
     --pg-w/--pg-h   media box  = trim + bleed on all four sides
     --trim-w/-h     trim box
     --bleed         bleed
     --dsg-w/--dsg-h logical design box, scaled to fill the trim
     --dsg-k         that scale factor                                      */
@page{ size:var(--pg-w,1440px) var(--pg-h,810px); margin:0 }

body.printing{overflow:visible !important;background:#fff}
body.printing #stage{--pad:56px}

/* PRESS — native size, real bleed, no crop marks.
   The page is trim + bleed. Each slide paints its own background across the
   WHOLE page, so the bleed carries live artwork exactly as it should. Content
   is inset by the bleed so it sits inside the trim. TrimBox and BleedBox are
   written into the PDF afterwards (pdf.py), which is where a printer expects
   the bleed to be declared — not drawn on the page. */
body.printing.press .slide{
  width:var(--pg-w) !important;height:var(--pg-h) !important;
  overflow:hidden;padding:0 !important;position:relative !important;
  background:var(--cream) !important}
body.printing.press .slide.dark{background:var(--green) !important}
body.printing.press .blankpage{background:var(--cream) !important}

/* ordinary pages: content inset to the trim */
body.printing.press .slide>.slide-inner{
  position:absolute !important;
  top:var(--bleed) !important;right:var(--bleed) !important;left:var(--bleed) !important;
  width:auto !important;height:var(--trim-h) !important;transform:none !important}

/* full-bleed designs run to the paper edge, with their content held in
   the trim by an extra bleed's worth of padding */
body.printing.press .slide>.cover,
body.printing.press .slide>.divider,
body.printing.press .slide>.estab,
body.printing.press .slide>.bcov{
  position:absolute !important;inset:0 !important;
  width:auto !important;height:auto !important;transform:none !important}
body.printing.press .slide>.cover>.cin,
body.printing.press .slide>.divider{padding-inline:calc(var(--pad) + var(--bleed)) !important}
body.printing.press .slide>.divider{padding-block:var(--bleed) !important}
body.printing.press .estab .txt{padding:calc(var(--pad) + var(--bleed)) !important}

/* paper has no hover: marks print at full strength, in colour */
body.printing .wall .cell img,
body.printing .fcard img,
body.printing .fmark img{filter:none !important;opacity:1 !important;transform:none !important}
body.printing .wall .cell{border-color:var(--line) !important}

/* print: the lead form becomes a static invitation */
.printcta .pcta{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;
  margin-top:16px;align-items:baseline}
.printcta .pl{font-size:11.5px;color:rgba(255,255,255,.5)}
.printcta .pv{font-size:15px;font-weight:700;color:#fff;
  font-variant-numeric:tabular-nums;direction:ltr;text-align:start}
[dir=rtl] .printcta .pv{text-align:right}
.printcta .pv.gold{color:var(--gold)}

/* back cover + blank pages, press only */
.backcover .bcov{position:absolute;inset:0;background:var(--green);display:flex;
  flex-direction:column;align-items:center;justify-content:center;gap:22px;text-align:center}
.backcover .bsign{opacity:.9;margin-bottom:6px}
.backcover .blogo .lw b{font-size:34px;color:#fff;letter-spacing:.16em;
  font-family:'Segoe UI',system-ui,sans-serif;font-weight:800;display:block}
.backcover .blogo .lw span{font-size:11px;letter-spacing:.14em;
  color:rgba(255,255,255,.6);display:block;margin-top:4px;
  font-family:'Segoe UI',system-ui,sans-serif}
.backcover .bmeta{font-size:14px;color:rgba(255,255,255,.7);font-weight:600;
  max-width:520px;line-height:1.8}
.backcover .bmeta.sm{font-size:11.5px;color:rgba(255,255,255,.45)}
.blankpage{background:var(--cream) !important}

body.printing.press .cmarks{position:absolute;inset:0;pointer-events:none;z-index:9}
body.printing.press .cmark{position:absolute;width:var(--bleed);height:var(--bleed)}
body.printing.press .cmark::before,body.printing.press .cmark::after{
  content:'';position:absolute;background:#000}
body.printing.press .cmark::before{width:100%;height:.25pt;top:50%}
body.printing.press .cmark::after{height:100%;width:.25pt;left:50%}
body.printing.press .cmark.tl{top:0;left:0}
body.printing.press .cmark.tr{top:0;right:0}
body.printing.press .cmark.bl{bottom:0;left:0}
body.printing.press .cmark.br{bottom:0;right:0}
body.printing.press .cmark.tl::before,body.printing.press .cmark.tr::before{top:100%}
body.printing.press .cmark.bl::before,body.printing.press .cmark.br::before{top:0}
body.printing.press .cmark.tl::after,body.printing.press .cmark.bl::after{left:100%}
body.printing.press .cmark.tr::after,body.printing.press .cmark.br::after{left:0}

body.printing #viewport{position:static !important;display:block !important;
  padding:0 !important;background:#fff !important}
body.printing #stage{width:1440px !important;height:auto !important;
  transform:none !important;box-shadow:none !important;margin:0 !important;
  overflow:visible !important}
body.printing .slide{position:relative !important;inset:auto !important;
  width:1440px !important;height:810px !important;
  opacity:1 !important;visibility:visible !important;transform:none !important;
  transition:none !important;overflow:hidden;margin:0 !important;
  break-after:page;page-break-after:always;break-inside:avoid;page-break-inside:avoid}
body.printing .slide:last-child{break-after:auto;page-break-after:auto}
body.printing #chrome,body.printing #drawer,body.printing #scrim,
body.printing #progress,body.printing #nojs,body.printing #mapp,
body.printing #msheet{display:none !important}
body.printing *{-webkit-print-color-adjust:exact;print-color-adjust:exact;
  animation:none !important}

@media print{
  html,body{overflow:visible;background:#fff}
  #chrome,#drawer,#scrim,#progress,#nojs,#mapp,#msheet{display:none !important}
  #viewport{position:static;display:block;padding:0}
  #stage{width:1440px;height:auto;transform:none;box-shadow:none}
  .slide{position:relative;width:1440px;height:810px;opacity:1;visibility:visible;
    transform:none;overflow:hidden;break-after:page;page-break-after:always}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* =====================================================================
   TYPOGRAPHY PASS — design v6.1                          2026-08-18
   Authored in Typography-Studio.html, applied here as one reviewable
   block rather than edited into 26 rules in place, so it can be lifted
   out in a single cut.

   PLACEMENT: last in this sheet, but every responsive rule that follows
   it in the cascade wins on specificity — `body.rf .cover h1` (0,2,1)
   and `#stage .cover h1 !important` both outrank `.cover h1` (0,1,1).
   Mobile and reflow are therefore untouched. Verified, not assumed.

   Two cascade repairs were needed; see the table.data note below.
   ===================================================================== */
:root{
  --t-h2:34px;      /* NOTE: h2.title is now hardcoded 46px below, so this
                       var no longer reaches anything. Kept for the record. */
  --t-h3:25px;
  --t-lead:14.5px;
  --t-body:15.6px;
  /*  --t-micro was set to 14px in the v6.1 pass, up from 10.8. It drives
      .stats .s .n — the little source note under each figure — and .hint.
      Two problems, both visible on the overview page: at 14px the note is
      LARGER than the 12.2px label it annotates, which inverts the hierarchy;
      and «تحت نظارت سازمان بورس» and «شرکت سهامی عام» each wrap to a second
      line, which is what finally pushed that column past the bottom margin.
      11.5px keeps it comfortably readable and back under its own label. */
  --t-micro:11.5px;
  --pad:67px;
  /* --t-small:99.1px;  HELD BACK — see the note in the handover. 99.1px is
     8× the original 12.4px and reads as a slider slip. Its only consumer,
     .card .cd, is explicitly set to 17px below, so applying it would change
     nothing today while sitting armed for whoever next writes
     font-size:var(--t-small). Uncomment if it was deliberate. */
}

/* ---- cover ---- */
.cover .ck{font-size:41px;font-weight:465;
  font-variation-settings:'wght' 465,'CNTR' 44;font-feature-settings:'salt' 1}
.cover h1{font-size:70.5px;line-height:1.33;letter-spacing:0em;
  word-spacing:.08em;font-weight:658;
  font-variation-settings:'wght' 658,'CNTR' 43;font-feature-settings:'dlig' 1}
.cover .cs{font-size:31px}

/* ---- chapter dividers ---- */
.divider .dn{font-size:76.5px;line-height:.96;letter-spacing:.2em;font-weight:499;
  font-variation-settings:'wght' 499,'CNTR' 55}
.divider h1{font-size:59px;font-weight:667;
  font-variation-settings:'wght' 667,'CNTR' 36}
.divider .dsub{font-size:24.5px;font-weight:677;
  font-variation-settings:'wght' 677,'CNTR' 23}

/* ---- headings ---- */
.kicker{letter-spacing:-.022em;font-weight:565;
  font-variation-settings:'wght' 565,'CNTR' 65}
h2.title{font-variation-settings:'wght' 800,'CNTR' 63}
h3.sub{font-weight:561;
  font-variation-settings:'wght' 561,'CNTR' 38}


/* h1.title{font-size:87px;font-variation-settings:'wght' 800,'CNTR' 65}
   DEAD RULE — app.js emits eighteen `class="title"` headings and every one
   of them is an <h2>. `h1.title` matches nothing in the built catalog, and
   neither does --t-h1, its only other consumer. Left commented so the
   intent is not lost if an h1 is ever introduced. */

/* ---- body ---- */
p.lead{line-height:1.39;letter-spacing:.024em}
p.body{line-height:1.74}
ul.bul li{line-height:1.37}

/* ---- cards ----
   .ct was 34px, which is 74% of the page title and made three-word service
   names wrap to three lines in a 380px column. 22px sits at just under half
   the h2 and lets most of them hold two.

   .num is the card's ordinal — ۰۱ ۰۲ ۰۳ ۰۴. It was 12px at weight 800: too
   small to read as a number and too heavy not to read as a blob, which is
   the worst of both. An ordinal wants presence without insistence, so it
   goes up in size and down in weight, and gains tabular figures so the
   column of them lines up. */
.card .ct{line-height:1.3}
.card .cd{line-height:1.62}
.card .num{font-weight:500;
  font-variation-settings:'wght' 500,'CNTR' 40;
  font-variant-numeric:tabular-nums;letter-spacing:.02em;top:18px}

/* ---- tables ----
   font-variation-settings INHERITS. Setting 'wght' 658 on <table> pushes
   658 down into every <th> and <td>, and an inherited variation setting
   beats a descendant's font-weight — so the green header (700) and the
   total row (800) would both have silently flattened to 658, erasing the
   weight contrast that makes a table readable. Both are restated here at
   their own weights. This is a repair, not a preference. */
table.data{font-weight:658;
  font-variation-settings:'wght' 658,'CNTR' 0}
table.data thead th{font-variation-settings:'wght' 700,'CNTR' 0}
table.data tbody tr.total,table.data tbody tr.total td{
  font-variation-settings:'wght' 800,'CNTR' 0}


/* ---- charts & timeline ---- */


/* ---- establishing shot ---- */
.estab .txt h2{font-size:52px;line-height:1.3}
.estab .estats b{font-size:35px}
/* =====================================================================
   DENSITY TIERS — v6.2
   The deck is a fixed 1440x810 canvas, so a page with a lot on it has to
   give somewhere. Until now the only mechanism was autofit(), which scaled
   the whole .slide-inner with transform. Two problems with that:

     * it floors at 0.7 and then simply CLIPS — the achievements page lost
       its last row off the bottom edge;
     * scaling the container shrinks the page margin along with the type, so
       a dense page ends up with MORE white space around less readable text,
       which is backwards.

   A designer handling a dense page does not photograph it smaller. They set
   it in a smaller, tighter spec and keep the margins. That is what these
   tiers do: one multiplier, --tk, applied to the roles that actually carry
   bulk, plus the paddings and gaps that go with them. The margin never
   moves. autofit() now steps d1 → d4 first and only falls back to transform
   if a page is still over after d4, so nothing can clip.

   Selectors are prefixed .slide so they beat the bare-role rules in the
   typography pass above (0,2,1 vs 0,1,1) without !important.

   THIS BLOCK IS THE ONLY PLACE A CONTENT SIZE IS WRITTEN.
   The typography pass above used to repeat every one of these numbers, so a
   size lived in two places and the two drifted the moment either was edited.
   It now carries weight, contrast, leading and tracking only — the size for
   anything a reader reads at length is here, once. Roles NOT listed here
   (cover, dividers, establishing shot, hero figures) keep their size up
   there, because they are display type on pages that cannot overflow.
   ===================================================================== */
.slide{--tk:1}
.slide.d1{--tk:.94} .slide.d2{--tk:.88}
.slide.d3{--tk:.82} .slide.d4{--tk:.76}

/* headings give up the least — hierarchy has to survive the squeeze */
.slide h2.title{font-size:calc(42px * max(var(--tk), .86))}
.slide h2.title.sm{font-size:calc(32px * max(var(--tk), .86))}
.slide .kicker{font-size:calc(15px * max(var(--tk), .8))}
.slide h3.sub{font-size:calc(22px * var(--tk))}

/* body and lists give up the most — this is where the bulk is */
.slide p.lead{font-size:calc(18px * var(--tk))}
.slide p.body{font-size:calc(15.6px * var(--tk))}
.slide ul.bul{gap:calc(9px * var(--tk))}   /* the list is a grid; gap, not margin */
.slide ul.bul li{font-size:calc(14.5px * var(--tk));gap:calc(11px * var(--tk))}
.slide ul.bul.tight li{font-size:calc(12.2px * var(--tk))}

/* tabular matter */
.slide table.data{font-size:calc(14px * var(--tk))}
.slide table.data thead th{font-size:calc(13px * var(--tk));
  padding:calc(11px * var(--tk)) calc(12px * var(--tk))}
.slide table.data tbody td{padding:calc(8.5px * var(--tk)) calc(12px * var(--tk))}
.slide table.facts td{font-size:calc(14px * var(--tk));
  padding:calc(8.5px * var(--tk)) 0}
/*  A key-facts value that is a LIST rather than a figure — «مسیر
    سرمایه‌گذاری» names five channels — runs to three lines. Set at the same
    size as «۶۰ همت» it out-shouts the numbers it sits under, purely because
    there is more of it. app.js tags any value past 42 characters .long and
    it steps down. Length is measured, not hand-tagged, because the same row
    is a different length across ten funds and two languages. */
.slide table.facts tr.long td:last-child{font-size:calc(12.2px * var(--tk));
  line-height:1.7;font-weight:600}

/* cards, timeline, charts, section labels */
.slide .ph{font-size:calc(17px * max(var(--tk), .8))}
.slide .grp-label{font-size:calc(11.5px * var(--tk))}
.slide .card .ct{font-size:calc(22px * var(--tk))}
.slide .card .cd{font-size:calc(14.5px * var(--tk))}
.slide .card .num{font-size:calc(16px * var(--tk))}
.slide .tl .y{font-size:calc(15px * var(--tk))}
.slide .tl .t{font-size:calc(14.5px * var(--tk))}
.slide .bars .nm{font-size:calc(14px * var(--tk))}
.slide .bars .vl{font-size:calc(15px * var(--tk))}
.slide .legend .li{font-size:calc(13px * var(--tk))}
.slide .fcard .fn{font-size:calc(12.4px * var(--tk))}
.slide .stats .s .v{font-size:calc(34px * var(--tk))}
.slide .stats .s .l{font-size:calc(12.2px * var(--tk))}

/* the tier is a type change, so the surrounding rhythm moves with it.
   These scale DOWN with --tk — an earlier draft set a flat 10px here, which
   was larger than the 9px it was meant to tighten. */
.slide .tl .it{padding:calc(9px * var(--tk)) 0;gap:calc(14px * var(--tk))}
.slide .acts{gap:calc(12px * var(--tk))}
.slide .card{padding:calc(22px * var(--tk)) calc(24px * var(--tk))}
/* the year gutter has to narrow too, or a 100px column holds 22px numerals */
.slide .tl .it{grid-template-columns:calc(100px * var(--tk)) 1fr}
.slide .minirows{gap:calc(9px * var(--tk))}

/* =====================================================================
   REVIEW ROUND 1 — Kian, 2026-08-18
   ===================================================================== */

/* 2 — table of contents. The row label now says صفحه rather than اسلاید
   (app.js), and the count was too quiet to read as a count. */
/*  the row is built with inline styles in app.js, which no stylesheet rule
    can outrank, so the size/weight/colour change lives there. */

/* 5 — the opening paragraph is the one block a reader actually reads at
   length on that page; 1.39 was set for compactness it does not need. */
.slide p.lead{line-height:1.75}

/* 6 — a short parenthetical travels as one unit (see nbParens in app.js) */
.nbp{white-space:nowrap;display:inline-block}

/* 7 — column headings like «رتبه‌ها و نشان‌ها» are the only thing telling you
   which list you are in, so they get to be bigger than the rows. */
.slide .grp-label{font-size:calc(14px * var(--tk))}

/* 8 — the year on the financing-firsts cards was 11px against a 22px title,
   which read as a caption rather than the anchor of the card. */
.card .cyear{font-weight:800;color:var(--gold-deep);letter-spacing:.06em;
  margin-bottom:9px;font-variant-numeric:tabular-nums}
.slide .card .cyear{font-size:calc(18px * var(--tk))}

/* 10 — service cards. The ordinal was on the far side from where reading
   starts and the sign was loose in the corner; they swap, so the number sits
   at the reading edge and the sign closes the opposite one. The extra
   bottom margin answers "cards too close to the bottom margin". */
.card.svc{position:relative}
.card.svc .num{inset-inline-start:auto;inset-inline-end:auto;
  inset-inline-start:calc(24px * var(--tk));top:calc(18px * var(--tk))}
.card.svc .csign{position:absolute;top:calc(18px * var(--tk));
  inset-inline-end:calc(24px * var(--tk));opacity:.9}
.slide .card.svc{padding-bottom:calc(24px * var(--tk))}
.slide-inner>.mt-a{padding-bottom:14px}

/* =====================================================================
   REVIEW ROUND 2 — شیما, 2026-08-18
   ===================================================================== */

/* A closing note under a list: it qualifies everything above it, so it is
   set apart by a rule and a step down rather than by being another bullet.
   margin-top:auto pins it to the foot of the page, which is where a
   qualification belongs — read last, after the claims it conditions. */
.pnote{margin-top:auto;padding-top:20px;border-top:1px solid var(--line);
  color:#33423D;max-width:1080px}
.slide .pnote{font-size:calc(15px * var(--tk));line-height:1.85}
.slide.dark .pnote,.msec.dark .pnote{color:#CCDAD7;
  border-top-color:rgba(255,255,255,.22)}

/*  A flex or grid child defaults to min-height:auto and therefore refuses to
    shrink below its content, overflowing its parent instead. The renderers
    set min-height:0 where it matters, but any column built with an inline
    style is easy to miss, so this is the safety net: inside a slide, a direct
    child of a grid or flex track may always shrink. Without it a single
    forgotten declaration puts type under the footer, which is exactly what
    happened on the overview page. */
.slide-inner>div>div{min-height:0}
.slide-inner .stats,.slide-inner ul.bul{min-height:0}

/* ---- ?fit diagnostic overlay (never shown without the query flag) ---- */
.fitbadge{display:none}
body.fitdbg .fitbadge{display:block;position:absolute;top:8px;inset-inline-start:8px;
  z-index:60;font-size:10px;font-weight:800;letter-spacing:.06em;padding:3px 7px;
  border-radius:2px;background:rgba(0,69,56,.82);color:#fff;direction:ltr;
  pointer-events:none}
body.fitdbg .fitbadge.tier{background:#005740;color:#F6CE3E}
body.fitdbg .fitbadge.warn{background:#D0AF2B;color:#00291F}
body.fitdbg .fitbadge.bad{background:#B3261E;color:#fff}
/* ===================== end typography pass v6.1 ====================== */
