/* ION Group – site styles */
:root{--lime-d:#6FA52E;--lime-l:#EEF7E3;
  --paper:#F4F4F0; --paper-2:#E9EAE5; --white:#FFFFFF;
  --ink:#0F1011; --graph:#3B3E42; --mute:#75787C; --rule:#CFCEC6; --rule-d:#2A2C2F;
  --lime:#8CC842; --lime-hi:#C8EC8E; --fire:#D93A2B;
  --max:1560px;
  --d:'Sora',system-ui,sans-serif; --b:'DM Sans',system-ui,sans-serif; --r:12px; --m:'DM Sans',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--b);background:var(--paper);color:var(--ink);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.w{max-width:var(--max);margin:0 auto;padding:0 40px}
.mono{font-family:var(--m);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.d{font-family:var(--d);font-weight:700;line-height:1.12;letter-spacing:-.03em}
.hl{background:linear-gradient(transparent 58%,var(--lime) 58%,var(--lime) 92%,transparent 92%);padding:0 .06em}
.fire-t{color:var(--fire)}

/* page column guides */
.guides{position:fixed;inset:0;pointer-events:none;z-index:0;display:flex;justify-content:center}
.guides div{width:100%;max-width:var(--max);margin:0 32px;height:100%;border-left:1px solid rgba(15,16,17,.05);border-right:1px solid rgba(15,16,17,.05);background:linear-gradient(90deg,transparent calc(25% - .5px),rgba(15,16,17,.05) calc(25% - .5px),rgba(15,16,17,.05) calc(25% + .5px),transparent calc(25% + .5px),transparent calc(50% - .5px),rgba(15,16,17,.05) calc(50% - .5px),rgba(15,16,17,.05) calc(50% + .5px),transparent calc(50% + .5px),transparent calc(75% - .5px),rgba(15,16,17,.05) calc(75% - .5px),rgba(15,16,17,.05) calc(75% + .5px),transparent calc(75% + .5px))}
main,header,footer,.strip{position:relative;z-index:1}

/* buttons: square, industrial */
.btn{display:inline-flex;align-items:stretch;font:600 15px/1 var(--b);border:1.5px solid var(--ink);border-radius:10px;overflow:hidden;cursor:pointer;transition:.18s;background:none;color:var(--ink)}
.btn span{white-space:nowrap;padding:16px 20px;display:flex;align-items:center}
.btn i{display:flex;align-items:center;justify-content:center;width:48px;border-left:1.5px solid var(--ink);font-style:normal;transition:.18s}
.btn i svg{width:18px;height:18px}
.btn.solid{background:var(--ink);color:var(--paper)}
.btn.solid i{background:var(--lime);color:var(--ink);border-color:var(--ink)}
.btn:hover i{background:var(--lime);color:var(--ink)}
.btn.solid:hover{background:#26282b}
.btn.inv{border-color:var(--paper);color:var(--paper)}
.btn.inv i{border-color:var(--paper)}

/* header */
.hbar{background:var(--ink);color:#C9CBC4}
.hbar .w{display:flex;justify-content:space-between;height:36px;align-items:center;color:#A9ACA5}
.hbar b{color:#fff;font-weight:500}
.hbar .live::before{content:"";display:inline-block;width:7px;height:7px;background:var(--lime);margin-right:8px;vertical-align:1px;animation:blink 2s infinite}
@keyframes blink{50%{opacity:.25}}
header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
header .w{display:grid;grid-template-columns:auto 1fr auto;align-items:center;height:104px;gap:40px}
.logo img{height:76px;width:auto}
nav{display:flex;justify-content:center;gap:0;height:100%}
nav>div{position:relative;display:flex}
nav>div>a{display:flex;align-items:center;gap:8px;padding:0 16px;font-weight:500;font-size:15px;border-left:1px solid transparent;border-right:1px solid transparent;white-space:nowrap}
nav>div>a small{font-family:var(--m);font-size:10px;color:var(--mute)}
nav>div:hover>a{color:var(--lime-d,#6FA52E)}

nav>div>a.on{box-shadow:inset 0 -4px 0 var(--lime)}
.drop{position:absolute;top:100%;left:0;width:760px;border-radius:0 0 var(--r) var(--r);overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,0,0,.35);background:var(--ink);color:var(--paper);display:grid;grid-template-columns:repeat(4,1fr);opacity:0;visibility:hidden;transition:.15s;border-top:4px solid var(--lime)}
nav>div:hover .drop{opacity:1;visibility:visible}
.drop div{padding:24px 22px;border-right:1px solid var(--rule-d)}
.drop div:last-child{border:0}
.drop h6{font-family:var(--m);font-weight:400;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--lime);margin-bottom:12px}
.drop h6.f{color:#FF7A6B}
.drop a{display:block;padding:5px 0;font-size:14px;color:#C9CBC4}
.drop a:hover{color:#fff;padding-left:4px}
.drop em{font-style:normal;font-family:var(--m);font-size:10px;background:var(--lime);color:var(--ink);padding:1px 5px;margin-left:6px}
.hdr-r{display:flex;align-items:center;gap:22px}
.hdr-r .tel{text-align:right;line-height:1.15;flex:none}
.hdr-r .tel b{white-space:nowrap;font-family:var(--d);font-size:21px;font-weight:800;letter-spacing:0;display:block}
.burger{display:none;width:48px;height:48px;border:1.5px solid var(--ink);background:none;cursor:pointer}
.burger span{display:block;height:2px;background:var(--ink);margin:5px 11px}
.mnav{display:none}

/* section scaffolding */
.sec{padding:110px 0}
.shead{display:grid;grid-template-columns:1fr 3fr;gap:32px;margin-bottom:50px;align-items:start}
.shead .mono{padding-top:10px;border-top:2px solid var(--lime);display:flex;gap:10px;color:var(--ink)}

.shead h2{font-size:clamp(30px,3.6vw,48px);max-width:760px}
.shead>*{min-width:0}
.shead p{max-width:600px;margin-top:18px;font-size:17.5px;color:var(--graph)}

/* accreditation marquee */
.strip{background:var(--white);border-bottom:1px solid var(--rule);overflow:hidden;display:flex;align-items:center}
.strip .lab{flex:none;padding:0 28px;height:110px;display:flex;align-items:center;border-right:1px solid var(--rule);background:var(--paper);z-index:2}
.track{display:flex;gap:64px;align-items:center;animation:mq 34s linear infinite;padding-left:64px;width:max-content}
.strip:hover .track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}
.track img{height:62px;width:auto;mix-blend-mode:multiply;filter:grayscale(1) contrast(1.1)}
.track img:hover{filter:none}
.tbc{height:62px;padding:0 18px;border:1.5px dashed var(--graph);border-radius:10px;display:flex;flex-direction:column;justify-content:center;font-family:var(--d);font-size:20px;font-weight:700;line-height:1}
.tbc small{white-space:nowrap;font-family:var(--m);font-size:10px;font-weight:400;color:var(--mute);margin-top:4px}
.tbc.red{border-color:var(--fire);color:var(--fire)}

/* job sheet form */
.job{background:var(--ink);color:var(--paper)}
.job .shead .mono{border-color:#5A5D60}
.job .shead .mono b{background:var(--lime);color:var(--ink)}
.job .shead p{color:#B9BBB4}
.sheet{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #3A3D40;border-left:1px solid #3A3D40;border-radius:var(--r);overflow:hidden;background:#17191B}
.fld{border-right:1px solid #3A3D40;border-bottom:1px solid #3A3D40;padding:18px 22px 10px;position:relative;transition:.15s}
.fld:focus-within{background:#1B1D1F}
.fld:focus-within label{color:var(--lime)}
.fld.full{grid-column:1/-1}
.fld label{font-family:var(--m);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#8E918A;display:flex;justify-content:space-between}
.fld input,.fld textarea{width:100%;background:none;border:0;outline:none;color:#fff;font:500 18px/1.3 var(--b);padding:10px 0 8px}
.fld textarea{min-height:130px;resize:vertical;font-size:16px}
.fld input::placeholder,.fld textarea::placeholder{color:#55585C}
.sheet-foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px;border-right:1px solid #3A3D40;border-bottom:1px solid #3A3D40;flex-wrap:wrap}
.sheet-foot p{font-size:13px;color:#8E918A;max-width:420px}
.job-side{display:grid;gap:0;border-top:1px solid #3A3D40}
.job-side div{padding:22px 0;border-bottom:1px solid var(--rule-d)}
.job-side .mono{color:#8E918A}
.job-side b{display:block;font-family:var(--d);font-size:22px;font-weight:800;line-height:1.2;margin-top:6px}
.job-grid{display:grid;grid-template-columns:1fr 3fr;gap:32px}

/* footer */
footer{background:var(--white);padding:70px 0 0;border-top:1px solid var(--rule)}
.bigtel{display:block;font-family:var(--d);font-weight:800;font-size:clamp(36px,5vw,64px);line-height:1.1;letter-spacing:-.02em;border-bottom:1px solid var(--rule);padding:6px 0 30px;transition:.2s}
.bigtel:hover{color:var(--lime)}
.fcols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px;padding:50px 0}
.fcols img{height:68px;margin-bottom:18px}
.fcols h6{font-family:var(--m);font-weight:400;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--mute);margin-bottom:14px}
.fcols a{display:block;padding:4px 0}
.fcols a:hover{text-decoration:underline;text-decoration-color:var(--lime);text-decoration-thickness:3px}
.fbase{border-top:1px solid var(--rule);padding:20px 0;display:flex;justify-content:space-between;color:var(--mute);flex-wrap:wrap;gap:12px}

.rv{opacity:0;transform:translateY(18px);transition:.7s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}

@media (max-width:1400px){.hdr-r .tel{display:none}}
@media (max-width:1240px){
  nav,.hdr-r .tel{display:none}
  .burger{display:block}
  header .w{grid-template-columns:auto 1fr auto auto;gap:14px}
  .mnav.open{display:block;position:fixed;inset:104px 0 0;z-index:39;background:var(--paper);padding:10px 32px;overflow:auto}
  .mnav a{display:flex;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--rule);font-family:var(--d);font-size:22px;font-weight:700}
  .shead,.job-grid{grid-template-columns:1fr}
  .fcols{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .w{padding:0 16px}
  .guides{display:none}
  .hbar .w span:first-child{display:none}.hbar .w{justify-content:center}
  .sec{padding:76px 0}
  .logo img{height:54px}
  header .w{height:80px}
  .mnav.open{inset:80px 0 0}
  .hdr-r .btn span{padding:12px 12px;font-size:14px}.hdr-r .btn i{width:40px}
  .sheet{grid-template-columns:1fr}
  .strip .lab{display:none}
  .fcols{grid-template-columns:1fr}
}

.hero .btn.solid,.ph-head .btn.solid{background:var(--lime);color:var(--ink);border-color:var(--lime)}.hero .btn.solid i,.ph-head .btn.solid i{background:var(--ink);color:var(--lime);border-color:var(--lime)}
.job .shead .mono{color:#fff;border-color:var(--lime)}

/* hero – dark, v1 feel */
.hero{background:var(--ink);color:#fff;position:relative;overflow:hidden;padding:80px 0 0}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 420px at 88% 0%,rgba(140,200,66,.16),transparent 60%);pointer-events:none}
.hero .gl{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(180deg,#000 20%,transparent 85%)}
.hero .w{position:relative}
.hero .meta{display:flex;gap:26px;color:#9EA19A;flex-wrap:wrap}
.hero .meta span:first-child{color:var(--lime)}
.hero-top{display:grid;grid-template-columns:1.25fr 1fr;gap:60px;align-items:end;margin-top:30px}
.hero h1{font-size:clamp(38px,4.8vw,64px);font-weight:900;letter-spacing:-.035em;line-height:1.04}
.hero h1 .hl{background:none;color:var(--lime);padding:0}
.hero-top p{font-size:18px;color:#B9BDB6;margin-bottom:28px}
.hero-top .ctas{display:flex;gap:10px;flex-wrap:wrap}
.hero .btn.ghost{border-color:#55595D;color:#fff}.hero .btn.ghost i{border-color:#55595D}
.figs{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:16px;margin-top:56px}
.fig .ph{height:300px;border-radius:14px 14px 0 0;overflow:hidden;background:#222}
.fig img{width:100%;height:100%;object-fit:cover;transition:.6s}
.fig:hover img{transform:scale(1.04)}
.fig figcaption{display:flex;justify-content:space-between;padding:12px 2px 16px;color:#9EA19A}
.fig figcaption b{color:#fff;font-weight:500}
.disc{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid rgba(255,255,255,.1)}
.disc a{padding:22px 18px;display:flex;gap:10px;justify-content:center;align-items:center;font-weight:600;font-size:15px;color:#D5D8D2;border-right:1px solid rgba(255,255,255,.1);transition:.2s}
.disc a:last-child{border:0}
.disc a .mono{color:var(--lime)}
.disc a:hover{background:rgba(255,255,255,.05);color:#fff}

/* services – v1 image cards + v2 numbering */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.svc{background:var(--white);border:1px solid var(--rule);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:.25s}
.svc:hover{transform:translateY(-4px);box-shadow:0 30px 50px -28px rgba(15,16,17,.35)}
.svc .ph{height:180px;position:relative;overflow:hidden}
.svc .ph img{width:100%;height:100%;object-fit:cover;transition:.5s}
.svc:hover .ph img{transform:scale(1.05)}
.svc .ph .mono{position:absolute;left:14px;top:14px;background:var(--ink);color:var(--lime);padding:5px 8px;border-radius:6px}
.svc.fire .ph .mono{color:#FF8A7C}
.svc .body{padding:22px 22px 22px;display:flex;flex-direction:column;flex:1}
.svc h3{font-family:var(--d);font-size:22px;font-weight:800;letter-spacing:-.02em}
.svc ul{list-style:none;margin:14px 0 20px;display:flex;flex-wrap:wrap;gap:6px}
.svc li{font-size:13px;background:var(--paper);border-radius:6px;padding:5px 9px;color:var(--graph)}
.svc li em{font-style:normal;font-family:var(--m);font-size:10px;background:var(--lime);padding:1px 4px;margin-left:5px;border-radius:3px;color:var(--ink)}
.svc .more{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:14.5px;padding-top:16px;border-top:1px solid var(--rule)}
.svc .more i{width:34px;height:34px;border-radius:8px;border:1.5px solid var(--ink);display:grid;place-items:center;transition:.2s}
.svc .more svg{width:16px}
.svc:hover .more i{background:var(--lime);border-color:var(--lime)}
.fm{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;background:var(--ink);color:#fff;border-radius:18px;overflow:hidden}
.fm .l{padding:48px}
.fm h3{font-family:var(--d);font-size:clamp(26px,2.6vw,34px);font-weight:800;letter-spacing:-.02em;margin:14px 0 12px}
.fm p{color:#B9BDB6;max-width:480px}
.fm ol{list-style:none;counter-reset:f;margin:22px 0 28px;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.fm ol li{counter-increment:f;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:14.5px;display:flex;gap:10px}
.fm ol li::before{content:"";width:8px;height:8px;background:var(--lime);border-radius:2px;margin-top:7px;flex:none}
.fm .r{background-size:cover;background-position:center;min-height:360px;position:relative}
.fm .r::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink),transparent 35%)}

.ok{display:inline-flex;font-family:var(--m);font-size:11px;text-transform:uppercase;background:var(--lime);padding:5px 8px;border-radius:5px;white-space:nowrap}
.ok.u{background:transparent;border:1px solid var(--ink)}

/* why – v1 split */
.why .w{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.why-img{position:relative;height:580px}
.why-img img{width:100%;height:100%;object-fit:cover;border-radius:20px}
.why-img .badge{position:absolute;right:-26px;bottom:44px;background:var(--lime);border-radius:16px;padding:22px 26px;box-shadow:0 30px 50px -20px rgba(15,16,17,.4)}
.why-img .badge b{font:900 48px/1 var(--d);letter-spacing:-.04em;display:block}
.why-img .badge span{font-weight:600;font-size:14px}
.why h2{margin:16px 0 16px;font-size:clamp(30px,3.6vw,48px)}
.why .why-lead{color:var(--graph);font-size:17.5px}
.pts{margin-top:28px}
.pt{display:grid;grid-template-columns:28px 1fr;gap:16px;padding:18px 0;border-top:1px solid var(--rule)}
.pt .tick{width:22px;height:22px;border-radius:6px;background:var(--lime);margin-top:2px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F1011' stroke-width='3'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");background-size:14px;background-repeat:no-repeat;background-position:center}
.pt h3{font-family:var(--d);font-size:18px;font-weight:700;margin-bottom:2px}
.pt p{color:var(--graph);font-size:15px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--rule);border-radius:14px;margin-top:24px;background:var(--white)}
.stats div{padding:20px;border-right:1px solid var(--rule)}.stats div:last-child{border:0}
.stats b{font:800 34px/1 var(--d);letter-spacing:-.03em;display:block}
.stats b i{font-style:normal;color:var(--lime-d)}
.stats span{font-size:13px;color:var(--mute)}
.sectors{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.sectors span{border:1px solid var(--rule);border-radius:999px;padding:7px 14px;font-size:13.5px;font-weight:500;background:var(--white)}

/* frameworks */
.fw{background:var(--white);border-top:1px solid var(--rule)}
.fwt{width:100%;border-collapse:collapse;border-top:1.5px solid var(--ink)}
.fwt td{padding:22px 14px;border-bottom:1px solid var(--rule);vertical-align:middle}
.fwt .nm{font-family:var(--d);font-weight:800;font-size:20px;letter-spacing:-.01em}
.fwt .nm small{display:block;font-family:var(--m);font-weight:400;font-size:11px;color:var(--fire);margin-top:4px;letter-spacing:.06em}
.fwt .lots{color:var(--graph)}
.fwt tr:hover td{background:var(--paper)}

@media (max-width:1100px){
  .hero-top,.why .w{grid-template-columns:1fr;gap:30px}
  .figs{grid-template-columns:1fr 1fr}.figs .fig:nth-child(3){display:none}
  .disc{grid-template-columns:repeat(3,1fr)}
  .svc-grid{grid-template-columns:1fr 1fr}
  .fm{grid-template-columns:1fr}.fm .r{min-height:260px}
  .why-img{height:420px}.why-img .badge{right:16px}
}
@media (max-width:760px){
  .hero{padding-top:50px}
  .hero .meta span+span{display:none}
  .figs{grid-template-columns:1fr}.figs .fig:nth-child(2){display:none}
  .fig .ph{height:220px}
  .disc{grid-template-columns:1fr 1fr}.disc a{border-bottom:1px solid rgba(255,255,255,.1)}
  .svc-grid{grid-template-columns:1fr}
  .fm .l{padding:30px}.fm ol{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr}.stats div{border-right:0;border-bottom:1px solid var(--rule)}
  .fwt td:nth-child(2){display:none}.fwt td{padding:18px 6px}
}

.ph-head{padding:44px 0 0;background:var(--ink);color:#fff;position:relative;overflow:hidden}
.ph-head .bgimg{position:absolute;inset:0;background-size:cover;background-position:center}
.ph-head .bgimg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 35%,rgba(15,16,17,.72) 65%,rgba(15,16,17,.4))}
.ph-head .w{position:relative}
.crumbs{display:flex;gap:12px;color:#9EA19A;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.12);flex-wrap:wrap}
.crumbs a:hover{color:var(--lime)}
.crumbs b{color:#fff;font-weight:500}
.ttl{display:flex;align-items:flex-start;gap:22px;margin:34px 0 30px}
.ttl h1{font-size:clamp(38px,4.8vw,64px);font-weight:900;letter-spacing:-.035em;line-height:1.04;max-width:760px}
.ph-head .btn.ghost{border-color:#55595D;color:#fff}.ph-head .btn.ghost i{border-color:#55595D}
.lead{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding-bottom:40px;align-items:end}
.lead p{font-size:18px;color:#C4C8C0;max-width:560px}
.lead .ctas{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.spec{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.14)}
.spec div{padding:18px 18px 22px 0;border-right:1px solid rgba(255,255,255,.14)}
.spec div+div{padding-left:18px}
.spec div:last-child{border:0}
.spec .mono{color:var(--lime);display:block;margin-bottom:6px}
.spec b{font-weight:600;font-size:16px}

.doc{display:grid;grid-template-columns:260px 1fr;gap:64px;padding:100px 0}
.toc{position:sticky;top:136px;align-self:start;border-top:1px solid var(--ink)}
.toc>a{display:flex;gap:14px;padding:13px 0;border-bottom:1px solid var(--rule);font-weight:500;font-size:15px;transition:.15s}

.toc>a:hover,.toc>a.on{padding-left:8px}
.toc>a.on{box-shadow:inset 4px 0 0 var(--fire)}
.toc>a.on span{color:var(--fire)}
.toc .btn{margin-top:26px;width:100%;padding:0}
.toc .btn span{flex:1}

.part{padding-bottom:80px;margin-bottom:80px;border-bottom:1px solid var(--rule);scroll-margin-top:136px}
.part:last-child{border:0;margin:0;padding:0}
.part .no{font-family:var(--m);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--fire);display:block;margin-bottom:14px}
.part h2{font-size:clamp(28px,3.2vw,42px);margin-bottom:22px}
.part>p{font-size:17px;color:var(--graph);max-width:760px}
.part>p+p{margin-top:16px}

.scope{border-top:1.5px solid var(--ink);margin-top:10px}
.scope div{display:grid;grid-template-columns:220px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.scope .mono{color:var(--mute)}
.scope b{font-family:var(--d);font-size:18px;font-weight:800;line-height:1.2}
.scope p{color:var(--graph)}

.types{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.types div{border:1px solid var(--rule);border-radius:14px;padding:26px;background:var(--white);transition:.2s}
.types div:hover{background:var(--ink);color:var(--paper)}
.types div:hover p{color:#C0C2BB}
.types .mono{color:var(--fire)}
.types h3{font-family:var(--d);font-size:22px;font-weight:800;letter-spacing:-.02em;margin:8px 0 8px}
.types p{color:var(--graph);font-size:15px}
.types .k{background:var(--lime);border-color:var(--lime)}
.types .k .mono{color:var(--ink)}

.proc{display:grid;grid-template-columns:repeat(5,1fr);border-top:1.5px solid var(--ink)}
.proc div{padding:22px 16px 0 0;position:relative}
.proc div+div{padding-left:16px;border-left:1px solid var(--rule)}
.proc b{font-family:var(--m);font-weight:500;font-size:13px;display:inline-block;background:var(--ink);color:var(--lime);padding:4px 8px;border-radius:5px}
.proc h4{font-size:17px;margin:4px 0 6px;font-family:var(--d)}
.proc div::before{content:"";display:block;width:28px;height:4px;background:var(--lime);border-radius:2px;margin-bottom:14px}
.proc p{font-size:14px;color:var(--graph)}

.maint{background:var(--ink);color:var(--paper);border-radius:18px;display:grid;grid-template-columns:auto 1fr;gap:40px;padding:40px;align-items:center;margin-top:34px}
.maint .big{font-family:var(--d);font-weight:900;font-size:84px;line-height:.9;color:var(--lime);letter-spacing:-.04em}
.maint .big small{display:block;font-family:var(--m);font-weight:400;font-size:12px;color:#9EA19A;letter-spacing:.08em;margin-top:12px}
.maint p{color:#C8CAC2;font-size:17px}
.maint h3{font-family:var(--d);font-size:22px;font-weight:800;margin-bottom:10px}

.faq{border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr 40px;gap:14px;align-items:center;padding:20px 0;font-weight:600;font-size:17px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .mono{color:var(--mute)}
.faq summary i{width:38px;height:38px;border-radius:8px;border:1.5px solid var(--ink);display:grid;place-items:center;font-style:normal;font-size:22px;transition:.2s}
.faq details[open] summary i{background:var(--lime);transform:rotate(45deg)}
.faq details p{padding:0 54px 24px 0;color:var(--graph)}

.rel .rrow{display:grid;grid-template-columns:1fr 180px 50px;gap:24px;align-items:center;padding:18px 0;border-bottom:1px solid var(--rule);transition:.2s}
.rel .rrow:first-of-type{border-top:1px solid var(--ink)}
.rel .rrow .mono{color:var(--fire)}
.rel .rrow h3{font-family:var(--d);font-size:clamp(20px,2.2vw,28px);font-weight:800;letter-spacing:-.02em}
.rel .rrow img{height:96px;width:180px;border-radius:10px;object-fit:cover;filter:grayscale(1);transition:.3s}
.rel .rrow:hover img{filter:none}
.rel .rrow:hover{padding-left:16px;background:var(--white)}
.rel .rrow .go{width:46px;height:46px;border-radius:10px;border:1.5px solid var(--ink);display:grid;place-items:center}
.rel .rrow .go svg{width:22px}
.rel .rrow:hover .go{background:var(--lime)}

@media (max-width:1100px){
  .doc{grid-template-columns:1fr;gap:30px}
  .toc{position:static;display:none}
  .lead{grid-template-columns:1fr}.lead .ctas{justify-content:flex-start}
  .spec{grid-template-columns:1fr 1fr}.spec div:nth-child(2){border-right:0}.spec div:nth-child(3){padding-left:0}
  .proc{grid-template-columns:1fr 1fr 1fr}
  .scope div{grid-template-columns:1fr;gap:4px}
}
@media (max-width:760px){
  .ttl{flex-direction:column;gap:6px}    .spec{grid-template-columns:1fr}.spec div{border-right:0!important;padding-left:0!important;border-bottom:1px solid var(--rule)}
  .types{grid-template-columns:1fr}
  .proc{grid-template-columns:1fr}.proc div+div{padding-left:0;border-left:0;border-top:1px solid var(--rule)}
  .proc div{padding-bottom:18px}
  .maint{grid-template-columns:1fr;padding:28px}.maint .big{font-size:110px}
  .faq summary{font-size:16px}.faq details p{padding:0 0 22px 0}
  .rel .rrow{grid-template-columns:1fr 48px;gap:12px}.rel .rrow img{display:none}.rel .rrow .go{width:44px;height:44px}
}

/* ===== Site-wide additions (multi-page build) ===== */
.fcols{grid-template-columns:1.3fr repeat(4,1fr)}
.ph-head.plain{padding-bottom:0}
.ph-head.plain .lead{padding-bottom:56px}
.ph-head .ttl h1.sm{font-size:clamp(32px,3.8vw,52px)}
.ph-head .meta-line{display:flex;gap:18px;color:#9EA19A;margin-top:-14px;margin-bottom:26px;flex-wrap:wrap}
.ph-head .meta-line span:first-child{color:var(--lime)}
.part .maint{margin-top:10px}
.maint .big{font-size:clamp(52px,6vw,84px)}
.tag-new{font-family:var(--m);font-size:10px;font-weight:600;background:var(--lime);color:var(--ink);padding:2px 6px;border-radius:4px;margin-left:8px;vertical-align:3px;letter-spacing:.08em}

/* intro split (hubs, about, FM) */
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.split .copy p{font-size:17.5px;color:var(--graph)}
.split .copy p+p{margin-top:16px}
.split .copy h2{font-size:clamp(28px,3.2vw,42px);margin:14px 0 20px}
.split .pic{height:460px;border-radius:20px;overflow:hidden;position:relative}
.split .pic img{width:100%;height:100%;object-fit:cover}
.split .pic .badge{position:absolute;left:20px;bottom:20px;background:var(--lime);border-radius:12px;padding:14px 18px;font-weight:600;font-size:14px}
.eyebrow{color:var(--lime-d)}
.eyebrow.f{color:var(--fire)}

/* service mini-cards (hub + services overview) */
.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.mini-grid.four{grid-template-columns:repeat(4,1fr)}
.mini{background:var(--white);border:1px solid var(--rule);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:.25s}
.mini:hover{transform:translateY(-4px);box-shadow:0 30px 50px -28px rgba(15,16,17,.35)}
.mini .ph{height:190px;overflow:hidden}
.mini .ph img{width:100%;height:100%;object-fit:cover;transition:.5s}
.mini:hover .ph img{transform:scale(1.05)}
.mini .body{padding:22px;display:flex;flex-direction:column;flex:1}
.mini h3{font-family:var(--d);font-size:20px;font-weight:700;letter-spacing:-.02em;margin-bottom:8px}
.mini p{color:var(--graph);font-size:15px;margin-bottom:18px}
.mini .more{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:14.5px;padding-top:14px;border-top:1px solid var(--rule)}
.mini .more i{width:34px;height:34px;border-radius:8px;border:1.5px solid var(--ink);display:grid;place-items:center;transition:.2s}
.mini .more svg{width:16px}
.mini:hover .more i{background:var(--lime);border-color:var(--lime)}
.cat-block+.cat-block{margin-top:90px}
.cat-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:26px;flex-wrap:wrap}
.cat-head h2{font-size:clamp(26px,2.8vw,36px)}
.cat-head p{color:var(--graph);max-width:560px;margin-top:8px}

/* generic process (hubs, FM) */
.proc.wide{margin-top:10px}

/* hub-to-hub links */
.hubs{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.hub{border-radius:16px;overflow:hidden;position:relative;height:220px;display:flex;align-items:flex-end;color:#fff}
.hub img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.5s}
.hub::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,16,17,.85),rgba(15,16,17,.1) 70%)}
.hub span{position:relative;z-index:1;padding:20px;font-family:var(--d);font-size:20px;font-weight:700;display:flex;justify-content:space-between;width:100%;align-items:center}
.hub span svg{width:20px;color:var(--lime)}
.hub:hover img{transform:scale(1.05)}

/* frameworks page steps */
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.steps3 div{background:var(--white);border:1px solid var(--rule);border-radius:16px;padding:28px}
.steps3 div::before{content:"";display:block;width:28px;height:4px;background:var(--lime);border-radius:2px;margin-bottom:18px}
.steps3 h3{font-family:var(--d);font-size:20px;margin-bottom:8px}
.steps3 p{color:var(--graph);font-size:15px}

/* projects */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:30px}
.chips span{border:1px solid var(--rule);background:var(--white);border-radius:999px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer}
.chips span.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.proj{border-radius:16px;overflow:hidden;background:var(--white);border:1px solid var(--rule);transition:.25s;display:block}
.proj:hover{transform:translateY(-4px);box-shadow:0 30px 50px -28px rgba(15,16,17,.35)}
.proj .ph{height:260px;overflow:hidden;position:relative}
.proj .ph img{width:100%;height:100%;object-fit:cover}
.proj .ph .mono{position:absolute;left:14px;top:14px;background:var(--ink);color:var(--lime);padding:5px 8px;border-radius:6px}
.proj .body{padding:22px}
.proj h3{font-family:var(--d);font-size:20px;margin-bottom:6px}
.proj p{color:var(--mute);font-size:14px}
.ph-note{display:inline-block;font-family:var(--m);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fire);border:1px dashed var(--fire);border-radius:6px;padding:4px 8px;margin-bottom:24px}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;margin-top:10px}
.gallery img{width:100%;height:320px;object-fit:cover;border-radius:14px}

/* about */
.big-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink)}
.big-stats div{padding:26px 24px 0 0}
.big-stats div+div{padding-left:24px;border-left:1px solid var(--rule)}
.big-stats b{font:800 clamp(40px,4.4vw,60px)/1 var(--d);letter-spacing:-.04em;display:block}
.big-stats b i{font-style:normal;color:var(--lime-d)}
.big-stats span{color:var(--graph);font-size:15px;display:block;margin-top:10px}
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.values div{border-top:3px solid var(--lime);padding-top:20px}
.values h3{font-family:var(--d);font-size:19px;margin-bottom:8px}
.values p{color:var(--graph);font-size:15px}
.accr-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.accr-grid div{background:var(--white);border:1px solid var(--rule);border-radius:14px;height:130px;display:flex;align-items:center;justify-content:center;padding:20px}
.accr-grid img{max-height:80px;width:auto;mix-blend-mode:multiply}
.accr-grid .tbc{height:auto;padding:14px 20px}

/* news */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.post{background:var(--white);border:1px solid var(--rule);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:.25s}
.post:hover{transform:translateY(-4px);box-shadow:0 30px 50px -28px rgba(15,16,17,.35)}
.post .ph{height:220px;overflow:hidden}
.post .ph img{width:100%;height:100%;object-fit:cover}
.post .body{padding:24px;display:flex;flex-direction:column;flex:1}
.post .meta{display:flex;gap:12px;color:var(--mute);margin-bottom:10px}
.post .meta span:first-child{color:var(--lime-d)}
.post h3{font-family:var(--d);font-size:20px;line-height:1.25;margin-bottom:10px}
.post p{color:var(--graph);font-size:15px;margin-bottom:18px}
.post .more{margin-top:auto;font-weight:600;font-size:14.5px;display:flex;gap:8px;align-items:center}
.post .more svg{width:16px;color:var(--lime-d)}
.article{display:grid;grid-template-columns:1fr 340px;gap:70px;padding:90px 0}
.prose{max-width:760px;font-size:17.5px;color:var(--graph)}
.prose p{margin-bottom:20px}
.prose h2{font-family:var(--d);font-size:clamp(24px,2.4vw,30px);color:var(--ink);letter-spacing:-.02em;margin:40px 0 14px}
.prose ul{margin:0 0 22px 0;list-style:none}
.prose li{padding:8px 0 8px 26px;position:relative;border-bottom:1px solid var(--rule)}
.prose li::before{content:"";position:absolute;left:0;top:17px;width:10px;height:10px;border-radius:3px;background:var(--lime)}
.prose .ph-note{margin-bottom:28px}
.prose .feat{height:420px;border-radius:18px;overflow:hidden;margin-bottom:36px}
.prose .feat img{width:100%;height:100%;object-fit:cover}
.aside-stack{position:sticky;top:136px;align-self:start;display:grid;gap:16px}
.side-cta{background:var(--ink);color:#fff;border-radius:18px;padding:28px}
.side-cta h3{font-family:var(--d);font-size:21px;margin-bottom:8px}
.side-cta p{color:#B9BDB6;font-size:14.5px;margin-bottom:20px}
.side-cta .btn{width:100%}.side-cta .btn span{flex:1}
.side-cta .tel{display:block;text-align:center;margin-top:14px;font:800 19px var(--d)}
.side-box{border:1px solid var(--rule);background:var(--white);border-radius:18px;padding:24px}
.side-box h4{margin-bottom:10px}
.side-box a{display:block;padding:10px 0;border-bottom:1px solid var(--rule);font-weight:500;font-size:15px}
.side-box a:last-child{border:0}
.side-box a:hover{color:var(--lime-d)}

/* contact */
.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:0}
.contact-cards div{background:var(--white);border:1px solid var(--rule);border-radius:16px;padding:28px}
.contact-cards .mono{color:var(--mute)}
.contact-cards b{display:block;font-family:var(--d);font-size:22px;margin-top:8px}
.contact-cards p{color:var(--graph);font-size:14.5px;margin-top:6px}
.map-ph{height:360px;border-radius:18px;background:repeating-linear-gradient(45deg,var(--paper-2) 0 12px,var(--paper) 12px 24px);border:1px dashed var(--mute);display:grid;place-items:center;color:var(--mute);margin-top:18px;text-align:center}

/* legal / simple */
.legal{padding:90px 0}
.legal .prose{max-width:820px}
.center-msg{min-height:60vh;display:grid;place-items:center;text-align:center;padding:100px 0}
.center-msg h1{font-family:var(--d);font-size:clamp(34px,4vw,56px);letter-spacing:-.03em;margin:16px 0}
.center-msg p{color:var(--graph);font-size:18px;max-width:520px;margin:0 auto 30px}
.center-msg .ctas{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.center-msg .big404{font:900 clamp(90px,14vw,180px)/1 var(--d);letter-spacing:-.05em;color:var(--lime)}

/* dark-hero spec mobile fix */
@media (max-width:760px){
  .ph-head .spec div{border-bottom:1px solid rgba(255,255,255,.14)!important}
  .maint .big{font-size:56px}
}
@media (max-width:1100px){
  .split{grid-template-columns:1fr;gap:34px}.split .pic{height:320px}
  .mini-grid,.mini-grid.four,.proj-grid,.news-grid{grid-template-columns:1fr 1fr}
  .hubs{grid-template-columns:1fr 1fr}
  .steps3,.contact-cards{grid-template-columns:1fr}
  .big-stats{grid-template-columns:1fr 1fr}.big-stats div:nth-child(3){padding-left:0;border-left:0}
  .values,.accr-grid{grid-template-columns:1fr 1fr}
  .article{grid-template-columns:1fr}.aside-stack{position:static}
  .fcols{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .mini-grid,.mini-grid.four,.proj-grid,.news-grid,.hubs,.values{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}.gallery img{height:220px}
  .big-stats{grid-template-columns:1fr}.big-stats div{padding-left:0!important;border-left:0!important;border-bottom:1px solid var(--rule);padding-bottom:20px}
  .fcols{grid-template-columns:1fr}
  .prose .feat{height:240px}
}
main{overflow-x:clip}
@media (max-width:640px){
  .logo img{height:46px}
  header .w{gap:10px}
  .hdr-r .btn span{padding:11px 10px;font-size:13.5px}.hdr-r .btn i{width:36px}
}
@media (max-width:440px){ .hdr-r .btn{display:none} }
/* hero ghost buttons: always legible over photos */
.ph-head .btn.ghost,.hero .btn.ghost{border-color:rgba(255,255,255,.85);color:#fff;background:rgba(15,16,17,.6);backdrop-filter:blur(6px)}
.ph-head .btn.ghost i,.hero .btn.ghost i{border-color:rgba(255,255,255,.85)}
.ph-head .btn.ghost:hover,.hero .btn.ghost:hover{background:rgba(15,16,17,.85)}
.ph-head .bgimg::after{background:linear-gradient(90deg,var(--ink) 35%,rgba(15,16,17,.8) 65%,rgba(15,16,17,.6))}
/* specialist (lime) option card: keep text readable on hover */
.types div.k:hover{background:#9FD65A;color:var(--ink)}
.types div.k:hover p,.types div.k:hover .mono{color:var(--ink)}
.types .k p{color:var(--ink)}

.mnav a.sub{font-size:17px;padding-left:18px;color:var(--graph)}
.drop h6 a{color:inherit}
