/* =====================================================================
   CSR portal v2.0 — public pages: Our Commitment, Business Partner Requirements, NGO Partners, partner profile,
   NGO application, application received, contact, document viewer. Built on mothership.css and csr.css.
   No emoji: numbered sequences, engraved marks and line icons only.
   ===================================================================== */

/* ---- shared layout ----------------------------------------------------- */
.pp-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.pp-split-rev{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center}
.pp-h2{font-size:clamp(34px,3.4vw,52px);margin:0 0 20px;max-width:18ch}
.paper .pp-h2{color:var(--ink)}
.pp-lead{font-size:19px!important;color:var(--text)!important}
.paper .pp-lead{color:var(--ink)!important}
.pp-plate{aspect-ratio:4/3}
.pp-callout{margin-top:26px}
.pp-narrow{max-width:880px;margin:0 auto}
@media (max-width:900px){.pp-split,.pp-split-rev{grid-template-columns:1fr}}

/* large engraved figure (100-year vision) */
.pp-figure{display:grid;place-items:center;text-align:center;aspect-ratio:1/1;max-width:340px;width:100%;margin:0 auto;border:1px solid var(--gold-d);border-radius:50%;box-shadow:inset 0 0 0 10px var(--paper),inset 0 0 0 11px rgba(143,112,18,.45);background:radial-gradient(circle,#fbf7ea,var(--paper) 70%)}
.pp-figure b{display:block;font:600 clamp(96px,11vw,150px)/.9 var(--serif);color:var(--ink);letter-spacing:-.02em}
.pp-figure span{display:block;margin:10px auto 0;font:500 11px/1.4 var(--mono);letter-spacing:.18em;color:#6f5a12;max-width:20ch}
.pp-figure>div{padding:20px}
@media (max-width:900px){.pp-figure{max-width:240px}}

/* ---- numbered principles (a real sequence) ------------------------------ */
.principles{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line2);border-left:1px solid var(--line)}
.principles li{display:grid;grid-template-columns:auto 1fr;gap:22px;padding:clamp(24px,3vw,40px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(160deg,rgba(16,45,82,.45),rgba(6,23,48,0))}
.pr-n{font:500 clamp(54px,5vw,76px)/.85 var(--serif);color:var(--gold-l);min-width:1.6ch}
.principles small{display:block;font:500 10.5px/1 var(--mono);letter-spacing:.16em;color:var(--text3);margin:4px 0 12px}
.principles h3{font-size:clamp(26px,2.2vw,32px);margin-bottom:10px}
.principles p{color:var(--text2);font-size:15.5px;line-height:1.7}
@media (max-width:820px){.principles{grid-template-columns:1fr}.principles li{grid-template-columns:1fr;gap:12px}}

/* ---- diamond list (house bullet) ----------------------------------------- */
.dlist{list-style:none;margin-top:14px;border-top:1px solid var(--line)}
.dlist li{position:relative;padding:10px 0 10px 24px;border-bottom:1px solid var(--line);font-size:15px;color:var(--text);line-height:1.5}
.dlist li::before{content:"";position:absolute;left:3px;top:17px;width:8px;height:8px;border:1px solid var(--gold);transform:rotate(45deg)}
.paper .dlist{border-color:var(--pline)}
.paper .dlist li{border-color:var(--pline);color:var(--ink)}
.paper .dlist li::before{border-color:var(--gold-d)}

/* ---- requirement cards ---------------------------------------------------- */
.reqs4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,1.6vw,22px)}
.reqcard{display:flex;flex-direction:column}
.reqcard .rq-head{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.rq-n{display:grid;place-items:center;flex:none;width:52px;height:52px;border:1px solid var(--gold);border-radius:50%;font:500 24px/1 var(--serif);color:var(--gold-l);box-shadow:inset 0 0 0 4px var(--deep),inset 0 0 0 5px rgba(201,162,39,.35)}
.reqcard h3{font-size:clamp(26px,2.2vw,32px);margin:0}
.reqcard>p{color:var(--text2);font-size:15.5px;line-height:1.7}
.reqcard .dlist{margin-top:18px}
@media (max-width:900px){.reqs4{grid-template-columns:1fr}}

/* business case: three cases in a ledger */
.cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--pline);background:#fff}
.cases article{padding:clamp(22px,2.6vw,34px);border-right:1px solid var(--pline)}
.cases article:last-child{border-right:0}
.cases small{display:block;font:500 10.5px/1 var(--mono);letter-spacing:.16em;color:#6f5a12;margin-bottom:14px}
.cases h3{font-size:26px;margin-bottom:10px;color:var(--ink)}
.cases p{font-size:15px;line-height:1.7;color:var(--ink2)}
@media (max-width:900px){.cases{grid-template-columns:1fr}.cases article{border-right:0;border-bottom:1px solid var(--pline)}.cases article:last-child{border-bottom:0}}

/* ---- numbered process (steps that happen in order) ------------------------ */
.steps{list-style:none;position:relative;display:grid;gap:0}
.steps li{position:relative;display:grid;grid-template-columns:56px 1fr;gap:22px;padding:0 0 34px}
.steps li:last-child{padding-bottom:0}
.steps li::before{content:"";position:absolute;left:27px;top:58px;bottom:6px;width:1px;background:linear-gradient(180deg,var(--gold),rgba(201,162,39,.08))}
.steps li:last-child::before{display:none}
.steps .rq-n{width:56px;height:56px}
.steps h3{font-size:clamp(24px,2vw,30px);margin:10px 0 8px}
.steps p{color:var(--text2);font-size:15.5px;line-height:1.7;max-width:62ch}
.steps .meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.paper .steps li::before{background:linear-gradient(180deg,var(--gold-d),rgba(143,112,18,.08))}
.paper .steps .rq-n{color:var(--ink);border-color:var(--gold-d);box-shadow:inset 0 0 0 4px var(--paper),inset 0 0 0 5px rgba(143,112,18,.35)}
.paper .steps h3{color:var(--ink)}
.paper .steps p{color:var(--ink2)}
.badge.gold{border-color:rgba(201,162,39,.55);color:var(--gold-l)}
.badge.gold::before{background:var(--gold-l)}
.paper .badge.gold{color:#6f5a12;border-color:rgba(143,112,18,.45)}
.paper .badge.gold::before{background:var(--gold-d)}
.paper .badge.public{color:#1d6b4b;border-color:rgba(29,107,75,.4)}
.paper .badge.public::before{background:#1d8a5c}

/* ordered "how to apply" list */
.olist{list-style:none;counter-reset:ol;border-top:1px solid var(--line2)}
.olist li{counter-increment:ol;display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line);color:var(--text);font-size:16px}
.olist li::before{content:counter(ol,decimal-leading-zero);font:500 13px/1 var(--mono);letter-spacing:.08em;color:var(--gold-l)}
.paper .olist{border-color:var(--pline)}
.paper .olist li{border-color:var(--pline);color:var(--ink)}
.paper .olist li::before{color:#6f5a12}

/* closing band */
.pp-close{text-align:center}
.pp-close h2{margin:0 auto 14px;max-width:24ch}
.pp-close p{max-width:56ch;margin:0 auto}
.pp-close .btns{justify-content:center;margin-top:26px}

/* ---- partner directory ------------------------------------------------------ */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:clamp(14px,1.6vw,22px)}
.pcard{position:relative;display:flex;flex-direction:column;border:1px solid var(--line2);background:linear-gradient(180deg,rgba(16,45,82,.7),rgba(10,33,66,.7));color:inherit;text-decoration:none;transition:border-color .25s,transform .25s var(--ease)}
.pcard:hover,.pcard:focus-visible{border-color:var(--gold)}
.pcard:hover .pc-name{color:var(--gold-l)}
.pc-logo{position:relative;display:grid;place-items:center;aspect-ratio:16/10;margin:0;background:#fff;border-bottom:1px solid var(--line2)}
.pc-logo img{max-width:62%;max-height:70%;object-fit:contain}
.pc-logo::before,.pc-logo::after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--gold-d);opacity:.8}
.pc-logo::before{top:8px;left:8px;border-right:0;border-bottom:0}
.pc-logo::after{bottom:8px;right:8px;border-left:0;border-top:0}
.monogram{display:grid;place-items:center;width:112px;height:112px;border:1px solid var(--gold-d);border-radius:50%;font:600 42px/1 var(--serif);color:#6f5a12;letter-spacing:.04em;box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 6px rgba(143,112,18,.35);background:#fbf7ea}
.pc-body{display:flex;flex-direction:column;gap:6px;padding:18px 20px 20px;flex:1}
.pc-body small{font:500 10.5px/1.3 var(--mono);letter-spacing:.14em;color:var(--pa)}
.pc-name{font:600 25px/1.12 var(--serif);color:var(--text)}
.pc-country{font-size:14px;color:var(--text2)}
.pc-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}
.pc-go{font:500 12px/1 var(--mono);letter-spacing:.08em;color:var(--gold-l)}
.badge.wait::before{background:var(--warn)}
.badge.flag::before{background:var(--bad)}

/* empty state */
.empty{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,4vw,56px);align-items:center;padding:clamp(28px,4vw,56px);border:1px dashed rgba(201,162,39,.45);background:var(--gold-wash)}
.empty img{width:clamp(96px,10vw,140px);height:auto;opacity:.95}
.empty h3{font-size:clamp(28px,2.6vw,40px);margin-bottom:10px}
.empty p{color:var(--text2);max-width:60ch}
.empty .btns{margin-top:20px}
@media (max-width:700px){.empty{grid-template-columns:1fr}}

/* eligibility cards (paper) */
.elig{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--pline);border-left:1px solid var(--pline);background:#fff}
.elig article{padding:clamp(22px,2.4vw,30px);border-right:1px solid var(--pline);border-bottom:1px solid var(--pline)}
.elig h3{display:flex;align-items:center;gap:12px;font-size:24px;margin-bottom:10px;color:var(--ink)}
.elig h3::before{content:"";flex:none;width:20px;height:20px;border:1px solid var(--gold-d);border-radius:50%;background:radial-gradient(circle,var(--gold) 0 3px,transparent 4px)}
.elig p{font-size:15px;line-height:1.7;color:var(--ink2)}
@media (max-width:980px){.elig{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.elig{grid-template-columns:1fr}}

/* ---- partner profile ---------------------------------------------------------- */
.pf-id{display:grid;grid-template-columns:200px 1fr;gap:clamp(20px,3vw,40px);align-items:center;margin-bottom:40px;padding-bottom:36px;border-bottom:1px solid var(--line)}
.pf-logo{aspect-ratio:1/1}
.pf-logo .monogram{width:136px;height:136px;font-size:50px}
.pf-id h2{font-size:clamp(32px,3vw,46px);margin-bottom:10px}
.pf-meta{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;color:var(--text2);font-size:15px}
.pf-meta .ico{display:inline-flex;align-items:center;gap:8px}
.pf-meta a{color:var(--gold-l)}
.pf-meta a:hover{text-decoration:underline;text-underline-offset:4px}
.ico svg{flex:none;width:16px;height:16px;stroke:var(--gold);fill:none;stroke-width:1.5}
.pf-text{white-space:normal}
.pf-quote{position:relative;margin:0;padding:6px 0 6px 28px;border-left:2px solid var(--gold);font:italic 500 clamp(21px,1.8vw,25px)/1.5 var(--serif);color:var(--text)}
.pf-quote p+p{margin-top:14px}
.pf-by{margin-top:18px;padding-left:30px}
.pf-by b{display:block;color:var(--text)}
.pf-by span{font:500 11px/1.4 var(--mono);letter-spacing:.12em;color:var(--text3)}
@media (max-width:640px){.pf-id{grid-template-columns:1fr}.pf-logo{max-width:220px}}

.vlist{list-style:none}
.vlist li{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.vlist li:last-child{border-bottom:0}
.vmark{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid currentColor}
.vmark svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}
.vmark.ok{color:var(--ok)}
.vmark.wait{color:var(--warn)}
.vmark.flag{color:var(--bad)}
.vlist b{display:block;font-size:15px;color:var(--text);font-weight:500}
.vlist span{font:500 11px/1.4 var(--mono);letter-spacing:.1em;color:var(--text2)}
.aside .btn{width:100%;justify-content:center}
.aside .doclinks{display:grid;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.pf-contact{display:grid;gap:10px;font-size:15px}
.pf-contact b{display:block;color:var(--text);font-weight:500}
.pf-contact span{display:block;font-size:13.5px;color:var(--text3)}
.pf-contact a{display:inline-flex;align-items:center;gap:8px;color:var(--gold-l);word-break:break-all}
.pf-contact a:hover{text-decoration:underline;text-underline-offset:4px}
.pf-ref{display:block;font:500 15px/1.3 var(--mono);letter-spacing:.06em;color:var(--gold-l)}

/* ---- forms ------------------------------------------------------------------------ */
.form-shell{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:clamp(32px,5vw,72px);align-items:start}
@media (max-width:980px){.form-shell{grid-template-columns:1fr}}
.fpanel{position:relative;padding:clamp(22px,3vw,40px);border:1px solid var(--line2);background:linear-gradient(180deg,rgba(16,45,82,.6),rgba(10,33,66,.6))}
.fpanel h2{font-size:clamp(30px,2.8vw,42px);margin-bottom:6px}
.fpanel>.note{margin-bottom:24px}
.field textarea{min-height:150px;resize:vertical;line-height:1.6}
.field .help{font-size:13px;color:var(--text3);margin-top:2px}
.field label .req{color:var(--gold-l)}
.frow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
@media (max-width:640px){.frow{grid-template-columns:1fr}}
fieldset.fstep{border:0;min-width:0;margin:0 0 26px;padding:0}
fieldset.fstep legend{display:flex;align-items:baseline;gap:12px;width:100%;padding:0 0 12px;margin-bottom:18px;border-bottom:1px solid var(--line2);font:600 26px/1.15 var(--serif);color:var(--text)}
fieldset.fstep legend small{font:500 11px/1 var(--mono);letter-spacing:.14em;color:var(--gold-l)}
.js-steps fieldset.fstep:not(.on){display:none}
.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--bad)}
.check{font-size:14.5px;color:var(--text);padding:12px 14px;border:1px solid var(--line);background:rgba(4,17,36,.35);cursor:pointer}
.check:hover{border-color:var(--line2)}
.check input{width:18px;height:18px;flex:none}
.check:focus-within{border-color:var(--gold)}

/* step indicator */
.stepper{list-style:none;display:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0 0 28px}
.js-steps .stepper{display:grid}
.stepper li{position:relative;padding:12px 0 0;border-top:2px solid var(--line2);font:500 10.5px/1.35 var(--mono);letter-spacing:.1em;color:var(--text3)}
.stepper li b{display:block;font:600 15px/1.2 var(--sans);letter-spacing:0;color:var(--text2);margin-top:4px}
.stepper li.done{border-color:var(--gold-d)}
.stepper li.on{border-color:var(--gold-l);color:var(--gold-l)}
.stepper li.on b{color:var(--text)}
@media (max-width:560px){.stepper li b{font-size:12.5px}}
.fnav{display:none;justify-content:space-between;gap:10px;margin-top:6px}
.js-steps .fnav{display:flex}
.js-steps .fnav [hidden]{display:none}
.fsubmit{width:100%;justify-content:center;margin-top:8px}
.js-steps .fsubmit-wrap{display:none}
.js-steps .fsubmit-wrap.on{display:block}

/* upload */
.upload{position:relative;display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;padding:18px;border:1px dashed var(--line2);background:rgba(4,17,36,.45);transition:border-color .2s,background .2s}
.upload:hover,.upload.drag{border-color:var(--gold);background:var(--gold-wash)}
.upload:focus-within{border-color:var(--gold-l);box-shadow:0 0 0 3px rgba(201,162,39,.25)}
.upload input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.up-mark{display:grid;place-items:center;width:64px;height:64px;border:1px solid var(--gold-d);background:#fff;overflow:hidden}
.up-mark svg{width:26px;height:26px;stroke:var(--gold-d);fill:none;stroke-width:1.4}
.up-mark img{width:100%;height:100%;object-fit:contain}
.up-text b{display:block;color:var(--text);font-weight:500}
.up-text span{display:block;font-size:13px;color:var(--text3)}
.up-text .up-file{color:var(--ok);font:500 12px/1.4 var(--mono);margin-top:4px;word-break:break-all}

.form-msg{padding:0}
.form-msg:not(:empty){margin:0 0 18px;padding:12px 16px;border-left:2px solid currentColor;background:rgba(4,17,36,.5)}
.form-msg.ok{color:var(--ok)}
.form-msg.bad{color:#f0a3a0}
.form-foot{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);font-size:13.5px;color:var(--text3)}
.form-foot a{color:var(--gold-l);text-decoration:underline;text-underline-offset:3px}
.chosen{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:24px}

/* side panels on form pages */
.side{display:grid;gap:16px}
.side .card h3{font-size:26px}
.side h4{font:500 11.5px/1 var(--mono);letter-spacing:.14em;color:var(--silver);margin-bottom:14px}
.side .olist li{font-size:15px;padding:11px 0}
.side .dlist li{font-size:14.5px}
.side p{font-size:15px;color:var(--text2)}
.side .btns{margin-top:14px}

/* contact channels */
.channels{display:grid;gap:0;border-top:1px solid var(--line2)}
.channels a{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);color:inherit}
.channels .cico{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--gold-d);border-radius:50%}
.channels .cico svg{width:18px;height:18px;stroke:var(--gold-l);fill:none;stroke-width:1.4}
.channels small{display:block;font:500 10.5px/1 var(--mono);letter-spacing:.14em;color:var(--text3);margin-bottom:6px}
.channels b{font:500 18px/1.2 var(--sans);color:var(--text);word-break:break-all}
.channels a:hover b{color:var(--gold-l)}

/* ---- application received -------------------------------------------------------- */
.refbox{display:inline-grid;gap:6px;margin:6px 0 0;padding:16px 22px;border:1px solid rgba(201,162,39,.5);background:rgba(6,23,48,.6)}
.refbox small{font:500 10.5px/1 var(--mono);letter-spacing:.16em;color:var(--text3)}
.refbox code{font:500 clamp(20px,2.2vw,28px)/1.1 var(--mono);letter-spacing:.06em;color:var(--gold-l);word-break:break-all}
.refbox span{font-size:13px;color:var(--text2)}
.timeline-note{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;margin-top:40px}
.timeline-note svg{width:26px;height:26px;stroke:var(--gold-d);fill:none;stroke-width:1.4;margin-top:2px}
.ask{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3vw,40px);align-items:center;max-width:900px;margin:0 auto;padding:clamp(24px,3vw,44px);border:1px solid var(--line2);background:linear-gradient(160deg,rgba(16,45,82,.6),rgba(6,23,48,.4))}
.ask img{width:96px;height:96px}
.ask h3{font-size:clamp(28px,2.4vw,36px);margin-bottom:8px}
.ask p{color:var(--text2)}
.ask .mail{display:inline-block;margin:14px 0 10px;font:500 clamp(18px,1.8vw,22px)/1.2 var(--mono);color:var(--gold-l);border-bottom:1px solid rgba(226,195,90,.4);word-break:break-all}
.ask .mail:hover{border-color:var(--gold-l)}
@media (max-width:640px){.ask{grid-template-columns:1fr}.ask img{width:72px;height:72px}}

/* ---- document viewer --------------------------------------------------------------- */
.docview .vframe{margin-top:0}
.docview .vframe iframe{height:min(80vh,900px);user-select:none}
.docview .vframe-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px}
.docnote{margin-top:16px;font-size:13.5px;color:var(--text3);text-align:center}
.docnote a{color:var(--gold-l)}
.ferr{display:block;margin-top:4px;font-size:13px;color:#f0a3a0}
.check+.ferr{margin:-8px 0 12px}
.docview .hero.short{padding-bottom:56px}
.docview .hero h1{font-size:clamp(40px,4.6vw,68px)}
