/* MINCAT Industrial Solutions — mincatis.com — design & front-end by Liveupx (liveupx.com) */
/* MINCAT Industrial Solutions — design system
   Palette: deep navy + off-white paper + restrained green (per brief §20).
   Type: Archivo (display) / IBM Plex Sans (text). */

:root{
  --navy:#0B1F3F; --navy-2:#122B52; --navy-deep:#071633;
  --ink:#17223B; --muted:#5B6678; --faint:#8C96A8;
  --paper:#F5F4EF; --paper-2:#ECEBE4; --white:#FFFFFF;
  --line:#DDE1E7; --line-dark:rgba(255,255,255,.14);
  --green:#1F7A55; --green-ink:#145C40; --green-tint:#E3F0E9;
  --font-display:"Archivo",ui-sans-serif,system-ui,"Segoe UI",Roboto,Arial,sans-serif;
  --font-text:"IBM Plex Sans",ui-sans-serif,system-ui,"Segoe UI",Roboto,Arial,sans-serif;
  --gutter:clamp(20px,5vw,72px); --max:1360px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --header-h:78px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto} *,*::before,*::after{animation:none!important;transition:none!important}}
body{margin:0;font-family:var(--font-text);font-size:17px;line-height:1.6;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{margin:0;padding:0;list-style:none}
p{margin:0 0 1.1em}
:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--green);color:#fff;padding:.6rem 1rem;z-index:1000}
.skip:focus{left:12px;top:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- type ---------- */
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.05;letter-spacing:-.02em;margin:0 0 .5em;color:var(--navy)}
h1{font-size:clamp(2.5rem,5.6vw,5rem);font-weight:700;letter-spacing:-.03em}
h2{font-size:clamp(1.9rem,3.6vw,3.15rem)}
h3{font-size:clamp(1.25rem,1.9vw,1.6rem);line-height:1.15;letter-spacing:-.01em}
h4{font-size:1.1rem;line-height:1.3;letter-spacing:0}
.lead{font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.5;color:var(--muted);max-width:44ch;font-weight:400}
.statement{font-family:var(--font-display);font-size:clamp(1.5rem,2.7vw,2.4rem);line-height:1.25;letter-spacing:-.02em;font-weight:500;max-width:28ch;color:var(--navy)}
.eyebrow{font-family:var(--font-display);font-size:.9rem;font-weight:600;color:var(--green);letter-spacing:0;margin:0 0 .9rem;display:flex;align-items:center;gap:.7rem}
.eyebrow::before{content:"";width:28px;height:2px;background:currentColor;flex:none}
.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4,.on-dark .statement{color:#fff}
.on-dark{color:rgba(255,255,255,.82)}
.on-dark .lead{color:rgba(255,255,255,.72)}
.on-dark .eyebrow{color:#7FCFA6}
.prose{max-width:66ch}
.prose p{font-size:1.06rem}
.prose h3{margin-top:2.2rem}
.prose ul{padding-left:1.2rem;list-style:disc;margin:0 0 1.2rem}
.prose li{margin:.35rem 0}
.prose a{color:var(--green-ink);text-decoration:underline;text-underline-offset:3px}
.small{font-size:.92rem;color:var(--muted)}

/* ---------- layout ---------- */
.wrap{width:min(100% - 2*var(--gutter),var(--max));margin-inline:auto}
.section{padding:clamp(4rem,9vw,8.5rem) 0}
.section.tight{padding:clamp(3rem,6vw,5.5rem) 0}
.bg-paper{background:var(--paper)}
.bg-navy{background:var(--navy);color:rgba(255,255,255,.82)}
.bg-deep{background:var(--navy-deep)}
.grid{display:grid;gap:clamp(1.5rem,3vw,3rem)}
.g2{grid-template-columns:repeat(2,1fr)} .g3{grid-template-columns:repeat(3,1fr)} .g4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,6vw,7rem);align-items:start}
.split.rev{grid-template-columns:7fr 5fr}
.head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,5rem);align-items:end;margin-bottom:clamp(2.5rem,5vw,4.5rem)}
.head .lead{max-width:none}
@media(max-width:980px){.g3,.g4{grid-template-columns:repeat(2,1fr)} .split,.split.rev,.head{grid-template-columns:1fr}}
@media(max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr}}
.rule{border:0;border-top:1px solid var(--line);margin:0}
.on-dark .rule{border-color:var(--line-dark)}

/* ---------- buttons & links ---------- */
.btn{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--font-display);font-weight:600;font-size:1rem;padding:.95rem 1.5rem;border:1.5px solid var(--navy);color:var(--navy);background:transparent;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);line-height:1}
.btn svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn.primary{background:var(--green);border-color:var(--green);color:#fff}
.btn.primary:hover{background:var(--green-ink);border-color:var(--green-ink)}
.btn.ghost:hover{background:var(--navy);color:#fff}
.on-dark .btn{border-color:rgba(255,255,255,.55);color:#fff}
.on-dark .btn.ghost:hover{background:#fff;color:var(--navy);border-color:#fff}
.on-dark .btn.primary{border-color:var(--green)}
.link{font-family:var(--font-display);font-weight:600;color:var(--green-ink);display:inline-flex;align-items:center;gap:.5rem;padding-bottom:2px;position:relative}
.link::after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1.5px;background:currentColor;transform:scaleX(.35);transform-origin:left;transition:transform .35s var(--ease)}
.link:hover::after{transform:scaleX(1)}
.on-dark .link{color:#9EDCBF}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}

/* ---------- header ---------- */
.header{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--header-h);display:flex;align-items:center;background:transparent;transition:background .35s var(--ease),box-shadow .35s var(--ease),color .35s}
.header .wrap{display:flex;align-items:center;justify-content:space-between;gap:2rem}
.header.solid,.header.open,.header.mega-open,body.light-header .header{background:rgba(255,255,255,.96);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line)}
.header:not(.solid):not(.open):not(.mega-open){color:#fff}
body.light-header .header:not(.open){color:var(--navy)}
.brand{display:flex;align-items:center;gap:.75rem;font-family:var(--font-display);font-weight:700;letter-spacing:.06em;font-size:1.32rem;color:inherit;line-height:1}
.brand svg{width:40px;height:40px}
.brand small{display:block;font-size:.62rem;font-weight:500;letter-spacing:.16em;opacity:.7;margin-top:3px}
.nav{display:flex;align-items:center;gap:.25rem}
.nav>li{position:relative}
.nav>li>a,.nav>li>button{display:inline-flex;align-items:center;gap:.35rem;padding:.7rem .95rem;font-family:var(--font-display);font-weight:500;font-size:.98rem;color:inherit;border-bottom:2px solid transparent}
.nav>li>button svg{width:14px;height:14px;transition:transform .3s}
.nav>li.is-open>button svg{transform:rotate(180deg)}
.nav>li>a[aria-current]{border-bottom-color:var(--green)}
.nav .cta{margin-left:.8rem;padding:.7rem 1.1rem;font-size:.95rem}
.header .btn{border-color:var(--green);background:var(--green);color:#fff}
.header .btn:hover{background:var(--green-ink)}
.burger{display:none;width:44px;height:44px;place-items:center}
.burger span{display:block;width:22px;height:2px;background:currentColor;margin:5px 0;transition:transform .3s,opacity .3s}
.header.open .burger span:nth-child(1){transform:translateY(12px) rotate(45deg)}
.header.open .burger span:nth-child(2){opacity:0}
.header.open .burger span:nth-child(3){transform:translateY(-12px) rotate(-45deg)}

/* mega menu */
.mega{position:absolute;left:0;top:100%;background:#fff;color:var(--ink);box-shadow:0 30px 60px rgba(7,22,51,.18);border-top:1px solid var(--line);width:min(880px,calc(100vw - 2*var(--gutter)));padding:2rem;display:none;grid-template-columns:1.1fr 2fr;gap:2.5rem;left:-40vw;transform:translateX(0)}
.nav>li.is-open>.mega{display:grid}
.mega-intro h3{font-size:1.35rem;margin-bottom:.6rem}
.mega-intro p{color:var(--muted);font-size:.98rem}
.mega-list{display:grid;grid-template-columns:1fr 1fr;gap:.2rem 1.5rem}
.mega-list a{display:block;padding:.55rem .6rem .55rem 0;border-bottom:1px solid var(--line);font-size:.96rem;font-weight:500;color:var(--navy);transition:color .2s,padding-left .3s var(--ease)}
.mega-list a:hover{color:var(--green-ink);padding-left:.4rem}
@media(max-width:1080px){
  .burger{display:grid}
  .nav{position:fixed;inset:var(--header-h) 0 0 0;background:#fff;color:var(--navy);flex-direction:column;align-items:stretch;padding:1rem var(--gutter) 3rem;overflow:auto;display:none}
  .header.open .nav{display:flex}
  .nav>li>a,.nav>li>button{width:100%;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--line);font-size:1.15rem}
  .mega{position:static;box-shadow:none;border:0;width:auto;padding:.5rem 0 1rem;grid-template-columns:1fr;gap:1rem}
  .mega-intro{display:none}
  .mega-list{grid-template-columns:1fr}
  .nav .cta{margin:1.5rem 0 0;justify-content:center}
}

/* ---------- hero ---------- */
.hero{position:relative;min-height:min(92vh,900px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--navy-deep)}
.hero .media{position:absolute;inset:0}
.hero .media img,.hero .media video{width:100%;height:100%;object-fit:cover}
.hero .media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,22,51,.35) 0%,rgba(7,22,51,.15) 35%,rgba(7,22,51,.82) 100%)}
.hero .wrap{position:relative;padding:clamp(7rem,14vw,10rem) 0 clamp(3rem,6vw,5rem)}
.hero h1{color:#fff;max-width:14ch;margin-bottom:1.2rem;opacity:0;transform:translateY(24px);animation:rise 1s var(--ease) .15s forwards}
.hero .lead{color:rgba(255,255,255,.82);max-width:56ch;opacity:0;animation:rise 1s var(--ease) .4s forwards}
.hero .actions{opacity:0;animation:rise 1s var(--ease) .6s forwards}
@keyframes rise{to{opacity:1;transform:none}}
.hero .scrollhint{position:absolute;right:var(--gutter);bottom:2.4rem;font-size:.8rem;letter-spacing:.08em;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:.6rem}
.hero .scrollhint::after{content:"";width:1px;height:44px;background:linear-gradient(rgba(255,255,255,.7),transparent)}
.hero.short{min-height:min(66vh,640px)}
.hero.short h1{font-size:clamp(2.3rem,4.8vw,4.2rem)}
.crumbs{display:flex;flex-wrap:wrap;gap:.4rem;font-size:.86rem;color:rgba(255,255,255,.72);margin-bottom:1.2rem;opacity:0;animation:rise .8s var(--ease) .05s forwards}
.crumbs a:hover{color:#fff}
.crumbs li+li::before{content:"/";margin-right:.4rem;opacity:.5}

/* ---------- home: intro ---------- */
.intro .wrap{display:grid;grid-template-columns:7fr 5fr;gap:clamp(2rem,6vw,7rem);align-items:start}
.intro .facts{display:grid;gap:1.4rem;border-left:1px solid var(--line);padding-left:clamp(1.5rem,3vw,2.5rem)}
.intro .facts li strong{display:block;font-family:var(--font-display);font-weight:600;color:var(--navy);font-size:1.08rem;margin-bottom:.2rem}
.intro .facts li{color:var(--muted);font-size:1rem}
@media(max-width:980px){.intro .wrap{grid-template-columns:1fr}}

/* ecosystem diagram */
.eco{margin-top:clamp(2rem,5vw,4rem)}
.eco svg{width:100%;height:auto;font-family:var(--font-display)}
.eco .node rect{fill:#fff;stroke:var(--line);stroke-width:1.2}
.eco .node text{fill:var(--navy);font-size:15px;font-weight:600}
.eco .node.sub text{fill:var(--muted);font-weight:400;font-size:12.5px}
.eco .hub rect{fill:var(--navy);stroke:var(--navy)}
.eco .hub text{fill:#fff;font-size:18px;font-weight:700;letter-spacing:.06em}
.eco .hub text.s{fill:#9EDCBF;font-size:11.5px;font-weight:500;letter-spacing:.04em}
.eco .client rect{fill:var(--green-tint);stroke:var(--green)}
.eco .wire{fill:none;stroke:var(--green);stroke-width:1.6;stroke-dasharray:600;stroke-dashoffset:600}
.eco.in .wire{animation:draw 1.6s var(--ease) forwards}
.eco .wire.w2{animation-delay:.25s}.eco .wire.w3{animation-delay:.4s}.eco .wire.w4{animation-delay:.55s}.eco .wire.w5{animation-delay:.7s}.eco .wire.w6{animation-delay:.85s}.eco .wire.w7{animation-delay:1s}
@keyframes draw{to{stroke-dashoffset:0}}
.eco .dot{fill:var(--green)}

/* ---------- tiles (solutions / industries) ---------- */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.tile{position:relative;display:block;min-height:340px;overflow:hidden;background:var(--navy-deep);color:#fff;isolation:isolate}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),opacity .6s;opacity:.92}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,22,51,0) 30%,rgba(7,22,51,.9) 100%);z-index:1}
.tile .t{position:absolute;left:0;right:0;bottom:0;padding:1.6rem;z-index:2}
.tile h3{color:#fff;margin:0 0 .35rem;font-size:1.35rem}
.tile p{margin:0;color:rgba(255,255,255,.78);font-size:.95rem;max-width:34ch;max-height:0;overflow:hidden;opacity:0;transition:max-height .6s var(--ease),opacity .5s,margin .4s}
.tile .bar{display:block;width:36px;height:2px;background:var(--green);margin-bottom:.9rem;transition:width .5s var(--ease)}
.tile:hover img,.tile:focus-visible img{transform:scale(1.05)}
.tile:hover p,.tile:focus-visible p{max-height:8rem;opacity:1;margin-top:.5rem}
.tile:hover .bar{width:72px}
.tiles .tile.wide{grid-column:span 2}
.tiles .tile.tall{grid-row:span 2;min-height:520px}
.tiles.compact .tile{min-height:260px}
.tiles.compact .tile h3{font-size:1.15rem}
@media(max-width:980px){.tiles{grid-template-columns:repeat(2,1fr)} .tiles .tile.wide{grid-column:span 2} .tiles .tile.tall{grid-row:auto;min-height:340px}}
@media(max-width:620px){.tiles{grid-template-columns:1fr} .tiles .tile.wide{grid-column:auto} .tile p{max-height:8rem;opacity:1;margin-top:.5rem} .tile{min-height:280px}}

/* ---------- pathway rail (new plant setup) ---------- */
.pathway{position:relative}
.rail{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;padding:2rem 0 1.5rem;margin:0 calc(-1*var(--gutter));padding-inline:var(--gutter);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent;position:relative}
.rail::before{content:"";position:absolute;left:var(--gutter);right:var(--gutter);top:calc(2rem + 22px);height:1px;background:rgba(255,255,255,.22)}
.stage{flex:0 0 clamp(230px,22vw,290px);scroll-snap-align:start;padding-right:1.6rem;position:relative}
.stage .n{width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);display:grid;place-items:center;font-family:var(--font-display);font-weight:600;font-size:.95rem;background:var(--navy);color:#fff;position:relative;z-index:1;transition:background .3s,border-color .3s}
.stage:hover .n{background:var(--green);border-color:var(--green)}
.stage h4{color:#fff;margin:1.2rem 0 .4rem;font-size:1.05rem}
.stage p{font-size:.92rem;color:rgba(255,255,255,.7);margin:0}
.stage .who{display:inline-block;margin-top:.7rem;font-size:.78rem;padding:.2rem .55rem;border:1px solid rgba(255,255,255,.28);color:rgba(255,255,255,.85)}
.stage .who.p{border-color:rgba(158,220,191,.5);color:#9EDCBF}
.rail-nav{display:flex;gap:.6rem;justify-content:flex-end;margin-top:.5rem}
.rail-nav button{width:46px;height:46px;border:1px solid rgba(255,255,255,.35);display:grid;place-items:center;color:#fff;transition:background .25s}
.rail-nav button:hover{background:rgba(255,255,255,.1)}
.rail-nav svg{width:18px;height:18px}
.legend{display:flex;gap:1.5rem;font-size:.85rem;color:rgba(255,255,255,.7);margin-top:1.5rem;flex-wrap:wrap}
.legend span::before{content:"";display:inline-block;width:10px;height:10px;border:1px solid rgba(255,255,255,.5);margin-right:.5rem;vertical-align:middle}
.legend span.p::before{border-color:#9EDCBF;background:rgba(158,220,191,.25)}

/* ---------- industry selector ---------- */
.selector{display:grid;grid-template-columns:5fr 7fr;gap:clamp(1.5rem,4vw,4rem);align-items:stretch}
.selector .list{display:grid;align-content:start}
.selector .list button{text-align:left;width:100%;padding:.85rem 0;border-bottom:1px solid var(--line);font-family:var(--font-display);font-weight:500;font-size:1.08rem;color:var(--muted);display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:color .2s,padding-left .3s var(--ease)}
.selector .list button svg{width:16px;height:16px;opacity:0;transition:opacity .2s,transform .3s var(--ease)}
.selector .list button.is-active,.selector .list button:hover{color:var(--navy)}
.selector .list button.is-active{padding-left:.8rem;border-left:2px solid var(--green);margin-left:-1px}
.selector .list button.is-active svg{opacity:1;transform:translateX(0)}
.selector .stage-img{position:relative;min-height:440px;background:var(--navy-deep);overflow:hidden;color:#fff}
.selector .stage-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s var(--ease),transform 1.4s var(--ease);transform:scale(1.04)}
.selector .stage-img img.is-active{opacity:1;transform:none}
.selector .stage-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,22,51,0) 35%,rgba(7,22,51,.92) 100%)}
.selector .caption{position:absolute;left:0;right:0;bottom:0;padding:2rem;z-index:2}
.selector .caption h3{color:#fff;margin-bottom:.4rem}
.selector .caption p{color:rgba(255,255,255,.8);max-width:52ch;margin-bottom:1rem}
@media(max-width:980px){.selector{grid-template-columns:1fr} .selector .stage-img{min-height:360px}}

/* ---------- process steps ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.step{padding:2rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative}
.step .n{font-family:var(--font-display);font-weight:700;font-size:2.6rem;color:var(--green);line-height:1;letter-spacing:-.03em;margin-bottom:1.4rem}
.step h3{font-size:1.3rem;margin-bottom:.5rem}
.step p{color:var(--muted);font-size:.98rem;margin:0}
.on-dark .steps,.on-dark .step{border-color:var(--line-dark)}
.on-dark .step p{color:rgba(255,255,255,.7)}
@media(max-width:980px){.steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.steps{grid-template-columns:1fr}}

/* ---------- feature list / why ---------- */
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,3rem) clamp(1.5rem,3vw,3.5rem)}
.why li{padding-top:1.2rem;border-top:2px solid var(--navy)}
.why h3{font-size:1.2rem;margin-bottom:.45rem}
.why p{color:var(--muted);font-size:.98rem;margin:0}
.on-dark .why li{border-color:rgba(255,255,255,.5)}
.on-dark .why p{color:rgba(255,255,255,.7)}
@media(max-width:980px){.why{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.why{grid-template-columns:1fr}}

/* ---------- network ---------- */
.network-figure{position:relative;overflow:hidden;min-height:420px}
.network-figure img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.partners{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1.5rem}
.partners li{display:flex;gap:.7rem;align-items:flex-start;padding:.6rem 0;border-bottom:1px solid var(--line);font-size:.98rem}
.partners li::before{content:"";flex:none;width:8px;height:8px;background:var(--green);margin-top:.55rem}
@media(max-width:620px){.partners{grid-template-columns:1fr}}

/* ---------- CTA band ---------- */
.cta-band{position:relative;overflow:hidden;color:#fff;background:var(--navy-deep)}
.cta-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.32}
.cta-band .wrap{position:relative;padding:clamp(4rem,9vw,8rem) 0;display:grid;grid-template-columns:7fr 5fr;gap:3rem;align-items:center}
.cta-band h2{color:#fff;max-width:16ch}
.cta-band p{color:rgba(255,255,255,.78);max-width:46ch}
.cta-band .actions{justify-content:flex-end}
@media(max-width:980px){.cta-band .wrap{grid-template-columns:1fr} .cta-band .actions{justify-content:flex-start}}

/* ---------- footer ---------- */
.footer{background:var(--navy-deep);color:rgba(255,255,255,.72);padding:clamp(3.5rem,7vw,6rem) 0 2.5rem;font-size:.95rem}
.footer .top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2.5rem;padding-bottom:3rem;border-bottom:1px solid var(--line-dark)}
.footer .brand{color:#fff;margin-bottom:1.2rem}
.footer p{max-width:36ch}
.footer h4{color:#fff;font-size:.95rem;margin-bottom:1rem;letter-spacing:.02em}
.footer li{margin:.45rem 0}
.footer a:hover{color:#fff}
.footer .bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.6rem;font-size:.86rem;color:rgba(255,255,255,.5)}
.footer .bottom ul{display:flex;gap:1.3rem;flex-wrap:wrap}
@media(max-width:980px){.footer .top{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.footer .top{grid-template-columns:1fr}}

/* ---------- content pages ---------- */
.page-intro{padding:clamp(3.5rem,7vw,6rem) 0 clamp(2rem,4vw,3rem)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem)}
@media(max-width:980px){.two-col{grid-template-columns:1fr}}
.figure{overflow:hidden;position:relative}
.figure img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.figure.tall img{aspect-ratio:3/4}
.figure.wide img{aspect-ratio:16/8}
.figure figcaption{font-size:.82rem;color:var(--faint);margin-top:.6rem}
.checklist{display:grid;gap:.7rem}
.checklist li{display:flex;gap:.9rem;align-items:flex-start;font-size:1.02rem}
.checklist li::before{content:"";flex:none;width:18px;height:18px;margin-top:.3rem;background:var(--green-tint);border:1.5px solid var(--green);border-radius:50%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23145C40' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-size:12px;background-position:center;background-repeat:no-repeat}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chips li{padding:.42rem .8rem;border:1px solid var(--line);font-size:.92rem;color:var(--ink);background:#fff;transition:border-color .2s,color .2s}
.chips li a{display:block}
.chips li:hover{border-color:var(--green);color:var(--green-ink)}
.on-dark .chips li{background:transparent;border-color:var(--line-dark);color:rgba(255,255,255,.85)}
.on-dark .chips li:hover{border-color:#9EDCBF;color:#fff}

/* role split: what MINCAT does vs partners deliver */
.role{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.role>div{padding:2rem;background:#fff;border:1px solid var(--line)}
.role>div.mincat{background:var(--navy);color:rgba(255,255,255,.85);border-color:var(--navy)}
.role h3{font-size:1.2rem;margin-bottom:1rem}
.role .mincat h3{color:#fff}
.role li{padding:.5rem 0;border-top:1px solid var(--line);font-size:.98rem}
.role .mincat li{border-color:var(--line-dark)}
.role .tag{display:inline-block;font-size:.78rem;padding:.2rem .55rem;border:1px solid currentColor;margin-bottom:1rem;opacity:.85}
@media(max-width:820px){.role{grid-template-columns:1fr}}

/* considerations */
.considerations{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}
.considerations li{padding:1.6rem;background:var(--paper);border-top:2px solid var(--navy)}
.considerations h4{margin-bottom:.4rem}
.considerations p{margin:0;color:var(--muted);font-size:.96rem}
@media(max-width:820px){.considerations{grid-template-columns:1fr}}

/* portfolio (solution pages) */
.portfolio{columns:3;column-gap:2.5rem}
.portfolio li{break-inside:avoid;padding:.45rem 0;border-bottom:1px solid var(--line);font-size:.98rem}
@media(max-width:980px){.portfolio{columns:2}}
@media(max-width:620px){.portfolio{columns:1}}

/* FAQ */
.faq{max-width:840px}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:1.3rem 0;font-family:var(--font-display);font-weight:600;font-size:1.1rem;color:var(--navy);display:flex;justify-content:space-between;gap:1.5rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:12px;height:12px;border-right:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(45deg);transition:transform .3s var(--ease);margin-right:.3rem}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq .a{padding:0 0 1.4rem;color:var(--muted);max-width:66ch}

/* related links */
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.related a{display:block;padding:1.4rem 1.4rem 1.4rem;border:1px solid var(--line);background:#fff;transition:border-color .25s,transform .35s var(--ease)}
.related a:hover{border-color:var(--green);transform:translateY(-3px)}
.related a strong{display:block;font-family:var(--font-display);font-weight:600;color:var(--navy);font-size:1.05rem;margin-bottom:.3rem}
.related a span{font-size:.9rem;color:var(--muted)}
@media(max-width:980px){.related{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.related{grid-template-columns:1fr}}

/* sticky sub-nav on long pages */
.subnav{position:sticky;top:var(--header-h);z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.subnav ul{display:flex;gap:1.8rem;overflow-x:auto;padding:.9rem 0;font-family:var(--font-display);font-weight:500;font-size:.92rem;white-space:nowrap;scrollbar-width:none}
.subnav a{color:var(--muted);padding-bottom:.2rem;border-bottom:2px solid transparent}
.subnav a:hover,.subnav a.is-active{color:var(--navy);border-color:var(--green)}

/* values (about) */
.values{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line)}
.values li{padding:1.8rem 1.6rem 1.8rem 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;gap:1.2rem}
.values li span{font-family:var(--font-display);font-weight:600;color:var(--green);font-size:.95rem;padding-top:.15rem;min-width:2.2rem}
.values h3{font-size:1.15rem;margin-bottom:.3rem}
.values p{margin:0;color:var(--muted);font-size:.96rem}
@media(max-width:820px){.values{grid-template-columns:1fr}}

/* ---------- contact / form ---------- */
.contact-grid{display:grid;grid-template-columns:4fr 7fr;gap:clamp(2rem,6vw,6rem);align-items:start}
@media(max-width:980px){.contact-grid{grid-template-columns:1fr}}
.contact-side .item{padding:1.2rem 0;border-top:1px solid var(--line)}
.contact-side .item strong{display:block;font-family:var(--font-display);font-weight:600;color:var(--navy);margin-bottom:.2rem}
.contact-side a{color:var(--green-ink)}
form.enquiry{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem 1.4rem}
form.enquiry .full{grid-column:1/-1}
form.enquiry fieldset{border:0;padding:0;margin:0;grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:1.2rem 1.4rem}
form.enquiry legend{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--navy);margin:1.2rem 0 .8rem;padding:0;grid-column:1/-1;width:100%;padding-top:1.4rem;border-top:1px solid var(--line)}
.field label{display:block;font-size:.88rem;font-weight:500;color:var(--ink);margin-bottom:.4rem}
.field label span{color:var(--green);margin-left:.2rem}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:1rem;padding:.8rem .9rem;border:1px solid #C9CFD8;background:#fff;color:var(--ink);border-radius:0;transition:border-color .2s,box-shadow .2s}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%235B6678' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;background-size:14px;padding-right:2.2rem}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 3px rgba(31,122,85,.15)}
.field textarea{min-height:150px;resize:vertical}
.field input[type=file]{padding:.6rem;font-size:.92rem}
.field .hint{font-size:.82rem;color:var(--faint);margin-top:.35rem}
.field.error input,.field.error select,.field.error textarea{border-color:#B3261E}
.field .msg{display:none;font-size:.82rem;color:#B3261E;margin-top:.35rem}
.field.error .msg{display:block}
.consent{display:flex;gap:.8rem;align-items:flex-start;font-size:.9rem;color:var(--muted);grid-column:1/-1}
.consent input{width:18px;height:18px;margin-top:.2rem;accent-color:var(--green)}
.consent a{color:var(--green-ink);text-decoration:underline}
.hp{position:absolute;left:-9999px}
.form-status{grid-column:1/-1;padding:1rem 1.2rem;border:1px solid var(--line);display:none;font-size:.95rem}
.form-status.ok{display:block;border-color:var(--green);background:var(--green-tint);color:var(--green-ink)}
.form-status.err{display:block;border-color:#B3261E;background:#FBEAE9;color:#7A1A14}
@media(max-width:620px){form.enquiry,form.enquiry fieldset{grid-template-columns:1fr}}

/* ---------- legal ---------- */
.legal{display:grid;grid-template-columns:260px 1fr;gap:clamp(2rem,5vw,5rem)}
.legal nav{position:sticky;top:calc(var(--header-h) + 2rem);align-self:start}
.legal nav a{display:block;padding:.45rem 0;font-size:.92rem;color:var(--muted);border-bottom:1px solid var(--line)}
.legal nav a:hover{color:var(--navy)}
.legal h2{font-size:1.5rem;margin-top:2.4rem;scroll-margin-top:calc(var(--header-h) + 1.5rem)}
.legal table{border-collapse:collapse;width:100%;font-size:.92rem;margin:1rem 0 1.5rem}
.legal th,.legal td{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--line);vertical-align:top}
.legal th{font-family:var(--font-display);font-weight:600;color:var(--navy)}
@media(max-width:820px){.legal{grid-template-columns:1fr} .legal nav{position:static}}

/* ---------- cookie consent ---------- */
.cookie{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:200;max-width:560px;background:#fff;color:var(--ink);box-shadow:0 20px 60px rgba(7,22,51,.28);padding:1.6rem;display:none;border-top:3px solid var(--green)}
.cookie.show{display:block;animation:rise .5s var(--ease)}
.cookie h3{font-size:1.1rem;margin-bottom:.4rem}
.cookie p{font-size:.92rem;color:var(--muted);margin-bottom:1rem}
.cookie .row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.cookie .btn{padding:.7rem 1.1rem;font-size:.92rem}
.cookie .prefs{display:none;margin:.5rem 0 1rem;border-top:1px solid var(--line);padding-top:1rem}
.cookie.manage .prefs{display:block}
.cookie .prefs label{display:flex;gap:.7rem;align-items:flex-start;font-size:.9rem;padding:.4rem 0}
.cookie .prefs input{accent-color:var(--green);margin-top:.25rem}
@media(max-width:620px){.cookie{left:.6rem;right:.6rem;bottom:.6rem;padding:1.2rem}}

/* ---------- 404 ---------- */
.notfound{min-height:70vh;display:grid;place-items:center;text-align:left}

/* ---------- reveal (single subtle use on section heads only) ---------- */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---- QA fixes ---- */
.intro .wrap.eco{display:block}
.steps,.why,.facts,.chips,.crumbs,.mega-list,.nav,.footer ul,.legal nav{list-style:none;margin:0;padding:0}
.hero .btn.ghost,.cta-band .btn.ghost{border-color:rgba(255,255,255,.7);color:#fff;background:rgba(255,255,255,.06);backdrop-filter:blur(4px)}
.hero .btn.ghost:hover,.cta-band .btn.ghost:hover{background:#fff;color:var(--navy);border-color:#fff}
.hero h1{max-width:16ch;font-size:clamp(2.4rem,5.4vw,4.6rem)}
.eco{overflow-x:auto;-webkit-overflow-scrolling:touch}
.eco svg{min-width:720px}
input[type=file]{padding:.45rem}
input[type=file]::file-selector-button{font:inherit;font-size:.85rem;font-weight:500;padding:.45rem .9rem;border:1px solid var(--navy);background:#fff;color:var(--navy);margin-right:.8rem;cursor:pointer}
input[type=file]::file-selector-button:hover{background:var(--navy);color:#fff}
.header.open{backdrop-filter:none;-webkit-backdrop-filter:none;background:#fff}

/* =====================================================================
   v1.1 — glass system, icons, footer, hero video, responsive hardening
   ===================================================================== */
:root{--glass:rgba(255,255,255,.72);--glass-dark:rgba(11,31,63,.55);--glass-line:rgba(255,255,255,.35);--glass-line-dark:rgba(255,255,255,.14)}
.glass,.glass-dark,.glass-panel{-webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%)}
.glass{background:var(--glass);border:1px solid var(--glass-line);box-shadow:0 20px 50px rgba(7,22,51,.12),inset 0 1px 0 rgba(255,255,255,.6)}
.glass-dark{background:var(--glass-dark);border:1px solid var(--glass-line-dark);box-shadow:0 20px 50px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.12)}
.glass-panel{background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.7);box-shadow:0 10px 40px rgba(7,22,51,.08),inset 0 1px 0 #fff}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.glass{background:rgba(255,255,255,.96)}.glass-dark{background:rgba(11,31,63,.9)}.glass-panel{background:#fff}}

/* header, mega, subnav, cookie → glass */
.header.solid,.header.mega-open,body.light-header .header{background:rgba(255,255,255,.78);-webkit-backdrop-filter:blur(22px) saturate(170%);backdrop-filter:blur(22px) saturate(170%);box-shadow:0 1px 0 rgba(11,31,63,.08)}
.mega{background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(26px) saturate(170%);backdrop-filter:blur(26px) saturate(170%);border:1px solid rgba(255,255,255,.7);border-top:1px solid var(--line);box-shadow:0 30px 70px rgba(7,22,51,.18)}
.subnav{background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%)}
.cookie.glass{background:rgba(255,255,255,.86);border-top:3px solid var(--green)}
@media(max-width:1080px){.header.open{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none} .mega{background:transparent;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}}

/* icons */
.ico{width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;color:var(--green);display:inline-block;vertical-align:middle}
.on-dark .ico{color:#9EDCBF}
.why li .ico,.intro .facts li .ico{display:block;margin-bottom:.9rem}
.why li{position:relative}
.why li:hover .ico{color:var(--green-ink)}
.on-dark .why li:hover .ico{color:#fff}
.contact-side .item{display:flex;gap:.9rem;align-items:flex-start}
.contact-side .item .ico{margin-top:.15rem;width:20px;height:20px}
.contact-side.glass-panel{padding:clamp(1.4rem,3vw,2.2rem)}
.contact-side .item:first-of-type{border-top:0}
.btn svg,.rail-nav svg,.nav>li>button svg,.selector .list button svg{flex:none}

/* hero video + poster fallback (no native play overlay, ever) */
.hero .media img.poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s var(--ease);pointer-events:none}
.hero .media video.playing{opacity:1}
video::-webkit-media-controls,video::-webkit-media-controls-panel,video::-webkit-media-controls-enclosure,video::-webkit-media-controls-overlay-play-button,video::-webkit-media-controls-start-playback-button,video::-webkit-media-controls-play-button{display:none!important;-webkit-appearance:none!important;opacity:0!important;pointer-events:none!important}
.hero{flex-direction:column;justify-content:flex-end;align-items:stretch;min-height:min(100vh,960px)}
.hero.short{min-height:min(66vh,640px)}
.hero .wrap{flex:none;width:min(100% - 2*var(--gutter),var(--max));padding:clamp(8rem,14vw,11rem) 0 clamp(2.2rem,4vw,3.5rem)}
.hero .scrollhint{bottom:auto;top:46%;right:calc(var(--gutter) - .6rem);transform:rotate(90deg);transform-origin:right center}
.hero-strip{position:relative;z-index:3;padding:0 var(--gutter) clamp(1.2rem,2.5vw,2rem);opacity:0;animation:rise 1s var(--ease) .85s forwards}
.strip-in{width:min(100%,var(--max));margin-inline:auto;display:grid;grid-template-columns:repeat(4,1fr);color:var(--navy)}
.strip-in>div{display:flex;gap:.9rem;align-items:flex-start;padding:1.1rem 1.3rem;border-right:1px solid rgba(11,31,63,.1);min-width:0}
.strip-in>div:last-child{border-right:0}
.strip-in strong{display:block;font-family:var(--font-display);font-weight:600;font-size:.98rem;line-height:1.2;margin-bottom:.15rem}
.strip-in span{font-size:.84rem;color:var(--muted);line-height:1.35}
.strip-in .ico{color:var(--green-ink);margin-top:.1rem}
@media(max-width:1180px){.strip-in{grid-template-columns:repeat(2,1fr)} .strip-in>div:nth-child(2){border-right:0} .strip-in>div{border-bottom:1px solid rgba(11,31,63,.1)} .strip-in>div:nth-child(n+3){border-bottom:0}}
@media(max-width:700px){.hero .wrap{padding-top:7rem;padding-bottom:1.4rem} .hero .scrollhint{display:none} .strip-in{grid-template-columns:1fr} .strip-in>div{border-right:0;border-bottom:1px solid rgba(11,31,63,.1);padding:.8rem 1rem} .strip-in>div:last-child{border-bottom:0} .strip-in span{display:none}}

/* selector caption + CTA band */
.selector .caption.glass-dark{left:1.2rem;right:1.2rem;bottom:1.2rem;padding:1.5rem 1.6rem}
.cta-band .wrap{grid-template-columns:7fr 5fr}
.cta-card{padding:clamp(1.6rem,3vw,2.6rem);color:#fff}
.cta-card h2{margin-bottom:.8rem}
.cta-card p{margin:0}
@media(max-width:980px){.cta-band .wrap{grid-template-columns:1fr}}

/* ---------- footer (redesign) ---------- */
.footer{position:relative;overflow:hidden;background:linear-gradient(180deg,#0A1B37 0%,#071633 100%);color:rgba(255,255,255,.7);padding:clamp(4rem,8vw,7rem) 0 2rem;font-size:.95rem;isolation:isolate}
.footer::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 80%);-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 80%);pointer-events:none}
.footer .wrap{position:relative;z-index:1}
.footer .brand{color:#fff;margin-bottom:1.4rem}
.footer .brand svg{width:44px;height:44px}
.ft-top{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.9fr);gap:clamp(2rem,5vw,6rem);align-items:start;padding-bottom:clamp(2.5rem,5vw,4rem);border-bottom:1px solid rgba(255,255,255,.1)}
.ft-tag{font-family:var(--font-display);font-weight:600;font-size:clamp(1.25rem,2vw,1.6rem);color:#fff;letter-spacing:-.01em;line-height:1.2;max-width:22ch;margin:0 0 1rem}
.ft-desc{max-width:52ch;margin:0;font-size:.95rem;line-height:1.65}
.ft-contact{padding:clamp(1.4rem,2.6vw,2rem);display:grid;gap:.9rem}
.ft-contact .eyebrow{color:#9EDCBF;margin-bottom:.2rem}
.ft-line{display:flex;gap:.8rem;align-items:flex-start;color:rgba(255,255,255,.85);margin:0;font-size:.95rem;line-height:1.45}
a.ft-line:hover{color:#fff}
.ft-line .ico{width:20px;height:20px;margin-top:.1rem}
.ft-contact .btn{margin-top:.6rem;justify-self:start}
.ft-links{display:grid;grid-template-columns:1fr 1.6fr 1fr;gap:clamp(1.5rem,4vw,4rem);padding:clamp(2.5rem,5vw,4rem) 0}
.ft-links h4{color:#fff;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.1rem;font-weight:600}
.ft-links h4.mt{margin-top:2rem}
.ft-links ul{display:grid;gap:.1rem}
.ft-links ul.two{grid-template-columns:1fr 1fr;column-gap:1.5rem}
.ft-links li{margin:0}
.ft-links a{display:inline-block;padding:.32rem 0;color:rgba(255,255,255,.72);position:relative;transition:color .2s,transform .3s var(--ease)}
.ft-links a::before{content:"";position:absolute;left:-.9rem;top:50%;width:6px;height:6px;background:var(--green);opacity:0;transform:translate(-4px,-50%);transition:opacity .2s,transform .3s var(--ease)}
.ft-links a:hover{color:#fff;transform:translateX(.9rem)}
.ft-links a:hover::before{opacity:1;transform:translate(0,-50%)}
.ft-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.1);font-size:.82rem;color:rgba(255,255,255,.45)}
.ft-bottom p{margin:0;max-width:72ch;line-height:1.55}
.ft-meta{display:flex;align-items:center;gap:1.2rem;flex:none}
.ft-credit{color:rgba(255,255,255,.55);letter-spacing:.02em}
.ft-credit strong{color:#fff;font-weight:600}
.ft-credit:hover strong{color:#9EDCBF}
.ft-up{width:38px;height:38px;border:1px solid rgba(255,255,255,.25);display:grid;place-items:center;color:#fff;transition:background .2s,border-color .2s}
.ft-up:hover{background:var(--green);border-color:var(--green)}
.ft-up .ico{color:#fff;width:16px;height:16px}
.ft-mark{position:absolute;right:-.04em;bottom:-.28em;font-family:var(--font-display);font-weight:700;font-size:clamp(9rem,22vw,20rem);line-height:1;letter-spacing:-.05em;color:rgba(255,255,255,.028);pointer-events:none;user-select:none;z-index:0}
@media(max-width:980px){.ft-top{grid-template-columns:1fr} .ft-links{grid-template-columns:1fr 1fr} .ft-links>div:nth-child(2){grid-column:1/-1;order:3}}
@media(max-width:560px){.ft-links{grid-template-columns:1fr} .ft-links ul.two{grid-template-columns:1fr 1fr} .ft-bottom{flex-direction:column;align-items:flex-start} .ft-mark{font-size:7rem}}

/* ---------- responsive hardening (320px → 4K) ---------- */
html{-webkit-text-size-adjust:100%}
body{overflow-x:hidden}
.wrap{min-width:0}
img{height:auto}
table{width:100%;border-collapse:collapse;font-size:.92rem}
.legal table{display:block;overflow-x:auto}
.prose img,.figure img{width:100%}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px}
@media(max-width:900px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))} .tile.wide{grid-column:span 2} .tile{min-height:280px}}
@media(max-width:560px){.tiles{grid-template-columns:1fr} .tile.wide{grid-column:auto} .tile{min-height:240px} .tile p{max-height:8rem;opacity:1;margin-top:.5rem}}
@media(max-width:980px){.head{grid-template-columns:1fr;align-items:start} .selector{grid-template-columns:1fr} .selector .stage-img{min-height:360px} .split,.two-col{grid-template-columns:1fr!important}}
@media(max-width:620px){.selector .stage-img{min-height:300px} .selector .caption.glass-dark{left:.7rem;right:.7rem;bottom:.7rem;padding:1.1rem} .why{grid-template-columns:1fr} .stage{flex-basis:min(78vw,300px)} .actions{flex-direction:column;align-items:stretch} .actions .btn{justify-content:center} .cta-band .actions{align-items:stretch}}
@media(max-width:420px){:root{--gutter:16px} h1{font-size:clamp(2rem,9vw,2.6rem)} h2{font-size:clamp(1.55rem,7vw,2rem)} .btn{padding:.85rem 1.1rem;font-size:.95rem} .cookie{left:.6rem;right:.6rem;bottom:.6rem;padding:1.1rem} .cookie .row{gap:.4rem} .cookie .btn{flex:1 1 45%;justify-content:center;padding:.6rem .5rem;font-size:.85rem}}
@media(min-width:1800px){:root{--max:1480px} html{font-size:17px}}
@media(min-width:2400px){:root{--max:1640px} html{font-size:18px}}
.mega-list a,.ft-links a,.subnav a{-webkit-tap-highlight-color:transparent}
@media(hover:none){.tile p{max-height:8rem;opacity:1;margin-top:.5rem} .selector .list button svg{opacity:1}}
.footer .ft-desc{max-width:52ch}
.footer .ft-bottom p{max-width:72ch}
.legal .prose{min-width:0;max-width:100%}
.legal .prose table{display:block;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
.legal .prose table th,.legal .prose table td{white-space:normal;min-width:120px}
.legal .prose code{white-space:nowrap}
@media(max-width:820px){.legal{grid-template-columns:1fr} .legal nav{position:static;display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin-bottom:1rem} .legal nav a{border:0;padding:.2rem 0}}
.prose,.legal,.footer p,.ft-line{overflow-wrap:anywhere}

/* ---------- v1.2: About (client copy), offices ---------- */
.mission{margin-top:clamp(2.5rem,5vw,4rem);padding:clamp(1.6rem,3.5vw,2.8rem);display:grid;grid-template-columns:auto 1fr;gap:clamp(1.5rem,4vw,4rem);align-items:center;border-left:3px solid var(--green)}
.mission .eyebrow{margin:0;white-space:nowrap}
.mission-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem 2rem;margin:0;padding:0;list-style:none;counter-reset:m}
.mission-steps li{font-family:var(--font-display);font-weight:500;color:var(--muted);font-size:1.02rem;line-height:1.3;padding-top:.8rem;border-top:1px solid var(--line);position:relative}
.mission-steps li::before{counter-increment:m;content:counter(m,decimal-leading-zero);display:block;font-size:.72rem;letter-spacing:.1em;color:var(--green);margin-bottom:.35rem}
.mission-steps span{display:block;color:var(--navy);font-weight:700;font-size:1.25rem;letter-spacing:-.01em}
@media(max-width:980px){.mission{grid-template-columns:1fr} .mission-steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.mission-steps{grid-template-columns:1fr}}
.chain{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.6rem 0 .6rem;padding:0;list-style:none}
.chain li{padding:.5rem .9rem;border:1px solid var(--navy);color:var(--navy);font-family:var(--font-display);font-weight:600;font-size:.88rem;position:relative}
.chain li:not(:last-child)::after{content:"→";position:absolute;right:-1rem;top:50%;transform:translateY(-50%);color:var(--green);font-size:.9rem}
.chain{gap:.5rem 1.5rem}
.sol-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.sol-card{background:#fff;padding:clamp(1.4rem,2.5vw,2rem);display:flex;flex-direction:column;gap:.6rem;min-height:240px;color:var(--ink);transition:background .3s,transform .3s var(--ease)}
.sol-card:hover{background:var(--paper)}
.sol-card .n{font-family:var(--font-display);font-weight:600;color:var(--green);font-size:.85rem;letter-spacing:.08em}
.sol-card h3{font-size:1.25rem;margin:0}
.sol-card p{margin:0;color:var(--muted);font-size:.95rem;flex:1}
.sol-card .more{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-display);font-weight:600;font-size:.9rem;color:var(--navy);margin-top:.4rem}
.sol-card:hover .more svg{transform:translateX(4px)}
.sol-card .more svg{transition:transform .3s var(--ease)}
@media(max-width:900px){.sol-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.sol-grid{grid-template-columns:1fr} .sol-card{min-height:0}}
.cascade{display:flex;flex-wrap:wrap;gap:.6rem 0;margin:1.8rem 0 0;padding:0;list-style:none;align-items:center}
.cascade li{padding:.55rem .95rem;border:1px solid rgba(255,255,255,.3);font-family:var(--font-display);font-weight:500;font-size:.9rem;color:#fff}
.cascade li:not(:last-child)::after{content:"";display:inline-block;width:1.6rem;height:1px;background:#9EDCBF;vertical-align:middle;margin:0 0 0 .95rem;transform:translateX(.95rem)}
.cascade li:not(:last-child){margin-right:1.6rem}
.cascade li:last-child{background:var(--green);border-color:var(--green)}
.ind-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 2rem;margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.ind-grid a{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line);font-family:var(--font-display);font-weight:500;color:var(--navy);transition:color .2s,padding-left .3s var(--ease)}
.ind-grid a svg{opacity:0;transition:opacity .2s,transform .3s var(--ease);transform:translateX(-6px);color:var(--green)}
.ind-grid a:hover{color:var(--green-ink);padding-left:.4rem}
.ind-grid a:hover svg{opacity:1;transform:none}
@media(max-width:900px){.ind-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.ind-grid{grid-template-columns:1fr} .ind-grid a svg{opacity:1;transform:none}}
.roles{display:grid;gap:.5rem;margin:1.2rem 0 0;padding:0;list-style:none}
.roles li{padding:.8rem 1rem;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.04);font-family:var(--font-display);font-weight:500;color:#fff;display:flex;gap:.8rem;align-items:center}
.roles li::before{content:"";width:8px;height:8px;background:var(--green);flex:none}
.on-dark h3.sub{color:#fff;margin-top:2rem;font-size:1.25rem}
.commitment{padding:clamp(1.8rem,4vw,3.2rem);display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,5vw,5rem);align-items:center;border-left:3px solid var(--green)}
.commitment .prose{max-width:60ch}
.commitment .tagline{font-family:var(--font-display);font-weight:700;font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.15;letter-spacing:-.02em;color:var(--navy);text-transform:uppercase;margin:0;border-left:1px solid var(--line);padding-left:clamp(1.5rem,3vw,3rem)}
@media(max-width:820px){.commitment{grid-template-columns:1fr} .commitment .tagline{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:1.5rem}}
.offices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin:0;padding:0;list-style:none}
.office{padding:clamp(1.4rem,2.5vw,2rem);display:flex;gap:1rem;align-items:flex-start;background:#fff}
.office.primary{border-top:3px solid var(--green)}
.office h3{font-size:1.05rem;margin:0 0 .5rem}
.office address{font-style:normal;color:var(--muted);font-size:.95rem;line-height:1.55;margin-bottom:.6rem}
.office a{display:block;color:var(--green-ink);font-weight:500;font-size:.95rem;padding:.15rem 0}
.on-dark .office{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.15)}
.on-dark .office h3{color:#fff}.on-dark .office address{color:rgba(255,255,255,.7)}.on-dark .office a{color:#9EDCBF}
@media(max-width:900px){.offices{grid-template-columns:1fr}}
.contact-side .item address{font-style:normal;display:block}
.ft-line address{font-style:normal;display:inline}
.hero.short h1.long{font-size:clamp(1.9rem,3.6vw,3.3rem);max-width:24ch;line-height:1.1}
.hero.short h1{max-width:20ch}
.sol-card.cta-card-dark{grid-column:span 2;background:var(--navy);color:#fff;justify-content:center}
.sol-card.cta-card-dark h3{color:#fff;font-size:1.15rem;font-weight:500;line-height:1.35;max-width:36ch}
.sol-card.cta-card-dark .more{color:#9EDCBF}
.sol-card.cta-card-dark:hover{background:var(--navy-deep)}
@media(max-width:900px){.sol-card.cta-card-dark{grid-column:span 2}}
@media(max-width:560px){.sol-card.cta-card-dark{grid-column:auto}}

/* =====================================================================
   v1.3 — ecosystem (HTML), flow, projects, reach + world map, why band,
   locations, team, footer v2, experience page, stronger glass
   ===================================================================== */
.glass-dark{background:rgba(11,31,63,.42);border:1px solid rgba(255,255,255,.16);box-shadow:0 24px 60px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.14)}
.glass-panel{background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.85);box-shadow:0 18px 50px rgba(7,22,51,.10),inset 0 1px 0 #fff}
.bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.28}
.on-dark.section{position:relative;background:var(--navy-deep)}
.on-dark.section .wrap{position:relative;z-index:1}
.on-dark.section::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(135deg,rgba(7,22,51,.75) 0%,rgba(11,31,63,.55) 60%,rgba(31,122,85,.28) 100%);pointer-events:none}
.on-dark.section.bg-navy::before{display:none}
.on-dark .eyebrow{color:#9EDCBF}
.on-dark .head .lead{color:rgba(255,255,255,.78)}

/* ---- ecosystem diagram (HTML/CSS, no text overflow possible) ---- */
.eco{overflow:visible;margin-top:clamp(2.5rem,5vw,4.5rem)}
.eco2{display:grid;grid-template-columns:minmax(0,1fr) 56px minmax(0,1.05fr) 96px minmax(0,1.15fr);align-items:center;gap:0}
.eco2-client{padding:1.5rem 1.6rem;border-left:3px solid var(--green);display:grid;gap:.3rem}
.eco2-client .lbl,.eco2-hub .lbl{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green-ink);font-weight:600}
.eco2-client strong{font-family:var(--font-display);font-weight:600;font-size:1.08rem;color:var(--navy);line-height:1.3}
.eco2-client .sub{color:var(--muted);font-size:.92rem}
.eco2-link{position:relative;height:2px;background:var(--green);opacity:0;transform:scaleX(0);transform-origin:left;transition:opacity .4s,transform .8s var(--ease)}
.eco2-link i{position:absolute;right:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--green)}
.eco.in .eco2-link{opacity:1;transform:none}
.eco2-hub{background:var(--navy);color:#fff;padding:1.7rem 1.8rem;display:grid;gap:.35rem;box-shadow:0 30px 60px rgba(7,22,51,.28);position:relative}
.eco2-hub::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.12);pointer-events:none}
.eco2-hub strong{font-family:var(--font-display);font-weight:700;font-size:1.5rem;letter-spacing:.08em}
.eco2-hub span{color:#9EDCBF;font-size:.9rem;letter-spacing:.02em}
.eco2-fan{position:relative;height:100%;min-height:340px}
.eco2-fan svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.eco2-fan .wire{fill:none;stroke:var(--green);stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;opacity:.9}
.eco.in .eco2-fan .wire{animation:draw1 1.4s var(--ease) forwards}
.eco2-fan .w2{animation-delay:.12s}.eco2-fan .w3{animation-delay:.24s}.eco2-fan .w4{animation-delay:.36s}.eco2-fan .w5{animation-delay:.48s}.eco2-fan .w6{animation-delay:.6s}
@keyframes draw1{to{stroke-dashoffset:0}}
.eco2-partners{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.eco2-partners li{display:flex;align-items:center;gap:.8rem;padding:.8rem 1rem;background:#fff;border:1px solid var(--line);font-family:var(--font-display);font-weight:600;color:var(--navy);font-size:.98rem;transition:border-color .25s,transform .35s var(--ease)}
.eco2-partners li:hover{border-color:var(--green);transform:translateX(4px)}
.eco2-partners .ico{color:var(--green)}
@media(max-width:900px){
  .eco2{grid-template-columns:1fr;gap:0;max-width:560px;margin-inline:auto}
  .eco2-link{width:2px;height:40px;margin:0 auto;transform:scaleY(0);transform-origin:top} .eco2-link i{left:-3px;right:auto;top:auto;bottom:-4px}
  .eco2-fan{min-height:0;height:40px;margin:0 auto}
  .eco2-fan svg{display:none} .eco2-fan::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--green)}
  .eco2-partners{grid-template-columns:1fr 1fr;gap:.5rem}
}
@media(max-width:520px){.eco2-partners{grid-template-columns:1fr}}

/* ---- flow (scope / lifecycle stages) ---- */
.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.flow-step{padding:1.4rem 1.4rem 1.5rem;position:relative;display:flex;flex-direction:column;gap:.5rem;min-height:190px;transition:transform .4s var(--ease),border-color .3s}
.flow-step:hover{transform:translateY(-4px);border-color:rgba(158,220,191,.5)}
.flow-step .fn{display:flex;align-items:center;gap:.8rem;margin-bottom:.4rem}
.flow-step .fn span{font-family:var(--font-display);font-weight:600;font-size:.82rem;letter-spacing:.1em;color:#9EDCBF;width:40px;height:40px;border:1px solid rgba(158,220,191,.55);display:grid;place-items:center;flex:none;background:rgba(31,122,85,.18)}
.flow-step .fx{flex:1;height:1px;background:linear-gradient(90deg,rgba(158,220,191,.7),rgba(158,220,191,.1))}
.flow-step h4{color:#fff;margin:0;font-size:1.08rem;line-height:1.25}
.flow-step p{margin:0;color:rgba(255,255,255,.72);font-size:.92rem;line-height:1.5}
.flow-step .ftag{margin-top:auto;padding-top:.8rem;font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:#9EDCBF;display:flex;align-items:center;gap:.5rem}
.flow-step .ftag::before{content:"";width:8px;height:8px;border:1px solid #9EDCBF}
.flow-step.partner .ftag::before{background:#9EDCBF}
.flow-step.partner .fn span{background:rgba(158,220,191,.35);color:#fff}
.legend{display:flex;flex-wrap:wrap;gap:.8rem 2rem;margin-top:1.6rem;font-size:.86rem;color:rgba(255,255,255,.7)}
@media(max-width:1100px){.flow{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.flow{grid-template-columns:repeat(2,minmax(0,1fr))} .flow-step{min-height:0}}
@media(max-width:520px){.flow{grid-template-columns:1fr;gap:.7rem} .flow-step .fx{display:none}}

/* ---- projects ---- */
.projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.project{position:relative;background:#fff;padding:clamp(1.5rem,2.6vw,2.2rem);display:flex;flex-direction:column;gap:.8rem;overflow:hidden;isolation:isolate;transition:background .3s}
.project:hover{background:var(--paper)}
.project .ptop{display:flex;gap:.6rem;flex-wrap:wrap;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.project .pregion{color:var(--green-ink)}
.project .ptype{color:var(--muted)}
.project .ptype::before{content:"·";margin-right:.6rem;color:var(--line)}
.project .pico{color:var(--green);margin-top:.2rem}
.project h3{font-size:1.3rem;margin:0}
.project p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.55;flex:1}
.pfocus{list-style:none;margin:.2rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.pfocus li{font-size:.78rem;padding:.3rem .6rem;border:1px solid var(--line);color:var(--navy);background:#fff}
.plink{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-display);font-weight:600;font-size:.9rem;color:var(--navy);margin-top:.4rem}
.plink svg{transition:transform .3s var(--ease)}.project:hover .plink svg{transform:translateX(4px)}
.pidx{position:absolute;right:.6rem;top:.2rem;font-family:var(--font-display);font-weight:700;font-size:4.5rem;line-height:1;color:rgba(11,31,63,.05);z-index:-1;letter-spacing:-.04em}
@media(max-width:980px){.projects{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.projects{grid-template-columns:1fr}}
.section .projects+.actions{margin-top:2rem}

/* ---- international reach + world map ---- */
.reach .bgimg{opacity:.18}
.wmap{position:relative;margin:clamp(1rem,3vw,2.5rem) 0 clamp(1.5rem,3vw,2.5rem);color:rgba(255,255,255,.34)}
.wmap-dots svg{width:100%;height:auto;display:block}
.wmap-pins{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.wmap-pins .pin .halo{fill:var(--green);opacity:.25;transform-origin:center;animation:halo 2.6s ease-out infinite}
.wmap-pins .pin .core{fill:#9EDCBF;stroke:var(--navy-deep);stroke-width:2}
.wmap-pins .pin text{fill:#fff;font-family:var(--font-display);font-weight:600;font-size:20px;text-anchor:middle;letter-spacing:.02em;paint-order:stroke;stroke:rgba(7,22,51,.85);stroke-width:6px;stroke-linejoin:round}
.wmap-pins .pin.office rect{fill:#fff;stroke:var(--green);stroke-width:2.5}
.wmap-pins .pin.office.primary rect{fill:var(--green);stroke:#fff}
.wmap-pins .pin:nth-child(2) .halo{animation-delay:.5s}.wmap-pins .pin:nth-child(3) .halo{animation-delay:1s}.wmap-pins .pin:nth-child(4) .halo{animation-delay:1.5s}.wmap-pins .pin:nth-child(5) .halo{animation-delay:2s}
@keyframes halo{0%{transform:scale(.3);opacity:.45}100%{transform:scale(1.4);opacity:0}}
.wmap-legend{list-style:none;margin:.8rem 0 0;padding:0;display:flex;gap:1.6rem;flex-wrap:wrap;font-size:.84rem;color:rgba(255,255,255,.72)}
.wmap-legend i{display:inline-block;width:10px;height:10px;margin-right:.5rem;vertical-align:middle}
.wmap-legend i.r{border-radius:50%;background:#9EDCBF}
.wmap-legend i.o{background:var(--green);transform:rotate(45deg);border:1px solid #fff}
@media(max-width:700px){.wmap-pins .pin text{display:none} .wmap-pins .pin .halo{r:34px} .wmap-pins .pin .core{r:9px} .wmap-pins .pin.office rect{transform:rotate(45deg) scale(1.6)}}
.regions{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}
.region{padding:1.3rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.35rem;transition:transform .4s var(--ease),border-color .3s}
.region:hover{transform:translateY(-4px);border-color:rgba(158,220,191,.5)}
.region .code{font-family:var(--font-display);font-weight:700;font-size:.78rem;letter-spacing:.14em;color:#9EDCBF;border:1px solid rgba(158,220,191,.5);width:2.4rem;height:2.4rem;display:grid;place-items:center;margin-bottom:.6rem}
.region h3{color:#fff;margin:0;font-size:1.15rem}
.region .rtag{font-size:.8rem;color:#9EDCBF;margin-bottom:.5rem}
.region ul{list-style:none;margin:.2rem 0 0;padding:.6rem 0 0;border-top:1px solid rgba(255,255,255,.14);display:grid;gap:.25rem}
.region ul li{font-size:.86rem;color:rgba(255,255,255,.75);padding-left:.9rem;position:relative}
.region ul li::before{content:"";position:absolute;left:0;top:.6em;width:5px;height:5px;background:var(--green)}
@media(max-width:1100px){.regions{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.regions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:460px){.regions{grid-template-columns:1fr}}

/* ---- why band ---- */
.why-band .bgimg{opacity:.35}
.why-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.why-intro{position:sticky;top:calc(var(--header-h) + 2rem)}
.why-intro h2{color:#fff;margin-bottom:1rem}
.why-intro .lead{color:rgba(255,255,255,.78);margin-bottom:1.8rem}
.why-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.why-cards li{padding:1.5rem 1.5rem 1.6rem;display:flex;flex-direction:column;gap:.6rem;transition:transform .4s var(--ease),border-color .3s}
.why-cards li:hover{transform:translateY(-4px);border-color:rgba(158,220,191,.5)}
.why-cards .badge{width:46px;height:46px;display:grid;place-items:center;background:rgba(31,122,85,.28);border:1px solid rgba(158,220,191,.45);margin-bottom:.3rem}
.why-cards .badge .ico{color:#9EDCBF}
.why-cards h3{color:#fff;font-size:1.1rem;margin:0}
.why-cards p{margin:0;color:rgba(255,255,255,.74);font-size:.93rem;line-height:1.5}
@media(max-width:980px){.why-grid{grid-template-columns:1fr} .why-intro{position:static}}
@media(max-width:520px){.why-cards{grid-template-columns:1fr}}

/* ---- locations ---- */
.offices-band .bgimg{opacity:.22}
.locations{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.loc{padding:clamp(1.4rem,2.4vw,1.9rem);display:flex;flex-direction:column;gap:.3rem;transition:transform .4s var(--ease),border-color .3s}
.loc:hover{transform:translateY(-4px);border-color:rgba(158,220,191,.5)}
.loc.primary{border-top:3px solid var(--green)}
.ltop{display:flex;justify-content:space-between;align-items:center;margin-bottom:.9rem}
.lcode{font-family:var(--font-display);font-weight:700;font-size:.78rem;letter-spacing:.14em;color:#9EDCBF;border:1px solid rgba(158,220,191,.5);width:2.4rem;height:2.4rem;display:grid;place-items:center;flex:none}
.lkind{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.loc h3{color:#fff;margin:0;font-size:1.35rem}
.lcountry{color:#9EDCBF;font-size:.9rem;margin-bottom:.6rem}
.loc address{font-style:normal;color:rgba(255,255,255,.75);font-size:.93rem;line-height:1.55;padding-top:.7rem;border-top:1px solid rgba(255,255,255,.14)}
.lcontact{display:grid;gap:.35rem;margin-top:.9rem;padding-top:.9rem;border-top:1px solid rgba(255,255,255,.14)}
.lcontact a{display:inline-flex;align-items:center;gap:.5rem;color:#fff;font-weight:500;font-size:.93rem}
.lcontact a:hover{color:#9EDCBF}
.lcontact .ico{color:#9EDCBF}
@media(max-width:820px){.locations{grid-template-columns:1fr}}

/* ---- team ---- */
.team{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.member{padding:clamp(1.5rem,2.6vw,2.2rem);display:flex;flex-direction:column;gap:1rem;background:rgba(255,255,255,.7)}
.avatar{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--navy) 0%,#123a6b 55%,var(--green) 130%);color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.35rem;letter-spacing:.06em;box-shadow:0 12px 30px rgba(7,22,51,.25);position:relative}
.avatar::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid rgba(31,122,85,.35)}
.mhead h3{font-size:1.3rem;margin:0 0 .25rem}
.mrole{margin:0;color:var(--green-ink);font-family:var(--font-display);font-weight:600;font-size:.92rem}
.msep{margin:0 .5rem;color:var(--line)}
.mwhere{color:var(--muted);font-weight:500}
.mbio{margin:0;color:var(--muted);font-size:.95rem;line-height:1.6;padding-top:1rem;border-top:1px solid var(--line)}
@media(max-width:980px){.team{grid-template-columns:1fr;max-width:640px}}

/* ---- areas ---- */
.areas{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.2rem;align-self:center}
.areas li{display:flex;align-items:center;gap:.7rem;padding:.8rem 0;border-bottom:1px solid var(--line);font-family:var(--font-display);font-weight:500;color:var(--navy)}
@media(max-width:560px){.areas{grid-template-columns:1fr}}

/* ---- footer v2 ---- */
.footer{background:radial-gradient(120% 80% at 100% 0%,rgba(31,122,85,.22) 0%,rgba(31,122,85,0) 55%),linear-gradient(180deg,#0A1B37 0%,#071633 100%)}
.ft-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:clamp(2rem,6vw,7rem);align-items:start;padding-bottom:clamp(2.5rem,5vw,4rem)}
.ft-reach{display:grid;gap:.5rem;justify-items:start}
.ft-reach .eyebrow{color:#9EDCBF;margin-bottom:.6rem}
.ft-big{font-family:var(--font-display);font-weight:600;font-size:clamp(1.25rem,2.3vw,1.9rem);letter-spacing:-.01em;color:#fff;line-height:1.2;position:relative;padding-bottom:.15rem;overflow-wrap:anywhere}
.ft-big::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:rgba(255,255,255,.25);transform:scaleX(.25);transform-origin:left;transition:transform .5s var(--ease),background .3s}
.ft-big:hover{color:#9EDCBF}.ft-big:hover::after{transform:none;background:#9EDCBF}
.ft-note{margin:.8rem 0 1.2rem;font-size:.9rem;color:rgba(255,255,255,.6);max-width:40ch;line-height:1.55}
.ft-offices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}
.ft-office{display:flex;gap:1rem;align-items:flex-start;padding:1.5rem 1.6rem 1.5rem 0;border-right:1px solid rgba(255,255,255,.1)}
.ft-office:not(:first-child){padding-left:1.6rem}
.ft-office:last-child{border-right:0}
.ft-office strong{display:block;color:#fff;font-family:var(--font-display);font-weight:600;font-size:1rem}
.ft-office .lkind{display:block;margin:.15rem 0 .4rem}
.ft-office address{font-style:normal;font-size:.88rem;color:rgba(255,255,255,.62);line-height:1.5}
.ft-office.primary .lcode{background:var(--green);color:#fff;border-color:var(--green)}
@media(max-width:980px){.ft-hero{grid-template-columns:1fr} .ft-offices{grid-template-columns:1fr} .ft-office{border-right:0;border-bottom:1px solid rgba(255,255,255,.1);padding:1.2rem 0} .ft-office:not(:first-child){padding-left:0} .ft-office:last-child{border-bottom:0}}
.eco2 svg{min-width:0}
.eco2 .ico{width:18px;height:18px;flex:none}
.eco2-fan svg{width:100%;height:100%;min-width:0}
.intro .wrap.eco-wrap{display:block}
.eco2-fan .wire{stroke-dasharray:none;stroke-dashoffset:0;opacity:0;transition:opacity .9s var(--ease)}
.eco.in .eco2-fan .wire{animation:none;opacity:.9}
.eco.in .eco2-fan .w2{transition-delay:.12s}.eco.in .eco2-fan .w3{transition-delay:.24s}.eco.in .eco2-fan .w4{transition-delay:.36s}.eco.in .eco2-fan .w5{transition-delay:.48s}.eco.in .eco2-fan .w6{transition-delay:.6s}

/* ---- team photos (v1.3.1) ---- */
.member{padding:0;overflow:hidden;gap:0}
.mphoto{position:relative;margin:0;aspect-ratio:4/5;background:var(--navy);overflow:hidden}
.mphoto img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;transition:transform 1.2s var(--ease)}
.member:hover .mphoto img{transform:scale(1.04)}
.mphoto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,22,51,0) 60%,rgba(7,22,51,.35) 100%);pointer-events:none}
.mphoto .avatar{position:absolute;inset:0;width:100%;height:100%;border-radius:0;font-size:3rem}
.mcode{position:absolute;left:1rem;bottom:1rem;z-index:1;font-family:var(--font-display);font-weight:700;font-size:.74rem;letter-spacing:.14em;color:#fff;border:1px solid rgba(255,255,255,.55);background:rgba(7,22,51,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:2.2rem;height:2.2rem;display:grid;place-items:center}
.mbody{padding:clamp(1.3rem,2.2vw,1.8rem);display:flex;flex-direction:column;gap:.9rem}
.mbio{padding-top:.9rem}
@media(max-width:980px){.team{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.team{grid-template-columns:1fr;max-width:420px}}

/* =====================================================================
   v1.4 — premium pass: logo mark, utility bar, editorial type, image
   treatment, grain, motion, ticker, statement band
   ===================================================================== */
/* ---- logo mark ---- */
.brand{gap:.85rem;letter-spacing:.04em;font-size:1.28rem}
.brand .mark{width:42px;height:42px;flex:none;filter:drop-shadow(0 6px 14px rgba(7,22,51,.18))}
.brand .hex{fill:var(--navy)} .brand .facet{fill:#fff;opacity:.09} .brand .m{fill:#fff} .brand .node{fill:var(--green)}
.brand small{font-size:.58rem;letter-spacing:.24em;font-weight:500;opacity:.72;margin-top:4px}
.header:not(.solid):not(.open):not(.mega-open) .brand .hex,.on-dark .brand .hex,.footer .brand .hex{fill:#fff}
.header:not(.solid):not(.open):not(.mega-open) .brand .m,.on-dark .brand .m,.footer .brand .m{fill:var(--navy)}
.header:not(.solid):not(.open):not(.mega-open) .brand .facet,.on-dark .brand .facet,.footer .brand .facet{fill:var(--navy);opacity:.08}
.footer .brand .mark{width:48px;height:48px}

/* ---- utility bar (desktop) ---- */
.topbar{position:fixed;top:0;left:0;right:0;z-index:101;height:34px;background:var(--navy-deep);color:rgba(255,255,255,.72);font-size:.76rem;letter-spacing:.04em;display:flex;align-items:center;transition:transform .4s var(--ease),opacity .3s}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.topbar i{font-style:normal;color:var(--green);margin:0 .5rem}
.topbar .tb-r{display:flex;gap:1.6rem}
.topbar a{color:rgba(255,255,255,.85)} .topbar a:hover{color:#9EDCBF}
body.scrolled .topbar{transform:translateY(-100%);opacity:0;pointer-events:none}
@media(min-width:1081px){
  .header{top:34px;transition:top .4s var(--ease),background .35s var(--ease),box-shadow .35s var(--ease),color .35s}
  body.scrolled .header{top:0}
  .hero .wrap{padding-top:clamp(9rem,15vw,12rem)}
  .hero.short .wrap{padding-top:clamp(9rem,14vw,11rem)}
  .plain main{padding-top:calc(var(--header-h) + 34px)}
  body.scrolled .plain main{padding-top:calc(var(--header-h) + 34px)}
}
@media(max-width:1080px){.topbar{display:none}}

/* ---- editorial typography ---- */
h1,h2,h3{text-wrap:balance}
h1{font-weight:600;letter-spacing:-.035em;line-height:1}
h2{font-weight:600;letter-spacing:-.03em;line-height:1.04;font-size:clamp(1.9rem,3.4vw,3rem)}
.hero h1{font-weight:600;letter-spacing:-.04em;font-size:clamp(2.4rem,5.2vw,4.5rem)}
.hero .lead{font-size:clamp(1.05rem,1.35vw,1.25rem);max-width:52ch;color:rgba(255,255,255,.82)}
.lead{font-size:clamp(1.08rem,1.45vw,1.3rem);line-height:1.55}
.eyebrow{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;gap:.8rem}
.eyebrow::before{width:22px;height:1px}
body{counter-reset:sec}
main>.section{counter-increment:sec}
main>.section>.wrap>.head .eyebrow::after,main>.section>.wrap.split>div:first-child>.eyebrow::after,main>.section>.wrap.two-col>div>.eyebrow::after{content:counter(sec,decimal-leading-zero);margin-left:auto;font-weight:500;color:var(--muted);letter-spacing:.08em;opacity:.7;font-variant-numeric:tabular-nums}
main>.section>.wrap>.head .eyebrow{width:100%}
.on-dark .eyebrow::after{color:rgba(255,255,255,.55)!important}
.section{padding:clamp(4.5rem,10vw,9.5rem) 0}
.section.tight{padding:clamp(3.5rem,7vw,6rem) 0}
.head{margin-bottom:clamp(2.5rem,5vw,4rem)}
.prose p{font-size:1.02rem;line-height:1.7}
p.small,.small{font-size:.88rem}
a.link,.link{position:relative;font-family:var(--font-display);font-weight:600;color:var(--navy);padding-bottom:.15rem;background:linear-gradient(currentColor,currentColor) no-repeat 0 100%/100% 1px;transition:background-size .4s var(--ease),color .2s}
a.link:hover,.link:hover{color:var(--green-ink);background-size:0 1px}

/* ---- buttons ---- */
.btn{padding:1rem 1.6rem;letter-spacing:.005em;position:relative;overflow:hidden;isolation:isolate;border-width:1px;transition:color .3s,border-color .3s,transform .3s var(--ease),box-shadow .3s}
.btn::before{content:"";position:absolute;inset:0;background:var(--navy);transform:translateY(101%);transition:transform .45s var(--ease);z-index:-1}
.btn:hover::before{transform:none}
.btn.ghost:hover{background:transparent;color:#fff}
.btn.primary{background:linear-gradient(180deg,#22875E,#1B6E4C);border-color:transparent;box-shadow:0 10px 24px rgba(31,122,85,.28),inset 0 1px 0 rgba(255,255,255,.18)}
.btn.primary::before{background:var(--navy)}
.btn.primary:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(7,22,51,.28)}
.hero .btn.ghost::before,.cta-band .btn.ghost::before{background:#fff}
.hero .btn.ghost:hover,.cta-band .btn.ghost:hover{color:var(--navy);background:transparent}

/* ---- image treatment (curated, cool duotone) ---- */
.tile img,.selector .stage-img img,.figure img,.hero.short .media img,.project img{filter:saturate(.78) contrast(1.06) brightness(.96)}
.tile::after{background:linear-gradient(180deg,rgba(11,31,63,.15) 0%,rgba(11,31,63,0) 35%,rgba(7,22,51,.92) 100%)}
.tile::before{content:"";position:absolute;inset:0;background:var(--navy);mix-blend-mode:multiply;opacity:.22;z-index:1;transition:opacity .6s}
.tile:hover::before{opacity:.08}
.tile h3{font-size:1.45rem;letter-spacing:-.02em}
.tile .t{padding:1.8rem}
.figure{position:relative;overflow:hidden}
.figure::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(11,31,63,.28),rgba(11,31,63,0) 55%);pointer-events:none}
.figure img{transition:transform 1.4s var(--ease)}
.figure:hover img{transform:scale(1.03)}
.hero .media::after{background:linear-gradient(180deg,rgba(7,22,51,.5) 0%,rgba(7,22,51,.12) 38%,rgba(7,22,51,.86) 100%)}
.hero .media img.poster{animation:kb 22s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.06)}}
.hero .media video.playing~img.poster,.hero .media video.playing+.poster{animation:none}

/* ---- grain on dark sections ---- */
.on-dark.section::after,.hero::after,.footer::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:.055;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");background-size:160px}
.hero .wrap,.hero-strip,.hero-side{position:relative;z-index:2}
.footer .wrap,.ft-mark{z-index:2}

/* ---- hero side label ---- */
.hero-side{position:absolute;left:calc(var(--gutter) - .2rem);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:1rem;color:rgba(255,255,255,.7);font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;writing-mode:vertical-rl;z-index:2}
.hero-side i{width:1px;height:56px;background:rgba(255,255,255,.5)}
.hero-side span:first-child{font-family:var(--font-display);font-weight:700;color:#fff}
@media(max-width:1180px){.hero-side{display:none}}
@media(min-width:1181px){.hero .wrap>*{margin-left:2.6rem}}

/* ---- ticker ---- */
.ticker{background:var(--navy-deep);border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);overflow:hidden;color:rgba(255,255,255,.62);font-family:var(--font-display);font-weight:500;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;padding:.85rem 0;position:relative}
.ticker::before,.ticker::after{content:"";position:absolute;top:0;bottom:0;width:120px;z-index:1;pointer-events:none}
.ticker::before{left:0;background:linear-gradient(90deg,var(--navy-deep),transparent)} .ticker::after{right:0;background:linear-gradient(270deg,var(--navy-deep),transparent)}
.ticker-track{display:flex;gap:0;width:max-content;animation:tick 70s linear infinite}
.ticker-track span{padding:0 1.6rem;white-space:nowrap;position:relative}
.ticker-track span::after{content:"";position:absolute;right:-3px;top:50%;width:5px;height:5px;background:var(--green);transform:translateY(-50%) rotate(45deg)}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes tick{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none} .hero .media img.poster{animation:none}}

/* ---- statement band ---- */
.st-band{background:var(--paper);position:relative;overflow:hidden}
.st-band::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,var(--line) 20%,var(--line) 80%,transparent);pointer-events:none}
.st-band .wrap{max-width:min(100% - 2*var(--gutter),1080px);text-align:center}
.st-band .eyebrow{justify-content:center;margin-bottom:2.2rem}
.st-band .eyebrow::before{display:none}
.st-lines{margin:0;display:grid;gap:.3em;font-family:var(--font-display);font-weight:600;letter-spacing:-.03em;line-height:1.12;font-size:clamp(1.6rem,3.6vw,3.2rem);color:var(--navy)}
.st-lines span{display:block;background:var(--paper);padding:0 .4em}
.st-lines .em{color:var(--green-ink);margin-top:.35em}
.st-note{max-width:56ch;margin:2.4rem auto 0;color:var(--muted);font-size:1.05rem;line-height:1.6;background:var(--paper);padding:0 .5em}
.st-lines span.reveal{transition-delay:calc(var(--i,0)*120ms)}
.st-lines span:nth-child(1){--i:0}.st-lines span:nth-child(2){--i:1}.st-lines span:nth-child(3){--i:2}.st-lines span:nth-child(4){--i:3}

/* ---- staggered reveals for grids ---- */
.projects>.project,.flow>li,.why-cards>li,.regions>li,.locations>li,.team>li,.tiles>.tile,.why>li,.steps>li,.sol-grid>a,.eco2-partners>li,.strip-in>div{transition-delay:calc(var(--i,0)*70ms)}
.projects>*:nth-child(2),.flow>*:nth-child(2),.why-cards>*:nth-child(2),.regions>*:nth-child(2),.locations>*:nth-child(2),.team>*:nth-child(2),.tiles>*:nth-child(2),.why>*:nth-child(2),.steps>*:nth-child(2),.sol-grid>*:nth-child(2){--i:1}
.projects>*:nth-child(3),.flow>*:nth-child(3),.why-cards>*:nth-child(3),.regions>*:nth-child(3),.locations>*:nth-child(3),.team>*:nth-child(3),.tiles>*:nth-child(3),.why>*:nth-child(3),.steps>*:nth-child(3),.sol-grid>*:nth-child(3){--i:2}
.flow>*:nth-child(4),.why-cards>*:nth-child(4),.regions>*:nth-child(4),.tiles>*:nth-child(4),.why>*:nth-child(4),.steps>*:nth-child(4),.sol-grid>*:nth-child(4){--i:3}
.flow>*:nth-child(5),.why-cards>*:nth-child(5),.regions>*:nth-child(5),.tiles>*:nth-child(5),.why>*:nth-child(5),.steps>*:nth-child(5),.sol-grid>*:nth-child(5){--i:4}
.flow>*:nth-child(6),.why-cards>*:nth-child(6),.tiles>*:nth-child(6),.why>*:nth-child(6),.steps>*:nth-child(6),.sol-grid>*:nth-child(6){--i:5}
.flow>*:nth-child(7),.tiles>*:nth-child(7),.sol-grid>*:nth-child(7){--i:6}.flow>*:nth-child(8),.tiles>*:nth-child(8),.sol-grid>*:nth-child(8){--i:7}
.stagger>*{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.stagger.in>*{opacity:1;transform:none}

/* ---- cards: unified hover language ---- */
.sol-card,.project,.why li,.steps .step,.member,.office{transition:transform .5s var(--ease),box-shadow .5s var(--ease),background .3s,border-color .3s}
.sol-card:hover,.project:hover{transform:translateY(-3px);box-shadow:0 22px 44px rgba(7,22,51,.10)}
.mega-list a{transition:padding-left .3s var(--ease),color .2s}
.mega-list a:hover{padding-left:.4rem}
.subnav a{letter-spacing:.02em}

/* ---- footer polish ---- */
.footer{padding-top:clamp(5rem,9vw,8rem)}
.ft-tag{font-size:clamp(1.35rem,2.1vw,1.75rem);letter-spacing:-.02em;line-height:1.15}

/* =====================================================================
   v1.5 — editorial home: serif accents, mosaic, image break, method rows,
   line timeline, new hero footage
   ===================================================================== */
:root{--font-serif:"Instrument Serif",Georgia,"Times New Roman",serif}
h1 em,h2 em,.st-lines em{font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-.01em;font-size:1.08em;line-height:.95}
.hero h1 em{color:#CFEBDD}
.cta-band h2 em{color:#9EDCBF}
.st-lines .em em{color:var(--green-ink)}
.hero .media::after{background:linear-gradient(180deg,rgba(7,22,51,.55) 0%,rgba(7,22,51,.1) 40%,rgba(7,22,51,.88) 100%),linear-gradient(90deg,rgba(7,22,51,.35) 0%,rgba(7,22,51,0) 60%)}

/* ---- solutions mosaic ---- */
.mosaic{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(240px,auto);gap:6px}
.mosaic .m1{grid-column:1/8;grid-row:1/3;min-height:560px}
.mosaic .m2,.mosaic .m3{grid-column:8/13;min-height:277px}
.mosaic .m4,.mosaic .m5,.mosaic .m6,.mosaic .m7{grid-column:span 3;min-height:300px}
.mosaic .m8{grid-column:1/13;min-height:0}
.mosaic .tile{min-height:0}
.mosaic .tile .num{position:absolute;top:1.3rem;left:1.5rem;z-index:2;font-family:var(--font-display);font-weight:600;font-size:.8rem;letter-spacing:.12em;color:rgba(255,255,255,.75);padding:.3rem .55rem;border:1px solid rgba(255,255,255,.35);background:rgba(7,22,51,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.mosaic .m1 h3{font-size:clamp(1.6rem,2.4vw,2.2rem)}
.mosaic .m1 p{max-width:44ch;font-size:1.02rem}
.mosaic .tile .go{display:inline-flex;align-items:center;gap:.5rem;margin-top:.9rem;font-family:var(--font-display);font-weight:600;font-size:.86rem;color:#9EDCBF;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .5s var(--ease)}
.mosaic .tile:hover .go,.mosaic .tile:focus-visible .go{opacity:1;transform:none}
.mosaic .m1 .go{opacity:1;transform:none}
.mosaic .m1 p{max-height:none;opacity:1;margin-top:.5rem}
.mosaic .ask{background:var(--navy);display:flex;align-items:center;isolation:auto}
.mosaic .ask::after,.mosaic .ask::before{display:none}
.mosaic .ask .t{position:static;display:grid;grid-template-columns:auto 1fr auto;gap:2rem;align-items:center;padding:1.8rem 2rem;width:100%}
.mosaic .ask .eyebrow{margin:0;color:#9EDCBF;white-space:nowrap}
.mosaic .ask h3{font-size:1.15rem;font-weight:500;line-height:1.35;margin:0;max-width:60ch}
.mosaic .ask .go{opacity:1;transform:none;margin:0;color:#fff;padding:.8rem 1.2rem;border:1px solid rgba(255,255,255,.4);white-space:nowrap}
.mosaic .ask:hover .go{background:var(--green);border-color:var(--green)}
@media(max-width:1000px){.mosaic .m1{grid-column:1/13;grid-row:auto;min-height:420px} .mosaic .m2,.mosaic .m3{grid-column:span 6} .mosaic .m4,.mosaic .m5,.mosaic .m6,.mosaic .m7{grid-column:span 6;min-height:260px} .mosaic .ask .t{grid-template-columns:1fr;gap:1rem}}
@media(max-width:560px){.mosaic .m2,.mosaic .m3,.mosaic .m4,.mosaic .m5,.mosaic .m6,.mosaic .m7{grid-column:1/13;min-height:230px} .mosaic .m1{min-height:340px} .mosaic .tile .go{opacity:1;transform:none} .mosaic .tile p{max-height:none;opacity:1;margin-top:.5rem}}

/* ---- image break ---- */
.break{position:relative;margin:0;height:clamp(360px,52vh,620px);overflow:hidden;background:var(--navy-deep);isolation:isolate}
.break img{width:100%;height:120%;object-fit:cover;filter:saturate(.7) contrast(1.08);will-change:transform;transform:translateY(-8%)}
.break::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,22,51,.82) 0%,rgba(7,22,51,.35) 55%,rgba(7,22,51,.1) 100%)}
.break figcaption{position:absolute;left:0;right:0;bottom:clamp(2rem,6vw,4.5rem);z-index:2;width:min(100% - 2*var(--gutter),var(--max));margin-inline:auto;color:#fff}
.break figcaption .eyebrow{color:#9EDCBF}
.break figcaption p{margin:0;font-family:var(--font-display);font-weight:600;font-size:clamp(1.4rem,2.6vw,2.3rem);letter-spacing:-.025em;line-height:1.15;max-width:22ch;text-wrap:balance}

/* ---- method rows ---- */
.method-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,6vw,7rem);align-items:start}
.method-intro{position:sticky;top:calc(var(--header-h) + 2rem)}
.method-intro .lead{margin-top:1.4rem}
.method-intro .link{display:inline-block;margin-top:1rem}
.rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:5.5rem 1fr;gap:1.5rem;padding:1.8rem 0;border-bottom:1px solid var(--line);align-items:start;transition:padding-left .4s var(--ease)}
.row:hover{padding-left:.6rem}
.row .n{font-family:var(--font-display);font-weight:600;font-size:clamp(2rem,3.2vw,2.8rem);letter-spacing:-.04em;line-height:1;color:var(--green);opacity:.85;font-variant-numeric:tabular-nums}
.row h3{margin:0 0 .5rem;font-size:1.3rem}
.row p{margin:0;color:var(--muted);line-height:1.6}
.row .out{margin-top:.8rem;font-size:.9rem;color:var(--ink);display:flex;gap:.8rem;align-items:baseline}
.row .out span{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green-ink);font-weight:600;flex:none}
@media(max-width:900px){.method-grid{grid-template-columns:1fr} .method-intro{position:static} .row{grid-template-columns:3.6rem 1fr;gap:1rem}}

/* ---- line timeline (scope on home) ---- */
.flow-line{gap:0 2.5rem;row-gap:2.5rem}
.flow-line .flow-step{background:transparent;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:1.6rem 0 0;border-top:1px solid rgba(255,255,255,.22);min-height:0;position:relative}
.flow-line .flow-step::before{content:"";position:absolute;top:-1px;left:0;width:0;height:1px;background:#9EDCBF;transition:width .9s var(--ease)}
.flow-line.in .flow-step::before,.flow-line .flow-step:hover::before{width:100%}
.flow-line .flow-step:hover{transform:none}
.flow-line .fn{margin-bottom:.8rem}
.flow-line .fn span{border:0;background:transparent;width:auto;height:auto;font-size:clamp(1.8rem,2.8vw,2.4rem);letter-spacing:-.04em;color:#9EDCBF;opacity:.9}
.flow-line .fx{display:none}
.flow-line h4{font-size:1.12rem}
@media(max-width:820px){.flow-line{gap:0 1.5rem;row-gap:1.6rem}}

/* =====================================================================
   v1.5.1 — mobile/tablet pass, burger, hero side label, mosaic on small
   screens, flags
   ===================================================================== */
/* ---- flags ---- */
.flag{width:30px;height:20px;display:inline-block;vertical-align:middle;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.18),0 2px 6px rgba(0,0,0,.25);flex:none}
.fwrap{display:inline-flex;align-items:center;justify-content:center;flex:none}
.ltop .fwrap .flag,.ft-office .fwrap .flag{width:36px;height:24px}
.topbar .flag{width:18px;height:12px;margin:0 .3rem 0 0;position:relative;top:-1px}
.mcode.fwrap{width:auto;height:auto;padding:4px;background:rgba(7,22,51,.5)}
.mcode .flag{width:30px;height:20px}
.region .code.fwrap{width:auto;height:auto;border:0;background:transparent;padding:0;margin-bottom:.7rem}
.region .code .flag{width:34px;height:23px}
.ft-office .fwrap{margin-top:.15rem}

/* ---- header: burger right, clean icon ---- */
.navwrap{display:contents}
.burger{margin-left:auto;display:none;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:44px;height:44px;border:1px solid currentColor;border-color:rgba(255,255,255,.35);border-radius:2px;background:transparent;color:inherit;padding:0;cursor:pointer;transition:border-color .3s,background .3s}
.header.solid .burger,.header.open .burger{border-color:rgba(11,31,63,.25)}
.burger span{display:block;width:20px;height:1.6px;margin:0;background:currentColor;transition:transform .35s var(--ease),opacity .25s,width .3s var(--ease)}
.burger span:nth-child(2){width:14px;align-self:flex-end;margin-right:12px}
.header.open .burger span:nth-child(1){transform:translateY(7.6px) rotate(45deg)}
.header.open .burger span:nth-child(2){opacity:0;width:0}
.header.open .burger span:nth-child(3){transform:translateY(-7.6px) rotate(-45deg)}
@media(max-width:1080px){.burger{display:flex} .header .wrap{justify-content:space-between}}

/* ---- hero side label: rotated row (identical in Safari/Chrome) ---- */
.hero-side{position:absolute;left:0;top:50%;transform:none;writing-mode:horizontal-tb;width:24px;height:0;display:block;overflow:visible}
.hs-in{position:absolute;left:calc(var(--gutter) + 2px);top:0;transform:rotate(-90deg) translate(-50%,0);transform-origin:0 0;display:flex;align-items:center;gap:1rem;white-space:nowrap;color:rgba(255,255,255,.7);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase}
.hs-in .b{font-family:var(--font-display);font-weight:700;color:#fff}
.hs-in i{width:48px;height:1px;background:rgba(255,255,255,.5);display:block}
@media(max-width:1180px){.hero-side{display:none}}

/* ---- mosaic on small screens: number inline, tile grows with content ---- */
@media(max-width:1000px){
  .mosaic{gap:8px}
  .mosaic .tile{display:flex;flex-direction:column;justify-content:flex-end}
  .mosaic .tile .t{position:relative;padding-top:clamp(5rem,18vw,8rem)}
  .mosaic .tile .num{display:none}
  .mosaic .tile h3::before{content:attr(data-n);display:block;font-size:.72rem;letter-spacing:.14em;color:#9EDCBF;margin-bottom:.5rem;font-weight:600}
  .mosaic .tile p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-height:none;opacity:1;margin-top:.4rem}
  .mosaic .tile .go{opacity:1;transform:none}
  .mosaic .m1,.mosaic .m2,.mosaic .m3,.mosaic .m4,.mosaic .m5,.mosaic .m6,.mosaic .m7{min-height:0}
  .mosaic .m1 h3{font-size:1.5rem}
  .mosaic .ask .t{padding-top:1.6rem}
  .mosaic .ask h3::before{display:none}
}

/* ---- coherent tablet/phone rhythm (≤820 / ≤560) ---- */
@media(max-width:820px){
  .section{padding:clamp(3.5rem,9vw,5.5rem) 0} .section.tight{padding:clamp(2.8rem,7vw,4.5rem) 0}
  .head{margin-bottom:2rem;gap:1rem}
  h2{font-size:clamp(1.7rem,5.4vw,2.4rem)}
  .lead{font-size:1.05rem}
  .hero h1{font-size:clamp(2.2rem,8.2vw,3.4rem)}
  .hero .lead{font-size:1rem;max-width:none}
  .ticker{font-size:.72rem;padding:.7rem 0}
  .break{height:clamp(300px,48vw,420px)} .break figcaption p{font-size:1.25rem}
  .st-lines{font-size:clamp(1.35rem,5.6vw,2rem)} .st-note{font-size:.98rem}
  .cta-card{padding:1.5rem}
  .why-cards,.regions,.locations,.team,.flow{gap:.7rem}
  .row{padding:1.3rem 0}
  .row .n{font-size:1.7rem}
  .method-intro .lead{margin-top:.8rem}
  .ft-hero{gap:2rem} .ft-big{font-size:1.25rem}
  .footer{padding-top:3.5rem}
  .eyebrow{font-size:.72rem}
  .strip-in>div{padding:.75rem .9rem}
}
@media(max-width:560px){
  :root{--gutter:18px}
  .hero{min-height:0} .hero .wrap{padding-top:6.5rem;padding-bottom:1.2rem}
  .hero .btn{width:100%;justify-content:center}
  .hero-strip{padding-bottom:1rem}
  .strip-in strong{font-size:.92rem}
  .btn{padding:.9rem 1.2rem;font-size:.95rem}
  .head .lead{margin-top:.4rem}
  .tile .t{padding:1.2rem}
  .mosaic .tile .t{padding-top:4.5rem}
  .project{padding:1.3rem}
  .flow-step{padding:1.1rem}
  .wmap{margin:.8rem 0 1.2rem}
  .region,.loc,.why-cards li{padding:1.1rem}
  .member .mbody{padding:1.2rem}
  .cookie{padding:1rem}
  .ft-links ul.two{grid-template-columns:1fr}
  .ft-office{padding:.9rem 0}
  .mission{padding:1.3rem} .mission-steps span{font-size:1.1rem}
  .commitment{padding:1.4rem} .commitment .tagline{font-size:1.3rem}
  .sol-card{padding:1.2rem}
}
/* touch: no hover-only content */
@media(hover:none){.mosaic .tile .go,.ind-grid a svg{opacity:1;transform:none}}
@media(min-width:1081px){.hero:not(.short) .media{top:-14%;height:114%}}

/* =====================================================================
   v1.6 — "How we help clients" framing, people teaser, perspectives
   ===================================================================== */
.howhelp{font-family:var(--font-display);font-weight:600;font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.35;letter-spacing:-.015em;color:var(--navy);margin:0 0 1.4rem;padding-left:1.2rem;border-left:3px solid var(--green)}
.people{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.person a{display:grid;grid-template-columns:120px 1fr;gap:1.2rem;align-items:start;padding:1.2rem;border:1px solid var(--line);background:#fff;color:var(--ink);transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .3s}
.person a:hover{transform:translateY(-3px);box-shadow:0 22px 44px rgba(7,22,51,.10);border-color:var(--green)}
.person figure{margin:0;aspect-ratio:4/5;overflow:hidden;background:var(--navy)}
.person img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:saturate(.85) contrast(1.05)}
.person h3{font-size:1.15rem;margin:0 0 .25rem}
.prole{margin:0 0 .6rem;font-family:var(--font-display);font-weight:600;font-size:.82rem;color:var(--green-ink)}
.prole span{color:var(--line);margin:0 .4rem}
.pline{margin:0;font-size:.9rem;color:var(--muted);line-height:1.5}
@media(max-width:1000px){.people{grid-template-columns:1fr;max-width:640px}}
@media(max-width:420px){.person a{grid-template-columns:88px 1fr;gap:.9rem;padding:.9rem}}
.persp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.persp-card{background:#fff;padding:clamp(1.5rem,2.6vw,2.2rem);display:flex;flex-direction:column;gap:.7rem;color:var(--ink);min-height:300px;transition:background .3s}
.persp-card:hover{background:var(--paper)}
.persp-card .kicker{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green-ink);font-weight:600}
.persp-card h3{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(1.45rem,2vw,1.8rem);line-height:1.15;letter-spacing:-.01em;margin:0}
.persp-card p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.6;flex:1}
.persp-card .more{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-display);font-weight:600;font-size:.88rem;color:var(--navy)}
.persp-card .more svg{transition:transform .3s var(--ease)} .persp-card:hover .more svg{transform:translateX(4px)}
@media(max-width:900px){.persp{grid-template-columns:1fr}}
.mline{margin:0;font-family:var(--font-display);font-weight:500;color:var(--navy);font-size:.98rem;line-height:1.45}
