:root{
  --pine:#2C5545; --forest:#1E3B30; --brass:#B08A4F; --sage:#9DB3A8;
  --cream:#F4F2EC; --ink:#16130F;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Jost',system-ui,sans-serif;
  --maxw:1180px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.lang-fa{font-family:'Vazirmatn',sans-serif}
body.lang-fa h1,body.lang-fa h2,body.lang-fa h3,body.lang-fa .serif{font-family:'Vazirmatn',sans-serif;font-weight:600}
h1,h2,h3,.serif{font-family:var(--serif);font-weight:500;line-height:1.14;letter-spacing:.01em}
a{color:inherit;text-decoration:none}
::selection{background:var(--brass);color:var(--cream)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,52px)}
.eyebrow{font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--brass)}
body.lang-fa .eyebrow{letter-spacing:.1em;font-family:'Vazirmatn',sans-serif}
.foot-en,.ltr{direction:ltr}

/* ---------- header ---------- */
header{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .4s,box-shadow .4s,padding .4s;padding:16px 0}
header.solid{background:rgba(244,242,236,.94);backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(22,19,15,.08);padding:10px 0}
header.on-dark:not(.solid) .navlink,header.on-dark:not(.solid) .lname{color:var(--cream)}
header.on-dark:not(.solid) .langtoggle{border-color:rgba(244,242,236,.4)}
header.on-dark:not(.solid) .langtoggle button{color:var(--cream)}
.bar{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,52px);display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:12px}
.logo{display:inline-flex;align-items:center;background:var(--pine);padding:7px 11px;border:1px solid rgba(244,242,236,.4);position:relative;direction:ltr}
.logo::after{content:"";position:absolute;inset:3px;border:1px solid rgba(244,242,236,.28);pointer-events:none}
.logo span{font-family:var(--serif);color:var(--cream);font-size:1.1rem;line-height:1;padding:0 7px;font-weight:400}
.logo span+span{border-left:1px solid rgba(244,242,236,.4)}
.lname{font-size:.66rem;letter-spacing:.12em;color:var(--ink);opacity:.62;max-width:15ch;line-height:1.35}
body.lang-fa .lname{letter-spacing:0;font-size:.72rem}
nav{display:flex;align-items:center;gap:clamp(14px,2.4vw,28px)}
.navlink{font-size:.82rem;letter-spacing:.03em;color:var(--ink);opacity:.82;transition:opacity .2s,color .3s;position:relative;padding:4px 0}
.navlink:hover{opacity:1}
.navlink.active{color:var(--brass);opacity:1}
.navlink::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--brass);transform:scaleX(0);transition:transform .25s}
.navlink:hover::after,.navlink.active::after{transform:scaleX(1)}
.langtoggle{display:flex;align-items:center;border:1px solid rgba(22,19,15,.2);border-radius:100px;padding:4px}
.langtoggle button{font:inherit;background:none;border:none;cursor:pointer;color:var(--ink);opacity:.45;padding:3px 11px;border-radius:100px;transition:.2s;font-size:.76rem}
.langtoggle button.active{opacity:1;background:var(--pine);color:var(--cream)!important}
@media(max-width:820px){.navlink{display:none}.lname{display:none}}

/* ---------- home hero ---------- */
.hero{position:relative;height:260vh;background:var(--forest)}
.hero-sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:flex-end}
.hero-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-scrim{position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(to top,rgba(30,59,48,.94) 2%,rgba(30,59,48,.35) 42%,rgba(30,59,48,0) 66%),
  radial-gradient(120% 80% at 50% 0%,rgba(30,59,48,0) 45%,rgba(20,32,26,.5) 100%)}
.hero-copy{position:relative;z-index:3;width:100%;padding:0 clamp(20px,5vw,52px) clamp(60px,11vh,120px)}
.hero-inner{max-width:var(--maxw);margin:0 auto}
.hero .eyebrow{color:var(--sage)}
.hero h1{color:var(--cream);font-size:clamp(2.5rem,7.5vw,5.4rem);font-weight:500;margin:20px 0 22px;max-width:16ch}
body.lang-fa .hero h1{font-weight:700;line-height:1.3}
.hero p{color:rgba(244,242,236,.85);font-size:clamp(1rem,2.2vw,1.24rem);font-weight:300;max-width:54ch}
body.lang-fa .hero p{font-weight:400}
.scroll-hint{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:3;color:var(--sage);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px}
body.lang-fa .scroll-hint{letter-spacing:.06em}
.scroll-hint .line{width:1px;height:36px;background:linear-gradient(var(--sage),transparent);animation:drop 1.8s infinite}
@keyframes drop{0%{opacity:0;transform:scaleY(.2);transform-origin:top}45%{opacity:1}100%{opacity:0;transform:scaleY(1);transform-origin:top}}

/* ---------- interior page hero ---------- */
.phero{position:relative;min-height:82vh;display:flex;align-items:flex-end;background-size:cover;background-position:center}
.phero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,59,48,.62),rgba(30,59,48,.9));mix-blend-mode:multiply}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(44,85,69,.25),rgba(22,19,15,.35))}
.phero-inner{position:relative;z-index:2;width:100%;padding:0 clamp(20px,5vw,52px) clamp(50px,9vh,96px)}
.phero-box{max-width:var(--maxw);margin:0 auto}
.crumb{color:var(--sage);font-size:.74rem;letter-spacing:.14em;margin-bottom:20px}
body.lang-fa .crumb{letter-spacing:.03em}
.crumb a{opacity:.8}.crumb a:hover{opacity:1;color:var(--brass)}
.phero .eyebrow{color:var(--sage);display:block;margin-bottom:14px}
.phero h1{color:var(--cream);font-size:clamp(2.4rem,6.5vw,4.6rem);max-width:16ch;margin-bottom:18px}
body.lang-fa .phero h1{font-weight:700;line-height:1.3}
.phero p{color:rgba(244,242,236,.85);font-weight:300;max-width:52ch;font-size:1.1rem}
body.lang-fa .phero p{font-weight:400}

/* ---------- generic ---------- */
section.block{padding:clamp(72px,12vh,140px) 0}
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.lede{max-width:62ch}
.lede .eyebrow{display:block;margin-bottom:22px}
.lede p{font-family:var(--serif);font-size:clamp(1.5rem,3.6vw,2.3rem);font-weight:400;line-height:1.5;color:var(--pine)}
body.lang-fa .lede p{font-family:'Vazirmatn',sans-serif;font-weight:400;line-height:1.9;font-size:clamp(1.3rem,3vw,1.7rem)}
.lede .rule{width:66px;height:2px;background:var(--brass);margin-top:36px}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(26px,4vw,58px)}
.pillar svg{width:42px;height:42px;stroke:var(--brass);stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pillar h3{font-size:1.45rem;margin:20px 0 10px;color:var(--pine)}
.pillar p{font-size:.95rem;font-weight:300;color:rgba(22,19,15,.66);max-width:34ch}
body.lang-fa .pillar p{font-weight:400}
@media(max-width:720px){.pillars{grid-template-columns:1fr;gap:36px}}

/* expertise grid */
.sec-head{margin-bottom:48px}
.sec-head .eyebrow{margin-bottom:14px;display:block}
.sec-head h2{font-size:clamp(2.1rem,5vw,3.3rem);color:var(--ink);max-width:20ch}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1px;background:rgba(22,19,15,.12);border:1px solid rgba(22,19,15,.12)}
.card{background:var(--cream);padding:36px 30px 30px;min-height:220px;display:flex;flex-direction:column;transition:background .35s,color .35s;color:inherit}
.card:hover{background:var(--pine);color:var(--cream)}
.card:hover .card-no,.card:hover .card-desc{color:rgba(244,242,236,.72)}
.card-no{font-family:var(--sans);font-size:.74rem;letter-spacing:.2em;color:var(--brass);transition:color .35s}
.card h3{font-size:1.5rem;margin:16px 0 12px;font-weight:500}
.card-desc{font-size:.92rem;font-weight:300;color:rgba(22,19,15,.64);transition:color .35s;margin-bottom:16px}
body.lang-fa .card-desc{font-weight:400}
.card-go{margin-top:auto;font-size:.78rem;letter-spacing:.06em;color:var(--brass);opacity:0;transform:translateY(4px);transition:.35s}
.card:hover .card-go{opacity:1;transform:none;color:var(--cream)}

/* image bands */
.imgband{position:relative;min-height:78vh;display:flex;align-items:flex-end;background-size:cover;background-position:center;background-attachment:fixed}
.imgband::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,59,48,.5),rgba(30,59,48,.88));mix-blend-mode:multiply}
.imgband::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(44,85,69,.3),rgba(22,19,15,.3))}
.imgband-inner{position:relative;z-index:2;padding-bottom:clamp(52px,9vh,104px);padding-top:80px}
.imgband .eyebrow{color:var(--sage);display:block;margin-bottom:16px}
.imgband h2{color:var(--cream);font-size:clamp(2rem,6vw,4rem);max-width:17ch;margin-bottom:18px}
body.lang-fa .imgband h2{font-weight:700;line-height:1.32}
.imgband p{color:rgba(244,242,236,.85);font-weight:300;max-width:50ch;font-size:1.06rem}
body.lang-fa .imgband p{font-weight:400}

/* mosaic */
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:14px}
.tile{position:relative;overflow:hidden;background-size:cover;background-position:center;border-radius:2px}
.tile::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,59,48,.15),rgba(30,59,48,.82));transition:background .4s}
.tile:hover::before{background:linear-gradient(180deg,rgba(44,85,69,.2),rgba(30,59,48,.7))}
.tile .tlabel{position:absolute;inset:auto 0 0 0;padding:18px 20px;z-index:2;color:var(--cream)}
.tile .tlabel .k{font-size:.68rem;letter-spacing:.18em;color:var(--sage);text-transform:uppercase}
body.lang-fa .tile .tlabel .k{letter-spacing:.05em}
.tile .tlabel .v{font-family:var(--serif);font-size:1.35rem;margin-top:4px}
body.lang-fa .tile .tlabel .v{font-family:'Vazirmatn',sans-serif;font-weight:600}
.tile.big{grid-column:span 2;grid-row:span 2}
.tile.wide{grid-column:span 2}
@media(max-width:820px){.mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}.tile.big{grid-column:span 2;grid-row:span 2}.tile.wide{grid-column:span 2}}

/* signature 3D block (interior) */
.sig{background:var(--forest);color:var(--cream);position:relative;overflow:hidden}
.sig .inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,70px);align-items:center;position:relative;z-index:2}
.sig .eyebrow{color:var(--brass);display:block;margin-bottom:18px}
.sig h2{color:var(--cream);font-size:clamp(1.9rem,4.6vw,3rem);margin-bottom:20px}
.sig p{color:rgba(244,242,236,.82);font-weight:300;max-width:46ch}
body.lang-fa .sig p{font-weight:400}
.sig-canvas{width:100%;height:min(52vh,440px);display:block;cursor:grab}
.sig-canvas:active{cursor:grabbing}
@media(max-width:800px){.sig .inner{grid-template-columns:1fr}.sig-canvas{height:340px;order:-1}}

/* capabilities list */
.caps{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(22,19,15,.12);border:1px solid rgba(22,19,15,.12)}
.cap{background:var(--cream);padding:30px 28px}
.cap .n{font-size:.72rem;letter-spacing:.2em;color:var(--brass)}
.cap h3{font-size:1.3rem;margin:12px 0 8px;color:var(--pine)}
.cap p{font-size:.92rem;font-weight:300;color:rgba(22,19,15,.66)}
body.lang-fa .cap p{font-weight:400}
@media(max-width:680px){.caps{grid-template-columns:1fr}}

/* process steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,4vw,44px);counter-reset:s}
.step{border-top:2px solid var(--brass);padding-top:20px}
.step .sn{font-family:var(--serif);font-size:2.2rem;color:var(--sage)}
.step h3{font-size:1.25rem;margin:6px 0 8px;color:var(--pine)}
.step p{font-size:.92rem;font-weight:300;color:rgba(22,19,15,.66)}
body.lang-fa .step p{font-weight:400}
@media(max-width:760px){.steps{grid-template-columns:1fr;gap:30px}}

/* pull quote */
.pquote{background:var(--pine);color:var(--cream);text-align:center}
.pquote p{font-family:var(--serif);font-size:clamp(1.6rem,4vw,2.6rem);font-weight:400;max-width:24ch;margin:0 auto;line-height:1.4}
body.lang-fa .pquote p{font-family:'Vazirmatn',sans-serif;font-weight:500;line-height:1.7}

/* two-column text */
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,80px)}
.twocol h2{font-size:clamp(1.9rem,4.4vw,2.8rem);color:var(--ink)}
.twocol p{font-weight:300;color:rgba(22,19,15,.72);margin-bottom:16px}
body.lang-fa .twocol p{font-weight:400}
@media(max-width:760px){.twocol{grid-template-columns:1fr;gap:24px}}

/* investment split */
.invest{background:var(--pine);color:var(--cream);position:relative;overflow:hidden}
.invest .inner{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,80px);align-items:center}
.invest .eyebrow{color:var(--brass);display:block;margin-bottom:18px}
.invest h2{font-size:clamp(2rem,5vw,3.5rem);color:var(--cream);margin-bottom:22px}
.invest p{color:rgba(244,242,236,.85);font-weight:300;font-size:1.06rem;max-width:46ch}
body.lang-fa .invest p{font-weight:400}
.invest-photo{position:relative;aspect-ratio:4/5;background-size:cover;background-position:center;border:1px solid rgba(176,138,79,.5)}
.invest-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,59,48,.2),rgba(30,59,48,.62));mix-blend-mode:multiply}
.invest-photo::after{content:"";position:absolute;inset:12px;border:1px solid rgba(244,242,236,.25)}
.invest-photo .cap{position:absolute;bottom:22px;left:0;right:0;text-align:center;z-index:2;font-size:.74rem;letter-spacing:.14em;color:rgba(244,242,236,.85)}
body.lang-fa .invest-photo .cap{letter-spacing:.04em}
@media(max-width:780px){.invest .inner{grid-template-columns:1fr}.invest-photo{max-width:360px}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;margin-top:30px;font-size:.86rem;letter-spacing:.05em;border:1px solid currentColor;padding:14px 28px;border-radius:100px;transition:.25s}
.btn.on-dark{color:var(--cream);border-color:rgba(244,242,236,.42)}
.btn.on-dark:hover{background:var(--brass);border-color:var(--brass);color:var(--forest)}
.btn.on-light{color:var(--pine);border-color:rgba(44,85,69,.4)}
.btn.on-light:hover{background:var(--pine);color:var(--cream);border-color:var(--pine)}
.btn .arw{transition:transform .25s}
.btn:hover .arw{transform:translateX(4px)}
[dir=rtl] .btn:hover .arw{transform:translateX(-4px)}

/* partner */
.partner{text-align:center;max-width:60ch;margin:0 auto}
.partner .eyebrow{display:block;margin-bottom:22px}
.partner .name{font-family:var(--serif);font-size:clamp(1.9rem,4.6vw,2.9rem);color:var(--pine);direction:ltr}
.partner .sub{font-weight:300;color:rgba(22,19,15,.6);margin-top:14px}
body.lang-fa .partner .sub{font-weight:400}
.partner .divider{width:1px;height:54px;background:rgba(22,19,15,.2);margin:36px auto 0}

/* cta */
.cta{text-align:center}
.cta h2{font-size:clamp(2.3rem,6vw,4.2rem);color:var(--ink);margin-bottom:28px}

/* related */
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(22,19,15,.12);border:1px solid rgba(22,19,15,.12)}
.related a{background:var(--cream);padding:28px 26px;transition:background .3s,color .3s}
.related a:hover{background:var(--pine);color:var(--cream)}
.related a:hover .rk{color:rgba(244,242,236,.7)}
.related .rk{font-size:.72rem;letter-spacing:.16em;color:var(--brass);transition:color .3s}
.related .rv{font-family:var(--serif);font-size:1.3rem;margin-top:8px}
body.lang-fa .related .rv{font-family:'Vazirmatn',sans-serif;font-weight:600}
@media(max-width:760px){.related{grid-template-columns:1fr}}

/* contact form */
.cform{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cform .full{grid-column:1/-1}
.cform label{display:block;font-size:.74rem;letter-spacing:.1em;color:var(--pine);margin-bottom:8px;text-transform:uppercase}
body.lang-fa .cform label{letter-spacing:0}
.cform input,.cform textarea{width:100%;background:transparent;border:1px solid rgba(22,19,15,.22);padding:14px 16px;font:inherit;color:var(--ink);border-radius:2px;transition:border-color .2s}
.cform input:focus,.cform textarea:focus{outline:none;border-color:var(--brass)}
.cform textarea{min-height:140px;resize:vertical}
.cform button{grid-column:1/-1;justify-self:start;background:var(--pine);color:var(--cream);border:none;cursor:pointer;font:inherit;padding:15px 34px;border-radius:100px;letter-spacing:.05em;transition:background .25s}
.cform button:hover{background:var(--brass);color:var(--forest)}
.cinfo p{margin-bottom:8px;color:rgba(22,19,15,.72)}
.cinfo .k{font-size:.72rem;letter-spacing:.16em;color:var(--brass);text-transform:uppercase;margin-top:22px}
body.lang-fa .cinfo .k{letter-spacing:0}
@media(max-width:680px){.cform{grid-template-columns:1fr}}

/* footer */
footer{background:var(--forest);color:rgba(244,242,236,.72);padding:66px 0 40px;font-size:.86rem;font-weight:300}
body.lang-fa footer{font-weight:400}
.foot-top{display:flex;justify-content:space-between;gap:44px;flex-wrap:wrap;border-bottom:1px solid rgba(176,138,79,.35);padding-bottom:36px;margin-bottom:26px}
footer .logo span{color:var(--cream)}
.foot-name{margin-top:16px;max-width:32ch}
.foot-col h4{font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin-bottom:14px;font-weight:500}
body.lang-fa .foot-col h4{letter-spacing:.05em;font-family:'Vazirmatn',sans-serif}
.foot-col p{line-height:2}
.foot-col a:hover{color:var(--cream)}
.foot-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.76rem;opacity:.7}

@media(max-width:760px){.hero{height:220vh}.imgband{background-attachment:scroll;min-height:62vh}.phero{min-height:70vh}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* Meinhardt partner lockup (about page) */
.partner-lockup{max-width:64ch;margin:0 auto;text-align:center}
.partner-lockup .eyebrow{display:block;margin-bottom:16px}
.partner-lockup h2{font-size:clamp(1.9rem,4.4vw,2.8rem);color:var(--pine);margin-bottom:16px}
.partner-lockup p{font-weight:300;color:rgba(22,19,15,.72);max-width:52ch;margin:0 auto 30px}
body.lang-fa .partner-lockup p{font-weight:400}
.ml-logo{display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid rgba(22,19,15,.12);padding:26px 40px;border-radius:3px;box-shadow:0 14px 40px -22px rgba(22,19,15,.4)}
.ml-logo img{display:block;width:clamp(200px,34vw,300px);height:auto}
.founded-chip{display:inline-block;font-size:.72rem;letter-spacing:.16em;color:var(--brass);border:1px solid rgba(176,138,79,.5);border-radius:100px;padding:6px 16px;margin-bottom:22px}
body.lang-fa .founded-chip{letter-spacing:.02em}
